mcpField
D
drawarch

drawarch

本地服务
github.com/Ajey95媒体与设计12 天前更新

关于 drawarch

DrawArch 是一个 MCP 服务,可将提示词和参考图转换为便携、可编辑的 Draw.io 图表。MCP 主机负责视觉分析;DrawArch 渲染并验证场景图,不会调用另一个 LLM。

主要功能

  1. 01生成原生可编辑 Draw.io 文件
  2. 02根据参考图重建图表
  3. 03提供内置及获准图像资源
  4. 04与计划版本绑定的审批流程
  5. 05结构与安全验证

适用场景

  1. 01根据提示词创建架构图
  2. 02从参考图重建可编辑图表
  3. 03验证并修订图表计划

MCP 相关

DrawArch 提供资源查找、图表生成、验证和参考图重建工具,并通过 MCP 返回便携的 `.drawio` 文件。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ajey95-drawarch": {
"command": "npx",
"args": [
"-y",
"drawarch-mcp"
]
}
}
}
启动命令npx -y drawarch-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmdrawarch-mcp0.2.0

工具

11

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

DrawArch 可将参考架构图转换为原生可编辑的 Draw.io 图表

DrawArch MCP

将架构提示词和参考图像转换为便于移植、原生可编辑的 Draw.io 文件。
MCP 主机负责视觉推理。DrawArch 负责确定性渲染、资源嵌入、验证和交付。

CI 状态 GitHub 版本 npm 版本 官方 MCP 注册表 GHCR 容器 Node.js 20 或更高版本 MCP stdio 和 Streamable HTTP MIT 许可证

M8ven 评分

快速开始 · 查看工作流 · 架构 · 参与贡献

Drawarch MCP 服务


查看哪些内容仍可编辑

DrawArch 生成的 SafeSense 系统架构在 Draw.io 中打开,包含可独立编辑的对象、图层和验证信息

这不是将截图粘贴到图表中。容器、标签、图标、形状、连接线端点、端口和路径点仍是相互独立的原生 mxCell 对象。资源嵌入在 .drawio 文件中,因此生成结果便于移植,也可离线编辑。

重要

DrawArch 不会调用其他大模型,也不需要第二个大模型 API 密钥。ChatGPT、Claude、Codex、Cursor 或其他具备视觉能力的 MCP 主机会分析请求或图像,并提供场景图。

DrawArch 能为你提供什么

功能含义
🧩原生可编辑性在 diagrams.net 中移动对象、修改样式、重命名、重新连接或删除单个对象。
🎯参考图重建使用绝对几何位置、图层、z 顺序、端口和路径点重建随附的架构图像。
🌐真实世界资源使用内置图标、兼容 Iconify 的图标、用户图像或经批准的 HTTPS 图像来源。
📦可移植成果生成的 .drawio 文件通过 MCP 直接返回,且所有图像资源均已嵌入。
🔐知情批准渲染不可变的计划修订版本和绑定修订版本的批准令牌可防止渲染过期或未经审核的内容。
✅内置验证在接受输出前检查 Draw.io 结构、引用、资源安全性和结构覆盖情况。

参考图像复刻

将架构图像附加到 MCP 主机,并提出以下要求:

使用 DrawArch 复刻此图像。保留其布局、标签、图标、分组和连接线走向。确保每个可见对象都可编辑,并在适当情况下使用真实图标。

随后,主机和 DrawArch 会按照可审查的四步流程操作:

  1. 准备 — 主机视觉模型调用 prepare_reference_recreation,并提供经过类型校验的绝对场景图。
  2. 审查并批准 — 用户或主机策略审查布局和在线资源来源;批准与该特定版本绑定。
  3. 创建 — create_reference_drawio 安全解析并嵌入资源、渲染原生单元格、验证文件,并返回 .drawio 资源。
  4. 比较并修订 — compare_reference_recreation 衡量结构覆盖度;主机调整计划,并在需要时重复操作。
