返回市场
uml微服务控制器

uml微服务控制器

作者:antoinebou1262 星标更新:2025-11-15

项目介绍

UML-MCP:一款支持MCP接口的图生成服务器

MIT许可证 Python 3.10+ smithery徽章

UML-MCP是一款强大的图生成服务器,实现了模型上下文协议(MCP),使得可以直接从AI助手和其他应用程序无缝创建图表。

🌟 特性

  • 多种图表类型:支持UML图表(类、序列、活动等)、Mermaid、D2等
  • MCP集成:与支持模型上下文协议的大型语言模型助手无缝集成
  • 在线编辑器链接:每种图表类型的直接链接到在线编辑器
  • 多种输出格式:SVG、PNG、PDF等多种格式选项
  • 简单配置:适用于本地和远程图表渲染服务

📋 支持的图表类型

UML-MCP支持广泛的图表类型:

类别图表类型
UML类、序列、活动、用例、状态、组件、部署、对象
其他Mermaid、D2、Graphviz、ERD、BlockDiag、BPMN、C4与PlantUML

🚀 快速开始

预备条件

  • Python 3.10或更高版本
  • pip(Python包管理器)

安装

  1. 克隆仓库:
git clone https://github.com/yourusername/uml-mcp.git
cd uml-mcp
  1. 安装依赖项:
pip install -r requirements.txt
  1. 开发环境:
pip install -r requirements-dev.txt

运行服务器

启动MCP服务器:

python mcp_server.py

这将使用标准I/O通信启动服务器。

🔧 配置

编辑器集成

Cursor

要与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服务器(真/假)

📚 文档

详细文档,请访问docs目录或我们的文档网站

🧩 架构

UML-MCP采用模块化架构构建:

  • MCP服务器核心:处理MCP协议通信
  • 图表生成器:支持不同类型的图表
  • 工具:通过MCP暴露图表生成功能
  • 资源:提供各种图表类型的模板和示例

🛠️ 本地开发

对于本地开发:

  1. 设置本地PlantUML和/或Kroki服务器:
# PlantUML
docker run -d -p 8080:8080 plantuml/plantuml-server

# Kroki
docker run -d -p  8000:8000 yuzutech/kroki
  1. 配置环境变量:
export USE_LOCAL_PLANTUML=true
export PLANTUML_SERVER=http://localhost:8080
export USE_LOCAL_KROKI=true  
export KROKI_SERVER=http://localhost:8000

🤝 贡献

欢迎贡献!请随意提交拉取请求。

📄 许可证

本项目采用MIT许可证 - 详情见LICENSE文件。

👏 致谢

  • PlantUML - UML图表生成
  • Kroki - 统一的图表生成服务
  • Mermaid - 从文本生成图表
  • D2 - 现代图表脚本语言

UML-MCP服务器

一个MCP服务器,通过各种图表渲染引擎提供UML图表生成能力。

组件

资源

服务器通过uml://URI方案提供多个资源:

  • uml://types:可用的UML图表类型列表
  • uml://templates:创建UML图表的模板
  • uml://examples:参考用的UML图表示例
  • uml://formats:支持的图表输出格式
  • uml://server-info:关于UML-MCP服务器的信息

工具

服务器实现多个图表生成工具:

普通UML生成器

  • generate_uml:生成任何UML图表
    • 参数:diagram_typecodeoutput_dir

特定UML图表工具

  • generate_class_diagram:生成UML类图
    • 参数:codeoutput_dir
  • generate_sequence_diagram:生成UML序列图
    • 参数:codeoutput_dir
  • generate_activity_diagram:生成UML活动图
    • 参数:codeoutput_dir
  • generate_usecase_diagram:生成UML用例图
    • 参数:codeoutput_dir
  • generate_state_diagram:生成UML状态图
    • 参数:codeoutput_dir
  • generate_component_diagram:生成UML组件图
    • 参数:codeoutput_dir
  • generate_deployment_diagram:生成UML部署图
    • 参数:codeoutput_dir
  • generate_object_diagram:生成UML对象图
    • 参数:codeoutput_dir

其他图表格式

  • generate_mermaid_diagram:使用Mermaid语法生成图表
    • 参数:codeoutput_dir
  • generate_d2_diagram:使用D2语法生成图表
    • 参数:codeoutput_dir
  • generate_graphviz_diagram:使用Graphviz DOT语法生成图表
    • 参数:codeoutput_dir
  • generate_erd_diagram:生成实体关系图
    • 参数:codeoutput_dir

提示

服务器提供了帮助创建UML图表的提示:

  • class_diagram:创建显示类、属性、方法和关系的UML类图
  • sequence_diagram:创建显示对象之间随时间交互的UML序列图
  • activity_diagram:创建显示工作流和业务流程的UML活动图

配置

安装

Claude Desktop

在MacOS上:~/Library/Application\ Support/Claude/claude_desktop_config.json
在Windows上:%APPDATA%/Claude/claude_desktop_config.json

<details> <summary>Claude Desktop配置</summary>
{
  "mcpServers": {
    "uml_diagram_generator": {
      "command": "python",
      "args": [
        "/path/to/uml-mcp/mcp_server.py"
      ]
    }
  }
}
</details>

Cursor集成

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服务器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/目录中。

运行测试

# 运行所有测试
pytest

# 运行特定测试
pytest tests/test_diagram_tools.py