返回市场
CDK-MCP服务器

CDK-MCP服务器

作者:awslabs7456 星标更新:2025-11-24

项目介绍

AWS CDK MCP 服务器

用于 AWS Cloud Development Kit (CDK) 最佳实践、基础设施即代码模式以及通过 CDK Nag 实现的安全合规性的 MCP 服务器。

功能

CDK 通用指导

  • 使用 AWS 解决方案构建模块和 GenAI CDK 库的规范模式
  • 选择适当实现方法的结构化决策流程
  • 通过 CDK Nag 集成和 Lambda 工具包实现安全自动化

CDK Nag 集成

  • 使用 CDK Nag 规则进行安全性和合规性检查
  • 根据 AWS 架构完善的指导解释特定的 CDK Nag 规则
  • 检查 CDK 代码中是否包含需要人工审查的 Nag 抑制

AWS 解决方案构建模块

  • 搜索和发现 AWS 解决方案构建模块模式
  • 查找适用于常见架构需求的推荐模式
  • 获取解决方案构建模块的详细文档

生成式 AI CDK 构建模块

  • 按名称或类型搜索 GenAI CDK 构建模块
  • 发现专用于 AI/ML 工作负载的构建模块
  • 获取生成式 AI 应用程序的实现指南

Lambda 层文档提供者

  • 访问 AWS Lambda 层的全面文档
  • 获取通用 Lambda 层和 Python 特定层的代码示例
  • 检索目录结构信息和最佳实践
  • 与 AWS 文档 MCP 服务器无缝集成以获取详细文档

Amazon Bedrock 代理模式生成

  • 在创建使用 Lambda 函数的动作组的 Bedrock 代理时使用此工具
  • 简化 Bedrock 代理模式的创建
  • 将代码文件转换为兼容的 OpenAPI 规范

开发者注意事项

  • 需求:您的 Lambda 函数必须使用来自 AWS Lambda 工具包的 BedrockAgentResolver
  • Lambda 依赖项:如果模式生成失败,将生成一个备用脚本。如果您看到有关缺少依赖项的错误消息,请安装它们并重新运行脚本。
  • 集成:在您的 CDK 代码中使用 bedrock.ApiSchema.fromLocalAsset() 与生成的模式一起使用

CDK 实现工作流

此图提供了推荐的 CDK 实现工作流的全面视图:

graph TD
    Start([开始]) --> A["CDKGeneralGuidance"]
    A --> Init["cdk init app"]

    Init --> B{选择方法}
    B -->|"常见模式"| C1["GetAwsSolutionsConstructPattern"]
    B -->|"GenAI 特性"| C2["SearchGenAICDKConstructs"]
    B -->|"自定义需求"| C3["自定义 CDK 代码"]

    C1 --> D1["实现解决方案构建模块"]
    C2 --> D2["实现 GenAI 构建模块"]
    C3 --> D3["实现自定义资源"]

    %% Bedrock 代理与动作组特定流程
    D2 -->|"对于带有动作组的 Bedrock 代理"| BA["使用 BedrockAgentResolver 创建 Lambda"]

    %% 模式生成流程
    BA --> BS["生成 Bedrock 代理模式"]
    BS -->|"成功"| JSON["创建 openapi.json"]
    BS -->|"导入错误"| BSF["工具生成 generate_schema.py"]
    BSF -->|"缺少依赖项?"| InstallDeps["安装依赖项"]
    InstallDeps --> BSR["手动运行脚本:python generate_schema.py"]
    BSR --> JSON["创建 openapi.json"]

    %% 在代理 CDK 中使用模式
    JSON --> AgentCDK["在代理 CDK 代码中使用模式"]
    AgentCDK --> D2

    %% 条件 Lambda 工具包实现
    D1 & D2 & D3 --> HasLambda{"使用 Lambda 函数?"}
    HasLambda --> UseLayer{"使用 Lambda 层?"}
    UseLayer -->|"是"| LLDP["LambdaLayerDocumentationProvider"]

    HasLambda -->|"否"| SkipL["跳过"]

    %% 工作流其余部分
    LLDP["LambdaLayerDocumentationProvider"] --> Synth["cdk synth"]
    SkipL --> Synth

    Synth --> Nag{"CDK Nag 警告?"}
    Nag -->|是| E["解释 CDK Nag 规则"]
    Nag -->|否| Deploy["cdk deploy"]

    E --> Fix["修复或添加抑制"]
    Fix --> CN["检查 CDK Nag 抑制"]
    CN --> Synth

    %% 使用较深颜色的样式
    classDef 默认 fill:#424242,stroke:#ffffff,stroke-width:1px,color:#ffffff;
    classDef 命令 fill:#4a148c,stroke:#ffffff,stroke-width:1px,color:#ffffff;
    classDef 工具 fill:#01579b,stroke:#ffffff,stroke-width:1px,color:#ffffff;
    classDef 注释 fill:#1b5e20,stroke:#ffffff,stroke-width:1px,color:#ffffff;
    classDef 输出 fill:#006064,stroke:#ffffff,stroke-width:1px,color:#ffffff;
    classDef 决策 fill:#5d4037,stroke:#ffffff,stroke-width:1px,color:#ffffff;

    class Init,Synth,Deploy,BSR 命令;
    class A,C1,C2,BS,E,CN,LLDP 工具;
    class JSON 输出;
    class HasLambda,UseLayer,Nag 决策;

