内容
# 🎨 反重力绘图 Draw.io MCP 服务器 (`antigravity-drawio-mcp`)
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/downloads/)
[](https://modelcontextprotocol.io)
[](https:///psf/black)
生产级别的**模型上下文协议(MCP)服务器**框架,连接**谷歌反重力**、LLM 代理和 IDE 工具到 **Draw.io 桌面应用**和原生 CLI 环境。
---
## 🏗️ 系统架构

`antigravity-drawcp` 框架结构3 层 C4 软件组件架构(级别 3):
1. **软件系统边界(AI 客户端)**:通过 Stdio 传输上的标准 JSON-RPC 2.0 与谷歌反重力核心代理或任何 MCP 兼容的 IDE(VS Code、Cursor、Claude Desktop、Windsurf)通信。
2. **容器:反重力 Draw.io MCP 服务器(`src/antigravity_drawio_mcp`)**:
- `FastMCP 请求处理器`:FastMCP 协议引擎和工具请求调度器。
- `Draw.io XML 构建器`:编程 XML DOM 构造和几何引擎。
- `Draw.io 文件解析器`:直接 `.drawio` XML 解析和原生 zlib/base64 解压器。
- `CLI 导出引擎`:进程锁定管理器和 Draw.io 桌面 CLI 包装器(`--export`)。
- `图表验证器`:自动碰撞检测器和标签边界审计器。
- `Mermaid 转换引擎`:双向 Mermaid JS 到 Draw.io 转换器。
3. **外部系统和存储**:与本地 `draw.io.exe` 交互,进行无头图像渲染(PNG、SVG、PDF)和持久文件存储。
---
## ⚡ 关键功能
- 🎨 **编程 XML 构造**:在 Python 中原生构建复杂的 Draw.io 多页面图表,无需外部依赖。
- 🖼️ **无头图像渲染**:使用本地 `draw.io.exe` 桌面 CLI 集成,立即导出 PNG、SVG、PDF 或 JPEG。
- 🖥️ **桌面 GUI 互操作**:在 Draw.io 桌面应用程序中自动启动生成的 `.drawio` 文件。
- 🔍 **原生 Zlib 解析**:检查现有的 Draw.io 图表,自动解压缩压缩的 XML 流。
- 🔄 **Mermaid JS 桥接**:将标准 Mermaid JS 图表直接转换为原生 Draw.io XML 单元格。
- 🛡️ **自动边界验证**:审计图表中的节点重叠、文本边界和损坏的边缘路径。
---
## 🔌 集成指南(AI 助手和 IDE)
有关详细的逐步设置指南,请参阅 [**集成指南**](docs/INTEGRATION_GUIDE.md)。
### 快速设置代码片段
#### 🌐 谷歌反重力 (`~/.gemini/config/mcp_config.json`)
```json
{
"mcpServers": {
"drawio": {
"command": "uvx",
"args": ["antigravity-drawio-mcp"]
}
}
}
```
*或使用标准 Python:*
```json
{
"mcpServers": {
"drawio": {
"command": "python",
"args": ["-m", "antigravity_drawio_mcp.server"]
}
}
}
```
#### 🤖 Claude 桌面版 / Claude 代码 (`claude_desktop_config.json`)
```{
"mcpServers": {
"antigravity_drawio": {
"command": "python",
"args": ["-m", "antigio_mcp.server"]
}
}
}
```
#### ⚡ Cursor IDE(功能 -> MCP 服务器)
- **命令**:`python -m antigravity_drawio_mcp.server`
---
## 🎨 现实世界的行业图表和
`antigravity-drawio-mcp` 在硬件、软件和决策树领域推动生产级别的架构图表:
### 1. SystemVerilog UVM测试平台架构

*IEEE 1800 对象导向验证框架图,包含驱动器、监视器、序列器、记分板和 DUT 接口层。*
### 2. 图形组织者选择流程图

*英特尔 Quartus Prime CAD 编译、系统构建器和 FPGA 编程工作流程。*
---
## 🚀 概念验证(PoC)和示例
全面的 Python PoC 脚本可在 [`examples/`](examples/) 目录中找到:
| 示例脚本 | 演示过程 |
| :--- | :--- |
| [`examples/01_basic_architecture.py`](examples/01_basic_architecture.py) | 编程 3 层 Web 架构图创建、验证、PNG 和 SVG 渲染。 |
| [`examples/02_mermaid_to_drawio.py`](examples/02_mermaid_to_drawio.py) | 将标准 Mermaid JS 流程图定义字符串转换为原生 `.drawio` XML 元素。 |
| [`examples/03_parse_and_inspect.py`](examples/03_parse_and_inspect.py) | 加载现有的 `.drawio` XML,透明地处理 zlib 流解压缩,并/边。 [`examples/04_mcp_client_simulation.py`](examples/04_mcp_client_simulation | 模拟 AI 助手(例如谷歌反重力)如何调度模型上下文协议(MCP)工具请求。 |
---
## 🚀 生产发布
有关完整的生产发布步骤,请参阅 [**发布指南**](docs/PUBLISHING_GUIDE.md)。
```bash
# 1. 构建分发轮和 sdist
python -m build
# 2. 通过 Twine 上传到 PyPI
python -m twine upload dist/*
```
---
## 📦 安装
### 从 PyPI
```bash
pip install antigravity-drawio-mcp
```
### 从源码(开发)
```bash
git clone https://github.com/S-SUJAN-S/antigravity-drawio-mcp.git
cd antigravity-drawio-mcp
pip install -e .
```
---
## 🛠️ MCP 工具参考
`antigravity-drawio-mcp` 服务器通过模型上下文协议公开 7 种生产工具:
| 工具名称 | 参数 | 描述 |
| :--- | :--- | :--- |
| `create_diagram` | `output_path`, `nodes`, `edges`, `page_name` | 从结构化的 JSON 节点和边生成原生 `.drawio` XML 图表文件。 |
| `export_diagram` | `input_path`, `output_path`, `format`, `page_index` | 通过 Draw.io CLI 将 `.drawio`为高分辨率 PNG、矢量 SVG、PDF 或 JPEG。 |
| `open_in_drawio` | `input_path` | 在 Draw.io 桌面 GUI 中启动指定的 `.drawio` 文件。 |
| `parse_diagram` | `input_path` | 解析原始或 zlib 压缩的 `.drawio` XML 文件并提取节点/边数据。 |
| `convert_mermaid_to_drawio` | `mermaid_code`, `output_path` | 直接将 Mermaid JS 流程图语法转换为 `.drawio` 文件。 |
| `validate_diagram` | `` | 审计图表中的节点冲突、布局重叠和文本剪切问题。 |
---
## 🧪 测试和验证
运行全面的单元测试套件:
```bash
python -m unittest tests/test_mcp_server.py
```
---
## 📄 许可证
在 [MIT 许可证](LICENSE) 下分发。