入门 📋 6 个步骤 第 514 / 514 篇

用官方 drawio-mcp 让智能体画出可编辑的架构图:四条路线与 Mermaid/CSV 导入实操

jgraph/drawio-mcp 官方文档路线:托管 mcp.draw.io 内联渲染与 search_shapes 查形状、npx @drawio/mcp 本地 Tool Server 三输入(XML/CSV/Mermaid)、Claude Code 插件导出 PNG/SVG/PDF、ELK 与 libavoid 布局二选一、数据驻留与自托管选型。

2026.10.08· 12 分钟阅读· 约 2566 字· 📐 draw.io / 🔌 MCP Server

架构图是开发者最常被要、又最懒得画的东西:智能体能把系统讲得头头是道,产出的图却要么是聊完即弃的 ASCII 线框,要么是一张不可编辑的位图。draw.io 官方在 2026 年给出了正解:drawio-mcp(jgraph/drawio-mcp,官方 MCP Server)——让大模型直接生成 .drawio 格式的图,并在 draw.io 编辑器里打开,每个方框、每条连线都是可继续编辑的矢量元素。官方提供四条接入路线:聊天里内联渲染的托管 App Server、本地 npm 工具 Server、Claude Code 插件(可导出 PNG/SVG/PDF)、以及零安装的 Project Instructions。本篇把四条路线都走一遍,你按自己的工具链挑一条用。

🎯 适合人群:要出架构图、流程图、时序图,又不想手拖框线的开发者与业务人员。前置要求:按路线不同,从「什么都不用装」到「Node.js + 可选 draw.io Desktop」不等,下面逐步说明。

先理解:一个 Server,四条路线

官方把「AI 画图」拆成了四个入口,输出形态各不相同,先看对照表再选路:

路线输出形态要装东西吗适用场景
MCP App Server聊天内内联交互查看器不用(托管于 mcp.draw.io)Claude.ai、Cursor 等 MCP Apps 宿主
MCP Tool Server浏览器新标签打开 draw.io要(npm 包 @drawio/mcp)Claude Desktop、Cursor 等本地工作流
Claude Code 插件.drawio 文件,可导出 PNG/SVG/PDF一条命令装插件本地开发工作流、要交付图片文件
Project Instructions可点击的 draw.io 链接不用(粘指令即用)快速验证、零环境依赖

四条路线共享同一份真源:官方维护的 XML 生成参考(边路由、容器、图层、标签、暗色模式等全部规则),MCP Server 启动时读入并写进工具描述,AI 生成什么风格的 XML 由它统一约束。生成结果还有一份 mxfile.xsd XML Schema 可做交付前校验——这正是官方工具链比「随手让模型吐 XML」可靠的地方。

内联渲染需要宿主支持 MCP Apps 协议。在不支持 MCP Apps 的宿主里,App Server 依然能用,但图不会内联渲染,只会以 XML 文本返回。用之前先确认你的客户端(Claude.ai、VS Code、Cursor 2.6+ 等)在支持列表里。

Step 1:零安装路线:托管 App Server 内联出图

1 把 mcp.draw.io/mcp 加为远程 MCP Server
# 托管端点(无需安装):
https://mcp.draw.io/mcp

# 在 Claude.ai:连接器目录里直接一键添加 draw.io
# 在 Cursor(2.6+):Agent 聊天里一键安装,
#   图直接内联渲染在对话中

# 两个工具:
#   create_diagram  把 XML 渲染成内联交互图
#   search_shapes   按关键词搜 10000+ 形状
#     (AWS / Azure / GCP / UML / BPMN /
#      Kubernetes / Cisco / 电气图 等图库)

这条路最适合「边聊边出图」:search_shapes 先找到正确形状(返回可直接粘进 XML 的 style 字符串),再调 create_diagram 渲染,这是官方建议的调用顺序——别让模型凭记忆编形状样式,先查再画,图才长得对。编辑时点图上的 Open in draw.io 按钮,新标签页打开完整编辑器继续精修。想数据不出门,官方仓库也支持用 Node.js 本地跑或部署自己的 Cloudflare Workers 实例。

