UML-MCP:通过MCP生成图表
 ](https://github.com/antoinebou12/uml-mcp/actions/workflows/build.yml)  ](https://github.com/antoinebou12/uml-mcp/stargazers)   
通过以下方式生成UML和其他图表 模型上下文协议.
概览
| 主题 | 你得到了什么 |
|---|---|
| 图表 | 30+种类型:UML(类、序列、活动、用例、状态、组件、部署、对象)、Mermaid、D2、Graphviz、TikZ、ERD、BlockDiag、BPMN、C4等 克罗基 |
| MCP工具 | generate_uml, validate_uml, list_diagram_types, generate_uml_batch |
| 输出 | SVG、PNG、PDF、JPEG、base64(可用性因图表类型而异) |
| 管道 | 先是克罗基,然后 PlantUML 或 Mermaid.ink |
| 来源 | URL |
|---|---|
| 实时MCP(HTTP) | https://uml-mcp.vercel.app/mcp |
| Smithery目录 | 通过Smithery添加 |
快速开始
选择您的模式
- 远程(推荐): 使用Vercel无服务器运行时通过HTTP MCP快速设置
- 当地: 用于文件输出和本地调试的stdio进程
远程快速启动(Vercel HTTP MCP)
公共Vercel部署的配置:
"uml-mcp": {
"transport": "http",
"url": "https://uml-mcp.vercel.app/mcp"
}本地快速启动(stdio MCP)
git clone https://github.com/antoinebou12/uml-mcp.git && cd uml-mcp
uv sync
uv run python server.py客户端配置示例:
config/cursor_config.jsonconfig/claude_desktop_config.jsonconfig/README.md获取准确的配置文件位置- 克劳德代码: 从repo市场安装捆绑的插件(见下文)或阅读 docs/integrations/claude_code.md
Claude代码插件
添加托管HTTP MCP服务器以及图表技能(否 settings.json 粘贴)。在克劳德代码中:
/plugin marketplace add https://github.com/antoinebou12/uml-mcp
/plugin install uml-mcp@uml-mcp-plugins如果您已经克隆了此仓库,请使用本地路径而不是GitHub URL。自定义端点和验证: docs/integrations/claude_code.md.
远程vs本地
- 运输: 默认情况下,远程使用HTTP MCP,本地使用stdio
- 运行时间: 远程运行在Vercel上,本地运行在Python环境中
- 文件写入: 远程是只读的(否
output_dir),本地支持output_dir - 返回的数据: 两者都返回URL+base64;本地也可以保存文件
- 环境变量: 远程由服务器端管理;本地读取您的env配置
MCP客户端必须致电 /mcp,而不是网站根。
支持的图表类型
| 类别 | 示例 |
|---|---|
| UML(PlantUML) | 类、序列、活动、用例、状态、组件、部署、对象 |
| 概述 | Mermaid、D2、Graphviz、ERD、BlockDiag、BPMN、C4 |
| 专业 | TikZ,Excalidraw,Nomnoml,Pikchr,Structurizer,SVGBob,WaveDrom,WireViz |
支持格式的完整列表:运行 python server.py --list-tools 或查询 uml://types 和 uml://formats.
MCP工具和资源
工具
| 工具 | 目的 |
|---|---|
generate_uml | 绘制图表;省略 output_dir 仅适用于URL/b64 |
validate_uml | 渲染前的结构验证; strict 启用额外的Mermaid/D2检查 |
list_diagram_types | 与相同的元数据 uml://types 当资源不方便时 |
generate_uml_batch | 一次通话中有多个图表(上限: MCP_BATCH_MAX_ITEMS) |
资源(uml://)
| 资源 | 描述 |
|---|---|
uml://types | 图表类型、后端、每种类型支持的格式 |
uml://templates | 每种类型的初学者模板;看见 BPMN 2.0.2指南 用于元素和流参考(文档) |
uml://examples | 每种类型的示例图; 美人鱼 文档命名的示例(顺序为API、甘特)旁边 uml://examples (关键 mermaid) |
uml://formats | 每种类型的输出格式 |
uml://capabilities | 类型→ 后端→ 用于验证的格式矩阵 |
uml://server-info | 服务器名称、版本、工具、提示、Kroki/PlantUML URL |
uml://workflow | 推荐计划,然后生成工作流 |
部署
维塞尔
此回购包括 vercel.json 用于无服务器部署。
- 将仓库连接到 维塞尔
- 使用 `https://
.vercel.app/mcp`
- 保持
/mcp在所有MCP客户端URL中
铁匠铺
- 打开 史密斯·艾/新,选择 统一资源定位符
- 进入 `https://
.vercel.app/mcp`
- 配置显示名称、描述和主页
详细指南: docs/integrations/vercel_smithery.md
码头工人
默认映像通过MCP HTTP在端口8000上为FastAPI提供服务 http://127.0.0.1:8000/mcp.
# Full local stack (local Kroki + mermaid + blockdiag)
docker compose up -d
# API + MCP only (public Kroki)
docker build -t uml-mcp . && docker run -p 8000:8000 uml-mcp
# stdio MCP subprocess mode
docker run -i uml-mcp python server.py --transport stdio配置(本地运行时)
这些变量适用于本地/自托管运行。远程Vercel端点设置由服务器端管理。
| 变量 | 描述 | 默认值 |
|---|---|---|
KROKI_SERVER | Kroki服务器URL | https://kroki.io |
PLANTUML_SERVER | PlantUML服务器URL | http://plantuml-server:8080 |
MCP_OUTPUT_DIR | 图表输出目录 | ./output |
MCP_READ_ONLY | 禁用文件写入 | false |
MCP_MAX_CODE_LENGTH | 最大图表代码长度 | 500000 |
MCP_BATCH_MAX_ITEMS | 每个项目的最大数量 generate_uml_batch | 20 |
MCP_RATE_LIMIT_PER_MINUTE | 图表/MCP路由的每个IP的HTTP速率限制(0 关 0 | |
USE_LOCAL_KROKI | 使用本地Kroki实例 | false |
USE_LOCAL_PLANTUML | 使用本地PlantUML实例 | false |
完整选项: docs/configuration.md
建筑
当用户向启用MCP的助手询问图表时的典型流程:助手呼叫 generate_uml,服务器通过Kroki进行渲染,然后向用户的助手返回URL和可选的base64。
server.py -- MCP entry point (stdio/HTTP)
app.py -- FastAPI REST API + MCP HTTP at /mcp
api/app.py -- legacy re-export of root app (Vercel FastAPI preset uses root app.py)
mcp_core/
core/ -- config, server, CLI, utilities, diagram pipeline
tools/ -- generate_uml, validate_uml
prompts/ -- diagram generation prompts
resources/ -- uml:// resource handlers
tools/kroki/ -- Kroki, PlantUML, Mermaid, D2 clients发展
# Install dev dependencies
uv sync --all-groups
# Run tests
uv run pytest tests/ -v
# Lint
uv run ruff check . && uv run ruff format --check .
# Local CI
make ci文档
- 在线的:
- 本地:
uv run mkdocs serve然后打开 http://127.0.0.1:8000
贡献
许可证
致谢
明星历史

