AWS成本分析工具

一个为AI代理提供安全、只读访问AWS成本数据的MCP服务器,支持成本查询、分解、预测、异常检测、比较和优化建议。

  • by berkayildi
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 berkayyildirim/mcp-aws-cost-explorer

使用说明

MCP AWS成本资源管理器

一个模型上下文协议(MCP)服务器,为AI代理提供对AWS Cost Explorer的安全、只读访问。

为什么?

AWS成本管理不应要求点击控制台仪表板。这个MCP服务器将Claude(或任何兼容MCP的代理)变成了一个自主的成本分析师——它可以查询你的支出,按服务或团队进行细分,预测下个月的账单,检测异常情况,比较周期以解释发生了什么变化,并提出合理化机会以减少浪费。七个专门构建的工具涵盖了整个成本智能生命周期,全部通过自然语言实现。这是目前可用的最全面的AWS成本MCP服务器。

特性

工具 功能 AWS API
get_aws_cost_and_usage 任何日期范围的每日/每月成本时间序列 GetCostAndUsage
get_cost_by_service 按支出排名的AWS服务成本明细 GetCostAndUsage
get_cost_by_tag 按任何成本分配标签(团队、环境、项目)划分的成本明细 GetCostAndUsage
get_cost_forecast 基于机器学习的支出预测,置信区间为80% GetCostForecast
get_cost_anomalies 通过根本原因分析发现意外支出激增 GetAnomalies
get_cost_comparison 按最大变动者排序的期间比较 GetCostAndUsage
get_rightsizing_recommendations EC2合理化建议,预计每月节省 GetRightsizingRecommendation

快速入门

先决条件

  • Node.js>=18
  • AWS CLI配置了活动凭据(~/.aws/credentials 或AWS SSO)

安装

git clone https://github.com/berkayildi/mcp-aws-cost-explorer.git
cd mcp-aws-cost-explorer
make install
make build

或者从npm安装:

npm install -g mcp-aws-cost-explorer

Claude桌面集成

找到您的Claude Desktop配置文件:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 视窗: %APPDATA%\Claude\claude_desktop_config.json

添加以下配置:

重要提示: 像Claude Desktop这样的GUI应用程序通常不会继承终端的 $PATH。使用Node可执行文件的绝对路径,您可以通过运行以下命令找到该路径 which node (Mac/Linux)或 where node (Windows)。

{
  "mcpServers": {
    "aws-cost-explorer": {
      "command": "/ABSOLUTE/PATH/TO/node",
      "args": ["/absolute/path/to/mcp-aws-cost-explorer/dist/index.js"],
      "env": {
        "AWS_PROFILE": "default",
        "AWS_REGION": "us-east-1"
      }
    }
  }
}

可用工具

以下是你可以问克劳德的问题,以及哪个工具可以处理它:

“这个月我在AWS上花了多少钱?”

工具: get_aws_cost_and_usage

返回包含总计的每日或每月成本时间序列。提供开始日期、结束日期,以及可选的粒度(每日或每月)。

“哪些服务最贵?”

工具: get_cost_by_service

按AWS服务(EC2、S3、Lambda、RDS等)细分成本,按占总成本的百分比从高到低排序。

“每个团队花多少钱?”/“每个环境的成本是多少?”

工具: get_cost_by_tag 随着 tag_key: "Team" 或 tag_key: "Environment"

按任何激活的成本分配标签对成本进行分组。与团队、环境、项目或任何自定义标记配合使用。未标记的资源被标记为 (untagged).

注意:必须在AWS计费控制台中激活成本分配标签,才能显示在成本资源管理器数据中。

“下个月我要花什么?”

工具: get_cost_forecast

使用AWS基于机器学习的预测来预测未来N天的支出(默认值为30)。返回80%置信区间和逐期细分的总预测支出。

“为什么我的账单飙升?”/“有什么不寻常的费用吗?”

工具: get_cost_anomalies + get_cost_comparison

get_cost_anomalies 通过根本原因分析检索AWS成本异常检测检测到的异常,即哪个服务、地区或账户导致了峰值,加上预期与实际支出。

get_cost_comparison 比较两个时间段(默认为本月与上月),并确定哪些服务推动了最大的变化,按绝对影响排序。

注意:异常检测需要在AWS控制台中配置成本异常检测监控器。

“我如何降低成本?”/“是否有任何实例配置过多?”

工具: get_rightsizing_recommendations

返回EC2精简建议:缩减或终止哪些实例,切换到哪种实例类型,以及估计的每月节省。按节省潜力排序。

所需IAM权限

将此最低策略附加到MCP服务器使用的IAM用户或角色:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ce:GetCostAndUsage",
        "ce:GetCostForecast",
        "ce:GetAnomalies",
        "ce:GetRightsizingRecommendation"
      ],
      "Resource": "*"
    }
  ]
}

所有操作都是只读的。不需要写权限。

命令

使用提供的 Makefile 地方发展:

命令 描述
make install 安装依赖项
make build 编译TypeScript
make dev 在监视模式下运行编译器
make test 运行测试套件
make test-coverage 使用覆盖率报告运行测试
make clean 删除dist、node_modules、覆盖率

故障排除

Claude Desktop中的“服务器已断开连接”

Claude找不到你的Node.js运行时。

  1. 跑 which node 在你的终端。
  2. 复制完整路径(例如。, /Users/username/.nvm/versions/node/v20.x.x/bin/node).
  3. 替换 "node" 在 "command" 领域 claude_desktop_config.json 沿着这条绝对的道路。
  4. 完全重新启动Claude Desktop。

“身份验证错误/安全令牌无效”

您的主机缺少活动的AWS会话。运行您的标准AWS登录命令(例如。, aws sso login)然后再试一次。

“配置了无成本异常检测监视器”

这 get_cost_anomalies 该工具需要异常监视器。在AWS成本管理控制台的成本异常检测下设置它们。

“未启用调整建议”

选择AWS Cost Explorer控制台设置中的合理化建议。

预测返回“历史数据不足”

AWS需要至少30天的计费历史记录来生成预测。预计这将适用于新账户。

贡献

自动版本控制和变更日志生成由谷歌的发布处理。请按照以下操作 约定式提交 格式(feat:, fix:, chore:).