UML图生成MCP服务器
项目简介
本项目 'UML-MCP-Server' 是一个实现了 Model Context Protocol (MCP) 的服务器,专注于UML(统一建模语言)图的生成。它允许用户通过自然语言描述或直接编写 PlantUML 代码来创建多种类型的 UML 图,例如类图、序列图、活动图等。作为一个 MCP 服务器,它可以无缝集成到支持 MCP 协议的客户端应用中,例如 Cursor 编辑器,从而在这些客户端中直接提供 UML 图生成能力。
主要功能点
- 支持多种 UML 图类型: 包括类图、序列图、活动图、用例图、状态图、组件图、部署图和对象图。
- 自然语言生成 UML 图: 允许通过自然语言描述来生成相应的 UML 图。
- PlantUML 代码生成 UML 图: 支持直接使用 PlantUML 文本代码生成 UML 图。
- 多种输出格式: 返回 PlantUML 代码和可访问的 PlantUML 在线 URL,方便分享和查看。
- 本地保存: 同时将生成的 UML 图保存到本地文件系统,并提供本地文件路径。
- 自定义输出路径: 支持用户自定义 UML 图片的保存路径和输出目录。
- MCP 服务器: 作为一个标准的 MCP 服务器,可以与任何支持 MCP 协议的客户端集成。
- 完善的日志系统: 记录服务器运行状态和操作日志,方便问题排查。
安装步骤
-
克隆仓库: 首先,你需要将仓库克隆到本地:
git clone https://github.com/Swayingleaves/uml-mcp-server.git cd uml-mcp-server -
创建并激活虚拟环境 (推荐): 为了隔离项目依赖,建议创建一个 Python 虚拟环境:
python -m venv uml-mcp-venv source uml-mcp-venv/bin/activate # Linux/Mac # 或 uml-mcp-venv\Scripts\activate # Windows -
安装依赖: 安装项目所需的 Python 依赖包:
pip install -r requirements.txt
服务器配置
要将 'UML-MCP-Server' 作为 MCP 服务器集成到 MCP 客户端(例如 Cursor)中,你需要在客户端的配置文件中添加服务器配置信息。以下是一个典型的 'mcpServers' 配置示例(JSON 格式),你需要根据你的实际安装路径进行调整:
{ "mcpServers": { "UML-MCP-Server": { // MCP 服务器的名称,可以自定义 "command": "uv", // 运行命令,这里使用 uv (或 python,如果你的环境没有 uv) "args": [ // 命令参数列表 "--directory", // 指定工作目录 "/path/to/uml-mcp-server", // 替换为你的 'uml-mcp-server' 仓库的绝对路径 "run", // 运行命令 "uml_mcp_server.py" // 主程序文件名 ], "output_dir": "/path/to/uml-output" // 替换为你希望保存 UML 图片的输出目录的绝对路径 } } }
配置参数说明:
- '"UML-MCP-Server"': MCP 服务器的名称,在客户端中用于标识和调用该服务器。你可以自定义这个名称。
- '"command"': 启动 MCP 服务器的命令。通常是 Python 解释器 ('python' 或 'python3') 或更快的 'uv' 运行器(如果已安装)。请确保这个命令在你的系统环境变量 'PATH' 中可访问,或者使用绝对路径。
- '"args"': 传递给 'command' 的参数列表。
- '"directory"': 指定 MCP 服务器程序的工作目录,这里应设置为 'uml-mcp-server' 仓库的根目录的绝对路径。
- '"run"': 表示要运行 Python 脚本。
- '"uml_mcp_server.py"': 要运行的 MCP 服务器主程序文件名。
- '"output_dir"': 指定 UML 图片的输出目录。生成的 UML 图片将保存在这个目录下。你需要将其替换为你希望保存图片的目录的绝对路径。
请务必根据你的实际情况修改 '/path/to/uml-mcp-server' 和 '/path/to/uml-output' 为正确的绝对路径。
基本使用方法
配置完成后,在支持 MCP 客户端的应用中(例如 Cursor 编辑器),你通常可以通过以下步骤使用 UML 图生成功能:
- 打开或创建一个新的聊天窗口 (在 Cursor 中)。
- 在聊天输入框中输入你的需求,例如:
或者直接提供 PlantUML 代码:请为电商网站的用户注册流程生成一个序列图。@startuml Alice -> Bob: Authentication Request Bob --> Alice: Authentication Response @enduml - 选择 UML 工具: 在客户端的工具栏或菜单中,找到与 'UML-MCP-Server' 相关的工具入口(通常会是你配置的服务器名称 "UML-MCP-Server")。
- 执行生成: 根据客户端的界面操作,选择要生成的 UML 图类型或直接触发 UML 图生成功能。客户端会将请求发送到 'UML-MCP-Server'。
- 查看结果: 'UML-MCP-Server' 生成 UML 图后,客户端会返回结果,通常包括:
- PlantUML 代码: 你可以复制这段代码到其他 PlantUML 工具中使用。
- PlantUML URL: 一个在线 PlantUML 查看器链接,点击可以直接在浏览器中查看生成的 UML 图。
- 本地文件路径: UML 图图片保存在本地文件系统中的路径。
你可以在客户端的聊天窗口中查看 PlantUML 代码和 URL,并打开本地文件路径查看生成的 UML 图图片。
信息
分类
开发者工具