UML-MCP Server
一个可以通过自然语言描述或 PlantUML 代码生成各种 UML 图的工具,它作为一个 MCP 服务器运行,可以与像 Claude 这样的客户端集成。 (Alternatively, a slightly more formal translation:) 一个可以通过自然语言描述或 PlantUML 代码生成各种 UML 图表的工具,并作为 MCP 服务器运行,以便与诸如 Claude 的客户端进行集成。
README
UML-MCP-Server
UML-MCP Server 是一个基于 MCP (Model Context Protocol) 的 UML 图生成工具,可以帮助用户通过自然语言描述或直接编写 PlantUML 代码来生成各种类型的 UML 图。
功能特性
- 支持多种 UML 图类型:类图、时序图、活动图、用例图、状态图、组件图、部署图、对象图
- 可以通过自然语言描述生成 UML 图
- 可以直接使用 PlantUML 代码生成 UML 图
- 返回 PlantUML 代码和可访问的 URL 链接,方便共享和查看
- 同时将生成的 UML 图保存到本地,并提供本地文件路径
- 支持自定义保存路径,指定 UML 图像的输出目录
- 作为一个 MCP 服务器,它可以与支持 MCP 的客户端集成,例如 Claude
- 完善的日志系统,记录服务器运行状态和操作日志
安装
通过 Smithery 安装
要通过 Smithery 自动安装用于 Claude Desktop 的 UML 图生成工具:
npx -y @smithery/cli install @Swayingleaves/uml-mcp-server --client claude
手动安装
- 克隆仓库:
git clone https://github.com/yourusername/UML-MCP-Server.git
cd UML-MCP-Server
- 创建并激活虚拟环境:
python -m venv uml-mcp-venv
source uml-mcp-venv/bin/activate # Linux/Mac
# Or
uml-mcp-venv\Scripts\activate # Windows
- 安装依赖:
pip install -r requirements.txt
使用方法
作为 Python 库使用
from fix_plantuml import generate_uml
# 创建 UML 代码
uml_code = """
@startuml
Title: Simple Class Diagram
class User {
-String name
-String email
+login()
+logout()
}
class Order {
-int id
-Date date
+process()
}
User "1" -- "many" Order: places
@enduml
"""
# 生成 UML 图的 URLs、代码和本地路径
result = generate_uml(uml_code)
# 输出结果
print("PlantUML code: ")
print(result["code"])
print("\nPlantUML URL:")
print(result["url"])
print("\nLocal file path: ")
print(result["local_path"])
在 Cursor 中配置 MCP
Cursor 支持 MCP (Model Context Protocol) 服务器,允许您直接在 Cursor 中使用 UML-MCP Server 生成 UML 图。配置步骤如下:
-
确保已安装最新版本的 Cursor IDE(支持 MCP 功能)。
-
打开 Cursor 的配置文件:
- 在 macOS 上:
~/Library/Application Support/Cursor/config.json - 在 Windows 上:
%APPDATA%\Cursor\config.json - 在 Linux 上:
~/.config/Cursor/config.json
- 在配置文件中添加或修改 'mcpServer' 部分:
{
"mcpServers": {
"UML-MCP-Server": {
"command": "uv",
"args": [
"--directory",
"/Users/yourpath/UML-MCP-Server",
"run",
"uml_mcp_server.py"
],
"output_dir": "/Users/yourpath/uml-output"
}
}
}
配置说明:
- UML-MCP-Server:MCP 服务器的名称,可以根据需要修改
- Command:使用 UV 作为运行命令
args:- directory:指定项目目录的绝对路径
run:运行命令- uml_mcp_server.py:主程序文件
output_dir:指定 UML 图像的输出目录
请根据您的实际情况修改以下路径:
- 将 '/Users/Yourpath/UML-MCP Server' 替换为您的 UML-MCP Server 项目的实际路径
- 将 '/Users/Yourpath/uml-output' 替换为您想要保存 UML 图像的目录路径
-
保存配置文件并重启 Cursor。
-
在 Cursor 中使用 UML-MCP Server:
- 打开一个新的聊天窗口
- 在聊天界面底部的工具栏中,您将看到 "UML-MCP Server" 工具图标
- 点击此图标将弹出 UML 工具的选项菜单
- 选择您需要的 UML 图类型(例如 "生成类图"、"生成时序图" 等)
在 Cursor 中使用 UML 工具
在 Cursor 中,您可以输入:
例如:
1. 了解项目的认证流程
2. 生成认证流程的 UML 代码,并通过 UML-MCP Server 生成流程图
3. 注意: "output_dir": "/Users/edy/vs-code/bjwa-task-project/uml-output"
UML 工具返回的结果
无论如何使用 UML 工具,Cursor 都会调用 UML-MCP-Server 并返回以下内容:
- PlantUML 代码 - 您可以复制此代码以在其他 PlantUML 工具中使用
- PlantUML URL - 您可以在浏览器中打开此 URL 以查看生成的 UML 图
- 本地文件路径 - 生成的 UML 图像保存在此本地路径中
例如:
类图已生成:
PlantUML 代码:
@startuml
Title: User and Order System
class User {
-String name
-String email
+login()
+logout()
}
class Order {
-int id
-Date date
+process()
}
User "1" -- "many" Order: places
@enduml
PlantUML URL:
http://www.plantuml.com/plantuml/png/~1UDgCqB5Bn0G1k1zYWM_EfPYQYY0Qd9oQc9oQaPcKYYcKc9gMYaiKc9gK...
本地文件路径:
/Users/username/projects/UML-MCP-Server/output/class_diagram_12345.png
您可以通过以下方式查看生成的 UML 图:
- 点击返回的 URL 链接以在浏览器中查看
- 在文件浏览器中打开本地文件路径以查看保存的图像
- 在 Cursor 中,您可以使用 Markdown 语法直接在聊天窗口中显示图像
故障排除
如果您在使用 UML-MCP Server 时遇到问题,可以尝试以下步骤:
- 检查日志文件:查看 'logs' 目录中的日志文件以获取错误详细信息
- 验证依赖安装:确保所有依赖项都已正确安装
- 检查网络连接:确保可以访问 PlantUML 服务器 (www.plantuml.com)
- 检查输出目录权限:确保程序有权写入 'output' 目录
常见问题和解决方案:
- 无法生成 UML 图:检查日志中的错误消息,这可能是由于网络问题或 PlantUML 服务器暂时不可用造成的
- 图像未在本地保存:检查 'output' 目录是否存在并且具有写入权限
- MCP 服务器无法启动:检查日志文件以确保没有端口冲突或其他程序错误
贡献
欢迎贡献代码、报告问题或提供改进建议!请通过 GitHub Issues 或 Pull Requests 参与项目开发。
许可证
本项目采用 MIT 许可证。请参阅 LICENSE 文档了解详细信息。
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。