SVG画布MCP
可以在Claude Code中创建Photoshop级别SVG图形的模型上下文协议(MCP)服务器。
主要功能
- 画布管理:创建、打开、保存、尺寸
- 绘制图形:矩形、圆、椭圆、直线、多边形、星星、心形、圆角矩形
- 路径生成器:创建由Bezier曲线、圆弧和直线组合而成的复杂路径
- 文本/图像:各种样式的文本,插入图像
- 层系统:层创建、删除、重新排序、可见性、锁定、混合模式
- 对象操作:移动、旋转、缩放、复制、分组、Z顺序
- 造型:填充、线条、渐变(线性/圆形)、图案、滤镜(模糊、阴影等)
- 动画:CSS关键帧,支持SMIL动画
- 元件:定义可重复使用的元件并放置实例
- 模板:将画布另存为模板/导入
- 历史记录:Undo/Redo支持
- 导出:SVG、PNG、数据类型
- AI功能:调色板推荐、颜色分析、对象排序建议、布局推荐
- 博客操作功能:
- OG图像预设(10个平台,6个主题) - 创建二维/三维图表(bar、line、pie、donut、pyramid) - 2D/3D图表(flowchart,mindmap,sequence,isometric) - 生成QR码(基于纯SVG) - 水印覆盖
- 图像跟踪:将位图图像转换为矢量路径(基于potrace)
安装
依赖性
npm install
| 包 | 版本 | 用途 |
|---|
@modelcontextprotocol/sdk | ^1.0.0 | MCP协议SDK |
@anthropic-ai/sdk ^0.39.0 Anthropic API(AI功能) |
svgson ^5.3.1 SVG解析/序列化 |
svg-path-commander ^2.0.8 SVG通行证操作 |
uuid ^10.0.0创建唯一ID |
zod ^3.23.0验证方案 |
potrace ^2.1.8图像跟踪(位图→矢量) |
构建
npm run build
Claude Code设置
1. .mcp.json 创建文件
项目根目录或 ~/.claude/ 目录中 .mcp.json 创建文件:
{
"mcpServers": {
"svg-canvas": {
"command": "node",
"args": ["/path/to/svg-canvas-mcp/build/index.js"]
}
}
}
2.激活
~/.claude/settings.local.json在中激活:
{
"enabledMcpjsonServers": ["svg-canvas"]
}
使用示例
创建默认画布
SVG 캔버스 MCP를 사용해서 1200x630 크기의 썸네일을 만들어줘
绘制图形
빨간색 원과 파란색 사각형을 그려줘
应用渐变
배경에 보라색에서 파란색으로 가는 그라디언트를 적용해줘
添加动画
로고에 회전 애니메이션을 추가해줘
工具列表
画布
| 工具 | 说明 |
|---|
svg_create | 创建新画布 |
svg_open | 打开SVG文件 |
svg_save | 另存为文件 |
svg_info | 浏览画布信息 |
svg_resize | 更改大小 |
svg_set_background | 设置背景颜色 |
绘制图形
| 工具 | 说明 |
|---|
draw_rect | 矩形 |
draw_circle 元 |
draw_ellipse | 椭圆 |
draw_line | 直线 |
draw_polyline | 连接线 |
draw_polygon 多边形 |
draw_text | 文本 |
draw_image | 图片 |
draw_path | SVG通行证 |
draw_regular_polygon 正多边形 |
draw_star 星星 |
draw_heart | 爱心 |
draw_rounded_rect_path | 圆角矩形 |
路径生成器
| 工具 | 说明 |
|---|
path_create | 开始通行证 |
path_lineto | 添加直线 |
path_curveto 贝塞尔曲线 |
path_arcto 添加圆弧 |
path_close | 关闭路径 |
path_finish | 路径完成 |
path_cancel | 取消通行证 |
层
| 工具 | 说明 |
|---|
layer_create | 创建层 |
layer_delete | 删除图层 |
layer_rename | 重命名 |
layer_reorder | 更改顺序 |
layer_visibility | 显示/隐藏 |
layer_lock | 锁定 |
layer_opacity | 不透明度 |
layer_blend_mode | 混合模式 |
layer_list | 查询列表 |
layer_select | 选择图层 |
layer_merge | 合并图层 |
layer_duplicate | 复制层 |
对象操作
| 工具 | 说明 |
|---|
object_select | 选择对象 |
object_list | 对象列表 |
object_move | 移动 |
object_scale | 调整大小 |
object_rotate | 旋转 |
object_delete | 删除 |
object_duplicate | 复制 |
object_group | 分组 |
object_ungroup | 取消分组 |
object_order | Z-更改顺序 |
风格
| 工具 | 说明 |
|---|
style_fill | 填充 |
style_stroke 线条样式 |
style_opacity | 不透明度 |
style_gradient | 定义渐变 |
style_pattern | 定义模式 |
style_filter | 应用筛选器 |
style_remove_filter | 删除筛选器 |
动画
| 工具 | 说明 |
|---|
anim_css_add | CSS动画 |
anim_smil_add | SMIL动画 |
anim_remove | 删除动画 |
anim_list | 动画列表 |
元件和模板
| 工具 | 说明 |
|---|
symbol_define | 元件定义 |
symbol_use 使用元件 |
template_save | 保存模板 |
template_load | 装入模板 |
template_list | 模板列表 |
template_delete | 删除模板 |
历史记录
| 工具 | 说明 |
|---|
history_undo | 撤消 |
history_redo | 重新运行 |
history_list | 历史列表 |
history_goto | 转到特定时间点 |
history_clear | 删除历史记录 |
导出
| 工具 | 说明 |
|---|
export_svg | 另存为SVG文件 |
export_code 返回SVG代码 |
export_png | 另存为PNG文件 |
export_data_uri | 数据URI转换 |
preview_browser | 浏览器预览 |
AI功能
| 工具 | 说明 |
|---|
ai_suggest_colors | 推荐调色板 |
ai_analyze_colors | 颜色分析 |
ai_align_objects | 建议对象排序 |
ai_suggest_layout | 推荐布局 |
OG图像预设
| 工具 | 说明 |
|---|
preset_list | 可用平台/主题列表 |
preset_create_og | 创建平台特定的OG图像 |
preset_create_thumbnail | 创建简易缩略图 |
支持平台:og、naverblog、naversearch、twitter、youtube、instagram、instagramstory、tistory、pinterest、linkedin
支持主题:现代、深色、渐变蓝、渐变未设置、极简、自然
图表
| 工具 | 说明 |
|---|
chart_bar | 条形图 |
chart_line | 线条图 |
chart_pie | 饼图 |
chart_donut | 甜甜圈图表 |
chart_3d_bar | 3D条形图 |
chart_3d_pie | 3D饼图 |
chart_3d_pyramid | 3D金字塔图表 |
图表
| 工具 | 说明 |
|---|
diagram_flowchart | 流程图 |
diagram_mindmap | 思维导图 |
diagram_sequence | 序列图 |
diagram_isometric | 等轴测图 |
diagram_3d_architecture | 3D基础架构体系结构 |
二维码
| 工具 | 说明 |
|---|
qrcode_generate | 生成二维码 |
qrcode_batch 生成大量二维码 |
水印
| 工具 | 说明 |
|---|
watermark_text | 文本水印 |
watermark_image | 图像水印 |
watermark_copyright | 版权标记 |
watermark_diagonal | 对角线重复水印 |
watermark_remove | 删除水印 |
图像跟踪
| 工具 | 说明 |
|---|
trace_image | 将图像转换为矢量路径(黑白) |
trace_color | 将彩色图像转换为多色矢量 |
trace_outline | 仅提取轮廓 |
trace_silhouette | 提取侧面影像(单色形态) |
项目结构
svg-canvas-mcp/
├── src/
│ ├── index.ts # 엔트리포인트
│ ├── server.ts # MCP 서버 설정
│ ├── core/ # 핵심 모듈
│ │ ├── document.ts # SVG 문서 관리
│ │ ├── element.ts # SVG 요소 조작
│ │ ├── history-manager.ts # Undo/Redo
│ │ ├── layer-manager.ts # 레이어 관리
│ │ └── template-manager.ts # 템플릿 관리
│ ├── tools/ # MCP 도구 정의
│ │ ├── canvas.ts # 캔버스 도구
│ │ ├── drawing.ts # 그리기 도구
│ │ ├── path.ts # 패스 빌더
│ │ ├── layer.ts # 레이어 도구
│ │ ├── object.ts # 객체 조작
│ │ ├── style.ts # 스타일링
│ │ ├── animation.ts # 애니메이션
│ │ ├── symbol.ts # 심볼
│ │ ├── history.ts # 히스토리
│ │ ├── export.ts # 내보내기
│ │ ├── ai.ts # AI 기능
│ │ ├── preset.ts # OG 이미지 프리셋
│ │ ├── chart.ts # 2D/3D 차트
│ │ ├── diagram.ts # 2D/3D 다이어그램
│ │ ├── qrcode.ts # QR 코드
│ │ ├── watermark.ts # 워터마크
│ │ └── trace.ts # 이미지 트레이싱
│ ├── types/ # TypeScript 타입
│ └── utils/ # 유틸리티
│ ├── color-utils.ts
│ ├── path-utils.ts
│ ├── svg-parser.ts
│ ├── transform-utils.ts
│ └── validation.ts
├── build/ # 빌드 출력
├── package.json
└── tsconfig.json
开发
# 개발 모드 (빌드 + 실행)
npm run dev
# 빌드만
npm run build
# 감시 모드
npm run watch
许可证
MIT许可证