💡 画云架构图务必先 search_shapes:AWS、GCP、Kubernetes 这类图库的官方形状都有精确 style 串,让模型自己「想象」图标是出图走形的头号原因。

Step 2:本地 Tool Server:npx 一条命令拉起

2 @drawio/mcp 装进 Claude Desktop / Claude Code
# 快速启动(推荐):
npx @drawio/mcp

# Claude Desktop 配置文件里加:
{
  "mcpServers": {
    "drawio": {
      "command": "npx",
      "args": ["@drawio/mcp"]
    }
  }
}
# Windows 配置文件在 %APPDATA%\Claude\ 下

# Claude Code 一条命令接入:
claude mcp add drawio -- npx -y @drawio/mcp

Tool Server 是最早期的官方形态,特点是支持三种输入格式:原生 XML、CSV、Mermaid。三个工具与输入一一对应:open_drawio_xml(原生 draw.io XML)、open_drawio_csv(表格转图,组织架构图神器)、open_drawio_mermaid(Mermaid 语法转可编辑 draw.io 图)。每个工具都带 lightbox(只读预览)与 dark(暗色模式)可选参数。工作原理:收到内容后用 pako 做 deflateRaw 压缩、Base64 编码,生成带 #create 哈希参数的 draw.io URL,浏览器打开即所见。

让模型明确用 draw.io 工具。官方提示 Claude Desktop 里能画图的路径不止一条,为避免它绕路用别的方式,提示词里点名工具(如「用 open_drawio_mermaid 画」),或加一条系统指令:「Always use the draw.io MCP tools to create diagrams.」

Step 3:三发提示验收:XML、CSV、Mermaid 各来一张

3 官方示例提示直接抄
# Mermaid:时序图
# "Use open_drawio_mermaid to create a sequence
#  diagram showing OAuth2 authentication flow"

# CSV:组织架构图
# "Use open_drawio_csv to create an org chart:
#  CEO -> CTO, CFO; CTO -> 3 Engineers"

# XML:AWS 架构图
# "Use open_drawio_xml to create a detailed AWS
#  architecture diagram with VPC, subnets,
#  and security groups"

三条提示跑完,浏览器里各开一张可编辑的 draw.io 图,验收就过了。实际使用中 Mermaid 路线最适合「先把结构说清楚」:你用几行 Mermaid 描述流程,AI 补全细节并转成 draw.io 格式,之后的一切精修都在 draw.io 里做——AI 负责从零到八十分,你负责最后二十分,这是最省力的分工。

💡 中文环境直接用中文提需求即可,但建议保留英文工具名(如「用 open_drawio_mermaid 画一张支付流程时序图」),点名工具能显著降低模型选错路径的概率。

Step 4:Claude Code 插件:要交付 PNG/SVG/PDF 走这条

4 插件装进 Claude Code,导出格式随口指定
# Claude Code 里两条命令:
/plugin marketplace add jgraph/drawio-mcp
/plugin install drawio@drawio

# 默认行为:生成 .drawio 文件并在 draw.io 中打开
# 指定导出格式(png / svg / pdf):
#   /drawio:drawio png
#   (导出走本地 draw.io Desktop 的 CLI)

# 浏览器链接模式(无需 Desktop):
#   /drawio:drawio url
#   (Node.js zlib 压缩 XML 后生成
#    app.diagrams.net 直达链接)

插件路线的差异点在文件交付:默认产出 .drawio 源文件(可继续编辑的持久副本);提格式就导出 .drawio.png / .svg / .pdf,且导出文件内嵌 XML、拿回 draw.io 仍可编辑。导出 PNG/SVG/PDF 依赖本机装有 draw.io Desktop(它用 Desktop 的 CLI 完成,which drawio 能找到才行);没装 Desktop 也不报错废弃——官方行为是保留 .drawio 文件、什么都不上传。插件同样适用于 Codex CLI 与 GitHub Copilot CLI(官方仓库提供了镜像插件)。

