关于 Diagrams
Diagrams 是用于生成云架构图、流程图、时序图、UML 等图表的 MCP 服务,面向开发者和基础设施团队。它整合 mingrammer/diagrams、Mermaid 与 PlantUML,并提供节点发现和跨云服务等价项查询。
主要功能
- 01渲染云架构图
- 02渲染 Mermaid 和 PlantUML
- 03发现提供商、服务和节点
- 04按关键词搜索图表节点
- 05查找云服务等价项
适用场景
- 01可视化云基础设施设计
- 02绘制 CI/CD 流程图
- 03记录身份验证时序
MCP 相关
提供图表渲染、发现、搜索和跨提供商查询工具,并通过 MCP 资源提供参考文档。可在本地运行,也可使用将渲染工作委托给独立服务的 HTTP 门面。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://diagrams-mcp-production.up.railway.app/mcpclaude mcp add --transport http mskry-diagrams https://diagrams-mcp-production.up.railway.app/mcp{"mcpServers":{"mskry-diagrams":{"type":"http","url":"https://diagrams-mcp-production.up.railway.app/mcp"}}}在 Cursor 中打开{"servers":{"mskry-diagrams":{"type":"http","url":"https://diagrams-mcp-production.up.railway.app/mcp"}}}在 VS Code 中打开{"mcpServers":{"mskry-diagrams":{"type":"http","url":"https://diagrams-mcp-production.up.railway.app/mcp"}}}{"mcpServers":{"mskry-diagrams":{"serverUrl":"https://diagrams-mcp-production.up.railway.app/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
diagrams-mcp-server
用于生成云架构图、流程图、时序图等的 MCP 服务,由三种渲染引擎提供支持:mingrammer/diagrams、Mermaid 和 PlantUML。

开始使用
本地安装
先决条件
默认的本地/进程内渲染模式需要 Graphviz。Mermaid CLI 和 PlantUML 是可选项——只有在需要在本地使用对应的渲染引擎时才安装。
| 依赖项 | 用途 | 安装 |
|---|---|---|
| Graphviz | render_diagram(云架构) | brew install graphviz |
| Mermaid CLI | render_mermaid(流程图、时序图等) | npm install -g @mermaid-js/mermaid-cli |
| Java + PlantUML | render_plantuml(UML 图) | brew install openjdk + 下载 plantuml.jar |
安装服务
通过 uvx(推荐):
uvx diagrams-mcp-server
通过 pip:
pip install diagrams-mcp-server
从源码安装:
pip install git+https://github.com/ByteOverDev/diagrams-mcp.git
配置 MCP 客户端
Claude Desktop
添加到 claude_desktop_config.json(Settings → Developer → Edit Config):
uvx(推荐):
{
"mcpServers": {
"diagrams-mcp": {
"command": "uvx",
"args": ["diagrams-mcp-server"]
}
}
}
pip:
{
"mcpServers": {
"diagrams-mcp": {
"command": "diagrams-mcp-server"
}
}
}
Claude Code(CLI)
运行:
claude mcp add diagrams-mcp -- uvx diagrams-mcp-server
或添加到 .mcp.json:
uvx(推荐):
{
"mcpServers": {
"diagrams-mcp": {
"command": "uvx",
"args": ["diagrams-mcp-server"]
}
}
}
pip:
{
"mcpServers": {
"diagrams-mcp": {
"command": "diagrams-mcp-server"
}
}
}
Cursor
添加到 .cursor/mcp.json:
uvx(推荐):
{
"mcpServers": {
"diagrams-mcp": {
"command": "uvx",
"args": ["diagrams-mcp-server"]
}
}
}
pip:
{
"mcpServers": {
"diagrams-mcp": {
"command": "diagrams-mcp-server"
}
}
}
Windsurf
添加到 ~/.codeium/windsurf/mcp_config.json:
uvx(推荐):
{
"mcpServers": {
"diagrams-mcp": {
"command": "uvx",
"args": ["diagrams-mcp-server"]
}
}
}
pip:
{
"mcpServers": {
"diagrams-mcp": {
"command": "diagrams-mcp-server"
}
}
}
VS Code
添加到 .vscode/mcp.json:
uvx(推荐):
{
"servers": {
"diagrams-mcp": {
"type": "stdio",
"command": "uvx",
"args": ["diagrams-mcp-server"]
}
}
}
pip:
{
"servers": {
"diagrams-mcp": {
"type": "stdio",
"command": "diagrams-mcp-server"
}
}
}
可用工具
查询
list_providers()→list[str]— 列出所有图表提供方(aws、gcp、k8s、azure、onprem等)list_services(provider)→list[str]— 列出某个提供方中的服务类别(例如aws→compute、database、network)list_nodes(provider, service)→list[dict]— 列出某个提供方与服务组合对应的节点类及其导入路径search_nodes(query)→list[dict]— 按关键字搜索所有提供方中的节点(例如 "postgres"、"lambda")
渲染
render_diagram(code)→Image(PNG) — 在沙盒子进程中执行使用 mingrammer/diagrams 的 Python 脚本。返回渲染后的云架构图。render_mermaid(definition)→Image(PNG/SVG) — 渲染 Mermaid 图表定义(流程图、时序图、类图、ER 图、状态图、甘特图等)。render_plantuml(definition)→Image(PNG) — 渲染 PlantUML 图表定义(时序图、类图、组件图、活动图、状态图、部署图)。
跨提供方等效项
find_equivalent(node, target_provider?)→dict— 查找不同云提供方中的等效服务(例如EC2→ GCP 上的ComputeEngine)。list_categories()→list[dict]— 列出全部 30 种基础设施角色类别及各提供方中对应的节点。
资源
服务器通过 MCP 资源 URI 提供可访问的参考文档:
| URI | 描述 |
|---|---|
diagrams://reference/diagram | 图表构造函数参数、默认值和用法 |
diagrams://reference/edge | 边操作符、标签、样式和链式调用 |
diagrams://reference/cluster | 集群嵌套、样式和图属性 |
diagrams://reference/mermaid | 6 种图表类型的 Mermaid 语法示例 |
diagrams://reference/plantuml | 6 种图表类型的 PlantUML 语法示例 |
示例
云架构(mingrammer/diagrams)
“绘制一个 AWS 架构图,其中 ALB 将流量路由到两个 ECS 服务,并由 RDS 和 ElastiCache 提供支持”
from diagrams import Diagram, Cluster
from diagrams.aws.network import ALB
from diagrams.aws.compute import ECS
from diagrams.aws.database import RDS, ElastiCache
with Diagram("ECS Service", direction="LR"):
lb = ALB("ALB")
with Cluster("ECS Cluster"):
services = [ECS("Web"), ECS("API")]
lb >> services
services[0] >> ElastiCache("Cache")
services[1] >> RDS("Database")
流程图(Mermaid)
“创建一个展示 CI/CD 流水线的流程图”

