mcpField
A
AWS Common MCP Servers with CDK Deployment

AWS Common MCP Servers with CDK Deployment

本地服务
github.com/vAirpower云与基础设施183 周前更新

关于 AWS Common MCP Servers with CDK Deployment

该项目提供 AWS Location Service、S3 和通过 RDS Data API 访问 Aurora PostgreSQL 的 MCP 服务,并附带用于部署的 AWS CDK 代码,面向通过 MCP 集成 AWS 服务的 AI 开发者。

主要功能

  1. 01地点搜索、详情查询与路线计算
  2. 02S3 存储桶和对象操作
  3. 03通过 Data API 执行 Aurora PostgreSQL SQL
  4. 04使用 CDK 部署至 ECS Fargate

适用场景

  1. 01使用 Location Service 搜索地点或计算路线
  2. 02列出、读取、上传或删除 S3 对象
  3. 03对 Aurora PostgreSQL 集群执行 SQL
  4. 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 服务

  1. AWS Location Service:(TypeScript)提供搜索地点、获取地点详情、计算路线等功能。基于 aws-location-server。
  2. Amazon S3:(Python)提供基本的 S3 操作工具,例如列出存储桶/对象、获取、上传和删除对象。
  3. 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

部署

  1. 克隆代码仓库:
    git clone https://github.com/vAirpower/aws-common-mcp-servers.git
    cd aws-common-mcp-servers
    
  2. 配置 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。
  3. 安装 CDK 依赖项:
    cd cdk_deployment
    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
    
  4. 引导 CDK(如果是首次在此账户/区域中使用 CDK):
    cdk bootstrap aws://ACCOUNT-NUMBER/REGION # Replace with your AWS account number and region
    
  5. **部署堆栈:**部署所有堆栈(创建 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 函数 / 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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。