关于 svg-tracer
将位图图像转换为 SVG 矢量图形的 MCP 服务,基于 potrace 描摹。适合需要从 PNG、JPG 等图片生成 SVG 的用户,例如制作图标。
主要功能
- 01支持 PNG、JPG、BMP、GIF、TIFF、WebP 输入
- 02透明 PNG 的 alpha 通道预处理
- 03可调节阈值、斑点抑制和曲线优化参数
- 04按目标宽高缩放以生成图标
- 05自定义填充颜色与背景
适用场景
- 01将 logo 转换为可缩放的 SVG 文件
- 02生成 50x50 的 Dewey 图标
- 03为图标设置品牌颜色
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端提供 trace_bitmap_to_svg 工具,用于将位图转换为 SVG 并写入本地磁盘。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
1收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| color | string | 否 | 描摹后的 SVG 路径填充颜色,使用十六进制颜色字符串。例如,橙色为 "#FF5733",黑色为 "#000000"。默认值:"#000000"。 |
| threshold | number | 否 | 描摹用的黑白阈值(0-255)。值越低,保留的细节越多;值越高,简化程度越高。默认值:128。 |
| turd_size | number | 否 | 抑制最多包含这么多个像素的斑点。增大此值可去除噪点,减小此值可保留精细细节。默认值:2。 |
| background | string | 否 | SVG 的背景颜色。使用 "transparent" 表示无背景,或指定十六进制颜色字符串。默认值:"transparent"。 |
| input_path | string | 是 | 输入位图图像文件的绝对路径。支持的格式:PNG、JPG/JPEG、BMP、GIF、TIFF、WebP。示例:"/tmp/logo.png" |
| output_path | string | 否 | 输出 SVG 文件的写入绝对路径。如果未指定,默认使用与输入文件相同的目录和文件名,并将扩展名设为 .svg。示例:"/tmp/logo.svg" |
| target_width | number | 否 | 输出 SVG viewBox 的目标宽度(像素)。描摹路径将缩放以适应此尺寸。保持纵横比。示例:宽度为 50px 的图标可设为 50。 |
| opt_tolerance | number | 否 | 曲线优化容差(0-1)。值越高,曲线越简洁;值越低,细节保留越多。默认值:0.2。 |
| target_height | number | 否 | 输出 SVG viewBox 的目标高度(像素)。描摹路径将缩放以适应此尺寸。保持纵横比。示例:高度为 50px 的图标可设为 50。 |
详细介绍
SVG Tracer MCP Server
一个 MCP 服务,可使用 potrace 描摹将位图图像(PNG、JPG、BMP、GIF、TIFF、WebP)转换为 SVG 矢量图形。
功能
- 将常见位图格式转换为简洁的 SVG 矢量路径
- 自动预处理透明 PNG(将 alpha 通道转换为黑底白色蒙版)
- 可自定义描摹参数(阈值、斑点抑制、曲线优化)
- 支持缩放到目标尺寸以生成图标(例如 50x50 的 Dewey 图标)
- 支持自定义填充颜色和背景
- 默认使用本地文件系统(读取输入文件并将输出写入磁盘)
快速开始
使用 npx
{
"mcpServers": {
"svg-tracer": {
"command": "npx",
"args": ["-y", "@pulsemcp/svg-tracer-mcp-server"]
}
}
}
手动设置
git clone https://github.com/pulsemcp/mcp-servers.git
cd mcp-servers/productionized/svg-tracer
npm install
npm run build
npm start
工具
trace_bitmap_to_svg
使用 potrace 描摹将位图图像转换为 SVG 矢量图形。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
input_path | string | 是 | 输入位图图像文件的绝对路径 |
output_path | string | 否 | 输出 SVG 的路径(默认为输入路径加上 .svg 扩展名) |
threshold | number | 否 | 黑白阈值 0-255(默认值:128) |
turd_size | number | 否 | 抑制不超过此像素数的斑点(默认值:2) |
opt_tolerance | number | 否 | 曲线优化容差 0-1(默认值:0.2) |
color | string | 否 | 描摹路径的填充颜色(默认值:"#000000") |
background | string | 否 | 背景颜色(默认值:"transparent") |
target_width | number | 否 | SVG 的目标宽度(像素) |
target_height | number | 否 | SVG 的目标高度(像素) |
使用示例:
Convert /tmp/logo.png to SVG:
trace_bitmap_to_svg(input_path="/tmp/logo.png")
Create a 50x50 icon with brand color:
trace_bitmap_to_svg(
input_path="/tmp/logo.png",
output_path="/tmp/logo-icon.svg",
target_width=50,
target_height=50,
color="#FF5733"
)
工作原理
- 读取输入 - 加载位图图像(PNG、JPG、BMP、GIF、TIFF、WebP)
- 预处理 - 将 alpha 通道转换为黑底白色灰度蒙版,以处理透明效果
- 描摹 - 使用 potrace 将位图转换为 SVG 矢量路径
- 缩放 - 可选地将路径包裹在变换组中,以适应目标尺寸
- 输出 - 将 SVG 写入磁盘,并返回包含元数据的 SVG 字符串
支持的格式
- PNG(包括带有 alpha 通道的透明 PNG)
- JPEG / JPG
- WebP
- BMP
- GIF
- TIFF
开发
npm install
npm run build
npm run dev # Development mode with auto-reload
npm test # Run functional tests
npm run test:run # Run tests once
npm run test:integration # Run integration tests
npm run test:all # Run all tests
许可证
MIT
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。