Image to SVG Converter & MCP Server

Convert any raster image (PNG, JPEG, BMP, GIF, WebP) to clean, scalable SVG vectors right in your browser. Drag and drop your file, paste from clipboard, or pick a file to get started, then adjust clustering and curve fitting parameters to fine-tune the output. Prefer to automate it? The same converter ships as image2svg-mcp, an open-source MCP server that lets AI agents like Claude and Cursor convert images to SVG for you.

Drag an image here, Ctrl-V to paste, or select a file

Clustering
4
6
16
Curve Fitting
60
4
45
8

image2svg-mcp: an image to SVG converter MCP server for AI agents

Everything this page does is also available to your AI tools. image2svg-mcp is a free, open-source (Apache 2.0) MCP server that converts raster images (PNG, JPG, WEBP, TIFF) to scalable SVG vector graphics. Add it to Claude Code, Claude Desktop, Cursor, or any other MCP client and your assistant gets a convert_image_to_svg tool it can call whenever a task needs vectorization: turning a generated logo into an SVG, vectorizing a sketch, or batch-converting icons.

Unlike API-based alternatives, it runs entirely on your machine with the same VTracer engine that powers the converter above. No API keys, no per-image fees, and your images never leave your computer.

Install in Claude Code

claude mcp add image2svg --scope user -- uvx image2svg-mcp

To let it read local images, allow a directory:

claude mcp add image2svg --scope user -- uvx image2svg-mcp --allow-local-files-path /home/user/images

Install in other MCP clients

The server runs with uvx image2svg-mcp (bundled with uv), so any MCP client can use it. Pick yours:

Claude Desktop

Add to claude_desktop_config.json (Settings > Developer > Edit Config):

{
  "mcpServers": {
    "image2svg": {
      "command": "uvx",
      "args": ["image2svg-mcp"]
    }
  }
}
Cursor

Add to ~/.cursor/mcp.json (or .cursor/mcp.json in your project):

{
  "mcpServers": {
    "image2svg": {
      "command": "uvx",
      "args": ["image2svg-mcp"]
    }
  }
}
VS Code (GitHub Copilot)

One command:

code --add-mcp '{"name":"image2svg","command":"uvx","args":["image2svg-mcp"]}'

Or add to .vscode/mcp.json:

{
  "servers": {
    "image2svg": {
      "command": "uvx",
      "args": ["image2svg-mcp"]
    }
  }
}
Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "image2svg": {
      "command": "uvx",
      "args": ["image2svg-mcp"]
    }
  }
}
Cline

MCP Servers icon > Configure MCP Servers, then add to cline_mcp_settings.json:

{
  "mcpServers": {
    "image2svg": {
      "command": "uvx",
      "args": ["image2svg-mcp"]
    }
  }
}
Google Antigravity

In the Agent panel open MCP Servers > Manage MCP Servers > View raw config, then add:

{
  "mcpServers": {
    "image2svg": {
      "command": "uvx",
      "args": ["image2svg-mcp"]
    }
  }
}
Codex CLI
codex mcp add image2svg -- uvx image2svg-mcp

Run with Docker

The server can also run as an HTTP service:

docker run -p 8000:8000 ghcr.io/botmonster/image2svg-mcp
claude mcp add image2svg --transport http --scope user http://localhost:8000/mcp

What you can ask your AI agent

Conversion parameters

The convert_image_to_svg tool accepts an image as base64 data or a URL, plus the same vectorization parameters as the sliders above. Dial in the settings visually on this page, then reuse them in your prompts.

Parameter Default Description
image_base64 / image_url - The input image, as base64 data or an http(s):// or file:// URL
colormode color Full color or binary (black and white line art)
mode spline Tracing mode: spline, polygon, or none (pixel-perfect)
filter_speckle 4 Remove speckles of N pixels or fewer
color_precision 6 Color quantization bits; lower means fewer colors and a simpler SVG
layer_difference 16 Color difference for merging gradient layers
corner_threshold 60 Angle threshold for corner detection (degrees)
length_threshold 4.0 Minimum path segment length
splice_threshold 45 Angle threshold for splicing splines (degrees)
path_precision 8 Decimal precision of SVG coordinates
hierarchical stacked Layer arrangement: stacked or cutout
max_iterations 10 Maximum curve fitting iterations

Source and docs: GitHub · PyPI · Docker image