关于 Image to SVG
这是一个将栅格图像转换为可缩放 SVG 图形的 MCP 服务。它支持图像数据或 URL,并可调整描摹、颜色处理和输出细节。
主要功能
- 01将栅格图像转换为 SVG
- 02接受 Base64 数据或图像 URL
- 03支持常见栅格格式
- 04调整颜色与描摹设置
- 05可选访问本地文件
适用场景
- 01将徽标矢量化以便缩放使用
- 02把 URL 图像转换为 SVG
- 03通过降低颜色精度制作简化图像
MCP 相关
向 MCP 客户端提供图像转 SVG 工具,输入可为 Base64 图像数据或 URL,并支持配置矢量化参数。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
1收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| mode | string | 否 | 描摹模式:'spline'(平滑曲线)、'polygon'(直边)或 'none'(像素级精确) |
| colormode | string | 否 | 颜色模式:'color' 表示全彩,'binary' 表示黑白线稿 |
| image_url | any | 否 | 要从中获取图像的 URL(PNG、JPG 或 WEBP)。请提供此项或 image_base64,不能同时提供。 |
| hierarchical | string | 否 | 图层排列方式:'stacked'(重叠)或 'cutout'(不重叠) |
| image_base64 | any | 否 | Base64 编码的图像数据(PNG、JPG 或 WEBP)。请提供此项或 image_url,不能同时提供。 |
| filter_speckle | integer | 否 | 移除不超过此像素数的斑点。数值越高,图像越干净,但小细节会丢失。默认值:4。 |
| max_iterations | integer | 否 | 曲线拟合的最大迭代次数。数值越高,精度越高,但速度越慢。默认值为 10。 |
| path_precision | integer | 否 | SVG 路径坐标的小数精度。数值越低,文件越小。默认值为 8。 |
| color_precision | integer | 否 | 颜色量化的有效位数。数值越低,颜色越少,SVG 越简单。默认值为 6。 |
| corner_threshold | integer | 否 | 用于检测拐角的角度阈值,单位为度。默认值为 60。 |
| layer_difference | integer | 否 | 合并图层的颜色差异阈值。数值越高,图层越少,SVG 越简单。默认值为 16。 |
| length_threshold | number | 否 | 路径线段的最小长度。默认值为 4.0。 |
| splice_threshold | integer | 否 | 拼接样条曲线的角度阈值。默认值为 45。 |
详细介绍
image2svg-mcp
一个可将栅格图像(PNG、JPG、WEBP)转换为可缩放 SVG 矢量图形的 MCP 服务。
功能
- 接受 base64 编码数据或URL形式的图像
- 支持 PNG、JPG、JPEG、WEBP、TIFF 和其他常见栅格格式
- 完全控制矢量化参数(颜色精度、斑点过滤、描摹模式等)
- 自动处理
data:image/...;base64,URI 前缀 - 以流式方式下载 URL,大小上限为 5 MB
- 可选支持用于本地图像的
file://URL(通过--allow-local-files-path启用)
用法
要查看实际效果,请访问在线将图像转换为 SVG。
Claude Code 和 Claude Desktop
添加到你的 settings.json:
{
"mcpServers": {
"image2svg": {
"command": "uvx",
"args": ["image2svg-mcp"]
}
}
}
对于 Claude Code,通过命令行添加:
claude mcp add image2svg --scope user -- uvx image2svg-mcp
启用本地文件访问:
claude mcp add image2svg --scope user -- uvx image2svg-mcp --allow-local-files-path /home/user/images
Docker
作为 HTTP 服务运行:
docker run -p 8000:8000 ghcr.io/botmonster/image2svg-mcp
启用本地文件访问:
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/mcp
这样便可以使用如下提示词:
将此本地文件转换为 SVG:file://logo.png
只能访问指定目录及其子目录中的文件。路径会经过规范化处理,以防止目录遍历。未使用此标志时,将拒绝 file:// URL。
提示词示例
以下是一些你可以让大模型使用此工具执行的操作示例:
1. 将图像简单转换为 SVG
生成一张山间日落的图像,然后将其转换为 SVG。
大模型会生成栅格图像,然后使用 convert_image_to_svg 工具的默认设置,生成简洁的矢量版本。
2. 使用特定参数精细调整转换
创建一个徽标,里面有一个蓝色圆形,圆形内有一颗白色星星。然后使用二值 colormode 将其转换为 SVG,以获得清晰的边缘,并将 filter_speckle 设置为 10,以去除噪点。
此示例使用 colormode: "binary" 生成黑白线稿风格的输出,非常适合徽标和图标。较高的 filter_speckle 值可以去除小瑕疵。
3. 从 URL 转换为简约风格
将此图像转换为简化的 SVG,并降低颜色精度,以呈现简约海报风格:https://example.com/photo.png
使用 color_precision: 3 可大幅减少颜色数量,生成艺术化的海报化矢量效果,非常适合风格化插画。
4. 直接转换 base64 图像
将此 base64 图像转换为 SVG:iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAO0lEQVR4nGP8z8Dwn4EIwESMIqwKGRn+MzBisYQJXRE2NopCbKYgi5Huxv8MjBiSyGJMuCTQNTJSPRwBCjYOD5JU5rIAAAAASUVORK5CYII=
这是一张 10x10 的红色方块图像,中央有一个蓝色圆形。适合使用内嵌图像数据测试工具,无需 URL。
工具参数
| 参数 | 类型 | 默认值 | 范围 | 描述 |
|---|---|---|---|---|
image_base64 | string | - | - | Base64 编码的图像数据。请提供此参数或 image_url。 |
image_url | string | - | - | 获取图像的 URL(http://、https://,或启用时使用 file://)。请提供此参数或 image_base64。 |
colormode | string | "color" | color、binary | 全彩或黑白线稿 |
mode | string | "spline" | spline、polygon、none | 描摹模式:平滑曲线、直线边缘或像素级精确描摹 |
filter_speckle | int | 4 | 0-128 | 移除尺寸不超过 N 个像素的杂点 |
color_precision | int | 6 | 1-12 | 颜色量化位数。数值越低,颜色越少,SVG 越简单 |
layer_difference | int | 16 | 0-128 | 合并图层的颜色差异阈值 |
corner_threshold | int | 60 | 0-180 | 检测角点的角度阈值(度) |
length_threshold | float | 4.0 | 3.5-10.0 | 路径段的最小长度 |
splice_threshold | int | 45 | 0-180 | 拼接样条曲线的角度阈值 |
path_precision | int | 8 | 1-12 | SVG 坐标的小数精度 |
hierarchical | string | "stacked" | stacked、cutout | 图层排列模式 |
max_iterations | int | 10 | 1-100 | 曲线拟合的最大迭代次数 |
开发
安装
git clone https://github.com/botmonster/image2svg-mcp.git
cd image2svg-mcp
uv sync
运行测试
uv run pytest tests/ -v
运行 MCP Inspector
uv run fastmcp dev inspector src/image2svg_mcp/server.py:mcp
许可证
Apache 2.0 - 参见 LICENSE
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。