mcpField
L
LogoLab

LogoLab

Local
logolab.fabraham.devMedia & Design2Updated 2d ago

About LogoLab

LogoLab is an MCP server for coding agents that turns raster images into editable SVGs and exports app-icon sets. It traces shapes locally rather than embedding the source image, and accesses files on disk without uploading them.

Key features

  1. 01Trace images into editable SVG
  2. 02Export app and platform icon sets
  3. 03Split icon sheets into individual SVGs
  4. 04Inspect tracing results before conversion
  5. 05Run locally over stdio

Use cases

  1. 01Create a favicon from a raster logo
  2. 02Generate PWA or mobile app icon sets
  3. 03Convert a grid of icons into separate SVGs

MCP support

LogoLab exposes image tracing, icon export, icon-sheet splitting, and inspection tools to MCP clients. It runs as a local stdio server and reads and writes files on disk.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"blaxzter-logolab": {
"command": "npx",
"args": [
"-y",
"logolab"
]
}
}
}
Run commandnpx -y logolab

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmlogolab0.8.0

Tools

5

Saved tool list · updated 4d ago

ParameterTypeRequiredDescription
modeenumNoauto (default) counts the inks: one ink on paper traces mono, which is far cleaner for line art; anything else traces colour.auto | color | mono
imagestringYesPath to a PNG, JPEG, WebP, GIF, BMP or SVG file. Relative paths resolve against the working directory.
detailenumNohigh lifts the flat-art raster cap 2048 → 4096: crisper, ~4x the work.balanced | high
strokesbooleanNoTrace LINE ART as centreline strokes with a measured stroke-width (open and closed stroked paths you can re-weight), instead of filled outlines of each line. Ink no stroke explains (a dot, a note head) still becomes a fill. In colour mode each stroke is painted in the ink it runs through. Default off.
fidelitynumberNoShape-beautification tolerance in px; 0 disables snapping to circles/lines.
layeringenumNoColour mode. stacked (default): a shape paints under the shapes in front of it — fewer nodes, no hairline seams between colours, shapes stay whole in a design tool. tiled: shapes fit edge to edge, with a hole wherever another sits inside. Same edges either way; mono ignores it.tiled | stacked
despecklenumberNo0 keeps every speck, 100 is aggressive. Default 25.
gradientsenumNoauto (default) probes for real colour ramps. flat forces solid fills (right for most icons). rich forces gradient fitting.auto | flat | rich
smoothingnumberNo0 = crisp and node-dense, 100 = smooth and sparse. Default 50.
flattenOntostringNoComposite a TRANSPARENT source onto this colour before tracing, e.g. "#ffffff". Omit to keep the alpha. (Not the card colour — that is appearance.background.)
strokesOnlybooleanNoWith `strokes`: NO filled paths at all — the ink no stroke explains (a dot, a note head, a solid shape) is drawn as round-capped strokes too, along its own middle and as wide as it is there; a dot is a round-capped point. Nothing is dropped, but a shape that is not a line is approximated (a square comes back with round ends). For plotters and stroke-only icon sets. Default off.
removeBackgroundbooleanNoDrop the detected background layer so the SVG comes back transparent.

Details

From the project README

logolab

Turn an image into a clean SVG and a complete app-icon set — from your coding agent, on your machine.

An MCP server wrapping the vectorizer and icon exporter from LogoLab. A model generates a 1024px PNG with soft edges and a JPEG-ish halo; something has to turn that into a favicon that is still legible at 16px. Doing it by hand means a raster upscale and a blurry icon. This runs a real trace — region segmentation and curve fitting, not an image embed — so the result scales.

Nothing is uploaded. It is a stdio server: your agent starts it as a child process, it reads and writes files on your disk, and it never opens a socket.

Install

claude mcp add logolab -- npx -y logolab       # Claude Code

Or let it write the config itself, in whichever project should get the icons:

npx -y logolab install                   # .mcp.json here (Claude Code)
npx -y logolab install --scope user      # every project
npx -y logolab install --client cursor   # .cursor/mcp.json
npx -y logolab install --client vscode   # .vscode/mcp.json
npx -y logolab install --client print    # print the JSON, change nothing

Any other client wants the usual three facts:

{ "mcpServers": { "logolab": { "command": "npx", "args": ["-y", "logolab"] } } }

Then ask your agent: "trace icon.png and export a PWA icon set into public/".

…or as a skill

No server at all: an Agent Skill that runs this package's CLI.

/plugin install logolab --marketplace Blaxzter/LogoLab   # Claude Code plugin
npx -y logolab install --skill                           # .claude/skills/logolab/ (--scope user: every project)
npx -y logolab install --skills-dir <dir>                # any agent that reads skills from a folder

The CLI it drives is usable by hand as well:

npx -y logolab tools                      # the tools, or `tools <name>` for one tool's inputs
npx -y logolab call trace_icon image=icon.png strokes=true

Tools

ToolWhat it does
make_app_iconsimage → traced SVG → a full icon set. The one call that does the job.
trace_iconjust the vectorization: a clean, editable SVG.
export_iconsan existing SVG/PNG → PWA, favicon, Tauri, Electron, Android, iOS or extension icons.
split_icon_sheeta grid of icons on one canvas → one traced SVG per icon, icon-set ready: grid hint, names, normalize: 24, ink: "currentColor", transparent tiles.
inspect_iconwhat the tracer would decide, before it runs.

Presets: pwa, favicon, web, tauri, electron, android, ios, extension.

Try it without a client

npx -y logolab try ./icon.png ./out

Notes

  • Node ≥ 22.18 is required.
  • WebP inputs need the optional sharp decoder, which is an optional peer and is not installed by default — it pulls a platform-specific libvips binary that dwarfs the rest of the server. Run npm install sharp if you need it, or convert to PNG. Every other format (PNG, JPEG, GIF, BMP, SVG) works out of the box.
  • Relative paths in a tool call resolve against your agent's working directory, not this package — so ./public/ means the project you are working on.

MIT © Frederic Abraham

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.