CDK最佳实践工具

AWS CDK MCP Server是一个提供AWS Cloud Development Kit (CDK)最佳实践、基础设施即代码模式和CDK Nag安全合规性的工具,适用于开发者在构建AWS应用程序时获取指导和建议。

  • by AkM-2018
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 akm-2018/tmp_cdk_mcp_server

使用说明

AWS CDK MCP服务器

AWS云开发工具包(CDK)的MCP服务器最佳实践、基础设施即代码模式以及对CDK-Nag的安全合规性。

特性

CDK通用指南

  • AWS解决方案构造和GenAI CDK库的规范模式
  • 用于选择适当实施方法的结构化决策流程
  • 通过CDK-Nag集成和Lambda Powertools实现安全自动化

CDK-Nag集成

  • 使用CDK Nag规则实现安全性和合规性
  • 使用AWS良好架构指南解释具体的CDK Nag规则
  • 检查CDK代码是否包含需要人工审查的Nag抑制

AWS解决方案构建

  • 搜索和发现AWS解决方案构造模式
  • 查找常见架构需求的推荐模式
  • 获取有关解决方案构造的详细文档

生成式AI CDK构造

  • 按名称或类型搜索GenAI CDK构造
  • 发现AI/ML工作负载的专用构造
  • 获取生成式人工智能应用程序的实施指南

Lambda层文档提供程序

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

Amazon基岩代理模式生成

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

开发人员说明

  • 需求:您的Lambda函数必须使用 BedrockAgentResolver 来自AWS Lambda Powertools
  • Lambda依赖关系:如果模式生成失败,将生成回退脚本。如果您看到有关缺少依赖项的错误消息,请安装它们,然后再次运行脚本。
  • 整合:使用生成的架构 bedrock.ApiSchema.fromLocalAsset() 在您的CDK代码中

CDK实施工作流程

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

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

    Init --> B{Choose Approach}
    B -->|"Common Patterns"| C1["GetAwsSolutionsConstructPattern"]
    B -->|"GenAI Features"| C2["SearchGenAICDKConstructs"]
    B -->|"Custom Needs"| C3["Custom CDK Code"]

    C1 --> D1["Implement Solutions Construct"]
    C2 --> D2["Implement GenAI Constructs"]
    C3 --> D3["Implement Custom Resources"]

    %% Bedrock Agent with Action Groups specific flow
    D2 -->|"For Bedrock Agents<br/>with Action Groups"| BA["Create Lambda with<br/>BedrockAgentResolver"]

    %% Schema generation flow
    BA --> BS["GenerateBedrockAgentSchema"]
    BS -->|"Success"| JSON["openapi.json created"]
    BS -->|"Import Errors"| BSF["Tool generates<br/>generate_schema.py"]
    BSF -->|"Missing dependencies?"| InstallDeps["Install dependencies"]
    InstallDeps --> BSR["Run script manually:<br/>python generate_schema.py"]
    BSR --> JSON["openapi.json created"]

    %% Use schema in Agent CDK
    JSON --> AgentCDK["Use schema in<br/>Agent CDK code"]
    AgentCDK --> D2

    %% Conditional Lambda Powertools implementation
    D1 & D2 & D3 --> HasLambda{"Using Lambda<br/>Functions?"}
    HasLambda --> UseLayer{"Using Lambda<br/>Layers?"}
    UseLayer -->|"Yes"| LLDP["LambdaLayerDocumentationProvider"]

    HasLambda -->|"No"| SkipL["Skip"]

    %% Rest of workflow
    LLDP["LambdaLayerDocumentationProvider"] --> Synth["cdk synth"]
    SkipL --> Synth

    Synth --> Nag{"CDK Nag<br/>warnings?"}
    Nag -->|Yes| E["ExplainCDKNagRule"]
    Nag -->|No| Deploy["cdk deploy"]

    E --> Fix["Fix or Add Suppressions"]
    Fix --> CN["CheckCDKNagSuppressions"]
    CN --> Synth

    %% Styling with darker colors
    classDef default fill:#424242,stroke:#ffffff,stroke-width:1px,color:#ffffff;
    classDef cmd fill:#4a148c,stroke:#ffffff,stroke-width:1px,color:#ffffff;
    classDef tool fill:#01579b,stroke:#ffffff,stroke-width:1px,color:#ffffff;
    classDef note fill:#1b5e20,stroke:#ffffff,stroke-width:1px,color:#ffffff;
    classDef output fill:#006064,stroke:#ffffff,stroke-width:1px,color:#ffffff;
    classDef decision fill:#5d4037,stroke:#ffffff,stroke-width:1px,color:#ffffff;

    class Init,Synth,Deploy,BSR cmd;
    class A,C1,C2,BS,E,CN,LLDP tool;
    class JSON output;
    class HasLambda,UseLayer,Nag decision;

可用的MCP工具

  • CDK一般指导:获取使用CDK构建AWS应用程序的规范性建议
  • GetAwsSolutions构造模式:查找结合AWS服务的经过审核的架构模式
  • 搜索GenAICDK建筑:按名称或特征发现GenAI CDK构造
  • 生成床代理示意图:为基岩代理行动组创建OpenAPI模式
  • LambdaLayer文档提供商:Lambda层实现的访问文档
  • 解释CDKAgRule:获取有关CDK Nag安全规则的详细指导
  • 检查CDK信号抑制:验证代码中的CDK Nag抑制

可用MCP资源

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

先决条件

  1. 安装 uv 从 星体 或 GitHub自述
  2. 使用以下命令安装Python uv python install 3.10
  3. 使用安装AWS CDK CLI npm install -g aws-cdk (注意:MCP服务器本身不直接使用CDK CLI,但它引导用户完成需要CLI的CDK应用程序开发)

安装

在MCP客户端配置中配置MCP服务器(例如,对于Amazon Q Developer 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": []
    }
  }
}

或docker成功后 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警告和错误
  • 尽可能解决安全问题,而不是压制它们
  • 记录任何必要抑制的明确理由
  • 使用CheckCDKAgSuppressions工具验证不存在未经授权的抑制

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