PNG/SVG/PDF 导出必须有 draw.io Desktop。只装插件不装 Desktop,导出类请求会退化成「保留 .drawio 文件」;要交付图片就提前装好 Desktop,或退而求其次用 /drawio:drawio url 拿链接自行截图。

Step 5:让图更好看:布局参数与 XML 规范

5 ELK 重排与 libavoid 绕线,二选一
# 官方两个可选布局后处理(相互独立、不可叠加):
#   ELK auto-layout(postLayout: "elk")
#     节点重新排成分层布局,边随布局重排
#     App Server 的 create_diagram 支持
#   libavoid routing(routing: "libavoid")
#     保持节点位置,只让连接线正交绕开形状
#     App Server 与 Tool Server(v1.3.0+)支持
#
# 选型口诀:
#   全自动排版 -> ELK;手动摆好节点只整理连线 -> libavoid
#   Mermaid 图自带布局,两种都不需要

AI 出图走形往往不是内容错而是布局乱,这两个官方布局参数就是治它的:ELK 适合「让 AI 全权排版」,libavoid 适合「你摆好了关键节点的位置、只嫌连线穿插」。XML 侧再记两条官方规范:AI 生成推荐用简化格式(只写 mxGraphModel 元素,省去外层包装,draw.io 打开时自动补全);不要生成压缩格式——deflate 加 Base64 的压缩表示虽然省 URL 空间,但不可读、不可校验、token 消耗反而更大,官方明确建议 AI 不要生成它。

Step 6:数据驻留与路线选型

6 哪条路线会把图发出去?官方有明确答案
# 官方数据驻留说明(各路线):
#   托管 App Server(mcp.draw.io)
#     -> 图数据随 MCP 请求发到 draw.io 服务器
#   本地 Tool Server / Claude Code 插件
#     -> 图不出本机(导出也只走本地 Desktop CLI)
#   严格数据限制环境:
#     自托管 App Server(仓库支持部署到
#     Cloudflare Workers)或用本地路线

官方在数据驻留一节写得很硬核:仓库里不存在任何云端光栅化回退路径,convert.diagrams.net 不会被调用,本地依赖缺失时宁可保留文件也不偷偷上传。所以选型规则很简单:聊天内联预览选托管 App Server(介意数据出境就自托管);本地工作流与文件交付选 Tool Server 或插件;只想快速试一下选 Project Instructions(往 Claude Project 里粘官方指令,用 Python 生成 draw.io 链接,零安装)。

💡 团队统一用本地 Tool Server + Claude Code 插件的组合最稳:图源文件进 git 仓库(.drawio 是纯 XML,diff 友好),评审走 PR,导出按需。

常见问题 FAQ

Q:生成的图可以直接交付吗?A:交付源文件用 .drawio(可编辑),交付图片用插件导出的 PNG/SVG/PDF(内嵌 XML 仍可回编辑器改),比截图专业得多。

Q:已有 Mermaid 代码能复用吗?A:能。Tool Server 的 open_drawio_mermaid 直接吃 Mermaid 语法并转成可编辑 draw.io 图(Mermaid 12 默认样式),存量 Mermaid 图零成本迁移。

Q:变量与占位符怎么用?完整格式支持文件级 vars 属性,标签里用 %name% 引用,渲染时替换;注意要对单元格开启 placeholders="1" 占位符才生效,且简化格式不支持文件级变量。

预期效果与自检清单

全部做完后,你应该达到:在 Claude.ai 或 Cursor 里发一句话,图直接内联渲染在聊天里,点 Open in draw.io 能继续编辑;本地 Tool Server 跑通 XML、CSV、Mermaid 三种输入各一张图;Claude Code 里 /drawio:drawio png 能产出内嵌 XML 的 PNG;知道哪条路线数据出本机、哪条不出,并按团队规范做出了选择。从此「画个架构图」这类需求,从半小时的拖拽劳动变成一句话的事,而产出物是全团队都能继续编辑的源文件。

← 返回教程中心