AWS成本管理MCP服务器

一个MCP服务器,提供AWS成本分析、浪费审计和预算监控功能,通过自然语言交互实现云端财务管理。

  • by ravikiranvm
  • Python
  • 本地部署
  • 184 星标
  • 更新于
在 GitHub 查看 ravikiranvm/aws-finops-mcp-server

使用说明

AWS FinOps MCP服务器

MCP(模型上下文协议)服务器,将强大的AWS FinOps功能直接引入您的AI助手。使用自然语言分析云成本、审计浪费并获取预算见解,同时确保您的凭据在本地计算机上的安全。

为什么使用AWS FinOps MCP服务器?

管理AWS成本可能很复杂。要找到诸如“我们上个月在S3上花了多少钱?”或“我们是否有任何未使用的EC2实例?”等问题的答案,通常需要导航AWS控制台或编写脚本。

该服务器通过将LLM强大的自然语言理解直接连接到您的AWS帐户的财务数据,弥合了这一差距。您可以在不离开聊天界面的情况下提出复杂的问题,并获得即时、可操作的见解。

使用案例:

克劳德桌面上的提示: “获取 usage-type 基于过去90天内我所有AWS CLI配置文件的成本。并得到 audit report 适用于该地区的所有配置文件 ap-south-1以简洁的方式用数据制作财务报告,并保持专业性。"

Amazon Q CLI上的提示: “你能用一下吗 aws-finops mcp服务器,获取过去6个月内每月的成本数据 profile 04 并以表格形式呈现数据,突出显示每月总成本和每项服务的成本是如何变化的?"

克劳德桌面上的提示: “使用AWS finops MCP服务器中可用的所有工具生成全面的finops报告以供管理。使用所有可用的CLI配置文件,并在需要时使用ap-south-1区域。”

Claude使用AWS FinOps MCP服务器生成的其他示例报告

网络使用和成本分析报告

综合金融运营报告


目录

  1. 什么是MCP服务器?
  2. 为什么使用AWS FinOps MCP服务器?
  3. 主要特点
  4. 先决条件
  5. 安装
  6. 配置
  7. 用法和示例提示
  8. 工具参考
  9. 成本考虑
  10. 发展与贡献
  11. 许可证

主要特点

  • 详细成本分析:使用标签、时间范围和服务分组查询您的AWS成本数据。
  • 自动化金融运营审计:立即找到云浪费的常见来源,如停止的EC2实例、未连接的EBS卷和未关联的弹性IP等。
  • 预算监控:检查您的AWS预算状态,看看您是否在正轨上、超出预算或预计会超出限额。
  • 多配置文件和多区域:在单个命令中无缝查询您配置的任何或所有AWS帐户和区域。
  • 设计安全:您的AWS凭据 永远不要离开你的机器.服务器在本地运行,并使用您现有的AWS CLI配置直接对AWS进行API调用。

先决条件

通用要求

  • Python 3.10+:确保安装了兼容的Python版本。
  • MCP客户端:支持MCP的应用程序。本指南使用 Claude桌面版 作为示例。

AWS要求和IAM权限

  • AWS-CLI:The 必须安装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服务器:

选项1:使用pipx(推荐)

pipx install aws-finops-mcp-server

如果你没有 pipx,安装时使用:

python -m pip install --user pipx
python -m pipx ensurepath

选项2:使用uv(快速Python包安装程序)

紫外线 是一个速度极快的现代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)

要将此服务器与Claude for Desktop一起使用,您需要告诉应用程序如何运行它。

  1. 打开Claude for Desktop配置文件。它位于:

    • macOS/Linux: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 视窗: %APPDATA%\Claude\claude_desktop_config.json
  2. 将以下条目添加到 mcpServers 对象。如果文件不存在或为空,则需要创建JSON结构。

    {
      "mcpServers": {
        "aws_finops": {
          "command": "aws-finops-mcp-server",
          "args": []
        }
      }
    }
    
  3. 保存文件并 完全重新启动Claude for Desktop.

重启后,服务器将在后台启动,其工具将可供Claude使用。

⚠️ 注:
安装此工具后(例如,通过 pipx install aws-finops-mcp-server),确保 aws-finops-mcp-server 命令在您的系统中可用 PATH.

要检查其安装位置,请运行:

which aws-finops-mcp-server

如果它返回一条类似的路径 /Users/yourname/.local/bin/aws-finops-mcp-server,但它是 不在你的路径中,您有两个选择:

  • 跑 pipx ensurepath 并重新启动您的终端, 或
  • 使用您的完整路径 mcpServers 配置:
{
  "mcpServers": {
    "aws_finops": {
      "command": "/full/path/to/aws-finops-mcp-server",
      "args": []
    }
  }
}

用法和示例提示

现在,您可以用简单的英语询问有关AWS财务的问题。

用例:成本和使用分析

基本查询: “显示我的AWS成本 default 本月的个人资料。"

时间范围查询: “让aws为我的成本 dev 过去14天的个人资料”

筛选和分组查询: “我的成本是多少 production 上个月的个人资料,按标签筛选 CostCenter=Project-Alpha,并按以下方式分组 INSTANCE_TYPE?"

多配置文件查询: “比较我的成本 staging 和 production 过去30天的个人资料。"

用例:FinOps浪费和节省审计

简单审计: “对我的账户进行finops审计 default 配置文件中 us-east-1."

多区域、多档案审计: “检查中未使用的资源 us-west-2 和 eu-west-1 为了我的 prod-us 和 prod-eu 个人资料。"

对所有配置文件进行全面审计: “对我在中配置的所有配置文件运行FinOps审核 us-east-1."

支持的客户

  • 克劳德桌面
  • 亚马逊Q CLI
  • 任何与MCP兼容的客户端支持工具

在以下位置查看支持MCP服务器的客户端列表 https://modelcontextprotocol.io/clients

工具参考

get_cost

从AWS成本资源管理器获取成本和使用数据。

参数 类型 说明
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 工具,它对成本资源管理器API进行2次调用 $0.01.
  • 这 run_finops_audit 该工具调用其他AWS服务API(EC2、Budgets),这些API通常包含在免费层中,或者在典型使用水平下成本可以忽略不计。

发展与贡献

欢迎投稿!如果您想改进服务器或添加新功能,请按照以下步骤操作:

  1. 分叉和克隆: 分叉存储库并将其克隆到本地计算机。
  2. 设置环境:
    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`
    
  3. 在可编辑模式下安装:
    pip install -e .
    
  4. 进行更改: 添加您的功能或错误修复。
  5. 提交拉取请求: 针对 main 分支,清楚地描述您的更改。

许可证

该项目根据MIT许可证获得许可。请参阅 许可证 文件以获取完整详细信息。


这是一个姐妹项目 https://github.com/ravikiranvm/aws-finops-dashboard

由以下材料制成❤️ 靠近 拉维·基兰