MCP服务器基础结构图
](https://pypi.org/project/infrastructure-diagram-mcp-server/) 
多云基础设施图的模型上下文协议(MCP)服务器
此MCP服务器无缝创建 图表 使用Python图表包DSL。为生成专业的基础设施图 任何云提供商 (AWS、GCP、Azure)、Kubernetes、本地、混合和多云架构,使用自然语言与Claude Desktop或其他MCP客户端配合使用。
备注:这是一部基于 awslab/aws图mcp服务器,扩展了多云提供商支持和增强功能。
先决条件
- 安装 GraphViz 带有开发标题 -图表生成和.drawio导出所需
- 安装
uv从 星体 (推荐)或使用pip - *(可选)* 安装 舵 -需要使用以下命令进行完整的Helm图表解析
parse_helm_chart
安装GraphViz
macOS(Homebrew):
brew install graphvizUbuntu/Debian:
sudo apt-get install graphviz graphviz-dev窗户(巧克力):
choco install graphviz或从以下网址下载 graphviz.org
安装Helm(可选)
使用Helm进行全模板渲染是必需的 parse_helm_chart 工具。如果没有Helm,解析器将使用具有有限模板支持的回退模式。
macOS(Homebrew):
brew install helmUbuntu/Debian:
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash窗户(巧克力):
choco install kubernetes-helm或从以下网址下载 helm.sh/docs/intro/install
MCP客户端配置
在MCP客户端中配置MCP服务器。这 CFLAGS 和 LDFLAGS (或 INCLUDE 和 LIB 在Windows上)的初始构建需要环境变量 pygraphviz.
macOS上的Claude桌面/光标 (~/Library/Application Support/Claude/claude_desktop_config.json 或 ~/.cursor/mcp.json):
{
"mcpServers": {
"infrastructure-diagrams": {
"command": "uvx",
"args": ["infrastructure-diagram-mcp-server"],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR",
"CFLAGS": "-I/opt/homebrew/include",
"LDFLAGS": "-L/opt/homebrew/lib"
}
}
}
}备注:/opt/homebrew是Apple Silicon Mac上的默认Homebrew前缀。对于Intel Mac,请使用/usr/local相反。
Linux (例如。, ~/.config/claude/claude_desktop_config.json):
{
"mcpServers": {
"infrastructure-diagrams": {
"command": "uvx",
"args": ["infrastructure-diagram-mcp-server"],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
}
}
}
}备注:在Linux上,安装graphviz-dev首先(sudo apt-get install graphviz graphviz-dev),则不需要额外的env变量。
视窗 (例如。, %APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"infrastructure-diagrams": {
"command": "uvx",
"args": ["infrastructure-diagram-mcp-server"],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR",
"INCLUDE": "C:\\Program Files\\Graphviz\\include",
"LIB": "C:\\Program Files\\Graphviz\\lib"
}
}
}
}备注:如果将Graphviz安装在其他位置,请调整其路径。
其他MCP客户端 (例如,基洛- ~/.kiro/settings/mcp.json):
{
"mcpServers": {
"infrastructure-diagrams": {
"command": "uvx",
"args": ["infrastructure-diagram-mcp-server"],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR",
"CFLAGS": "-I/opt/homebrew/include",
"LDFLAGS": "-L/opt/homebrew/lib"
},
"autoApprove": [],
"disabled": false
}
}
}Docker安装
使用Docker构建和运行:
docker build -t infrastructure-diagram-mcp-server .然后配置您的MCP客户端:
{
"mcpServers": {
"infrastructure-diagrams": {
"command": "docker",
"args": [
"run",
"--rm",
"--interactive",
"--env",
"FASTMCP_LOG_LEVEL=ERROR",
"infrastructure-diagram-mcp-server:latest"
]
}
}
}特性
基础结构图MCP服务器提供以下功能:
- 多提供商支持:为AWS、GCP、Azure、Kubernetes、本地和混合/多云架构创建图表
- 2000+图标:访问所有主要云提供商和服务的图标
- 多种图表类型:基础架构、序列图、流程图、类图等
- 丰富的示例:27多个针对AWS、GCP、Azure、K8s、混合和多云模式的预构建模板
- 定制:自定义图表外观、布局、样式、颜色和连接
- 安全:内置代码扫描,确保安全生成图表
- 无缝显示:图表在Claude Desktop中内联显示,具有自动渲染功能
- 灵活的输出:将图表保存为工作区目录中的PNG格式
- 可编辑导出:自动生成.drawio文件,以便在diagrams.net/draw.io中进行编辑
- IaC解析:解析Kubernetes清单、Helm图表和Terraform配置,以提取用于图表生成的基础设施信息
如何使用
在MCP客户端(例如Claude Desktop)中配置后,您可以使用自然语言生成图表:
示例提示:
发现可用图标:
List all available GCP infrastructure diagram icons获取示例代码:
Show me examples of Azure microservices diagrams生成图表:
Create a GCP data pipeline diagram showing Pub/Sub, Dataflow, and BigQueryGenerate an AWS serverless architecture with API Gateway, Lambda, and DynamoDBDesign a multi-cloud architecture spanning AWS, GCP, and Azure将基础架构解析为代码:
Parse the Kubernetes manifests in ./k8s/ and show me the resources and relationshipsParse the Helm chart at ./charts/my-app/ and generate a diagram of the infrastructureParse the Terraform configuration in ./infrastructure/ and visualize the AWS resources服务器将自动:
- 从2000多个可用图标中找到合适的图标
- 使用图表包生成Python代码
- 内联创建和显示PNG图
- 将图表保存到工作区目录
- 生成一个可编辑的.drawio文件以供进一步定制
使用draw.io编辑图表
每个图表都会自动以两种格式导出:
- 便携式网络图形:用于即时查看和共享(在Claude Desktop中内联显示)
- .drawio:用于编辑 diagrams.net 或draw.io
.drawio文件允许您:
- 修改单个组件、颜色和样式
- 添加其他注释、注解或文档
- 重新组织布局和定位
- 导出为其他格式(SVG、PDF、JPEG等)
- 使用熟悉的工具与团队成员协作
只需在浏览器中打开生成的.drawio文件,网址为 diagrams.net -无需安装!
最新动态
此分叉扩展了原始的AWS Diagram MCP服务器,包括:
- ✅ 全面多云支持:GCP、Azure、Kubernetes、混合和多云架构
- ✅ 27+综合示例:跨所有提供商的现成模板
- ✅ 完整图标覆盖:所有2000多个图标均已正确导入并可用
- ✅ 增强型显示器:用于无缝内联渲染的MCP ImageContent格式
- ✅ 可编辑导出:自动生成.drawio文件,以便在diagrams.net/draw.io中编辑
- ✅ IaC解析:解析Kubernetes清单、Helm图表和Terraform HCL以提取基础设施
- ✅ 漏洞修补:已解决双重问题
.png扩展和只读文件系统问题 - ✅ 图标更正:修复了示例中28个以上不正确的类名
代码示例
下面是显示图表包语法的Python代码示例。使用Claude Desktop时,您可以简单地用自然语言描述您想要的内容!
AWS无服务器应用程序
from diagrams import Diagram
from diagrams.aws.compute import Lambda
from diagrams.aws.database import Dynamodb
from diagrams.aws.network import APIGateway
with Diagram("Serverless Application", show=False):
api = APIGateway("API Gateway")
function = Lambda("Function")
database = Dynamodb("DynamoDB")
api >> function >> databaseGCP微服务
from diagrams import Diagram, Cluster
from diagrams.gcp.compute import CloudRun
from diagrams.gcp.network import LoadBalancing
from diagrams.gcp.database import SQL
with Diagram("GCP Microservices", show=False):
lb = LoadBalancing("load balancer")
with Cluster("Services"):
services = [CloudRun("api"), CloudRun("worker")]
db = SQL("database")
lb >> services >> dbAzure Web应用程序
from diagrams import Diagram
from diagrams.azure.web import AppService
from diagrams.azure.database import SQLServer
from diagrams.azure.storage import BlobStorage
with Diagram("Azure Web App", show=False):
AppService("web") >> SQLServer("db") >> BlobStorage("storage")多云架构
from diagrams import Diagram, Cluster
from diagrams.aws.compute import EC2
from diagrams.gcp.compute import CloudRun
from diagrams.azure.web import AppService
with Diagram("Multi-Cloud Setup", show=False):
with Cluster("AWS"):
aws = EC2("primary")
with Cluster("GCP"):
gcp = CloudRun("backup")
with Cluster("Azure"):
azure = AppService("cdn")
aws >> [gcp, azure]示例图表库
下面是使用此MCP服务器生成的完整架构图示例。这些演示了不同云提供商和部署场景中的真实模式。
AWS无服务器架构
使用AWS服务的生产就绪无服务器架构。
架构组件:
- 用户通过HTTPS连接
- API网关作为入口点
- 用于计算的多个Lambda函数
- DynamoDB用于NoSQL数据库存储
______________________________________________________________________
GCP无服务器架构
Google Cloud Platform上具有托管服务的无服务器架构。
架构组件:
- 用户通过HTTPS连接
- 用于流量分配的负载均衡器
- 无服务器计算的云功能
- 文档数据库的Firestore
______________________________________________________________________
Azure无服务器架构
Microsoft Azure上的无服务器架构,具有完全托管的服务。
架构组件:
- 用户通过HTTPS连接
- 用于路由和负载平衡的应用网关
- 用于无服务器执行的功能应用程序
- Cosmos DB用于全球分布式数据库
______________________________________________________________________
Kubernetes架构
Kubernetes上具有完全存储支持的容器化应用程序部署。
架构组件:
- 外部访问和路由入口
- 内部负载平衡服务
- 多个Pod运行容器化应用程序
- 持久卷和有状态存储的声明
______________________________________________________________________
多云架构
一个跨AWS、GCP和Azure的分布式架构,具有全局DNS路由以实现高可用性。
架构组件:
- 用于智能流量路由的全球DNS(Route53)
- AWS 区域:ELB→ 拉姆达→ DynamoDB
- GCP地区:负载平衡器→ 云功能→ 消防仓库
- Azure区域:负载平衡器→ 功能应用程序→ Cosmos数据库
______________________________________________________________________
混合云架构
将本地基础设施连接到AWS云的企业混合云设置。
架构组件:
- 本地应用服务器和PostgreSQL数据库
- 用于安全加密连接的VPN网关
- 带有EC2实例的AWS VPC
- RDS用于数据库复制和灾难恢复
- S3用于备份和归档存储
______________________________________________________________________
GCP基础组织层(来自Terraform)
从中解析出全面的GCP组织级基础设施 地形示例基础 使用 parse_terraform 工具。
架构组件:
- 组织级资源(VPC服务控制、资源标签、组织策略)
- 日志基础设施(云日志、发布/订阅、存储、BigQuery接收器)
- 安全服务(云KMS、密钥管理器、安全指挥中心)
- CI/CD管道(云构建、源代码仓库、工件注册表)
- 网络集线器(集线器VPC、云NAT、云路由器、互连)
- 特定于环境的共享VPC(开发、非生产、生产)
______________________________________________________________________
Milvus矢量数据库架构(来自Helm Chart)
从官方解析的生产就绪Milvus部署 密尔沃基掌舵 图表使用 parse_helm_chart 工具。
架构组件:
- 通过Milvus SDK进行客户端访问
- 访问层(服务,部署milvus代理)
- 协调层(rootcoord、querycoord、indexcoord、datacoord)
- 工作层(查询节点、索引节点、数据节点)
- 依赖关系(etcd用于元数据,MinIO用于对象存储,Pulsar用于消息队列)
______________________________________________________________________
IaC解析工具
服务器包括三个工具,用于将基础设施解析为代码文件:
parse_k8s_manifest
解析Kubernetes YAML清单以提取资源和关系。
Parse the K8s manifests in ./manifests/ and show me what's deployed检测:
- 所有K8s资源类型(部署、服务、ConfigMaps、机密、PVC、入口等)
- 关系:服务→部署,部署→ConfigMap/秘密/PVC,入口→服务
- 命名空间分组
parse_helm_chart
解析Helm图表 helm template Helm CLI不可用时的渲染或回退模式。
备注:为了获得最佳结果, 安装Helm没有Helm,解析器使用回退模式,对Go模板的支持有限。
Parse the Helm chart at ./charts/my-app/ with values from values-prod.yaml特征:
- 全Helm模板渲染(需要Helm CLI)
- 无Helm的基本解析回退模式
- 自定义值文件和内联值支持
- 发布名称和命名空间配置
parse_terraform
解析Terraform HCL配置以提取资源、数据源、模块和关系。
Parse the Terraform configuration in ./terraform/ and visualize the infrastructure检测:
- 来自AWS、GCP、Azure和Kubernetes提供商的资源
- 数据源和模块参考
- 明确的
depends_on关系 - 资源之间的隐含引用
______________________________________________________________________
发展
测试
该项目包括一个全面的测试套件,以确保MCP服务器的功能。测试按模块组织,涵盖服务器功能的各个方面。
要运行测试,请使用提供的脚本:
./run_tests.sh如果尚未安装pytest及其依赖项,此脚本将自动安装它们。
或者直接运行pytest(如果您安装了pytest):
pytest -xvs tests/要在承保范围内跑步:
pytest --cov=infrastructure_diagram_mcp_server --cov-report=term-missing tests/发展依赖性
要设置开发环境,请安装开发依赖项:
uv pip install -e ".[dev]"这将安装开发所需的依赖项,包括pytest、pytest-asyncio和pytest-cov。
故障排除
pygraphviz 生成错误: graphviz/cgraph.h not found
当在安装过程中找不到GraphViz开发头文件时,会发生此错误。
macOS:
# Make sure graphviz is installed
brew install graphviz
# Set compiler flags
export CFLAGS="-I$(brew --prefix graphviz)/include"
export LDFLAGS="-L$(brew --prefix graphviz)/lib"
# Then install
uvx infrastructure-diagram-mcp-serverLinux:
# Install development headers
sudo apt-get install graphviz graphviz-dev # Ubuntu/Debian
sudo dnf install graphviz-devel # Fedora/RHEL窗户:
# Install Graphviz with Chocolatey
choco install graphviz
# Set environment variables
$env:INCLUDE = "C:\Program Files\Graphviz\include"
$env:LIB = "C:\Program Files\Graphviz\lib"MCP服务器无法在Claude Desktop/Cursor中启动
- 确保
CFLAGS/LDFLAGS(macOS)或INCLUDE/LIB(Windows)环境变量在MCP配置中设置 - 尝试清除uv缓存:
rm -rf ~/.cache/uv - 重新启动MCP客户端
图表未内联显示
确保您使用的是支持MCP ImageContent的最新版本的Claude Desktop或Cursor。
贡献
欢迎投稿!请随时向 .
许可证
此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。
这是一部基于 awslab/aws图mcp服务器. 版权所有Amazon.com,股份有限公司或其附属公司。保留所有权利。
看 通知 文件以获取更多归因信息。
链接
- PyPI: https://pypi.org/project/infrastructure-diagram-mcp-server/
- GitHub: https://github.com/andrewmoshu/diagram-mcp-server
- 原始项目: https://github.com/awslabs/mcp/tree/main/src/aws-diagram-mcp-server
- 图表库: https://diagrams.mingrammer.com/
