mcpField
S
Smart Drawio

Smart Drawio

本地服务
github.com/yunshenwuchuxun媒体与设计3662 周前更新

关于 Smart Drawio

Smart Drawio 是供 MCP 客户端使用的本地 MCP 服务,用于创建和转换可编辑的 draw.io XML。它提供本地验证、修复、样式处理和选项查询;生成图表还需配置模型提供方。

主要功能

  1. 01生成经过验证的 draw.io XML
  2. 02验证 XML 结构与引用
  3. 03修复支持的缺失闭合标签
  4. 04应用主题与样式选项
  5. 05查询图表和样式选项

适用场景

  1. 01根据提示词创建可编辑图表
  2. 02导入 draw.io 前检查 XML
  3. 03修复支持的格式异常 XML
  4. 04应用主题或样式包

MCP 相关

通过工具提供未压缩 draw.io XML 的生成、验证、修复和样式处理,并可查询可用选项。服务使用本地 stdio;生成会调用已配置的提供方,验证、修复和样式处理则在本地运行。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"yunshenwuchuxun-smart-drawio": {
"command": "npx",
"args": [
"-y",
"@yunshenwuchuxun/smart-drawio-mcp"
],
"env": {
"SMART_DRAWIO_PROVIDER": "<SMART_DRAWIO_PROVIDER>",
"SMART_DRAWIO_BASE_URL": "<SMART_DRAWIO_BASE_URL>",
"SMART_DRAWIO_API_KEY": "<SMART_DRAWIO_API_KEY>",
"SMART_DRAWIO_MODEL": "<SMART_DRAWIO_MODEL>"
}
}
}
}
启动命令npx -y @yunshenwuchuxun/smart-drawio-mcp
需要配置的环境变量
SMART_DRAWIO_PROVIDERopenai or anthropic; required only for model generation
SMART_DRAWIO_BASE_URLModel provider HTTP(S) base URL; required only for model generation
SMART_DRAWIO_API_KEY密钥Your model provider API key; required only for model generation
SMART_DRAWIO_MODELModel identifier; required only for model generation

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

安装包
npm@yunshenwuchuxun/smart-drawio-mcp0.1.0

工具

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_PROVIDERopenai 或 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_drawioxml验证 XML 语法、ID、父级和边引用
repair_drawioxml修复受支持的缺失结束标签,并验证修复后的结果
style_drawioxml;可选 theme、sourceTheme、stylePack、presets、textTool、trick返回转换后的 XML 文档;presets 是 ID 到布尔值的映射
generate_drawioprompt;可选 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 导出共享的图表核心。

评论

支持 Markdown

第一次接触 MCP?

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

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