SVG图形生成服务

一个基于MCP协议的高功能SVG图形生成工具,支持从基础绘图到复杂动画的全套矢量图形创作功能。

  • by brnyxx
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 kim62210/svg-canvas-mcp

使用说明

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许可证