关于 Smart Drawio
Smart Drawio 是供 MCP 客户端使用的本地 MCP 服务,用于创建和转换可编辑的 draw.io XML。它提供本地验证、修复、样式处理和选项查询;生成图表还需配置模型提供方。
主要功能
- 01生成经过验证的 draw.io XML
- 02验证 XML 结构与引用
- 03修复支持的缺失闭合标签
- 04应用主题与样式选项
- 05查询图表和样式选项
适用场景
- 01根据提示词创建可编辑图表
- 02导入 draw.io 前检查 XML
- 03修复支持的格式异常 XML
- 04应用主题或样式包
MCP 相关
通过工具提供未压缩 draw.io XML 的生成、验证、修复和样式处理,并可查询可用选项。服务使用本地 stdio;生成会调用已配置的提供方,验证、修复和样式处理则在本地运行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @yunshenwuchuxun/smart-drawio-mcpSMART_DRAWIO_PROVIDERopenai or anthropic; required only for model generationSMART_DRAWIO_BASE_URLModel provider HTTP(S) base URL; required only for model generationSMART_DRAWIO_API_KEY密钥Your model provider API key; required only for model generationSMART_DRAWIO_MODELModel identifier; required only for model generation本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
5收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
Smart Drawio MCP
用于生成、验证、修复和美化可编辑 draw.io XML 的本地 MCP 服务。它与 Smart Drawio Next 共用图表核心。它使用 stdio,无需 Next.js 网站、浏览器或 draw.io Desktop。
从 npm 安装
使用 Node.js 20.9 或更高版本。配置支持本地 stdio MCP 服务的客户端:
{
"mcpServers": {
"smart-drawio": {
"command": "npx",
"args": ["-y", "@yunshenwuchuxun/[email protected]"]
}
}
}
客户端会启动 MCP 进程。验证、修复、美化和选项发现功能可立即使用。配置以下四个模型环境变量即可启用生成。
Smart Drawio Skill 也可以使用 Agent 自己的模型创建 XML,然后按需调用这些工具。
从此仓库运行
使用 Node.js 20.9 或更高版本。从仓库根目录构建:
pnpm install --frozen-lockfile
pnpm build:mcp
配置支持本地 stdio MCP 服务的客户端:
{
"mcpServers": {
"smart-drawio": {
"command": "node",
"args": ["/absolute/path/smart-drawio-next/packages/mcp/dist/stdio.js"]
}
}
}
将绝对路径替换为你的检出路径。客户端会启动进程;直接运行可执行文件时,它会等待从 stdin 接收 JSON-RPC。stdout 仅包含 MCP 消息。
npm 可执行文件为 smart-drawio-mcp。直接运行时,它会等待从 stdin 接收 JSON-RPC;此程序旨在由 MCP 客户端启动。
可选模型配置
验证、修复、美化和选项目录无需模型凭据即可使用。只有 generate_drawio 需要在 MCP 进程上设置以下四个环境变量:
| 变量 | 含义 |
|---|---|
SMART_DRAWIO_PROVIDER | openai 或 anthropic |
SMART_DRAWIO_BASE_URL | 兼容的 HTTP(S) 基础 URL,例如 https://api.openai.com/v1 或本地模型端点 |
SMART_DRAWIO_API_KEY | 提供商 API 密钥;对于忽略身份验证的本地端点,请使用非空占位值 |
SMART_DRAWIO_MODEL | 该提供商支持的模型 ID |
使用客户端的环境变量或密钥设置。工具参数和结果中不会包含凭据。支持 localhost 和自定义 HTTP(S) 提供商。基础 URL 不得包含内嵌凭据、查询参数或片段。
客户端配置中使用占位设置的示例:
{
"mcpServers": {
"smart-drawio": {
"command": "node",
"args": ["/absolute/path/smart-drawio-next/packages/mcp/dist/stdio.js"],
"env": {
"SMART_DRAWIO_PROVIDER": "openai",
"SMART_DRAWIO_BASE_URL": "http://localhost:11434/v1",
"SMART_DRAWIO_API_KEY": "local-placeholder",
"SMART_DRAWIO_MODEL": "your-local-model-id"
}
}
}
}
更改模型设置后,重新启动 MCP 进程。生成的总时限为 240 秒,不活动时限为 60 秒。客户端取消操作会中止提供商请求。
工具
| 工具 | 输入 | 行为 |
|---|---|---|
list_drawio_options | {} | 发现图表类型、主题、样式包、预设、文本工具和技巧的 ID 及说明 |
validate_drawio | xml | 验证 XML 语法、ID、父级和边引用 |
repair_drawio | xml | 修复受支持的缺失结束标签,并验证修复后的结果 |
style_drawio | xml;可选 theme、sourceTheme、stylePack、presets、textTool、trick | 返回转换后的 XML 文档;presets 是 ID 到布尔值的映射 |
generate_drawio | prompt;可选 chartType="auto"、theme="research" | 使用已配置的提供商生成并返回完整且经过验证的 XML |
每个结果都包含 structuredContent,其中有 ok、diagnostics,以及可选的 xml、stats 或 options。文本内容包含诊断信息和可用时的 XML。工具失败时会设置 isError: true;无效的工具参数会被 MCP SDK 拒绝。已取消的调用遵循 MCP 取消语义。
发现 ID 后发起样式请求的示例:
{
"xml": "<mxfile>...</mxfile>",
"stylePack": "researchClean",
"presets": { "shadow": false }
}
支持范围
此版本处理未压缩的 .drawio XML,每份 XML 文档的 MCP 输入上限为 2,097,152 个字符。提示词上限为 262,144 个字符。压缩图表和旧版 JSON 绘图格式必须先转换为未压缩的 XML。
服务以内存形式返回图表数据。是否保存 .drawio 文件以及保存位置由客户端决定。它不会读取当前浏览器画布、选择节点、导出 PNG/PDF 截图、管理实时编辑器会话,也不提供远程 HTTP MCP 端点。
将返回的 XML 导入 draw.io,或使用 Smart Drawio Next 网站进行可视化编辑。生成调用已配置的外部提供商;验证、修复和样式转换则在本地完成。
工厂 API
import { createSmartDrawioServer } from '@yunshenwuchuxun/smart-drawio-mcp';
import { serveStdio } from '@modelcontextprotocol/server/stdio';
serveStdio(() => createSmartDrawioServer());
createSmartDrawioServer({ env, core }) 支持传入环境和核心实现,以便嵌入或测试。该软件包还通过 @yunshenwuchuxun/smart-drawio-mcp/core 导出共享的图表核心。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。