使用说明

项目简介

本项目 'aws-cost-explorer-mcp-server' 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为LLM(大型语言模型)应用提供访问AWS云服务成本数据的能力。它通过集成AWS Cost Explorer和CloudWatch Logs,将AWS的成本和Amazon Bedrock模型使用情况数据以结构化的方式暴露给LLM客户端,例如Anthropic的Claude。用户可以通过自然语言与LLM交互,间接地查询和分析AWS的云服务支出。

主要功能点

  • AWS EC2 支出分析: 获取过去一天的EC2服务支出明细。
  • Amazon Bedrock 支出分析: 按区域、用户和模型细分过去30天的Bedrock服务支出。
  • 服务支出报告: 分析过去30天所有AWS服务的支出情况。
  • 详细成本分解: 提供按天、区域、服务和实例类型划分的精细成本数据。
  • 交互式界面: 结合Claude等LLM,通过自然语言进行成本数据查询和分析。

安装步骤

  1. 安装 'uv': 根据您的操作系统,运行以下命令安装 'uv' 包管理器(用于Python环境管理):

    # macOS 和 Linux
    curl -LsSf https://astral.sh/uv/install.sh | sh
    # Windows
    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
  2. 克隆仓库: 使用Git克隆 'aws-cost-explorer-mcp-server' 仓库到本地:

    git clone https://github.com/aarora79/aws-cost-explorer-mcp.git
    cd aws-cost-explorer-mcp
  3. 创建虚拟环境并安装依赖: 使用 'uv' 创建Python 3.12的虚拟环境,并安装项目依赖:

    uv venv --python 3.12 && source .venv/bin/activate && uv pip install --requirement pyproject.toml
  4. 配置AWS凭证: 确保您已配置AWS凭证,MCP服务器需要这些凭证来访问AWS Cost Explorer和CloudWatch Logs。您可以在 '~/.aws/credentials' 和 '~/.aws/config' 文件中配置。

服务器配置

要将此MCP服务器与MCP客户端(例如Claude Desktop)连接,您需要在客户端配置中指定服务器的启动命令和参数。以下是针对Claude Desktop的配置示例 ( 'claude_desktop_config.json' 文件),您需要根据实际情况进行调整:

本地运行 (Option 2: Using UV (without Docker) 示例配置)

{
  "mcpServers": {
    "aws_cost_explorer": {
      "command": "uv",
      "args": [
          "--directory",
          "/path/to/aws-cost-explorer-mcp-server",  //  **[请替换为仓库的实际本地路径]**
          "run",
          "server.py"
      ],
      "env": {
        "AWS_ACCESS_KEY_ID": "YOUR_ACCESS_KEY_ID",    //  **[请替换为您的AWS Access Key ID]**
        "AWS_SECRET_ACCESS_KEY": "YOUR_SECRET_ACCESS_KEY", //  **[请替换为您的AWS Secret Access Key]**
        "AWS_REGION": "us-east-1",                     //  **[请根据需要替换为您的AWS区域]**
        "BEDROCK_LOG_GROUP_NAME": "YOUR_CLOUDWATCH_BEDROCK_MODEL_INVOCATION_LOG_GROUP_NAME", //  **[请替换为您的Bedrock CloudWatch Log Group Name]**
        "MCP_TRANSPORT": "stdio"                      //  **[传输协议设置为stdio,本地运行时使用]**
      }
    }
  }
}

注意:

  • 请将 '"/path/to/aws-cost-explorer-mcp-server"' 替换为您克隆仓库的实际本地路径。
  • 请务必将 'YOUR_ACCESS_KEY_ID'、'YOUR_SECRET_ACCESS_KEY' 和 'YOUR_CLOUDWATCH_BEDROCK_MODEL_INVOCATION_LOG_GROUP_NAME' 替换为您的实际AWS凭证和CloudWatch日志组名称。请勿将真实的AWS凭证直接提交到版本控制系统中。
  • 'MCP_TRANSPORT: "stdio"' 指定使用标准输入输出流作为MCP的传输协议,适用于本地运行的场景。

基本使用方法

  1. 启动MCP服务器: 根据您选择的运行方式(本地或远程),参照仓库 'README.md' 文档中的 "Usage" 章节启动 'server.py'。
  2. 配置MCP客户端: 根据您的MCP客户端(例如Claude Desktop)的要求,配置连接到本地或远程MCP服务器。对于Claude Desktop,您需要编辑 'claude_desktop_config.json' 文件,并添加上面提供的服务器配置信息。
  3. 在MCP客户端中查询: 启动并连接Claude Desktop后,您可以使用自然语言提出关于AWS成本的问题,例如:
    • "Help me understand my Bedrock spend over the last few weeks" (帮我了解一下过去几周我的Bedrock支出)
    • "What was my EC2 spend yesterday?" (我昨天的EC2支出是多少?)
    • "Show me my top 5 AWS services by cost for the last month" (展示我上个月成本最高的5个AWS服务)

LLM客户端将通过MCP协议与服务器通信,调用相应的工具获取数据并生成回答。

信息

分类

商业系统