用于 AWS Cloud Development Kit (CDK) 最佳实践、基础设施即代码模式以及通过 CDK Nag 实现的安全合规性的 MCP 服务器。
BedrockAgentResolverbedrock.ApiSchema.fromLocalAsset() 与生成的模式一起使用此图提供了推荐的 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 决策;
cdk-nag://rules/{rule_pack} 访问规则包aws-solutions-constructs://{pattern_name} 访问模式genai-cdk-constructs://{construct_type}/{construct_name} 访问文档lambda-powertools://{topic} 获取 Lambda 工具包的指导uvuv python install 3.10 安装 Pythonnpm install -g aws-cdk 安装 AWS CDK CLI(注意:MCP 服务器本身不直接使用 CDK CLI,但它引导用户通过需要 CLI 的 CDK 应用程序开发)| Cursor | 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 用户,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 抑制之前,您应考虑进行自己的独立评估,以确保您的使用符合您自己的特定安全和质量控制实践和标准,以及管理您和您的内容的地方法律、规则和法规。