drawio-mcp
Draw.io MCP 三种方案横评,方式 3 是唯一支持协作画图的解。
- 方式 1(官方 drawio-mcp):走 jgraph/drawio-mcp 远程生成,每次都是新文件,原图没法覆盖。
- 方式 2(官方 Plugin + Desktop):能本地覆盖原文件,但 不支持实时编辑,要手动 reload。
- 方式 3(推荐,next-ai-draw-io):本地起 localhost,真正支持实时编辑,Agent 改一步你能立刻看到。
- 结论:想让 Agent 协作式画图,方式 3 是目前唯一解。
官方 drawio-mcp 的三个致命缺陷
方式 1(jgraph/drawio-mcp)是最先被引到中文社区的方案。

但实际用下来有三个绕不过去的坑。
第一,必须在 app.diagrams.net 里打开。 这个官方版本的实现思路是把生成好的 XML 直接 POST 到 draw.io 的服务器,让服务器渲染并打开。你看到的图是在 draw.io 自己的浏览器里,不是你本地的桌面客户端。两个后果:
- 文件需要上传到 draw.io 的云端
- 本地桌面版 完全用不上
第二,新图不是修改而是新建。 MCP 工具每次返回的都是一张独立的图,命名一般是 Untitled.xml。即使调用时传了原文件路径,draw.io 也是 另存为一个新文件,原图原封不动。
这意味着你想让 Agent 在已有的图上迭代修改——"把 Kafka 换成 Pulsar"、"再加一个 Redis 节点"——它做不到,只能在旁边新画一张。对于架构图这种 需要反复调整 的场景,这个限制是致命的。
第三,URL 长度限制。 方式 1 把 XML 编码后塞进 URL 里,再让浏览器打开 app.diagrams.net?url=...。虽然 Draw.io 内部做了压缩,但浏览器对 URL 长度有上限(Chrome 大约 2MB,Safari 更短)。让 AI 画一张 500 个节点的超复杂微服务架构图,压缩后的 URL 仍然可能 超出限制导致截断或打不开。这个限制不是靠"换个浏览器"能绕过去的,是协议本身的天花板。
官方 Plugin 方案:能覆盖但脱节
方式 2 还是 jgraph 官方出的:Draw.io Plugin + Claude Code Plugin。
这条路线的思路变了:MCP 只负责 生成或修改 XML 文件,由 Draw.io Desktop 自动检测文件变化并刷新。具体流程:
- Claude 调 MCP 工具,往指定目录写一个
diagram.drawio文件 - Draw.io Desktop 检测到文件变化
- 手动点一下 "Update" 让 Draw.io 同步最新的修改
覆盖问题解决了——文件是真正的覆盖,命名也是你指定的。但实时性丢了:Agent 改一步,你要手动点一次 Reload 才能看到效果。改个三五步还行,改十步以上就开始烦。
更麻烦的是:很难判断 Agent 什么时候改完了。它不会主动告诉你"我刚把 Kafka 换成了 Pulsar",你得自己盯着 Draw.io 看图变了没有。
next-ai-draw-io:本地 + 实时
方式 3(DayuanJiang/next-ai-draw-io)是社区方案。

MCP 配置:
{
"mcpServers": {
"drawio": {
"command": "npx",
"args": ["@next-ai-drawio/mcp-server@latest"]
}
}
}
但设计上正好解决了前两者的痛点 :
- MCP 会自动再本地起一个
localhost服务,不依赖 draw.io 的云,直接通过浏览器访问 - Agent 修改 XML 后,浏览器本地端口的 Draw.io 自动重载(不需要手动 Update)
这是唯一支持"Agent 改一步你看一步"工作流的方案。
实际使用时的协作模式:
- 你先在 Draw.io 里画好基础架构
- 让 Agent 接入同一个文件(同一个路径)
- 你在 Draw.io 里 手动调整布局(Agent 生成的布局经常很丑)
- Agent 补充内容、改节点、加连线
- 你再手动调布局
这是个 双向的实时协作——不是 你干等 Agent 出图,也不是 Agent 干等你手动确认。Agent 在改的时候你能看到 Draw.io 高亮新加入的节点。
选哪个:场景决定
| 场景 | 推荐方案 |
|---|---|
| 一次性出图、不在意位置 | 方式 1(最省事) |
| 已有图、能忍手动 reload | 方式 2 |
| 真正想和 Agent 协作画图 | 方式 3 |
架构图、流程图这类 需要反复调整布局 的图,方式 3 是唯一选择。方式 1 和方式 2 本质上还是"Agent 一次性出图 + 你人工接手"的工作流,不是协作。
References
- next-ai-draw-io —— DayuanJiang, 2025
- drawio-mcp 官方 repo —— jgraph, 2025
- Draw.io MCP 介绍文章 —— 微信公众号