🚀 UML 圖生成服務器文檔
本項目是一個 UML-MCP 圖形生成服務器,可支持 UML 類圖、序列圖等多種圖表類型,提供 RESTful API 接口進行交互,還具備可擴展的插件系統支持自定義圖表生成邏輯。
🚀 快速開始
- 安裝依賴:
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")
✨ 主要特性
- 支持 UML 類圖、序列圖等多種圖表類型。
- 提供 RESTful API 接口進行交互。
- 具備可擴展的插件系統支持自定義圖表生成邏輯。
- 支持批量處理多個圖表。
- 提供進度條顯示生成狀態。
- 可自定義輸出格式 (PNG, SVG, PDF)。
📦 安裝指南
在 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"
]
}
}
}
💻 使用示例
基礎用法
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)
高級用法
生成類圖
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"
})
高級配置
from uml_generator.plugins.example_plugin import ExamplePlugin
generator.add_plugin(ExamplePlugin())
import logging
logging.getLogger("uml_generator").setLevel(logging.INFO)
📚 詳細文檔
安裝依賴
pip install -r requirements.txt
啟動服務器
python mcp_server.py
調試信息
- 日誌級別: DEBUG, INFO, WARNING, ERROR, CRITICAL
- 日誌文件: logs/debug.log
命令行參數
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" 以顯示工具列表並退出
🔧 技術細節
項目結構
目錄說明
.
├── 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'
)
構建和運行
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/
目錄中。
📄 許可證
文檔中未提及相關許可證信息。
❌ 錯誤處理
常見問題
- 未安裝依賴包:請檢查
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。