Serveur AWS CDK MCP
Serveur MCP pour les meilleures pratiques de l'AWS Cloud Development Kit (CDK), les modèles d'infrastructure en tant que code et la conformité de la sécurité avec CDK Nag.
Caractéristiques
Directives générales CDK
- Modèles prescriptifs avec AWS Solutions Constructs et les bibliothèques GenAI CDK
- Flux de décision structuré pour choisir les approches de mise en œuvre appropriées
- Automatisation de la sécurité grâce à l'intégration de CDK Nag et aux outils Lambda Powertools
Intégration du CDK Nag
- Travailler avec les règles CDK Nag pour la sécurité et la conformité
- Expliquer les règles spécifiques de CDK Nag avec les conseils d'AWS Well-Architected
- Vérifier si le code CDK contient des suppressions Nag qui nécessitent un examen humain
AWS Solutions Constructs
- Rechercher et découvrir des modèles AWS Solutions Constructs
- Trouver des modèles recommandés pour des besoins d'architecture courants
- Obtenir une documentation détaillée sur les Solutions Constructs
Constructions du CDK d'IA générative
- Recherchez les constructions GenAI CDK par nom ou par type
- Découvrez des constructions spécialisées pour les charges de travail AI/ML
- Obtenir des conseils de mise en œuvre pour les applications d'IA générative
Fournisseur de documentation sur les couches Lambda
- Accédez à une documentation complète sur les couches AWS Lambda
- Obtenir des exemples de code pour les couches Lambda génériques et les couches spécifiques à Python
- Récupérer des informations sur la structure des répertoires et les meilleures pratiques de mise en œuvre
- Intégration transparente avec le serveur AWS Documentation MCP pour une documentation détaillée
Génération du schéma de l'agent Amazon Bedrock
- Utilisez cet outil lors de la création d'agents Bedrock avec des groupes d'action qui utilisent des fonctions Lambda
- Rationaliser la création de schémas d'agents Bedrock
- Convertir les fichiers de code en spécifications OpenAPI compatibles
Notes à l'attention des développeurs
- Exigences: Votre fonction Lambda doit utiliser
BedrockAgentResolver
de AWS Lambda Powertools - Dépendances Lambda: Si la génération de schéma échoue, un script de repli sera généré. Si vous voyez des messages d'erreur concernant des dépendances manquantes, installez-les et exécutez à nouveau le script.
- Intégration: Utilisez le schéma généré avec
bedrock.ApiSchema.fromLocalAsset()
dans votre code CDK
Flux de travail de la mise en œuvre du CDK
Ce diagramme fournit une vue d'ensemble du flux de travail recommandé pour la mise en œuvre du CDK :
graph TD Start([Start]) --> A["CDKGeneralGuidance"] A --> Init["cdk init app"] Init --> B{Choisir une approche} B -->|"Common Patterns"| C1["GetAwsSolutionsConstructPattern"] B -->b -->| "Caractéristiques GenAI"| C2["SearchGenAICDKConstructs"] B -->| "Besoins personnalisés"| C3["Code CDK personnalisé"] C1 --> D1["Mise en œuvre de la construction de solutions"] 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{"Utiliser Lambda<br/>Couches ?"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
Outils MCP disponibles
- CDKGeneralGuidance: Obtenez des conseils normatifs pour la création d'applications AWS avec CDK
- GetAwsSolutionsConstructPattern: Trouver des modèles d'architecture approuvés combinant des services AWS
- SearchGenAICDKConstructs: Découvrir les constructions GenAI CDK par nom ou par caractéristiques
- GenerateBedrockAgentSchema: Créer des schémas OpenAPI pour les groupes d'action de l'agent Bedrock
- LambdaLayerDocumentationProvider: Accéder à la documentation pour la mise en œuvre des couches Lambda
- ExplainCDKNagRule: Obtenir des conseils détaillés sur les règles de sécurité de CDK Nag
- CheckCDKNagSuppressions: Valider les suppressions de CDK Nag dans votre code
Ressources MCP disponibles
- Règles de CDK Nag: Accéder aux packs de règles via
cdk-nag://rules/{rule_pack}
- AWS Solutions Constructs: Accès aux modèles via
aws-solutions-constructs://{nom_du_modèle}
- Constructions GenAI CDK: Accédez à la documentation via
genai-cdk-constructs://{construct_type}/{nom_de_la_construction}
- Lambda Powertools: Obtenir des conseils sur les outils Lambda Powertools via
lambda-powertools://{topic}
Conditions préalables
- Installer
uv
à partir d'Astral ou du README de GitHub - Installer Python en utilisant
uv python install 3.10
- Installer AWS CDK CLI en utilisant
npm install -g aws-cdk
(Note : Le serveur MCP lui-même n'utilise pas directement le CDK CLI, mais il guide les utilisateurs dans le développement d'applications CDK qui nécessitent le CLI)
Installation du CDK
Curseur | Code VS |
---|---|
Configurez le serveur MCP dans la configuration de votre client MCP (par exemple, pour Amazon Q Developer CLI, éditez ~/.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" : [] } } }
Installation sous Windows
Pour les utilisateurs de Windows, le format de configuration du serveur MCP est légèrement différent :
{ "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" } } }
ou docker après un succès 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" : [] } } }
Considérations relatives à la sécurité
Lorsque vous utilisez ce serveur MCP, vous devez prendre en compte les points suivants :
- Examiner manuellement tous les avertissements et toutes les erreurs de CDK Nag
- Corriger les problèmes de sécurité plutôt que de les supprimer dans la mesure du possible
- Documenter des justifications claires pour toute suppression nécessaire
- Utiliser l'outil CheckCDKNagSuppressions pour vérifier qu'il n'existe pas de suppressions non autorisées
Avant d'appliquer les suppressions de CDK NAG, vous devriez envisager d'effectuer votre propre évaluation indépendante pour vous assurer que votre utilisation est conforme à vos propres pratiques et normes de sécurité et de contrôle de la qualité, ainsi qu'aux lois, règles et réglementations locales qui vous régissent et qui régissent votre contenu.