AWS CDK MCP Server

Oferece orientação e ferramentas para AWS CDK, abrangendo melhores práticas, conformidade de segurança com CDK Nag, validação de infraestrutura e descoberta de padrões.

Documentação

AWS CDK MCP Server

Servidor MCP para práticas recomendadas do AWS Cloud Development Kit (CDK), padrões de infraestrutura como código e conformidade de segurança com o CDK Nag.

Recursos

Orientação Geral do CDK

  • Padrões prescritivos com AWS Solutions Constructs e bibliotecas GenAI CDK
  • Fluxo de decisão estruturado para escolher abordagens de implementação adequadas
  • Automação de segurança por meio da integração com CDK Nag e Lambda Powertools

Integração com CDK Nag

  • Trabalhe com regras do CDK Nag para segurança e conformidade
  • Explique regras específicas do CDK Nag com orientação do AWS Well-Architected
  • Verifique se o código CDK contém supressões Nag que exigem revisão humana

AWS Solutions Constructs

  • Pesquise e descubra padrões do AWS Solutions Constructs
  • Encontre padrões recomendados para necessidades comuns de arquitetura
  • Obtenha documentação detalhada sobre Solutions Constructs

Constructs CDK de IA Generativa

  • Pesquise constructs GenAI CDK por nome ou tipo
  • Descubra constructs especializados para cargas de trabalho de IA/ML
  • Obtenha orientação de implementação para aplicações de IA generativa

Provedor de Documentação de Lambda Layers

  • Acesse documentação abrangente para AWS Lambda layers
  • Obtenha exemplos de código para Lambda layers genéricos e layers específicos de Python
  • Recupere informações de estrutura de diretórios e práticas recomendadas de implementação
  • Integração perfeita com o AWS Documentation MCP Server para documentação detalhada

Geração de Schema do Amazon Bedrock Agent

  • Use esta ferramenta ao criar Bedrock Agents com Action Groups que usam funções Lambda
  • Simplifique a criação de schemas do Bedrock Agent
  • Converta arquivos de código em especificações OpenAPI compatíveis

Notas do Desenvolvedor

  • Requisitos: Sua função Lambda deve usar BedrockAgentResolver do AWS Lambda Powertools
  • Dependências Lambda: Se a geração do schema falhar, um script de fallback será gerado. Se você vir mensagens de erro sobre dependências ausentes, instale-as e execute o script novamente.
  • Integração: Use o schema gerado com bedrock.ApiSchema.fromLocalAsset() no seu código CDK

Fluxo de Trabalho de Implementação do CDK

Este diagrama fornece uma visão abrangente do fluxo de trabalho de implementação do CDK recomendado:

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;

Ferramentas MCP Disponíveis

  • CDKGeneralGuidance: Obtenha conselhos prescritivos para criar aplicações AWS com CDK
  • GetAwsSolutionsConstructPattern: Encontre padrões de arquitetura validados que combinam serviços AWS
  • SearchGenAICDKConstructs: Descubra constructs GenAI CDK por nome ou recursos
  • GenerateBedrockAgentSchema: Crie schemas OpenAPI para action groups do Bedrock Agent
  • LambdaLayerDocumentationProvider: Acesse documentação para implementação de Lambda layers
  • ExplainCDKNagRule: Obtenha orientação detalhada sobre regras de segurança do CDK Nag
  • CheckCDKNagSuppressions: Valide supressões do CDK Nag no seu código

Recursos MCP Disponíveis

  • Regras do CDK Nag: Acesse pacotes de regras via cdk-nag://rules/{rule_pack}
  • AWS Solutions Constructs: Acesse padrões via aws-solutions-constructs://{pattern_name}
  • Constructs GenAI CDK: Acesse documentação via genai-cdk-constructs://{construct_type}/{construct_name}
  • Lambda Powertools: Obtenha orientação sobre Lambda Powertools via lambda-powertools://{topic}

Pré-requisitos

  1. Instale uv do Astral ou do README do GitHub
  2. Instale Python usando uv python install 3.10
  3. Instale o AWS CDK CLI usando npm install -g aws-cdk (Observação: O servidor MCP em si não usa o CDK CLI diretamente, mas orienta os usuários no desenvolvimento de aplicações CDK que exigem o CLI)

Instalação

Install MCP Server

Configure o servidor MCP na configuração do seu cliente MCP (por exemplo, para o Amazon Q Developer CLI, edite ~/.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": []
    }
  }
}

ou docker após um docker build -t awslabs/cdk-mcp-server . bem-sucedido:

  {
    "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": []
      }
    }
  }

Considerações de Segurança

Ao usar este servidor MCP, você deve considerar:

  • Revisar manualmente todos os avisos e erros do CDK Nag
  • Corrigir problemas de segurança em vez de suprimi-los sempre que possível
  • Documentar justificativas claras para quaisquer supressões necessárias
  • Usar a ferramenta CheckCDKNagSuppressions para verificar se não existem supressões não autorizadas

Antes de aplicar supressões do CDK NAG, você deve considerar realizar sua própria avaliação independente para garantir que seu uso esteja em conformidade com suas próprias práticas e padrões específicos de segurança e controle de qualidade, bem como com as leis, regras e regulamentos locais que regem você e seu conteúdo.