部署了CDK的AWS通用MCP服务器
该项目为常见的AWS服务提供可部署的模型上下文协议(MCP)服务器,以及AWS云开发工具包(CDK)代码(Python),为运行这些服务器(通常在ECS Fargate上)提供必要的基础设施。
目标是提供可重用的组件,人工智能开发人员(例如,使用Amazon Bedrock、LangChain)可以轻松地将其部署到他们的AWS帐户中,通过标准化的MCP接口与AWS服务进行交互。
包含MCP服务器
- AWS定位服务: (TypeScript)公开搜索地点、获取地点详细信息、计算路线等功能。基于 aws定位服务器.
- 亚马逊S3: (Python)提供用于基本S3操作的工具,如列出bucket/对象、获取、放置和删除对象。
- Amazon Aurora PostgreSQL(通过RDS Data API): (Python)允许使用安全的RDS Data API对指定的Aurora PostgreSQL集群执行SQL语句。
先决条件
- AWS帐户
- AWS CLI在本地配置了适当的权限(用于CDK部署)。应通过以下方式设置凭据
~/.aws/credentials或环境变量。 - Node.js和npm(用于位置服务服务器构建过程和CDK)
- Python 3.9+(适用于CDK和基于Python的MCP服务器)
- AWS-CDK-CLI(
npm install -g aws-cdk) - Docker(在本地运行,以便CDK构建容器映像)
- Git
Aurora PostgreSQL Data API服务器的特定先决条件:
- 在目标AWS区域中运行的现有Aurora PostgreSQL兼容集群。
- 集群必须启用RDS数据API。
- 包含群集数据库凭据(用户名、密码)的AWS Secrets Manager机密。部署时需要此秘密的ARN。
项目结构
aws-mcp-infra/
├── mcp_servers/ # Source code for the MCP servers
│ ├── location_service/ # TypeScript server for AWS Location Service
│ ├── s3/ # Python server for S3
│ └── aurora_pg_data_api/ # Python server for Aurora PG Data API
├── cdk_deployment/ # AWS CDK code (Python)
│ ├── app.py # CDK App entry point
│ ├── cdk.json # CDK configuration
│ ├── requirements.txt # CDK Python dependencies
│ └── aws_mcp_infra/ # CDK Stack definitions
│ ├── __init__.py
│ ├── location_service_stack.py
│ ├── s3_stack.py
│ └── aurora_pg_data_api_stack.py
├── .gitignore
└── README.md # This file部署
- 克隆存储库:
git clone https://github.com/vAirpower/aws-common-mcp-servers.git
cd aws-common-mcp-servers- 配置Aurora先决条件(如果部署Aurora服务器):
- 确保您的Aurora PostgreSQL集群存在并且启用了Data API。 - 在AWS Secrets Manager(与部署区域相同)中创建一个包含DB凭据(例如密钥)的秘密 username, password). - 更新 db_cluster_arn 和 db_secret_arn 变量在 cdk_deployment/aws_mcp_infra/aurora_pg_data_api_stack.py 使用您的特定集群ARN和您创建的秘密的ARN。
- 安装 CDK 依赖项:
cd cdk_deployment
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt- Bootstrap CDK(如果第一次在此帐户/地区使用CDK):
cdk bootstrap aws://ACCOUNT-NUMBER/REGION # Replace with your AWS account number and region- 部署堆栈: 部署所有堆栈(创建VPC、集群和所有三个服务):
cdk deploy --all --require-approval never或者部署特定的堆栈:
cdk deploy LocationServiceMcpStack S3McpStack AuroraPgDataApiMcpStack --require-approval never部署将为每台服务器构建Docker镜像,将其推送到CDK创建的ECR存储库,并提供ECS Fargate服务。
用法
部署后,MCP服务器作为ECS Fargate服务中的任务运行。默认情况下,它们不会公开。交互通常发生在您的AWS环境中:
- 来自Lambda函数/基岩试剂: 使用AWS SDK(例如。,
boto3用于Python)调用ECS任务或可能通过AWS Systems Manager会话管理器(如果已配置)进行交互。确切的机制取决于客户端应用程序如何设计为与运行在ECS中的MCP服务器通信。 - 本地测试(需要调整): 在本地测试这些服务器 *之前* 部署时,您通常会直接运行它们(
node build/index.js或python aurora_pg_data_api_server.py)安装各自的依赖项后(npm install或pip install -r requirements.txt)并确保您的本地环境已配置AWS凭据。对于Aurora服务器,您还需要设置DB_CLUSTER_ARN和DB_SECRET_ARN局部环境变量。
清理
要删除所有已部署的资源,请运行:
cd cdk_deployment
source .venv/bin/activate
cdk destroy --all