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
- 01Trace images into editable SVG
- 02Export app and platform icon sets
- 03Split icon sheets into individual SVGs
- 04Inspect tracing results before conversion
- 05Run locally over stdio
Use cases
- 01Create a favicon from a raster logo
- 02Generate PWA or mobile app icon sets
- 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.
Tools
5Saved tool list · updated 4d ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| mode | enum | No | auto (default) counts the inks: one ink on paper traces mono, which is far cleaner for line art; anything else traces colour.auto | color | mono |
| image | string | Yes | Path to a PNG, JPEG, WebP, GIF, BMP or SVG file. Relative paths resolve against the working directory. |
| detail | enum | No | high lifts the flat-art raster cap 2048 → 4096: crisper, ~4x the work.balanced | high |
| strokes | boolean | No | Trace 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. |
| fidelity | number | No | Shape-beautification tolerance in px; 0 disables snapping to circles/lines. |
| layering | enum | No | Colour 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 |
| despeckle | number | No | 0 keeps every speck, 100 is aggressive. Default 25. |
| gradients | enum | No | auto (default) probes for real colour ramps. flat forces solid fills (right for most icons). rich forces gradient fitting.auto | flat | rich |
| smoothing | number | No | 0 = crisp and node-dense, 100 = smooth and sparse. Default 50. |
| flattenOnto | string | No | Composite a TRANSPARENT source onto this colour before tracing, e.g. "#ffffff". Omit to keep the alpha. (Not the card colour — that is appearance.background.) |
| strokesOnly | boolean | No | With `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. |
| removeBackground | boolean | No | Drop the detected background layer so the SVG comes back transparent. |
Details
From the project READMElogolab
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
| Tool | What it does |
|---|---|
make_app_icons | image → traced SVG → a full icon set. The one call that does the job. |
trace_icon | just the vectorization: a clean, editable SVG. |
export_icons | an existing SVG/PNG → PWA, favicon, Tauri, Electron, Android, iOS or extension icons. |
split_icon_sheet | a grid of icons on one canvas → one traced SVG per icon, icon-set ready: grid hint, names, normalize: 24, ink: "currentColor", transparent tiles. |
inspect_icon | what 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
sharpdecoder, 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. Runnpm install sharpif 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
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.