关于 AWS Model Context Protocol (MCP) Server
AWS MCP Server 是一个轻量服务,使 AI 助手能够在容器化的安全环境中执行 AWS CLI 命令。它面向使用 Claude、Cursor 等支持 MCP 的工具进行云基础设施管理的用户。该服务封装的是 CLI 本身,而非逐个封装 AWS API。
主要功能
- 01封装 AWS CLI 命令执行
- 02提供 aws_cli_help 与 aws_cli_pipeline 工具
- 03支持 jq、grep 等管道
- 04支持 stdio 与 streamable-http 传输
- 05通过 IAM 策略控制权限
适用场景
- 01让 Claude 查询与管理 AWS 资源
- 02通过 Docker 隔离执行 AWS CLI 命令
MCP 相关
作为 MCP 服务,向 MCP 客户端暴露 aws_cli_help 和 aws_cli_pipeline 两个工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
docker run -i --rm ghcr.io/alexei-led/aws-mcp-server:latest本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
ghcr.io/alexei-led/aws-mcp-server:lateststdio工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
AWS MCP 服务
通过 AWS CLI,让 Claude 访问 200 多项 AWS 服务。
演示
功能说明
此 MCP 服务可代表你运行 AWS CLI 命令。它不单独封装每个 AWS API,而是直接封装 CLI 本身,让 Claude 仅通过两个工具即可完全访问 AWS:
| 工具 | 用途 |
|---|---|
aws_cli_help | 获取任何 AWS 命令的文档 |
aws_cli_pipeline | 执行 AWS CLI 命令,并可选择使用管道(jq、grep 等) |
Claude 会按需使用 --help 学习命令,然后执行命令。它实际能执行哪些操作由你的 IAM 策略控制。
flowchart LR
Claude[Claude] -->|MCP| Server[AWS MCP Server]
Server --> CLI[AWS CLI]
CLI --> AWS[AWS Cloud]
IAM[Your IAM Policy] -.->|controls| AWS
最新动态
- 可流式传输的 HTTP 传输 — 新增面向 Web MCP 客户端的
streamable-http传输,取代已弃用的sse传输(#33) - 输入验证错误处理 — 验证错误现在会返回规范的 MCP 工具错误(
isError: true),而不是常规结果(#34) - 服务描述 — 服务通过
instructions字段向 MCP 客户端说明其用途(#35) - 服务图标 — 服务提供图标元数据,供 MCP 客户端显示(#36)
- 平稳关闭 — MCP 客户端断开连接时,服务会妥善断开连接(#16)
快速开始
前置条件
Claude Code
将以下内容添加到 MCP 设置中(Cmd+Shift+P → “Claude: 打开 MCP 配置”):
{
"mcpServers": {
"aws": {
"command": "uvx",
"args": ["aws-mcp"]
}
}
}
Claude Desktop
将以下内容添加到 Claude Desktop 配置文件:
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"aws": {
"command": "uvx",
"args": ["aws-mcp"]
}
}
}
Docker(更安全)
Docker 通过在容器中运行命令来提供更强的隔离:
{
"mcpServers": {
"aws": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"~/.aws:/home/appuser/.aws:ro",
"ghcr.io/alexei-led/aws-mcp-server:latest"
]
}
}
}
注意:在 Windows 上,请将
~/.aws替换为完整路径(例如C:\Users\YOU\.aws)。
使用 Streamable HTTP 传输的 Docker
对于基于 Web 的 MCP 客户端,请使用 streamable-http 传输:
docker run --rm -p 8000:8000 \
-e AWS_MCP_TRANSPORT=streamable-http \
-v ~/.aws:/home/appuser/.aws:ro \
ghcr.io/alexei-led/aws-mcp-server:latest
服务将在 http://localhost:8000/mcp 提供。
注意:
sse传输已弃用。请改用streamable-http。
AWS 凭证
服务使用标准 AWS 凭证链。系统会自动从以下位置发现凭证:
- 环境变量:
AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY - 凭证文件:
~/.aws/credentials - 配置文件:
~/.aws/config(用于配置文件和区域) - IAM 角色:在 EC2、ECS 或 Lambda 上运行时
若要使用特定配置文件:
{
"mcpServers": {
"aws": {
"command": "uvx",
"args": ["aws-mcp"],
"env": {
"AWS_PROFILE": "my-profile"
}
}
}
}
配置
AWS 设置
| 环境变量 | 说明 | 默认值 |
|---|---|---|
AWS_PROFILE | 要使用的 AWS 配置文件 | default |
AWS_REGION | AWS 区域(也接受 AWS_DEFAULT_REGION) | us-east-1 |
AWS_CONFIG_FILE | AWS 配置文件的自定义路径 | ~/.aws/config |
AWS_SHARED_CREDENTIALS_FILE | 凭证文件的自定义路径 | ~/.aws/credentials |
服务设置
| 环境变量 | 说明 | 默认值 |
|---|---|---|
AWS_MCP_TIMEOUT | 命令执行超时时间(秒) | 300 |
AWS_MCP_MAX_OUTPUT | 最大输出字符数 | 100000 |
AWS_MCP_TRANSPORT | 传输协议(stdio、sse 或 streamable-http) | stdio |
AWS_MCP_SANDBOX | 沙盒模式(auto、disabled、required) | auto |
AWS_MCP_SANDBOX_CREDENTIALS | 凭证传递方式(env、aws_config、both) | both |
安全性
您的 IAM 策略就是安全边界。 此服务会执行 Claude 请求的任何 AWS 命令,而 IAM 控制实际能够成功执行的命令。
最佳实践:
- 使用最小权限 IAM 角色(仅授予 Claude 所需的权限)
- 切勿使用 root 凭证
- 考虑使用 Docker 加强主机隔离
有关详细的安全架构,请参阅安全文档。
文档
许可证
MIT 许可证 — 详情请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。