使用说明
使用Docker的AWS MCP服务器
该项目是一个模型上下文协议(MCP)服务器,通过REST API公开AWS功能(列出S3存储桶,列出EC2实例)。 fastmcp,一个用于创建与上下文协议模型兼容的服务器的轻量级框架,公开了服务器发送事件(SSE)端点,并设计为使用Docker轻松部署。
项目结构
├-aws-mcp-server.py Python代码(工具定义)
├-dockerfile#Docker映像(Python环境)
└── docker-compose.yml#编排(注入凭证)
先决条件
-
Docker与Docker编写 :确保它们安装在您的机器上。
-
配置AWS ID :服务器正在使用
boto3,谁需要您的AWS凭据。推荐的方法是拥有您的文件~/.aws/credentials配置。文件docker-compose.yml已配置为将此目录装载到容器中。Ne代码 永不 您的硬标识符在代码中。
使用Docker Compose启动服务器
启动服务器的推荐方法是使用Docker Compose。
-
转到项目目录:
cd aws_mcp -
启动服务: 此命令将构建Docker映像(如果不存在),并在后台启动容器。
docker-compose up --build -d
服务器现在正在运行并可访问 http://localhost:5001.
有用的Docker Compose命令
-
要查看服务器日志:
docker-compose logs -f -
要停止和删除容器:
docker-compose down
协议的入口点(Endpoints)
服务器通过库管理的标准入口点实现模型上下文协议。 mcp它需要所有呼叫的身份验证令牌。
1.发现工具(/tools)
列出可用工具及其模式。
- 统一资源定位符 :
/tools - 方法 :
GET - 头球 :
Authorization: Bearer changeme - 答复 :包含工具列表、描述和参数的JSON。
示例 curl:
curl -H "Authorization: Bearer changeme" http://localhost:5001/tools
2.执行工具(/execute)
允许您使用参数启动特定工具。
- 统一资源定位符 :
/execute - 方法 :
POST - 头球 :
Authorization: Bearer changeme - 请求体(body) :指定工具名称及其参数的JSON。
{ "tool_name": "nom_de_l_outil", "arguments": { "param1": "valeur1" } } - 答复 :包含工具执行结果的JSON。
可用工具
| 工具 | 描述 | 设置 |
|---|---|---|
list_s3_buckets |
返回所有S3存储桶的名称列表。 | 无 |
list_ec2_instances |
列出给定区域中的EC2实例。 | region (字符串,可选):AWS区域。缺陷: eu-west-3. |
get_monthly_cost |
获取当月的AWS总成本。 | 无 |
get_cost_breakdown列出本月最昂贵的5项AWS服务。 |
无 |
示例 curl:
-
李斯特水桶S3:
curl -X POST -H "Content-Type: application/json" \ -H "Authorization: Bearer changeme" \ -d '{"tool_name": "list_s3_buckets"}' \ http://localhost:5001/execute -
列出特定区域中的EC2实例:
curl -X POST -H "Content-Type: application/json" \ -H "Authorization: Bearer changeme" \ -d '{"tool_name": "list_ec2_instances", "arguments": {"region": "us-west-2"}}' \ http://localhost:5001/execute