可用的 MCP 工具

  • CDKGeneralGuidance:获得使用 CDK 构建 AWS 应用程序的规范建议
  • GetAwsSolutionsConstructPattern:查找结合 AWS 服务的经过验证的架构模式
  • SearchGenAICDKConstructs:按名称或特性发现 GenAI CDK 构建模块
  • GenerateBedrockAgentSchema:为 Bedrock 代理动作组创建 OpenAPI 模式
  • LambdaLayerDocumentationProvider:访问 Lambda 层实现的文档
  • ExplainCDKNagRule:获得关于 CDK Nag 安全规则的详细指导
  • CheckCDKNagSuppressions:验证代码中的 CDK Nag 抑制

可用的 MCP 资源

  • CDK Nag 规则:通过 cdk-nag://rules/{rule_pack} 访问规则包
  • AWS 解决方案构建模块:通过 aws-solutions-constructs://{pattern_name} 访问模式
  • GenAI CDK 构建模块:通过 genai-cdk-constructs://{construct_type}/{construct_name} 访问文档
  • Lambda 工具包:通过 lambda-powertools://{topic} 获取 Lambda 工具包的指导

先决条件

  1. AstralGitHub README 安装 uv
  2. 使用 uv python install 3.10 安装 Python
  3. 使用 npm install -g aws-cdk 安装 AWS CDK CLI(注意:MCP 服务器本身不直接使用 CDK CLI,但它引导用户通过需要 CLI 的 CDK 应用程序开发)

安装

CursorVS Code
安装 MCP 服务器在 VS Code 上安装

在您的 MCP 客户端配置中配置 MCP 服务器(例如,对于 Amazon Q 开发者 CLI,编辑 ~/.aws/amazonq/mcp.json):

{
  "mcpServers": {
    "awslabs.cdk-mcp-server": {
      "command": "uvx",
      "args": ["awslabs.cdk-mcp-server@latest"],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

Windows 安装

对于 Windows 用户,MCP 服务器配置格式略有不同:

{
  "mcpServers": {
    "awslabs.cdk-mcp-server": {
      "disabled": false,
      "timeout": 60,
      "type": "stdio",
      "command": "uv",
      "args": [
        "tool",
        "run",
        "--from",
        "awslabs.cdk-mcp-server@latest",
        "awslabs.cdk-mcp-server.exe"
      ],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR",
        "AWS_PROFILE": "your-aws-profile",
        "AWS_REGION": "us-east-1"
      }
    }
  }
}

或者,在成功执行 docker build -t awslabs/cdk-mcp-server . 后:

  {
    "mcpServers": {
      "awslabs.cdk-mcp-server": {
        "command": "docker",
        "args": [
          "run",
          "--rm",
          "--interactive",
          "--env",
          "FASTMCP_LOG_LEVEL=ERROR",
          "awslabs/cdk-mcp-server:latest"
        ],
        "env": {},
        "disabled": false,
        "autoApprove": []
      }
    }
  }

安全注意事项

在使用此 MCP 服务器时,您应该考虑:

  • 手动审查所有 CDK Nag 警告和错误
  • 尽可能修复安全问题而不是抑制它们
  • 对于任何必要的抑制,记录明确的理由
  • 使用 CheckCDKNagSuppressions 工具验证不存在未经授权的抑制

在应用 CDK NAG 抑制之前,您应考虑进行自己的独立评估,以确保您的使用符合您自己的特定安全和质量控制实践和标准,以及管理您和您的内容的地方法律、规则和法规。