基本能力
产品定位
sample-cloud-spend-mcp-server 是一个用于分析和可视化 AWS 云支出的工具,通过 MCP 协议与 Claude Desktop 集成,提供自然语言查询功能。
核心功能
- Amazon EC2 支出分析:查看过去一天的 EC2 支出详细数据。
- Amazon Bedrock 支出分析:查看过去 30 天内按区域、用户和模型分类的支出数据。
- 服务支出报告:分析过去 30 天内所有 AWS 服务的支出情况。
- 详细成本分解:按天、区域、服务和实例类型获取详细的成本数据。
- 交互式界面:通过自然语言查询成本数据。
适用场景
- AWS 云支出分析和优化。
- 通过自然语言查询 AWS 成本数据。
- 开发基于 MCP 协议的自动化工具和代理。
工具列表
get_ec2_spend_last_day()
:获取前一天的 EC2 支出数据。get_detailed_breakdown_by_day(days=7)
:按区域、服务和实例类型提供详细的成本分析。get_bedrock_daily_usage_stats(days=7, region='us-east-1', log_group_name='BedrockModelInvocationLogGroup')
:按区域和用户提供每日模型使用情况分析。get_bedrock_hourly_usage_stats(days=7, region='us-east-1', log_group_name='BedrockModelInvocationLogGroup')
:按区域和用户提供每小时模型使用情况分析。
常见问题解答
- 如何配置 AWS 凭证:确保 IAM 用户/角色具有 Amazon Cost Explorer 和 Amazon CloudWatch 的只读访问权限。
- 如何运行远程 MCP 服务器:使用
sse
作为传输协议,并在 EC2 实例上配置安全组以允许访问 TCP 端口 8000。 - 如何确保安全性:建议使用 HTTPS 和有效的 SSL 证书,避免发送敏感数据。
使用教程
使用依赖
- Python 3.12
- AWS 凭证(具有 Cost Explorer 访问权限)
- Anthropic API 访问权限(用于 Claude 集成)
- [可选] Amazon Bedrock 访问权限(用于 LangGraph Agent)
- [可选] Amazon EC2(用于运行远程 MCP 服务器)
安装教程
-
安装
uv
:
bash
# On macOS and Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
powershell
# On Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" -
克隆仓库:
bash
git clone https://github.com/aws-samples/sample-cloud-spend-mcp-server
cd aws-cost-explorer-mcp -
设置 Python 虚拟环境并安装依赖:
bash
uv venv --python 3.12 && source .venv/bin/activate && uv pip install --requirement pyproject.toml -
配置 AWS 凭证:
bash
mkdir -p ~/.aws
# 在 ~/.aws/credentials 和 ~/.aws/config 中设置凭证
调试方式
本地运行
bash
export MCP_TRANSPORT=stdio
export BEDROCK_LOG_GROUP_NAME=YOUR_BEDROCK_CW_LOG_GROUP_NAME
python server.py
远程运行
bash
export MCP_TRANSPORT=sse
export BEDROCK_LOG_GROUP_NAME=YOUR_BEDROCK_CW_LOG_GROUP_NAME
python server.py
测试 CLI MCP 客户端
bash
MCP_SERVER_HOSTNAME=YOUR_MCP_SERVER_EC2_HOSTNAME
python mcp_sse_client.py --host $MCP_SERVER_HOSTNAME
测试 Chainlit 应用
bash
chainlit run app.py --port 8080