时序图(PlantUML)
“展示客户端、API 网关和身份验证服务之间的身份验证流程”

@startuml
Client -> "API Gateway": POST /login
"API Gateway" -> "Auth Service": Validate credentials
"Auth Service" --> "API Gateway": JWT token
"API Gateway" --> Client: 200 OK + token
Client -> "API Gateway": GET /data (Bearer token)
"API Gateway" -> "Auth Service": Verify token
"Auth Service" --> "API Gateway": Valid
"API Gateway" --> Client: 200 OK + data
@enduml
开发
# Clone and install
git clone https://github.com/ByteOverDev/diagrams-mcp.git
cd diagrams-mcp
pip install -e ".[dev]"
# Run tests
pytest
# Lint and format
ruff check .
ruff format .
# Run the MCP server locally (stdio mode)
diagrams-mcp-server
外观层/渲染器拆分模式
对于托管部署,MCP 服务可以作为轻量级外观层运行,并将渲染工作委托给独立的渲染器服务。这样可以让常驻运行的 MCP 进程保持精简,同时仅在渲染器镜像中安装 Graphviz、Chromium、Mermaid CLI、Java 和 PlantUML。
# Terminal 1: renderer service
RENDERER_HOST=0.0.0.0 RENDERER_PORT=8001 diagrams-renderer-server
# Terminal 2: HTTP MCP facade delegating to the renderer
FASTMCP_TRANSPORT=http \
FASTMCP_HOST=0.0.0.0 \
FASTMCP_PORT=8000 \
DIAGRAMS_RENDERER_MODE=remote \
DIAGRAMS_RENDERER_URL=http://127.0.0.1:8001 \
diagrams-mcp-server
其中包含 Docker/Railway 示例:
| 文件 | 用途 |
|---|---|
Dockerfile.facade | 不含仅供渲染器使用的二进制文件的精简 MCP 外观层镜像 |
Dockerfile.renderer | 包含 Graphviz、Chromium、Mermaid CLI、Java 和 PlantUML 的渲染器镜像 |
railway.facade.toml | Railway 外观层服务配置示例 |
railway.renderer.toml | Railway 渲染器服务配置示例 |
主要环境变量:
| 变量 | 用途 |
|---|---|
DIAGRAMS_RENDERER_MODE=remote | 使外观层使用 HTTP 渲染器服务 |
DIAGRAMS_RENDERER_URL | 渲染器基础 URL,例如 http://diagrams-renderer.railway.internal:8080 |
DIAGRAMS_IMAGE_STORE_DIR | 可选的基于文件的临时图像存储目录 |
BASE_URL | 可选的公共基础 URL,用于返回绝对下载链接 |
支持的提供商
render_diagram 工具支持 mingrammer/diagrams 库中的所有提供商,包括:
AWS、GCP、Azure、Kubernetes、On-Premise、AlibabaCloud、OCI、OpenStack、DigitalOcean、Elastic、Outscale、Generic 和 Custom 节点。
使用 list_providers() 和 search_nodes(query) 查找可用节点。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。