UML 图生成服务器文档
安装说明
在 MacOS 上安装 Claude Desktop
路径:~/Library/Application\ 支持/Claude/claude_desktop_config.json
Claude Desktop 配置示例
{
"mcpServers": {
"uml_diagram_generator": {
"command": "python",
"args": [
"/path/to/uml-mcp/mcp_server.py"
]
}
}
}
在 Windows 上安装 Claude Desktop
路径:%APPDATA%/Claude/claude_desktop_config.json
配置说明
在 Cursor 中集成 UML 图生成服务器:
Cursor 配置示例
{
"mcpServers": {
"uml_diagram_generator": {
"command": "python",
"args": [
"/path/to/uml-mcp/mcp_server.py"
]
}
}
}
使用说明
命令行参数
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 服务器 URL 地址用于图表渲染
PLANTUML_SERVER
: PlantUML 服务器 URL 地址用于图表渲染
LIST_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/
目录中。
测试代码示例
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"
})
详细文档
服务器功能概述
- 支持 UML 类图、序列图等多种图表类型
- 提供 RESTful API 接口进行交互
- 可扩展的插件系统支持自定义图表生成逻辑
安装依赖
pip install -r requirements.txt
启动服务器
python mcp_server.py
调试信息
- 日志级别: DEBUG, INFO, WARNING, ERROR, CRITICAL
- 日志文件: logs/debug.log
示例代码
from uml_generator import UMLGenerator
generator = UMLGenerator()
diagram_code = '''
@startuml
class User {
-id: int
-name: string
+login(): boolean
}
@enduml
'''
output_path = "examples/output.png"
generator.generate(diagram_code, output_path)
高级功能
- 支持批量处理多个图表
- 提供进度条显示生成状态
- 可自定义输出格式 (PNG, SVG, PDF)
项目结构
目录说明
.
├── uml_generator/
│ ├── __init__.py
│ ├── generator.py # 主生成器类
│ ├── plugins/ # 插件目录
│ └── utils.py # 工具函数
├── requirements.txt # 依赖管理文件
└── mcp_server.py # 服务启动脚本
代码结构
generator.py
class UMLGenerator:
def __init__(self):
self.plugins = []
def add_plugin(self, plugin):
"""添加自定义插件"""
self.plugins.append(plugin)
def generate(self, code, output_path):
"""生成图表"""
pass
utils.py
import logging
def setup_logging():
"""配置日志系统"""
logging.basicConfig(
level=logging.DEBUG,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
使用指南
快速入门
- 安装依赖:
pip install -r requirements.txt
- 初始化生成器:
from uml_generator import UMLGenerator
generator = UMLGenerator()
- 生成图表:
diagram_code = '''
@startuml
class User {
-id: int
}
@enduml
'''
generator.generate(diagram_code, "output.png")
高级配置
from uml_generator.plugins.example_plugin import ExamplePlugin
generator.add_plugin(ExamplePlugin())
import logging
logging.getLogger("uml_generator")..setLevel(logging.INFO)
错误处理
常见问题
- 未安装依赖包:请检查
requirements.txt
并重新安装。
- 日志不显示:请确认日志文件权限和路径设置正确。
报错信息示例
Traceback (most recent call last):
File "mcp_server.py", line 18, in <module>
from uml_generator.generator import UMLGenerator
ModuleNotFoundError: No module named 'uml_generator'
贡献指南
提交代码规范
- 遵循 PEP8 编码风格
- 提供详细的提交信息
- 确保单元测试通过
协作流程
- Fork 项目仓库
- 创建功能分支
- 提交代码并Push到远程仓库
- 提交Pull Request