关于 aws-finops-mcp-server
aws-finops-mcp-server 是一个 MCP 服务,将 AWS FinOps 能力接入 AI 助手,支持用自然语言分析云成本、审计资源浪费并查看预算状态。它在本地运行,使用现有 AWS CLI 配置直接调用 AWS API,凭证不会离开用户机器。
主要功能
- 01按标签、时间范围和服务分组查询成本
- 02审计未使用的 EC2、EBS 卷与 Elastic IP
- 03检查 AWS Budgets 的预算状态与预测
- 04跨多个 AWS CLI 配置与区域的查询
- 05凭证保存在本地,通过 AWS CLI 配置调用 API
适用场景
- 01用自然语言询问某服务上个月的 AWS 支出
- 02定期运行成本浪费审计并生成报告
- 03比较 staging 与 production 等多个账户的成本
MCP 相关
该项目是 MCP 服务端,向 Claude Desktop、Amazon Q CLI 等 MCP 客户端暴露 get_cost 与 run_finops_audit 两个工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
AWS FinOps MCP 服务
一款 MCP(模型上下文协议)服务,可将强大的 AWS FinOps 能力直接带入你的 AI 助手。使用自然语言分析云成本、审计浪费并获取预算洞察,同时确保凭据安全地保存在本地计算机上。
为什么使用 AWS FinOps MCP 服务?
管理 AWS 成本可能很复杂。要回答“我们上个月在 S3 上花了多少钱?”或“我们有没有闲置的 EC2 实例?”这类问题,通常需要浏览 AWS 控制台或编写脚本。
此服务通过将大模型强大的自然语言理解能力直接连接到 AWS 账户的财务数据,弥合了这一差距。你可以提出复杂的问题,并立即获得可执行的洞察,无需离开聊天界面。
使用场景:
在 Claude Desktop 中的提示词:“获取过去 90 天我所有 AWS CLI 配置文件按
usage-type统计的成本。并获取区域ap-south-1中所有配置文件的audit report。生成一份极简、专业的 FinOps 报告。”

在 Amazon Q CLI 中的提示词:“请使用
aws-finopsMCP 服务,获取过去 6 个月profile 04每个月的成本数据,并以表格形式呈现,突出显示每个月总成本及各项服务成本的变化。”

在 Claude Desktop 中的提示词:“使用 AWS FinOps MCP 服务提供的所有工具,为管理层生成一份全面的 FinOps 报告。使用所有可用的 CLI 配置文件,并在需要时使用区域 ap-south-1。”