flowchart LR
    A[Prompt or<br/>reference image] --> B[Vision-capable<br/>MCP host]
    B -->|typed scene graph| C{DrawArch MCP}
    C --> D[Plan revision<br/>& approval]
    D --> E[Safe asset<br/>resolver]
    E --> F[Native Draw.io<br/>renderer]
    F --> G[Validation &<br/>comparison]
    G -->|portable resource| H[Editable<br/>.drawio file]
    G -. revise .-> B

简单来说:你现有的 AI 分析图像;DrawArch 则将分析结果转换为受控、经过验证且可编辑的文件。完整契约见 examples/reference-recreation.json。

为什么不直接生成图像?

要求DrawArch扁平图像生成
编辑单个组件✅❌
重新连接并调整连接线走向✅❌
保留明确的 ID 和层级结构✅❌
生成后离线使用✅通常可以
自动验证结构✅❌
使用真实的嵌入式图标进行复刻✅不稳定
按照可审查的计划迭代✅❌
保证输出与原图像素完全一致不保证 — 由主机引导迭代不保证

DrawArch 的目标是高保真、可编辑的重建,而非不透明的像素级副本。主机视觉模型可以检查结果、更新几何形状或样式,并渲染另一个不可变版本。

快速开始

需要 Node.js 20+ 或 Docker。

通过 npm 运行
npx -y [email protected]

DrawArch 默认使用 stdio。诊断信息会写入 stderr,为 MCP 消息保留 stdout。

将其添加到本地 MCP 主机
{
  "mcpServers": {
    "drawarch": {
      "command": "npx",
      "args": ["-y", "[email protected]"],
      "env": {
        "DRAWARCH_OUTPUT_DIR": "/absolute/path/to/diagrams",
        "DRAWARCH_ONLINE_ASSETS": "false"
      }
    }
  }
}

对于无法直接解析 npx 的 Windows 主机,请将 command 设为 npx.cmd。你也可以使用源代码检出,并配置绝对路径 dist/src/index.js。

从源代码运行
git clone https://github.com/Ajey95/drawarch-mcp.git
cd drawarch-mcp
npm ci
npm test
npm run build

然后配置主机:

{
  "mcpServers": {
    "drawarch": {
      "command": "node",
      "args": ["/absolute/path/to/drawarch-mcp/dist/src/index.js"],
      "env": {
        "DRAWARCH_OUTPUT_DIR": "/absolute/path/to/diagrams"
      }
    }
  }
}
运行已发布的容器
docker run --rm -p 3000:3000 \
  -e DRAWARCH_API_KEY=replace-with-a-long-random-secret \
  -e DRAWARCH_APPROVAL_SECRET=replace-with-another-random-secret \
  -e DRAWARCH_ALLOWED_HOSTS=localhost,127.0.0.1 \
  -e DRAWARCH_ALLOWED_ORIGINS=localhost,127.0.0.1 \
  -v drawarch-data:/data \
  ghcr.io/ajey95/drawarch-mcp:0.2.0

该容器在 http://localhost:3000/mcp 上运行 Streamable HTTP。其公开健康检查接口为 GET /health;MCP 和文件下载需要配置的 bearer token。

本地和远程主机

主机类型推荐传输方式说明
Claude Desktop / Claude Codestdio 或远程 HTTP本地 stdio 最简单;远程连接器可以使用 /mcp。
Codex / Cursor / VS Codestdio 或远程 HTTP对每位开发者分别生成输出时使用本地 stdio;也可以使用共享的、经过身份验证的服务。
ChatGPT远程 Streamable HTTPChatGPT 无法启动本地 stdio 进程;请先将容器部署在 HTTPS 后面。
CI 和团队服务Streamable HTTP设置 bearer 身份验证、稳定的批准密钥、精确的主机/来源允许列表、TLS 和持久化输出卷。

DrawArch 目前提供可部署的服务端和公开容器,不提供托管的托管端点。运营方需自行提供 HTTPS 域名和基础设施。

MCP 工具

