mcpField
D
Diagrams

Diagrams

远程服务
github.com/ByteOverDev开发工具34 周前更新
代码仓库

关于 Diagrams

Diagrams 是用于生成云架构图、流程图、时序图、UML 等图表的 MCP 服务,面向开发者和基础设施团队。它整合 mingrammer/diagrams、Mermaid 与 PlantUML,并提供节点发现和跨云服务等价项查询。

主要功能

  1. 01渲染云架构图
  2. 02渲染 Mermaid 和 PlantUML
  3. 03发现提供商、服务和节点
  4. 04按关键词搜索图表节点
  5. 05查找云服务等价项

适用场景

  1. 01可视化云基础设施设计
  2. 02绘制 CI/CD 流程图
  3. 03记录身份验证时序

MCP 相关

提供图表渲染、发现、搜索和跨提供商查询工具,并通过 MCP 资源提供参考文档。可在本地运行,也可使用将渲染工作委托给独立服务的 HTTP 门面。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://diagrams-mcp-production.up.railway.app/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

安装包
pypidiagrams-mcp-server0.1.2

工具

详细介绍

diagrams-mcp-server

PyPI CI

用于生成云架构图、流程图、时序图等的 MCP 服务,由三种渲染引擎提供支持:mingrammer/diagrams、Mermaid 和 PlantUML。

示例图

开始使用

本地安装
先决条件

默认的本地/进程内渲染模式需要 Graphviz。Mermaid CLI 和 PlantUML 是可选项——只有在需要在本地使用对应的渲染引擎时才安装。

依赖项用途安装
Graphvizrender_diagram(云架构)brew install graphviz
Mermaid CLIrender_mermaid(流程图、时序图等)npm install -g @mermaid-js/mermaid-cli
Java + PlantUMLrender_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/mermaid6 种图表类型的 Mermaid 语法示例
diagrams://reference/plantuml6 种图表类型的 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 流水线的流程图”

Mermaid 流程图

时序图(PlantUML)

“展示客户端、API 网关和身份验证服务之间的身份验证流程”

PlantUML 时序图

@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.tomlRailway 外观层服务配置示例
railway.renderer.tomlRailway 渲染器服务配置示例

主要环境变量:

变量用途
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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。