
AWS Cost Explorer and Amazon Bedrock Model Invocation Logs MCP Server & Client

2025.04.14
81
PythonAWS成本分析自然语言交互云支出管理金融服务
AWS Cost Explorer MCP Server 是一个基于Anthropic的MCP(Model Control Protocol)协议的服务,用于通过AWS Cost Explorer API和Amazon Bedrock模型调用日志获取AWS云支出数据。该服务允许用户通过自然语言与Claude模型交互,分析和可视化AWS云支出数据。
View on GitHub
Overview
基本能力
产品定位
AWS Cost Explorer MCP Server 主要用于AWS云支出的分析和可视化,通过自然语言交互提供详细的成本报告和分析。
核心功能
- Amazon EC2 Spend Analysis: 查看前一天的EC2支出详细数据
- Amazon Bedrock Spend Analysis: 查看过去30天内按区域、用户和模型分类的支出数据
- Service Spend Reports: 分析过去30天内所有AWS服务的支出
- Detailed Cost Breakdown: 按天、区域、服务和实例类型提供详细的成本数据
- Interactive Interface: 通过自然语言与Claude交互查询成本数据
适用场景
- AWS云支出的实时监控和分析
- 通过自然语言查询和理解AWS成本数据
- 生成详细的成本报告和可视化
工具列表
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凭证? 需要在
~/.aws/credentials
和~/.aws/config
中设置AWS凭证。 - 如何运行远程MCP服务器? 设置
MCP_TRANSPORT=sse
并运行python server.py
。 - 如何安全地运行远程MCP服务器? 使用nginx作为反向代理,配置HTTPS访问。
使用教程
使用依赖
- 安装Python 3.12
- 确保AWS凭证具有Cost Explorer访问权限
- 获取Anthropic API访问权限(用于Claude集成)
安装教程
- 安装
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/aarora79/aws-cost-explorer-mcp.git 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
- 测试远程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