架构图生成
工具用途
list_themes列出六种内置视觉主题。
list_assets搜索捆绑的真实图标目录。
resolve_asset解析捆绑资源或选择加入的在线 SVG,并提供来源信息。
create_drawio生成使用确定性主题的架构图。
validate_drawio验证生成的架构文件。
参考图复刻
工具用途
prepare_reference_recreation存储绝对可编辑的场景图,并可选择批准其来源。
update_reference_plan创建不可变的新版本,并使先前的批准失效。
get_reference_plan读取最新的场景图版本以供审阅。
create_reference_drawio渲染已批准的计划,并返回可移植的 .drawio 文件。
validate_reference_drawio验证原生结构、引用和嵌入图像的安全性。
compare_reference_recreation评估结构覆盖情况,并报告缺失的可编辑元素。

资源与安全模型

参考计划支持以下资源模式:

模式来源是否需要服务端主动启用?
bundled原始 MIT 许可的 DrawArch SVG 图标库否
online兼容 Iconify 的图标查询是
data用户提供的 SVG、PNG、JPEG 或 WebP 数据 URI否
remote明确批准的 HTTPS 图像 URL是

远程图像处理会拒绝包含 URL 凭据、使用非 HTTPS 协议或自定义端口的 URL,以及解析到私有或保留 DNS 地址、存在不安全重定向、字节数或像素尺寸超限、含有活动 SVG 内容的图像。嵌入前会解码并重新编码光栅图像。在线资源会保留提供方和许可信息;用户仍有责任核实第三方许可条款。

HTTP 部署还支持 Bearer 身份验证、主机验证、来源验证、安全输出路径、原子写入,以及与版本绑定的 HMAC 批准令牌。部署指南和漏洞报告方式请参阅 SECURITY.md。

环境变量
变量默认值含义
DRAWARCH_TRANSPORTstdio选择 stdio 或 http。
DRAWARCH_OUTPUT_DIR.drawarch-output受限的输出和计划存储目录。
DRAWARCH_ONLINE_ASSETSfalse启用需主动开启的在线和远程图像来源。
DRAWARCH_ICONIFY_BASE_URLIconify API兼容 Iconify 的 HTTPS 提供方基础 URL。
HOST127.0.0.1HTTP 绑定主机。
PORT3000HTTP 监听端口。
DRAWARCH_API_KEY未设置/mcp 和 /files 的 Bearer 令牌;向互联网开放时必须设置。
DRAWARCH_APPROVAL_SECRET每个进程随机生成用于批准的 HMAC 密钥;共享部署时请设置稳定的密钥。
DRAWARCH_ALLOWED_HOSTS本地主机以逗号分隔的允许 Host 值。
DRAWARCH_ALLOWED_ORIGINS本地来源以逗号分隔的允许 Origin 主机。
DRAWARCH_PUBLIC_BASE_URL监听器 URL服务报告的公共基础 URL。

开发

npm ci
npm test                    # 83 tests at the 0.2.0 release
npm run build
npm run sample
npm audit --audit-level=high
npm pack --dry-run

CI 矩阵会在 Windows 和 Linux 上验证 Node 20 和 22,并构建生产环境 Docker 镜像。组件边界和安全流程请参阅 docs/ARCHITECTURE.md。

项目状态

渠道状态
源代码在 GitHub 上公开
发布版本v0.2.0
容器ghcr.io/ajey95/drawarch-mcp:0.2.0
npm[email protected]
官方 MCP 注册表io.github.Ajey95/[email protected]
托管远程服务目前未提供

路线图

  • 扩充精选架构素材目录和提供方元数据。
  • 添加预览渲染功能,缩短由宿主引导的可视化对比周期。
  • 添加像素级对比,作为结构评分的补充。
  • 为更多 MCP 宿主和社区目录添加安装指南。
  • 为常见容器平台提供可重复的部署方案。

欢迎提出想法并提交针对性 Pull Request。开始进行大规模行为或契约变更前,请先创建一个 issue。

贡献

请阅读 CONTRIBUTING.md,遵循 CODE_OF_CONDUCT.md,并确保不要将生成的输出、凭据和未获授权的第三方素材提交到代码库。

如有安全问题,请遵循 SECURITY.md 中的私下报告流程,而不要创建公开 issue。

许可证

DrawArch 源代码和捆绑素材采用 MIT 许可证。第三方素材保留其原始提供方的许可证和署名要求。


为架构设计而打造,让成果易于理解、方便移植,并由你随意编辑。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。