Claude 使用 AWS FinOps MCP 服务生成的其他示例报告
目录
主要功能
- 详细的成本分析:使用标签、时间范围和服务分组查询 AWS 成本数据。
- 自动化 FinOps 审计:立即发现常见的云资源浪费来源,例如已停止的 EC2 实例、未挂载的 EBS 卷和未关联的弹性 IP 等。
- 预算监控:检查 AWS Budgets 的状态,了解预算是否符合预期、已超支或预计会超出限额。
- 多配置文件和多区域:通过一条命令,无缝查询已配置的任意 AWS 账户和区域,或查询全部账户和区域。
- 安全设计:你的 AWS 凭证绝不会离开你的计算机。该服务在本地运行,并使用你现有的 AWS CLI 配置直接向 AWS 发起 API 调用。
前提条件
通用要求
- Python 3.10+:确保已安装兼容的 Python 版本。
- MCP 客户端:支持 MCP 的应用程序。本指南以 Claude for Desktop 为例。
AWS 要求和 IAM 权限
- AWS CLI:必须在你的计算机上安装 AWS CLI。
- AWS 账户和配置文件:至少需要一个已配置的 AWS 配置文件。
- IAM 权限:与你的配置文件关联的 AWS 身份(IAM 用户或角色)需要特定的只读权限才能正常运行。
创建包含以下 JSON 的 IAM 策略,并将其附加到你的用户或角色。这些权限为只读权限,仅授予访问必要服务的权限。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowFinOpsMCPServer",
"Effect": "Allow",
"Action": [
"ce:GetCostAndUsage",
"budgets:ViewBudget",
"ec2:DescribeInstances",
"ec2:DescribeVolumes",
"ec2:DescribeAddresses",
"sts:GetCallerIdentity"
],
"Resource": "*"
}
]
}
安装
有几种安装 AWS FinOps MCP Server 的方法:
选项 1:使用 pipx(推荐)
pipx install aws-finops-mcp-server
如果尚未安装 pipx,请使用以下命令安装:
python -m pip install --user pipx
python -m pipx ensurepath
选项 2:使用 uv(快速 Python 包安装程序)
uv 是一款现代化的 Python 包安装程序和解析器,速度极快。
# Install uv if you don't have it yet
curl -LsSf https://astral.sh/uv/install.sh | sh
# Create project directory
mkdir aws-finops-mcp-server && cd aws-finops-mcp-server
# Create and activate python virtual environment
uv venv && source .venv/bin/activate
# Install aws-finops-dashboard
uv pip install aws-finops-mcp-server
选项 3:从源代码安装
# Clone the repository
git clone https://github.com/ravikiranvm/aws-finops-mcp-server.git
cd aws-finops-mcp-server
# Create and activate python virtual environment
python -m venv .venv && source .venv/bin/activate
# Install using pip
pip install -e .
配置
步骤 1:配置 AWS CLI 配置文件
如果尚未配置 AWS 配置文件,请先进行配置。对于每个要使用的配置文件,运行:
aws configure --profile your-profile-name
CLI 会提示你输入:
AWS Access Key ID:你的凭证访问密钥。AWS Secret Access Key:你的凭证秘密密钥。Default region name:例如,us-east-1。Default output format:例如,json。
对于默认配置文件,可以省略 --profile 标志。
步骤 2:配置 MCP 客户端(Claude for Desktop)
要在 Claude for Desktop 中使用此服务,需要告知应用如何运行它。
-
打开 Claude for Desktop 配置文件。文件位于:
- macOS / Linux:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS / Linux:
-
将以下条目添加到
mcpServers对象中。如果文件不存在或为空,则需要创建 JSON 结构。{ "mcpServers": { "aws_finops": { "command": "aws-finops-mcp-server", "args": [] } } } -
保存文件并完全重启 Claude for Desktop。
重启后,该服务将在后台启动,其工具将可供 Claude 使用。
⚠️ 注意:
安装此工具后(例如,通过pipx install aws-finops-mcp-server安装),请确保系统的PATH中包含aws-finops-mcp-server命令。要检查其安装位置,请运行:
which aws-finops-mcp-server如果返回的路径类似
/Users/yourname/.local/bin/aws-finops-mcp-server,但该路径不在你的 PATH 中,你有两个选择:
- 运行
pipx ensurepath并重启终端,或- 在
mcpServers配置中使用完整路径:{ "mcpServers": { "aws_finops": { "command": "/full/path/to/aws-finops-mcp-server", "args": [] } } }
用法与示例提示词
现在,你可以用日常语言询问有关 AWS 财务的问题。
用例:成本与使用情况分析
基本查询: “查看我本月
default配置文件的 AWS 成本。”
时间范围查询: “查看我的
dev配置文件过去 14 天的 AWS 成本”
筛选与分组查询: “我的
production配置文件上个月的成本是多少?筛选标签CostCenter=Project-Alpha,并按INSTANCE_TYPE分组。”
多配置文件查询: “比较我的
staging和production配置文件过去 30 天的成本。”
用例:FinOps 浪费与节省审计
简单审计: “对我在
us-east-1中的default配置文件运行 FinOps 审计。”
多区域、多配置文件审计: “检查我的
prod-us和prod-eu配置文件在us-west-2和eu-west-1中是否存在未使用的资源。”
所有配置文件的全面审计: “对我在
us-east-1中配置的所有配置文件运行 FinOps 审计。”
支持的客户端
- Claude Desktop
- Amazon Q CLI
- 任何支持工具的 MCP 兼容客户端
查看支持 MCP 服务的客户端列表:https://modelcontextprotocol.io/clients
工具参考
get_cost
从 AWS Cost Explorer 获取成本和使用情况数据。
| 参数 | 类型 | 描述 |
|---|---|---|
profiles | List[str] | 要使用的 AWS CLI 配置文件名称列表。 |
all_profiles | bool | 如果为 True,则使用所有可用的配置文件。默认为 False。 |
time_range_days | int | 获取过去多少天的数据(例如,7 表示过去 7 天)。 |
start_date_iso | str | YYYY-MM-DD 格式的开始日期。其优先级高于 time_range_days。 |
end_date_iso | str | YYYY-MM-DD 格式的结束日期。必须与 start_date_iso 一起使用。 |
tags | List[str] | 按成本分配标签筛选。格式:["Key=Value", "Key2=Value2"]。 |
dimensions | List[str] | 按维度筛选。格式:["REGION=us-east-1"]。 |
group_by | str | 用于对成本分组的维度。默认值为 SERVICE。 |
run_finops_audit
运行财务审计,以查找未使用且可能产生高额费用的资源。
| 参数 | 类型 | 描述 |
|---|---|---|
regions | List[str] | 要运行审计的 AWS 区域列表(例如,["us-east-1", "eu-west-1"])。 |
profiles | List[str] | 要使用的 AWS CLI 配置文件名称列表。 |
all_profiles | bool | 如果为 True,则使用所有可用的配置文件。默认为 False。 |
输出格式: JSON、CSV、PDF、HTML、Markdown(取决于客户端功能)
成本注意事项
此工具会与 AWS Cost Explorer API 交互。AWS 会对这些 API 调用收费。
- 费用: 每次使用
get_cost工具时,都会调用 Cost Explorer API 两次,费用为 $0.01。 run_finops_audit工具会调用其他 AWS 服务 API(EC2、Budgets),这些 API 通常包含在免费套餐中,或在典型使用量下费用可以忽略不计。
开发与贡献
欢迎贡献!如果你想改进此服务或添加新功能,请按照以下步骤操作:
- Fork 并克隆: Fork 此仓库,并将其克隆到本地计算机。
- 设置环境:
git clone https://github.com/your-username/aws-finops-mcp-server.git cd aws-finops-mcp-server python -m venv .venv source .venv/bin/activate # On Windows, use `.venv\Scripts\activate` - 以可编辑模式安装:
pip install -e . - 进行更改: 添加功能或修复错误。
- 提交 Pull Request: 针对
main分支创建 PR,并清楚描述所做的更改。
许可证
此项目采用 MIT License 授权。详情请参阅 LICENSE 文件。
这是 https://github.com/ravikiranvm/aws-finops-dashboard 的姊妹项目。
由 Ravi Kiran 倾心打造 ❤️
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。