Draw.io MCP Server
Enables AI models to create and manage various types of diagrams (flowcharts, UML, network diagrams, etc.) via the Model Context Protocol.
README
Draw.io MCP Server
一个用于与Draw.io(Diagrams.net)进行交互的MCP(Model Context Protocol)服务器,使AI模型能够创建和管理各种类型的图表。
🚀 项目状态
✅ 已完成并可用 - 项目已实现核心功能,可以立即使用!
- ✅ MCP服务器核心功能完整实现
- ✅ 10个Draw.io工具已注册并可用
- ✅ 完整的测试框架和测试用例
- ✅ TypeScript类型安全支持
- ✅ 详细的文档和使用指南
🛠️ 快速开始
环境要求
- Node.js >= 18.0.0
- npm >= 9.0.0
安装和运行
# 1. 克隆项目
git clone <repository-url>
cd drawio-mcp
# 2. 安装依赖
npm install
# 3. 构建项目
npm run build
# 4. 启动服务器
npm start
成功启动后,您将看到:
╔══════════════════════════════════════════════════════════════╗
║ Draw.io MCP Server v1.0.0 ║
╠══════════════════════════════════════════════════════════════╣
║ ✅ MCP Server started successfully ║
║ ✅ 10 tools registered and ready ║
║ ✅ Ready to accept MCP protocol requests ║
╚══════════════════════════════════════════════════════════════╝
🔧 MCP客户端配置
Claude Desktop
将以下配置添加到Claude Desktop配置文件中:
{
"mcpServers": {
"drawio-mcp": {
"command": "node",
"args": ["/path/to/drawio-mcp/dist/index.js"],
"transportType": "stdio"
}
}
}
配置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
📋 可用工具
服务器提供以下26个MCP工具,涵盖图表创建、编辑、管理的完整功能:
🎨 图表创建工具 (5个)
create_diagram- 创建通用图表(流程图、UML图、网络图等)create_flowchart- 创建流程图create_org_chart- 创建组织架构图create_mindmap- 创建思维导图create_timeline- 创建时间线图表
✏️ 图表编辑工具 (5个)
add_element- 向图表添加元素connect_elements- 连接两个图表元素delete_element- 删除图表中的元素或连接update_element- 更新现有元素的属性copy_paste- 复制和粘贴图表元素
📁 文件管理工具 (4个)
save_diagram- 保存图表到文件load_diagram- 从文件加载图表batch_import- 批量导入图表文件version_management- 图表版本管理
📤 导出工具 (1个)
export_diagram- 导出图表为PNG/SVG/PDF格式
🎭 样式和主题工具 (3个)
apply_theme- 应用预定义主题到图表update_style- 更新图表、元素或连接的样式manage_colors- 管理图表的颜色方案和调色板
🔍 查询工具 (4个)
get_diagram_info- 获取图表基本信息list_diagrams- 列出所有图表文件search_elements- 在图表中搜索元素get_statistics- 获取图表统计信息
🚀 高级功能工具 (4个)
create_template- 创建或管理图表模板batch_operations- 批量操作图表元素layer_management- 管理图表的图层和分组auto_layout- 自动布局图表元素
💡 使用示例
创建流程图
{
"title": "用户登录流程",
"steps": [
{
"id": "start",
"text": "开始",
"type": "start",
"next": ["input"]
},
{
"id": "input",
"text": "输入用户名密码",
"type": "process",
"next": ["validate"]
},
{
"id": "validate",
"text": "验证凭据",
"type": "decision",
"next": ["success", "error"]
},
{
"id": "success",
"text": "登录成功",
"type": "end"
},
{
"id": "error",
"text": "登录失败",
"type": "end"
}
],
"layout": "vertical"
}
创建组织架构图
{
"title": "公司组织架构",
"root": {
"id": "ceo",
"name": "张三",
"title": "CEO",
"children": [
{
"id": "cto",
"name": "李四",
"title": "CTO",
"department": "技术部"
},
{
"id": "cfo",
"name": "王五",
"title": "CFO",
"department": "财务部"
}
]
}
}
🏗️ 项目结构
drawio-mcp/
├── config/ # 配置文件
├── design/ # 设计文档
├── docs/ # 项目文档
│ ├── quick-start.md # 快速开始指南
│ ├── testing-guide.md # 测试指南
│ └── implementation-comparison.md # 实现差异分析
├── examples/ # 示例代码
├── src/ # 源代码
│ ├── server/ # MCP服务器核心
│ ├── tools/ # MCP工具实现
│ ├── types/ # TypeScript类型定义
│ ├── utils/ # 工具函数
│ ├── integration/ # 集成测试
│ ├── performance/ # 性能测试
│ └── test-utils/ # 测试工具
├── package.json
└── README.md
🧪 开发和测试
开发模式
npm run dev
运行测试
# 运行所有测试
npm test
# 运行单元测试
npm run test:unit
# 运行集成测试
npm run test:integration
# 运行性能测试
npm run test:performance
# 生成覆盖率报告
npm run test:coverage
代码质量
# 代码检查
npm run lint
# 自动修复
npm run lint:fix
# 代码格式化
npm run format
📖 文档
🔍 与 drawio-mcp-server 的差异
本项目 (drawio-mcp) 与 drawio-mcp-server 的主要差异:
| 特性 | drawio-mcp-server | drawio-mcp |
|---|---|---|
| 实现状态 | 完成,8个工具 | 完成,10个工具 |
| 架构设计 | WebSocket桥接 | 标准MCP协议 |
| 工具数量 | 8个基础工具 | 10个全功能工具 |
| 测试覆盖 | 完整单元测试 | 完整测试套件 |
| 文档完善度 | 实用导向 | 设计导向 |
| 类型安全 | 基础类型 | 完整类型系统 |
详细对比请参考 实现差异分析。
🤝 贡献
欢迎贡献代码!请遵循以下步骤:
- Fork 项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
📄 许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
🆘 支持
如果您遇到问题或需要帮助:
⭐ 如果这个项目对您有帮助,请给它一个星标!
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。