UML MCP
📝 UML MCP 渲染服务
基于 FastMCP 的 UML 图表渲染服务,支持通过 AI 对话生成各种 UML 图表。
✨ 核心特性
🤖 MCP 协议支持 - 可作为 AI 工具调用,支持 Claude、Cursor 等客户端
📊 完整 UML 支持 - 支持类图、序列图、组件图等所有 PlantUML 图表类型
🎨 多格式输出 - PNG、SVG 格式,支持 Base64 编码和文件保存
⚡ 高性能异步 - 支持并发渲染,内置缓存机制
🔒 安全可靠 - 输入限制、超时控制、完善的错误处理
🛠️ MCP 工具
提供 7 个专业的 MCP 工具,可通过 AI 助手调用:
工具 | 功能 | 说明 |
| 核心渲染 | 将 PlantUML 代码渲染为图像,返回 Base64 数据 |
| 文件保存 | 渲染并保存为文件,适合大图表 |
| 语法验证 | 快速检查 UML 语法,提供优化建议 |
| 在线预览 | 生成可直接访问的预览链接和编辑器 URL |
| 性能监控 | 获取渲染统计、性能分析、缓存命中率 |
| 格式查询 | 查看支持的输出格式和详细信息 |
| 服务信息 | 获取版本信息、配置参数、运行状态 |
📋 系统要求
Python 3.9+
Java 8+ (运行 PlantUML)
Graphviz (可选,渲染复杂图表)
uv 包管理器 (推荐)
依赖说明
🔄 序列图、时序图、甘特图 —— 无需 Graphviz
📦 类图、组件图、状态图、用例图 —— 需要 Graphviz
🏗️ 部署图、活动图 —— 需要 Graphviz
安装 Graphviz
# macOS
brew install graphviz
# Ubuntu/Debian
sudo apt-get install graphviz
# Windows
choco install graphviz🚀 快速开始
1. 安装
# 克隆项目
git clone https://github.com/icatw/uml-mcp
cd uml-mcp
# 安装依赖
curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync
# 下载 PlantUML
curl -L -o plantuml.jar https://github.com/plantuml/plantuml/releases/latest/download/plantuml.jar2. 启动服务
# 直接运行
uv run python server.py
# 或使用启动脚本
./start.sh⚙️ MCP 客户端配置
Claude Desktop
编辑配置文件 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"uml-mcp-renderer": {
"command": "uv",
"args": [
"--directory",
"/path/to/uml-mcp",
"run",
"python",
"server.py"
],
"env": {
"PLANTUML_JAR_PATH": "/path/to/uml-mcp/plantuml.jar",
"JAVA_EXECUTABLE": "java",
"RENDER_TIMEOUT": "30",
"ENABLE_CACHE": "true",
"OUTPUT_DIR": "/path/to/uml-mcp/output"
}
}
}
}
其他客户端
Cursor IDE: 在设置中添加 MCP 服务器配置
VS Code: 安装支持 MCP 的 AI 扩展
JetBrains: 在 AI Assistant 设置中配置 MCP 服务器
📊 支持的图表类型
支持所有 PlantUML 图表类型:
🔄 序列图
📦 类图
👤 用例图
🔀 活动图
🧩 组件图
🏗️ 部署图
🔄 状态图
⏱️ 时序图
💡 使用示例
基本调用
通过 AI 助手直接对话:
用户: 请帮我生成一个用户登录的序列图
AI: 我来为你生成用户登录的序列图...AI 会自动调用 UML MCP 工具生成图表。
示例图表
项目包含完整的示例代码和 8 个 UML 图表:
📊 项目架构图
🔄 渲染流程图
📦 类结构图
🎯 用例图
🏗️ 部署图
示例见 examples/ 目录
🐳 Docker 部署
docker build -t uml-mcp .
docker run -p 8000:8000 uml-mcp🧪 测试
# 运行测试
uv run pytest
# 生成覆盖率报告
uv run pytest --cov=src📈 性能
⚡ 渲染速度: < 3 秒
🚀 并发支持: 50+ 请求
💾 内存占用: < 500MB
🔒 安全限制: 输入验证 + 超时控制
🤝 贡献
欢迎提交 Issue 和 Pull Request!
📄 许可证
MIT License
🙏 致谢
📬 联系我
如果你在使用过程中遇到问题,或者想要交流 MCP 与 UML 渲染相关内容,可以通过以下方式联系我:
📧 Email: 762188827@qq.com
🐙 GitHub: @icatw
💬 微信 :
欢迎交流与反馈! 🚀