diagram-mcp-server
通过自然语言让AI实时生成多云基础设施可视化图表的MCP服务器
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
通过自然语言让AI实时生成多云基础设施可视化图表的MCP服务器
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:Kubernetes 架构示意图 — 展示 MCP Server 如何生成集群拓扑图
想象一个场景:凌晨两点,你被告警叫醒,生产环境的某个服务出现了故障。你需要快速向团队描述当前的微服务架构,但手头只有一堆 Kubernetes YAML 文件和 Terraform 代码——用文字描述一遍至少要半小时。这时候,你只需要对 AI 助手说一句话:帮我生成一张当前架构的图,几秒钟后,一张清晰的 Kubernetes 集群拓扑图就出现在你的工作目录里。这不是科幻,而是 infrastructure-diagram-mcp-server 正在做的事。
这个项目并非凭空诞生。它的母体是 AWS Labs 开源的 aws-diagram-mcp-server,由 Andrii Moshurenko 在 2025 年进行了深度改造,将原本只支持 AWS 的单云方案,扩展为支持 AWS、GCP、Azure、Kubernetes、混合云、多云 六大场景的统一 MCP 服务器。
MCP(Model Context Protocol,模型上下文协议)是 Anthropic 在 2024 年底推出的开放标准,旨在让 AI 助手能够调用外部工具和数据源。与传统插件系统不同,MCP 的设计哲学是通过标准化的协议层,让 AI 与工具之间建立双向上下文感知——AI 不仅能调用工具,还能将工具返回的结果作为推理的上下文。infrastructure-diagram-mcp-server 正是这一理念的践行者:它将基础设施绘图能力以 MCP 工具的形式暴露给 Claude Desktop(或任何兼容 MCP 的客户端),让 AI 在思考架构问题时能够实时生成可视化图表。
项目采用 Apache 2.0 开源许可,目前在 GitHub 上拥有 138 颗星,Python 技术栈,要求 Python >= 3.12。
图2:AWS 无服务器架构 — API Gateway + Lambda + DynamoDB 经典组合
该 MCP 服务器向 AI 客户端暴露了七个工具,覆盖了从图标发现到代码扫描的完整工作流:
1. list_icons — 图标浏览器
这是上手的第一步。通过这个工具,AI 可以浏览 diagrams Python 包中所有支持的图标,按云厂商(AWS/GCP/Azure)、服务类型(计算、存储、网络、AI/ML)和图标名称进行过滤。例如,AI 可以先调用 list_icons 找到 AWS Lambda 的正确导入路径,再将其用于后续的图表生成代码。整个过程无需人工查阅文档。
2. get_diagram_examples — 示例代码生成器
提供 11 种图表类型的参考代码,覆盖 aws、gcp、azure、k8s、onprem、hybrid、multicloud、sequence(时序图)、flow(流程图)、class(类图)和 custom(自定义)。AI 只需指定图表类型,就能获得可直接运行的 Python DSL 示例。这种示例驱动的设计大幅降低了生成正确图表的难度。
3. generate_diagram — 图表生成引擎(核心)
这是最关键的工具。它接收一段 Python diagrams 包 DSL 代码,执行后同时输出两种格式:PNG 图片(用于展示)和 .drawio 文件(可导入 draw.io / VS Code diagrams.net 插件进行二次编辑)。timeout 默认为 90 秒,支持自定义输出文件名和工作目录。
4. parse_terraform — Terraform 代码解析器
能够解析 Terraform HCL 代码,提取引用资源,生成对应的基础设施拓扑图。对于已经在用 Terraform 管理基础设施的团队,这意味着可以用 AI 直接将 HCL 代码翻译成可视化图表,无需手动重新绘制。
5. parse_kubernetes — Kubernetes 清单解析器
支持解析 Kubernetes YAML 清单文件,自动识别 Deployment、Service、Ingress、ConfigMap、Secret 等资源类型,并生成集群架构图。对于运维团队来说,这个功能特别实用:导入一个 Helm release 的所有 YAML,就能自动得到一张反映真实运行状态的集群拓扑。
6. parse_helm_chart — Helm Chart 模板解析器
要求系统已安装 Helm CLI(可选依赖)。解析 Helm 模板后生成架构图,可以预览模板渲染后的预期资源布局,在部署前就能看到架构设计。
7. scan_code — Python 代码安全扫描器
基于 Python AST 解析和 bandit 安全分析工具,扫描用户提交的 Python 代码是否包含安全风险(如硬编码凭证、不安全的导入等),并以 SARIF 标准格式输出结果。这个工具的存在说明项目设计者不仅关注可用性,也关注安全性。
图3:GCP 数据管道架构 — BigQuery + Dataflow + Cloud Storage 多组件协同
从代码结构来看,项目采用了清晰的模块化分层架构:
infrastructure_diagram_mcp_server/
├── server.py # MCP 入口,FastMCP 实例注册工具
├── diagrams_tools.py # 图表生成核心逻辑(异步 async)
├── models.py # Pydantic 数据模型 + 枚举定义
├── scanner.py # AST 代码扫描 + 安全分析
└── parsers/
├── helm_parser.py # Helm Chart 解析
├── k8s_parser.py # K8s YAML 解析
├── terraform_parser.py # Terraform HCL 解析
└── icon_resolver.py # 图标导入路径解析
核心依赖:
diagrams(mingrammer):Python 基础设施图表领域最成熟的 DSL 包,提供 500+ 云厂商和开源项目的图标。graphviz2drawio:将 GraphViz DOT 输出转换为 draw.io 兼容的 XML 格式,这是实现双格式输出的关键依赖。python-hcl2:Terraform HCL 文件解析。boto3:AWS SDK,用于更深入的 AWS 资源发现。mcp[cli]:MCP 协议实现,FastMCP 框架。pydantic:数据模型定义和验证。server.py 基于 FastMCP 框架构建,这是 MCP 官方推荐的 Python 服务器框架。所有工具函数均使用 async 异步定义,确保在与 MCP 客户端通信时不会阻塞。值得注意的是,项目头部保留了原始 AWS Labs 的 Apache 2.0 版权声明,Andrii Moshurenko 的修改部分也有清晰的 Copyright 标注——这体现了良好的开源合规意识。
图4:多云架构 — AWS + GCP + Azure 跨云互联拓扑
这个项目没有独立 Web 界面,而是以 MCP 服务器进程的形式运行,本质上是一个长时间服务(daemon)。用户需要通过配置 MCP 客户端(如 Claude Desktop 的 claude_desktop_config.json)来连接它。
依赖项梳理:
| 依赖 | 说明 |
|---|---|
| Python >= 3.12 | 运行时要求 |
| GraphViz + graphviz-devel | 图表渲染引擎,必须含开发头文件(否则 pygraphviz 无法编译) |
| uv 或 pip | 包管理器 |
| Helm(可选) | 完整 Helm Chart 模板解析需要 |
安装方式有两种:通过 PyPI pip install infrastructure-diagram-mcp-server 直接安装,或者用 Docker 构建镜像运行。Dockerfile 采用多阶段构建(multi-stage),使用 Amazon Linux 作为基础镜像,在构建阶段安装了 Rust 工具链(用于 graphviz2drawio 的编译依赖),最终产出精简的运行时镜像。
部署难度评分为「简单」,预计 10 分钟可完成安装配置。对于已有 Claude Desktop 的用户,只需在 claude_desktop_config.json 中加入一条 tool 配置即可启用。
硬件方面,该项目是纯 CPU 计算,不需要 GPU。内存占用约 1GB,磁盘 500MB,完全可以在树莓派级别的硬件上运行。
⚠️ 局限与注意事项:
diagrams 包生成的图表美观度高度依赖 GraphViz 布局算法,对于复杂的多层架构,自动化布局可能不够理想,需要手动编辑导出的 .drawio 文件。diagrams 包的版本,部分小众云服务或自研组件可能没有现成图标。parse_helm_chart 依赖 Helm CLI,如果系统未安装则退化为简化模式,模板渲染能力受限。
图5:Azure 无服务器架构 — Functions + Event Grid + Cosmos DB 事件驱动模型
infrastructure-diagram-mcp-server 代表的趋势,是将 AI 驱动的可视化 融入开发者的日常工具链。在传统的 DevOps 流程中,基础设施文档往往是项目启动时写一次,之后长期失修——代码变了,架构图画的是三个月前的状态。
而 MCP 协议的出现改变了这一现状。当 AI 能够读取真实代码、执行工具、生成输出时,图表不再需要人工维护。每次架构变更后,开发者只需向 AI 描述变更内容,就能自动生成更新后的架构图——文档从一次性产物变成了按需生成的实时快照。
从更宏观的视角看,这个项目还体现了多云基础设施即代码(IaC)的可视化需求。随着企业用 Terraform、Pulumi 等工具管理多云资源,如何让非技术人员也能理解这些代码描述的架构,是一个长期痛点。该项目用 AI + MCP + diagrams 的组合,给出了一个有启发性的答案。
GitHub stars 增长曲线显示,项目在 2025 年中获得了较快增长,与 MCP 协议本身的推广节奏高度同步。随着更多 MCP 兼容客户端的出现,这类工具的适用范围还将进一步扩大。
总结:如果你在管理多云基础设施,或经常需要向非技术人员解释系统架构,这个工具值得一试。它不是万能的——对于复杂的多层微服务架构,自动化布局有其局限——但作为日常文档维护和快速原型设计的辅助工具,它已经足够好用。