内容
架构审查 MCP 服务器
MCP(模型上下文协议)服务器,提供自动化的 AWS 网络架构评估、Direct Connect 弹性评分、Transit Gateway 拓扑分析和 Cloud WAN 发现 — 使用标准的 AWS SDK(boto3)API。
## 功能描述
为 AI 代理提供直接访问 AWS 混合网络数据,以便进行架构审查、故障排除和迁移规划。涵盖 Direct Connect、Transit Gateway、Cloud WAN、VPN 和 VPC 端点。
## 工作原理
该服务器提供**结构化数据和弹性评分** — AI 代理提供解释、建议和格式化的报告。
| 层级 | 责任 | 示例输出 |
|-------|---------------|----------------|
| MCP 服务器 | 原始数据、弹性评分、严重性分类 | `"resiliency_level": "LOW", "score": 0, "severity": "CRITICAL"` |
| AI 代理 | 建议、优先级、业务上下文 | "在不同设施中添加第二个 DX 位置以实现冗余" |
### 兼容的 MCP 客户端
任何与 MCP 兼容的客户端都可以使用此服务器作为数据源:
- [Kiro CLI / Kiro IDE](https://kiro.dev)
- [Claude Desktop](https://claude.ai/download)
- [Amazon Q Developer CLI](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line.html)
- [Cursor](https://cursor.sh)
- [VS Code + GitHub Copilot](https://code.visualstudio.com/)
## 工具(13)
| 工具 | 描述 |
|------|-------------|
| `analyze_dx_topology` | 完整的 DX 拓扑:连接、VIF、网关、BGP 状态、弹性 |
| `check_dx_resiliency` | 弹性评估:位置多样性、冗余性、BGP、MTU、MACsec |
| `get_bgp_status` | 所有虚拟接口的 BGP 对等状态 |
| `get_dx_vif_details` | 详细的 VIF 配置、BGP 对等、路由过滤前缀 |
| `get_dx_gateway_details` | DX 网关关联、允许前缀、VGW/TGW 映射 |
| `get_dx_cloudwatch_metrics` | DX 利用率、错误、光照水平、连接状态 |
| `get_vpn_details` | VPN 连接、隧道状态、BGP、路由 |
| `analyze_tgw_topology` | T详细信息、附件、路由| `get_tgw_route_table_details` | 深入研究:关联、传播和路由 |
| `get_virtual_gateway_details` | 详细信息和 VPC 附件 `analyze_cloudwan_topology` | Cloud WAN 全局/核心网络、附件、对等 |
| `get_vpc_endpoints` | VPC 端点摘要,带有模式检测 |
| `network_architecture | 结合所有层的完整架构发现 |
## 快速入门
### 前提条件
- Python 3.10+
- 配置 AWS 凭证(通过 `~/.aws/credentials`、环境变量或 IAM 角色)
- IAM 权限:`directconnect:Describe*`、`ec2:Describe*`、`ec2:Search*`、`ec2:Get*`、`networkmanager:Describe*`、`networkmanager:List*`
### 安装
```bash
git clone https://github.com/aws-samples/sample-aws-network-architecture-mcp-server.git
cd sample-aws-network-architecture-mcp-server
pip install -r requirements.txt
```
### 运行
```bash
python server.py
```
### 使用 Claude Desktop / Kiro CLI 配置
在您的 MCP 客户端配置中添加:
```json
{
"mcpServers": {
"aws-network-architecture": {
"command": " "args":path/to/sample-aws-network-mcp-server/server.py }
}
}
```
## 示例提示
```
"分析 Direct Connect 拓扑并评估弹性"
"显示所有具有黑洞路由的 TGW 路由表"
"我的所有虚拟接口的 BGP 状态是什么?"
"给我一个完整的网络架构摘要"
"检查我的 DX 设置是否有位置多样性"
"列出所有 Cloud WAN 附件及其分段"
```
## 弹性评分
`check_dx_res` 工具在 维度进行评分:
| 严重性 | |
|-------|----------|-------------- 位置多样性() | 严重 | -| 连接冗余每个位置 < 2 高 | -15/| BGP 健康状态(对关闭) | 高 |对等节点 |
| MTU 一致性( | 中等 | |
| MACsec(启用但有能力) | 中等 | -5 |
弹性级别:
- **高(最大弹性)**:2+ 个位置,每个+ 个连接
中等(高弹性)**+ 个位置,部分位置有单个连接
- **低(单个位置)**:所有连接都在一个设施中
## 所需 IAM 权限
```json
{
"Version": "-10-17",
Statement": [
{
Effect": "Allow",
Action": [
"directconnect:Describe*",
"ec2:DescribeTransitGateways",
"ec2:DescribeAttachments",
"ecDescribeTransitGatewayRouteTables "ec2:GetTransitGatewayRouteTableAssociations",
2:GetTransitGatewayRouteagations",
"ecSearchTransitGatewayRoutes",
2:DescribeV",
"ecDescribeVpnConnections",
"ec2:DescribeVpcs",
"ec2:pcEndpoints",
":DescribeGlobalNetworks",
"networkmanager:ListCoreNetworks "networkmanager:ListAttachments "networkmanager:ListPeerings",
"cloudwatch:Get"
],
"Resource": "*"
}
]
## 身份验证
凭证链可以通过以下方式配置凭证### 选项 1 CLI 配置文件
``` configure --profile my-network-account
export AWS_PROFILE=my-network-account
python server.py
```
### 选项 2:AWS IAM 身份中心(SSO)
```bash
aws sso login --profile my-sso-profile
export AWS_PROFILE=my-sso-profile
python server.py
```
### 选项 3:环境变量
```bash
_ACCESS_KEY_ID=AKIA...
export AWS_SECRET_ACCESS_KEYexport AWS_SESSION_TOKEN # 如果使用临时凭证
export AWS_DEFAULT_REGION=us-east-python server.py
选项 4:角色(EC2 / Lambda)
无需配置 —将从实例元数据自动检测 使用配置文件配置 MCP 客户端
```json
{
"mcp {
"aws-network-architecture": {
"command": "python",
"args": ["/path/to/server.py "env": {
"AWS_PROFILE": "my-network-account",
"AWS_DEFAULT_REGION": "us-east-1"
}
}
}
> **注意:** 如果调用中未指定服务器默认为 `us-east`。每个工具都 `region` 参数来区域。
## 架构┌────────────────────────────────────│ MCP 客户端(Claude/Kiro) │
└──────────────────┬──────────────────┘
│ MCP 协议(stdio)
┌──────────────────▼──────────────────┐
│ AWS 网络架构服务器 │
│ (FastMCP + boto3) │
└──────────────────┬──────────────────┘
│ AWS SDK 调用
┌──────────────┼──────────────┐
▼ ▼ ▼
┌────────┐ ┌──────────┐ ┌┐
│Direct │ │ EC2 │ │ 网络 │
│Connect │ │(TGW/VPN/ │ 管理器 │
│ API │ PC/VGW) │ │(Cloud WAN) │
└────────┘ └──────────┘ └────────────┘
```
## 安全
- 使用标准的 AWS 凭证配置文件、环境变量、IAM 角色)
- 只读 无修改
- 无客户数据存储或传输到您的 AWS 账户之外
- 无外部服务依赖
## 许可证
本库根据 MIT-0 许可证授权。参见 [LICENSE) 文件。