Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Drawio Parser

БесплатноНе проверен

Validates and parses Draw.io XML syntax, enabling analysis and verification of diagram structures, especially for AI-generated content.

GitHubEmbed

Описание

Validates and parses Draw.io XML syntax, enabling analysis and verification of diagram structures, especially for AI-generated content.

README

一个用于验证和分析 Draw.io XML 语法的 MCP (Model Context Protocol) 服务器,专为检查 AI 生成的 Draw.io 图表内容设计。

功能特性

  • 语法验证 - 检查 Draw.io XML 的语法正确性,发现错误和警告
  • 结构解析 - 解析图表结构,提取单元格、边、图层等信息
  • 图表分析 - 完整分析图表,同时返回验证结果和结构信息
  • 摘要统计 - 快速获取图表统计信息(形状数、连接数等)
  • 单元格查询 - 列出所有单元格或按 ID 查找特定单元格

安装

使用 uv (推荐)

# 克隆项目
git clone https://github.com/dabian321/pyDrawioParserMCP.git
cd pyDrawioParserMCP

# 安装依赖
uv sync

使用 pip

pip install -e .

MCP 配置

将以下配置添加到你的 MCP 配置文件 (如 Claude Desktop 的 mcp.json):

{
  "mcpServers": {
    "drawio-parser-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/pyDrawioParserMCP",
        "run",
        "drawio-parser-mcp"
      ],
      "env": {
        "PYTHONIOENCODING": "utf-8"
      }
    }
  }
}

/path/to/pyDrawioParserMCP 替换为项目实际路径

MCP 工具

工具名 描述
validate_drawio 验证 Draw.io XML 语法和结构,返回错误、警告和建议
parse_drawio 解析 Draw.io XML,提取单元格、边、图层和统计信息
analyze_drawio 完整分析:同时执行验证和解析
get_diagram_summary 获取图表摘要统计信息
list_cells 列出图表中所有单元格(形状和连接)
find_cell 按 ID 查找特定单元格

命令行使用

# 启动 MCP 服务器 (stdio 模式)
drawio-parser-mcp

# 验证单个文件
drawio-parser-mcp --check mydiagram.drawio

# 启用详细日志
drawio-parser-mcp -v

使用示例

验证 AI 生成的 Draw.io 内容

from drawio_parser_mcp import DrawioValidator

validator = DrawioValidator()
xml_content = """
<mxfile>
  <diagram id="test" name="Page-1">
    <mxGraphModel>
      <root>
        <mxCell id="0"/>
        <mxCell id="1" parent="0"/>
        <mxCell id="2" value="Hello" style="rounded=1;" vertex="1" parent="1">
          <mxGeometry x="100" y="100" width="120" height="60" as="geometry"/>
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
"""

result = validator.validate(xml_content)
print(f"Valid: {result.valid}")
print(f"Errors: {result.error_count}, Warnings: {result.warning_count}")

解析图表结构

from drawio_parser_mcp import DrawioParser

parser = DrawioParser()
structure = parser.parse(xml_content)

print(f"Pages: {len(structure.pages)}")
print(f"Total shapes: {structure.total_vertices}")
print(f"Total connections: {structure.total_edges}")

项目结构

pyDrawioParserMCP/
├── src/drawio_parser_mcp/
│   ├── __init__.py      # 包入口
│   ├── cli.py           # 命令行接口
│   ├── server.py        # MCP Server 实现
│   ├── parser.py        # XML 解析器
│   ├── validator.py     # 语法验证器
│   └── models.py        # 数据模型
├── tests/               # 测试文件
├── architecture.drawio  # 架构图
└── pyproject.toml       # 项目配置

验证规则

错误代码 描述
XML_SYNTAX_ERROR XML 语法错误
INVALID_ROOT 无效的根元素
NO_DIAGRAM 缺少 diagram 元素
MISSING_ROOT_CELL 缺少 id="0" 的根单元格
MISSING_DEFAULT_PARENT 缺少 id="1" 的默认父单元格
INVALID_PARENT 引用了不存在的父单元格
INVALID_EDGE_SOURCE 边的源单元格不存在
INVALID_EDGE_TARGET 边的目标单元格不存在
NEGATIVE_WIDTH/HEIGHT 负数的宽度或高度

依赖

  • Python >= 3.10
  • mcp >= 1.0.0
  • pydantic >= 2.0.0
  • lxml >= 5.0.0

开发

# 安装开发依赖
uv sync --extra dev

# 运行测试
pytest

# 代码格式检查
ruff check src/

License

MIT License

from github.com/dabian321/pyDrawioParserMCP

Установка Drawio Parser

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/dabian321/pyDrawioParserMCP

FAQ

Drawio Parser MCP бесплатный?

Да, Drawio Parser MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Drawio Parser?

Нет, Drawio Parser работает без API-ключей и переменных окружения.

Drawio Parser — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Drawio Parser в Claude Desktop, Claude Code или Cursor?

Открой Drawio Parser на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Drawio Parser with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории ai