UML-MCP Server

UML-MCP Server

一个可以通过自然语言描述或 PlantUML 代码生成各种 UML 图的工具,它作为一个 MCP 服务器运行,可以与像 Claude 这样的客户端集成。 (Alternatively, a slightly more formal translation:) 一个可以通过自然语言描述或 PlantUML 代码生成各种 UML 图表的工具,并作为 MCP 服务器运行,以便与诸如 Claude 的客户端进行集成。

Category
访问服务器

README

UML-MCP-Server

English | 中文

smithery badge

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

手动安装

  1. 克隆仓库:
git clone https://github.com/yourusername/UML-MCP-Server.git
cd UML-MCP-Server
  1. 创建并激活虚拟环境:
python -m venv uml-mcp-venv
source uml-mcp-venv/bin/activate  # Linux/Mac
# Or
uml-mcp-venv\Scripts\activate  # Windows
  1. 安装依赖:
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 图。配置步骤如下:

  1. 确保已安装最新版本的 Cursor IDE(支持 MCP 功能)。

  2. 打开 Cursor 的配置文件:

  • 在 macOS 上:~/Library/Application Support/Cursor/config.json
  • 在 Windows 上:%APPDATA%\Cursor\config.json
  • 在 Linux 上:~/.config/Cursor/config.json
  1. 在配置文件中添加或修改 '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 图像的目录路径
  1. 保存配置文件并重启 Cursor。

  2. 在 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 并返回以下内容:

  1. PlantUML 代码 - 您可以复制此代码以在其他 PlantUML 工具中使用
  2. PlantUML URL - 您可以在浏览器中打开此 URL 以查看生成的 UML 图
  3. 本地文件路径 - 生成的 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 时遇到问题,可以尝试以下步骤:

  1. 检查日志文件:查看 'logs' 目录中的日志文件以获取错误详细信息
  2. 验证依赖安装:确保所有依赖项都已正确安装
  3. 检查网络连接:确保可以访问 PlantUML 服务器 (www.plantuml.com)
  4. 检查输出目录权限:确保程序有权写入 'output' 目录

常见问题和解决方案:

  • 无法生成 UML 图:检查日志中的错误消息,这可能是由于网络问题或 PlantUML 服务器暂时不可用造成的
  • 图像未在本地保存:检查 'output' 目录是否存在并且具有写入权限
  • MCP 服务器无法启动:检查日志文件以确保没有端口冲突或其他程序错误

贡献

欢迎贡献代码、报告问题或提供改进建议!请通过 GitHub Issues 或 Pull Requests 参与项目开发。

许可证

本项目采用 MIT 许可证。请参阅 LICENSE 文档了解详细信息。

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选
mcp-server-qdrant

mcp-server-qdrant

这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。

官方
精选
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选