关于 AWS Common MCP Servers with CDK Deployment
该项目提供 AWS Location Service、S3 和通过 RDS Data API 访问 Aurora PostgreSQL 的 MCP 服务,并附带用于部署的 AWS CDK 代码,面向通过 MCP 集成 AWS 服务的 AI 开发者。
主要功能
- 01地点搜索、详情查询与路线计算
- 02S3 存储桶和对象操作
- 03通过 Data API 执行 Aurora PostgreSQL SQL
- 04使用 CDK 部署至 ECS Fargate
适用场景
- 01使用 Location Service 搜索地点或计算路线
- 02列出、读取、上传或删除 S3 对象
- 03对 Aurora PostgreSQL 集群执行 SQL
- 04在 AWS 账户中部署 MCP 服务
MCP 相关
它将 AWS Location Service、S3 和 Aurora PostgreSQL 操作作为工具提供给 MCP 客户端。AWS CDK 代码用于配置运行这些服务的基础设施,通常部署到 ECS Fargate。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
使用 CDK 部署常见 AWS MCP 服务
本项目提供可部署的常见 AWS 服务模型上下文协议(MCP)服务,以及用于预置运行这些服务所需基础设施的 AWS 云开发套件(CDK)代码(Python),通常部署在 ECS Fargate 上。
目标是提供可复用组件,供 AI 开发者(例如使用 Amazon Bedrock、LangChain 的开发者)轻松部署到自己的 AWS 账户中,通过标准化的 MCP 接口与 AWS 服务交互。
包含的 MCP 服务
- AWS Location Service:(TypeScript)提供搜索地点、获取地点详情、计算路线等功能。基于 aws-location-server。
- Amazon S3:(Python)提供基本的 S3 操作工具,例如列出存储桶/对象、获取、上传和删除对象。
- Amazon Aurora PostgreSQL(通过 RDS Data API):(Python)允许使用安全的 RDS Data API,对指定的 Aurora PostgreSQL 集群执行 SQL 语句。
前提条件
- AWS 账户
- 本地已配置具有适当权限的 AWS CLI(用于 CDK 部署)。凭证应通过
~/.aws/credentials或环境变量设置。 - Node.js 和 npm(用于 Location Service 服务构建流程和 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 Data 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 中创建密钥(与部署区域相同),其中包含数据库凭证(例如,键
username、password)。 - 在
cdk_deployment/aws_mcp_infra/aurora_pg_data_api_stack.py中,将变量db_cluster_arn和db_secret_arn更新为你的集群 ARN 以及所创建密钥的 ARN。
- 安装 CDK 依赖项:
cd cdk_deployment python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt - 引导 CDK(如果是首次在此账户/区域中使用 CDK):
cdk bootstrap aws://ACCOUNT-NUMBER/REGION # Replace with your AWS account number and region - **部署堆栈:**部署所有堆栈(创建 VPC、集群和全部三个服务):
或部署指定堆栈:cdk deploy --all --require-approval nevercdk deploy LocationServiceMcpStack S3McpStack AuroraPgDataApiMcpStack --require-approval never
部署将为每个服务构建 Docker 映像,将其推送到 CDK 创建的 ECR 存储库,并预置 ECS Fargate 服务。
用法
部署后,MCP 服务会作为任务运行在 ECS Fargate 服务中。默认情况下,它们不会公开访问。通常会在 AWS 环境内部与之交互:
- 通过 Lambda 函数 / Bedrock Agents: 使用 AWS SDK(例如用于 Python 的
boto3)调用 ECS 任务,或在已配置的情况下通过 AWS Systems Manager Session Manager 进行交互。具体机制取决于客户端应用如何与运行在 ECS 中的 MCP 服务通信。 - 本地测试(需要调整): 若要在部署前于本地测试这些服务,通常会在安装相应依赖项(
npm install或pip install -r requirements.txt)并确保本地环境已配置 AWS 凭证后,直接运行它们(node build/index.js或python aurora_pg_data_api_server.py)。对于 Aurora 服务,还需要在本地设置DB_CLUSTER_ARN和DB_SECRET_ARN环境变量。
清理
要移除所有已部署的资源,请运行:
cd cdk_deployment
source .venv/bin/activate
cdk destroy --all
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。