UML-MCP是一款强大的图生成服务器,实现了模型上下文协议(MCP),使得可以直接从AI助手和其他应用程序无缝创建图表。
UML-MCP支持广泛的图表类型:
| 类别 | 图表类型 |
|---|---|
| UML | 类、序列、活动、用例、状态、组件、部署、对象 |
| 其他 | Mermaid、D2、Graphviz、ERD、BlockDiag、BPMN、C4与PlantUML |
git clone https://github.com/yourusername/uml-mcp.git
cd uml-mcp
pip install -r requirements.txt
pip install -r requirements-dev.txt
启动MCP服务器:
python mcp_server.py
这将使用标准I/O通信启动服务器。
要与Cursor集成:
python mcp/install_to_cursor.py
或者在Cursor设置中手动配置:
"mcpServers": {
"UML-MCP-Server": {
"command": "python",
"args": ["/path/to/uml-mcp/mcp_server.py"],
"output_dir": "/path/to/output"
}
}
MCP_OUTPUT_DIR - 保存生成图表的目录(默认:./output)KROKI_SERVER - Kroki服务器的URL(默认:https://kroki.io)PLANTUML_SERVER - PlantUML服务器的URL(默认:http://plantuml-server:8080)USE_LOCAL_KROKI - 使用本地Kroki服务器(真/假)USE_LOCAL_PLANTUML - 使用本地PlantUML服务器(真/假)UML-MCP采用模块化架构构建:
对于本地开发:
# PlantUML
docker run -d -p 8080:8080 plantuml/plantuml-server
# Kroki
docker run -d -p 8000:8000 yuzutech/kroki
export USE_LOCAL_PLANTUML=true
export PLANTUML_SERVER=http://localhost:8080
export USE_LOCAL_KROKI=true
export KROKI_SERVER=http://localhost:8000
欢迎贡献!请随意提交拉取请求。
本项目采用MIT许可证 - 详情见LICENSE文件。
一个MCP服务器,通过各种图表渲染引擎提供UML图表生成能力。
服务器通过uml://URI方案提供多个资源:
uml://types:可用的UML图表类型列表uml://templates:创建UML图表的模板uml://examples:参考用的UML图表示例uml://formats:支持的图表输出格式uml://server-info:关于UML-MCP服务器的信息服务器实现多个图表生成工具:
generate_uml:生成任何UML图表
diagram_type,code,output_dirgenerate_class_diagram:生成UML类图
code,output_dirgenerate_sequence_diagram:生成UML序列图
code,output_dirgenerate_activity_diagram:生成UML活动图
code,output_dirgenerate_usecase_diagram:生成UML用例图
code,output_dirgenerate_state_diagram:生成UML状态图
code,output_dirgenerate_component_diagram:生成UML组件图
code,output_dirgenerate_deployment_diagram:生成UML部署图
code,output_dirgenerate_object_diagram:生成UML对象图
code,output_dirgenerate_mermaid_diagram:使用Mermaid语法生成图表
code,output_dirgenerate_d2_diagram:使用D2语法生成图表
code,output_dirgenerate_graphviz_diagram:使用Graphviz DOT语法生成图表
code,output_dirgenerate_erd_diagram:生成实体关系图
code,output_dir服务器提供了帮助创建UML图表的提示:
class_diagram:创建显示类、属性、方法和关系的UML类图sequence_diagram:创建显示对象之间随时间交互的UML序列图activity_diagram:创建显示工作流和业务流程的UML活动图在MacOS上:~/Library/Application\ Support/Claude/claude_desktop_config.json
在Windows上:%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"uml_diagram_generator": {
"command": "python",
"args": [
"/path/to/uml-mcp/mcp_server.py"
]
}
}
}
</details>
UML-MCP服务器也可以与Cursor集成:
<details> <summary>Cursor配置</summary>{
"mcpServers": {
"uml_diagram_generator": {
"command": "python",
"args": [
"/path/to/uml-mcp/mcp_server.py"
]
}
}
}
</details>
usage: mcp_server.py [-h] [--debug] [--host HOST] [--port PORT] [--transport {stdio,http}] [--list-tools]
UML-MCP图表生成服务器
选项:
-h, --help 显示此帮助信息并退出
--debug 启用调试日志
--host HOST 服务器主机(默认:127.0.0.1)
--port PORT 服务器端口(默认:8000)
--transport {stdio,http}
传输协议(默认:stdio)
--list-tools 列出可用工具并退出
LOG_LEVEL:设置日志级别(DEBUG、INFO、WARNING、ERROR、CRITICAL)UML_MCP_OUTPUT_DIR:存储生成的图表文件的目录KROKI_SERVER:用于图表渲染的Kroki服务器URLPLANTUML_SERVER:用于图表渲染的PlantUML服务器URLLIST_TOOLS:设置为“true”以显示工具并退出result = tool.call("generate_class_diagram", {
"code": """
@startuml
class User {
-id: int
-name: string
+login(): boolean
}
class Order {
-id: int
+addItem(item: string): void
}
User "1" -- "many" Order
@enduml
""",
"output_dir": "/path/to/output"
})
# 克隆仓库
git clone https://github.com/your-username/uml-mcp.git
cd uml-mcp
# 安装依赖项
pip install -r requirements.txt
# 运行服务器
python mcp_server.py
为了调试,可以运行服务器:
python mcp_server.py --debug
调试日志将存储在logs/目录中。
# 运行所有测试
pytest
# 运行特定测试
pytest tests/test_diagram_tools.py