image2svg-mcp
The image2svg-mcp server converts raster images (PNG, JPG, WEBP, TIFF, etc.) into scalable SVG vector graphics with extensive control over the vectorization process.
Input formats: Accepts images as base64-encoded data (with or without
data:image/...;base64,prefix) or viahttp:///https://URLs (5 MB limit). Localfile://URLs supported with--allow-local-files-path.Vectorization parameters:
colormode: Full color or binary (black & white) outputmode: Tracing mode — smooth curves (spline), straight edges (polygon), or pixel-perfect (none)filter_speckle: Remove small noise artifactscolor_precision: Control number of colors for simpler SVGslayer_difference: Threshold for merging similar color layerscorner_threshold/splice_threshold: Angle thresholds for corner and spline detectionlength_threshold: Minimum path segment lengthpath_precision: Decimal precision for SVG coordinateshierarchical: Layer arrangement —stackedorcutoutmax_iterations: Balance curve-fitting accuracy vs. speed
Deployable via MCP (uvx, Docker) or as an HTTP server.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@image2svg-mcpConvert this image to SVG: https://example.com/logo.png"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
image2svg-mcp
An MCP server that converts raster images (PNG, JPG, WEBP) to scalable SVG vector graphics.
Features
Accepts images as base64-encoded data or URL
Supports PNG, JPG, JPEG, WEBP, TIFF, and other common raster formats
Full control over vectorization parameters (color precision, speckle filtering, tracing mode, etc.)
Handles
data:image/...;base64,URI prefixes automaticallyStreams URL downloads with a 5 MB size limit
Optional
file://URL support for local images (opt-in via--allow-local-files-path)
Usage
To see it in action check converting image to svg online.
Claude Code & Claude Desktop
Add to your settings.json:
{
"mcpServers": {
"image2svg": {
"command": "uvx",
"args": ["image2svg-mcp"]
}
}
}for Claude Code add using command line:
claude mcp add image2svg --scope user -- uvx image2svg-mcpwith access to local files:
claude mcp add image2svg --scope user -- uvx image2svg-mcp --allow-local-files-path /home/user/imagesDocker
Run as an HTTP server:
docker run -p 8000:8000 ghcr.io/botmonster/image2svg-mcpWith local file access:
docker run -p 8000:8000 -v /home/user/images:/images ghcr.io/botmonster/image2svg-mcp --allow-local-files-path /images
claude mcp add image2svg --transport http --scope user http://localhost:8000/mcpThis enables prompts like:
Convert this local file to SVG: file://logo.png
Only files inside the specified directory (and its subdirectories) are accessible. Paths are normalized to prevent directory traversal. Without this flag, file:// URLs are rejected.
Example Prompts
Here are some examples of what you can tell an LLM to do with this tool:
1. Simple image-to-SVG conversion
Generate an image of a sunset over mountains, then convert it to SVG.
The LLM will generate a raster image and then use the convert_image_to_svg tool with default settings to produce a clean vector version.
2. Fine-tuned conversion with specific parameters
Create a logo with a blue circle and a white star inside it. Now convert it to SVG using binary colormode for crisp edges and set filter_speckle to 10 to remove noise.
This uses colormode: "binary" for black/white line art style output, which works great for logos and icons. The higher filter_speckle value removes small artifacts.
3. Convert from URL with minimalist style
Convert this image to a simplified SVG with low color precision for a minimalist poster look: https://example.com/photo.png
Using color_precision: 3 reduces the number of colors dramatically, producing an artistic posterized vector effect. Great for stylized illustrations.
4. Convert a base64 image directly
Convert this base64 image to SVG: iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAO0lEQVR4nGP8z8Dwn4EIwESMIqwKGRn+MzBisYQJXRE2NopCbKYgi5Huxv8MjBiSyGJMuCTQNTJSPRwBCjYOD5JU5rIAAAAASUVORK5CYII=
This is a 10x10 red square with a blue circle in the middle. Useful for testing the tool with inline image data — no URL needed.
Tool Parameters
Parameter | Type | Default | Range | Description |
| string | - | - | Base64-encoded image data. Provide this OR |
| string | - | - | URL to fetch the image from ( |
| string |
|
| Full color or black/white line art |
| string |
|
| Tracing mode: smooth curves, straight edges, or pixel-perfect |
| int |
| 0-128 | Remove speckles of N pixels or fewer |
| int |
| 1-12 | Color quantization bits. Lower = fewer colors, simpler SVG |
| int |
| 0-128 | Color difference for merging layers |
| int |
| 0-180 | Angle threshold for corner detection (degrees) |
| float |
| 3.5-10.0 | Minimum path segment length |
| int |
| 0-180 | Angle threshold for splicing splines |
| int |
| 1-12 | Decimal precision for SVG coordinates |
| string |
|
| Layer arrangement mode |
| int |
| 1-100 | Max curve fitting iterations |
Development
Installation
git clone https://github.com/botmonster/image2svg-mcp.git
cd image2svg-mcp
uv syncRun tests
uv run pytest tests/ -vRun the MCP Inspector
uv run fastmcp dev inspector src/image2svg_mcp/server.py:mcpLicense
Apache 2.0 - see LICENSE
Maintenance
Tools
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/botmonster/image2svg-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server