使用说明
AWS观察性MCP工具
只读 模型上下文协议(MCP) 服务器,为AI客户端提供对实时AWS运营数据的结构化访问。它使用Python、FastMCP和boto3构建,并通过标准输入/输出与MCP客户端通信。
它的作用
MCP兼容客户端可以选择和调用范围狭窄的AWS检查工具,而不是在AI助手、AWS控制台和CLI命令之间切换。每个工具都返回结构化的JSON,并将AWS SDK错误标准化为模型可读的响应。
示例问题:
- “我使用的是哪个AWS身份和地区?”
- “列出名称以开头的Lambda函数
dispatch." - “显示此CloudWatch日志组中最近15分钟的事件。”
- “这个ALB目标群体中的目标健康吗?”
建筑学
MCP client (Claude Desktop or another compatible client)
│
│ JSON-RPC over stdio
▼
FastMCP server (main.py)
│
│ read-only boto3 calls
▼
STS · Lambda · CloudWatch Logs · ELBv2
已实施的工具
| 工具 | AWS API | 用途 |
|---|---|---|
aws_whoami |
STS GetCallerIdentity |
返回活动帐户、ARN、用户或角色以及已解决的区域 |
list_lambda_functions |
Lambda ListFunctions |
使用可选前缀过滤列出Lambda名称、运行时、状态和修改时间 |
cloudwatch_log_tail |
CloudWatch日志 FilterLogEvents |
从具有有界时间和结果限制的日志组中返回最近的事件 |
describe_alb_target_health |
ELBv2 DescribeTargetHealth |
返回ALB或NLB目标组中目标的健康状态和诊断详细信息 |
目前所有的工具都是观察性的。它们不会创建、更新、重新启动或删除AWS资源。
安全和错误处理
- 在发出AWS请求之前,对工具输入进行验证。
- 查询限制是有限制的,以避免意外的大响应。
- 亚马逊云服务
ClientError和BotoCoreError异常被转换为结构化JSON。 - 服务器使用所选本地AWS配置文件的权限;使用最小权限只读角色。
- 凭据由boto3解析,不存储在此存储库中。
针对所有已实施工具的最低IAM策略需要采取以下行动:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sts:GetCallerIdentity",
"lambda:ListFunctions",
"logs:FilterLogEvents",
"elasticloadbalancing:DescribeTargetHealth"
],
"Resource": "*"
}
]
}
某些AWS读取API不支持资源级别限制。在生产环境中,在适当的情况下,将此策略与受控配置文件、权限边界和组织级护栏相结合。
需求
- Python 3.10+
- 通过配置文件、环境变量或附加角色配置的AWS凭据
- MCP兼容客户端
设置
git clone https://github.com/jmac052002/aws-observability-mcp-tools.git
cd aws-observability-mcp-tools
python3 -m venv .venv
source .venv/bin/activate
pip install fastmcp boto3
在连接服务器之前,请确认您的AWS身份可用:
aws sts get-caller-identity
运行服务器
python main.py
该进程通过stdio进行通信,因此它通常由MCP客户端启动和管理,而不是作为独立的web服务运行。
Claude桌面配置
将服务器添加到 claude_desktop_config.json 使用绝对路径:
{
"mcpServers": {
"aws-observability": {
"command": "/absolute/path/to/aws-observability-mcp-tools/.venv/bin/python",
"args": [
"/absolute/path/to/aws-observability-mcp-tools/main.py"
]
}
}
}
更新配置后重新启动Claude Desktop。
刀具参数
每个工具都接受可选 profile 和 region 论据。如果省略,boto3将遵循其正常的凭据和区域解析链。CloudWatch和Lambda工具还强制执行有界查询大小,ALB健康工具在调用AWS之前验证目标组ARN。
项目状态
主动学习和投资组合项目。当前的实现涵盖了四个只读操作查询。其他工具只有在实施和验证后才能记录在案。
