返回市场
墨水MCP

墨水MCP

作者:Shriinivas6 星标更新:2025-10-06

项目介绍

Inkscape MCP 服务器

这是一个模型上下文协议(MCP)服务器,通过自然语言指令实现对 Inkscape 的实时控制。这使得像 Claude 这样的AI助手可以直接实时操作矢量图形。

功能

  • 🎯 实时实例控制 - 直接操作正在运行的 Inkscape 文档
  • D-Bus 集成 - 实时通信
  • 🚀 通用元素创建 - 使用统一语法创建任何 SVG 元素
  • 🏗️ 分层场景管理 - 自动处理ID冲突的语义组织
  • 📐 Python 代码执行 - 在实时环境中运行任意 inkex 代码
  • 🖼️ 截图支持 - 视口捕获的视觉反馈

平台支持

  • ⚠️ 目前仅限 Linux - 使用特定于 Linux 的 D-Bus
  • 🔮 未来:可能通过 TCP 套接字/命名管道实现跨平台支持

快速开始

1. 安装(仅限 Linux)

  1. 转到 发布页面
  2. 从最新版本下载 inkmcp-extension.zip
  3. 将其解压到您的 Inkscape 扩展目录中:
    cd ~/.config/inkscape/extensions/
    unzip ~/Downloads/inkmcp-extension.zip
    

2. 设置脚本可执行

cd ~/.config/inkscape/extensions/inkmcp
chmod +x run_inkscape_mcp.sh inkmcpcli.py inkscape_mcp_server.py main.py

3. 启动 Inkscape

正常启动 Inkscape - 扩展隐藏在菜单中,仅可通过 D-Bus 访问。

4. 与 AI 工具连接

自动设置:当 AI 客户端首次连接时,它会自动:

  • ~/.config/inkscape/extensions/inkmcp/venv/ 创建 Python 虚拟环境
  • 根据 requirements.txt 安装所有必需的依赖项
  • 启动 MCP 服务器

无需手动设置!

Claude Code

编辑您的 Claude 配置文件:

# ~/.claude/claude-config.json
{
  "mcpServers": {
    "inkscape": {
      "command": "/home/USERNAME/.config/inkscape/extensions/inkmcp/run_inkscape_mcp.sh"
    }
  }
}

Anthropic Claude Desktop

更新 Claude 桌面应用设置:

{
  "mcpServers": {
    "inkscape": {
      "command": "/home/USERNAME/.config/inkscape/extensions/inkmcp/run_inkscape_mcp.sh"
    }
  }
}

Google Gemini/Codex

对于 Gemini,编辑设置文件:

# ~/.gemini/settings.json
{
  "mcpServers": {
    "inkscape-mcp": {
      "command": "/home/USERNAME/.config/inkscape/extensions/inkmcp/run_inkscape_mcp.sh"
    }
  }
}

对于 Codex,编辑配置:

# ~/.codex/config.toml
[mcp_servers.inkscape-mcp]
command = "/home/USERNAME/.config/inkscape/extensions/inkmcp/run_inkscape_mcp.sh"

使用示例

与 AI 助手(Claude Code/Gemini 等) - 需要运行 Inkscape

"在 Inkscape 中,从文档左侧边缘绘制一条平滑的正弦波,并为其应用电力描边路径效果"
"在 Inkscape 中,创建一个带有径向渐变圆和优雅字体的美丽标志"
"在 Inkscape 中,使用黄金比例变化的圆大小绘制数学螺旋"
"在 Inkscape 中,创建一个带有尖顶屋顶、木门和花坛的房子插图"
"在 Inkscape 中,设计一个带有条形填充和标签的数据可视化图表,使用当前文档大小"
"在 Inkscape 中,以高分辨率 PNG 格式导出当前文档用于演示"

可用的 MCP 工具

inkscape_operation - 适用于所有 Inkscape 操作的通用工具:

  • 创建任何 SVG 元素(圆形、矩形、文本、路径、渐变等)
  • 在实时环境中执行 Python/inkex 代码
  • 获取文档/选择信息
  • 导出视口截图
  • 分层元素创建与组
  • 自动处理ID冲突

技术细节

架构

  • 扩展inkscape_mcp.py - 通过 D-Bus 触发的 Inkscape 扩展
  • MCP 服务器inkscape_mcp_server.py - 处理 AI 请求的 FastMCP 服务器
  • CLI 客户端inkmcpcli.py - 用于测试的直接命令行界面
  • 操作inkmcpops/ - 模块化操作处理器

通信流程

AI 助手 → MCP 服务器 → CLI 客户端 → D-Bus → Inkscape 扩展 → 实时文档

高级用法

直接 CLI 使用(用于测试/开发)

# 在 inkmcp 目录中 - 绕过 AI 助手进行直接控制

# 基本形状
python inkmcpcli.py circle "cx=100 cy=100 r=50 fill=red"
python inkmcpcli.py rect "x=0 y=0 width=200 height=100 stroke=blue"

# 渐变
python inkmcpcli.py linearGradient "x1=0 y1=0 x2=200 y2=200 stops='[[\"0%\",\"green\"],[\"50%\",\"yellow\"],[\"100%\",\"red\"]]'"

# 代码执行
python inkmcpcli.py execute-code "code='circle = inkex.Circle(); circle.set(\"cx\", \"150\"); circle.set(\"cy\", \"100\"); circle.set(\"r\", \"25\"); svg.append(circle)'"

# 文档信息
python inkmcpcli.py get-info

# 选择信息
python inkmcpcli.py get-selection

# 导出截图
python inkmcpcli.py export-document-image "format=png max_size=800"

任意代码执行

在实时 Inkscape 环境中执行任意 Python/inkex 代码:

# 编程创建复杂形状
code = '''
rect = Rectangle()
rect.set('x', '10')
rect.set('y', '20')
rect.set('width', '100')
rect.set('height', '50')
rect.set('style', 'fill:blue;stroke:red;stroke-width:2')
svg.append(rect)
'''

故障排除

常见问题

  1. 未找到 D-Bus:确保您在运行 D-Bus 会话的 Linux 上
  2. 扩展未触发:检查 Inkscape 是否正在运行且扩展已安装
  3. Python 环境:确保激活了具有依赖项的虚拟环境
  4. 权限:确保脚本是可执行的(chmod +x *.sh *.py

调试模式

# 检查 D-Bus 连接
gdbus introspect --session --dest org.inkscape.Inkscape --object-path /org/inkscape/Inkscape

# 结构化的 JSON 输出
python inkmcpcli.py get-info --parse-out --pretty

开发

添加新操作

  1. inkmcpops/ 中创建新文件
  2. 实现 execute(svg, params) 函数
  3. inkscape_mcp_server.py 中添加相应的 MCP 工具

许可证

GPL-3.0