AWS 基础设施即代码 MCP 服务器:AI 赋能的 CDK 与 CloudFormation 助手

本文介绍了 AWS 基础设施即代码 MCP 服务器,这是一个基于模型上下文协议的工具。它能帮助开发者通过 AI 助手搜索 AWS CDK 和 CloudFormation 文档、验证模板、排查部署故障及遵循最佳实践,提升开发效率,同时所有敏感操作均在本地安全执行。

介绍

今天,我们兴奋地推出 AWS 基础设施即代码 MCP 服务器,这是一款新工具,旨在弥合 AI 助手与您的 AWS 基础设施开发工作流之间的鸿沟。该服务器基于模型上下文协议 构建,使像 Kiro CLI、Claude 或 Cursor 这样的 AI 助手能够帮助您搜索 AWS CloudFormation 和 Cloud Development Kit 文档、验证模板、排查部署故障并遵循最佳实践——所有这一切都在保持本地执行安全性的前提下进行。

无论您是编写 AWS CloudFormation 模板还是 AWS Cloud Development Kit 代码,IaC MCP 服务器都扮演着智能伙伴的角色,它理解您的架构需求,并在整个开发生命周期中提供情境化的协助。

模型上下文协议 是一个开放标准,使 AI 助手能够安全地连接到外部数据源和工具。可以将其视为一个通用适配器,它允许 AI 模型与您的开发工具交互,同时将敏感操作保持在本地区域并处于您的控制之下。

MCP 服务器功能

该 IaC MCP 服务器提供了九种专门工具,分为两类:

远程文档搜索工具

这些工具连接到 AWS Knowledge MCP 后端以检索相关的最新信息:

  • search_cdk_documentation:在 AWS CDK 知识库中搜索 API、概念和实施指南。
  • search_cdk_samples_and_constructs:从 AWS 构造库中发现预构建的 AWS CDK 构造和模式。
  • search_cloudformation_documentation:查询 CloudFormation 文档以获取资源类型、属性和内部函数信息。
  • read_iac_documentation_page:检索并阅读从搜索返回或提供 URL 的完整 CloudFormation 和 CDK 文档页面。

本地验证和故障排除工具

这些工具完全在您的机器上运行:

  • cdk_best_practices:访问精心策划的 AWS CDK 最佳实践和设计原则集合。
  • validate_cloudformation_template:使用 cfn-lint 执行语法和模式验证,以便在部署前捕获错误。
  • check_cloudformation_template_compliance:使用 AWS Guard 规则和 cfn-guard 对您的模板运行安全性和合规性检查。
  • troubleshoot_cloudformation_deployment:通过集成的 CloudTrail 事件分析来分析 CloudFormation 堆栈部署失败原因。此工具将使用您的 AWS 凭证来分析您的堆栈状态。
  • get_cloudformation_pre_deploy_validation_instructions:返回 CloudFormation 预部署验证功能的说明,该功能在创建变更集期间验证模板。

主要用例

1. 智能文档助手

无需手动搜索文档,直接用自然语言向您的 AI 助手提问:

“如何在 CDK 中创建一个启用加密的 S3 存储桶?” 服务器将搜索 CDK 最佳实践和示例,返回相关的代码示例和解释。

2. 主动模板验证

在部署架构变更之前:

用户:“验证我的 CloudFormation 模板并检查安全问题” AI 助手:[使用 validate_cloudformation_templatecheck_cloudformation_template_compliance] “发现 2 个问题:EBS 卷缺少加密,S3 存储桶缺少公共访问阻止配置”

3. 快速部署故障排除

当堆栈部署失败时:

用户:“我在 us-east-1 区域的堆栈 ‘stack_03’ 部署失败。发生了什么?” AI 助手:[使用与 CloudTrail 集成的 troubleshoot_stack_deployment] “部署因 IAM 权限不足而失败。CloudTrail 显示对 ec2:CreateVpcAccessDenied。您需要向您的部署角色添加 VPC 权限。”

4. 学习与探索

刚接触 AWS CDK?服务器可帮助您发现构造和模式:

用户:“向我展示如何构建一个无服务器 API” AI 助手:[搜索 CDK 构造和示例] “以下是使用 API Gateway + Lambda 的三种方法……”

架构与安全

安全设计

  • 本地执行:MCP 服务器完全在您的本地机器上使用 uv(快速的 Python 包管理器)运行。除了文档搜索外,不会将任何代码或模板发送到外部服务。
  • AWS 凭证:服务器使用您现有的 AWS 凭证(来自 ~/.aws/credentials、环境变量或 IAM 角色)来访问 CloudFormation 和 CloudTrail API。这遵循与 AWS CLI 相同的安全模型。
  • 标准输入/输出通信:服务器通过标准输入/输出与 AI 助手通信,不开放任何网络端口。
  • 最小权限:对于完整功能,服务器需要对 CloudFormation 堆栈和 CloudTrail 事件的只读访问权限——验证和故障排除工作流不需要写入权限。

开始使用

先决条件

  • Python 3.10 或更高版本
  • uv 包管理器
  • 本地配置好的 AWS 凭证
  • 兼容 MCP 的 AI 客户端

配置

在您的 MCP 客户端配置中配置 MCP 服务器。以 Kiro CLI 为例,编辑 .kiro/settings/mcp.json

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
{
  "mcpServers": {
    "awslabs.aws-iac-mcp-server": {
      "command": "uvx",
      "args": ["awslabs.aws-iac-mcp-server@latest"],
      "env": {
        "AWS_PROFILE": "your-named-profile",
        "FASTMCP_LOG_LEVEL": "ERROR"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

安全注意事项

隐私声明:此 MCP 服务器使用您的凭证执行 AWS API 调用,并将响应数据共享给您的第三方 AI 模型提供商。用户有责任了解您的 AI 提供商的数据处理实践,并在将此工具与 AWS 资源一起使用时,确保符合您组织的安全和隐私要求。

IAM 权限

MCP 服务器需要以下 AWS 权限:

  • 对于模板验证和合规性:无需 AWS 权限(仅本地验证)
  • 对于部署故障排除
    • cloudformation:DescribeStacks
    • cloudformation:DescribeStackEvents
    • cloudformation:DescribeStackResources
    • cloudtrail:LookupEvents(用于 CloudTrail 深层链接)

示例 IAM 策略:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "cloudformation:DescribeStacks",
        "cloudformation:DescribeStackEvents",
        "cloudformation:DescribeStackResources",
        "cloudtrail:LookupEvents"
      ],
      "Resource": "*"
    }
  ]
}

最佳实践

  • 从文档搜索开始:在编写代码之前,先搜索现有的构造和模式。
  • 及早且频繁地验证:在尝试部署之前运行验证工具。
  • 检查合规性:在开发过程中使用 check_template_compliance 来捕获安全问题。
  • 利用 CloudTrail:故障排除时,CloudTrail 集成提供了详细的失败上下文。
  • 遵循 CDK 最佳实践:使用 cdk_best_practices 工具以符合 AWS 建议。

后续步骤

IaC MCP 服务器代表了 AI 代理工作流架构开发的新范式——在这种范式中,AI 助手理解您的工具,帮助您浏览复杂的文档,并在整个开发生命周期中提供智能协助。

参与进来

AWS IaC MCP 服务器现已推出:

  • 文档和 GitHub 仓库aws-iac-mcp-server
  • 反馈:欢迎提交问题和拉取请求!或者在此处回复我们的 IaC 调查。
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计