Back to MCP directory
publicPublicdnsLocal runtime

aws-cost-explorer-mcp-server

一个通过MCP协议查询AWS成本数据和Bedrock使用日志的工具

article

README

🚀 AWS 成本 - 使用 Anthropic 的 MCP 框架快速构建 SSE 代理

本项目借助 Anthropic 的 MCP 框架,能够快速搭建基于 AWS 成本数据的 SSE(Server-Sent Events)代理,实时获取并推送 AWS 账户的成本数据,为用户提供便捷的成本监控方案。

🚀 快速开始

本地运行

  1. 克隆仓库

    git clone https://github.com/yourusername/aws-cost-sse-proxy.git
    cd aws-cost-sse-proxy
    
  2. 安装依赖项

    pip install -r requirements.txt
    
  3. 配置 AWS 凭证

    • 创建 config.json 文件,添加以下内容:
      {
          "aws_access_key_id": "YOUR_ACCESS_KEY",
          "aws_secret_access_key": "YOUR_SECRET_KEY"
      }
      
  4. 启动服务

    python app.py
    
  5. 使用测试客户端

    python client.py --host localhost --port 8000
    

远程设置

若要将此代理部署到 AWS EC2 实例,可按以下步骤操作:

  1. 在 AWS EC2 上创建一个新的实例,并确保它有 internet 访问权限。
  2. 连接到该实例:
    ssh -i your-key.pem ubuntu@your-ec2-instance-public-ip
    
  3. 按照上述本地运行的步骤安装依赖项和配置代理。
  4. 启动代理服务。

✨ 主要特性

  • 实时成本监控:实时从 AWS Cost Explorer API 获取最新的费用数据。
  • SSE 推送:将成本数据通过 Server-Sent Events 格式实时推送至客户端。
  • 多账户支持:支持多个 AWS 账户的成本监控和推送。
  • 可扩展性:采用 FastMCP 框架,具备良好的扩展性和性能。

📦 安装指南

依赖项

  • Python 3.8+
  • Flask - 用于构建 Web 服务
  • fastmcp - Anthropic 的 MCP 框架
  • boto3 - AWS SDK for Python
  • eventlet - 用于异步处理和 WebSocket 支持

📚 详细文档

Nginx 反向代理配置

为通过 HTTPS 提供代理服务,可使用 Nginx 作为反向代理,具体步骤如下:

  1. 安装 Nginx

    sudo apt-get install nginx
    
  2. 配置 Nginx 以反向代理到您的代理服务: 创建 /etc/nginx/conf.d/ec2.conf 文件,添加以下内容:

    server {
        listen 80;
        server_name your-ec2-instance-public-ip;
    
        # 将 HTTP 请求重定向到 HTTPS
        return 301 https://$host$request_uri;
    }
    
    server {
        listen 443 ssl;
        server_name your-ec2-instance-public-ip;
    
        # SSL 证书路径
        ssl_certificate     /etc/ssl/certs/cert.pem;
        ssl_certificate_key /etc/ssl/privatekey/privkey.pem;
    
        # SSL 配置
        ssl_protocols       TLSv1.2 TLSv1.3;
        ssl_ciphers         HIGH:!aNULL:!MD5;
    
        location / {
            proxy_pass http://127.0.0.1:8000;
            proxy_http_version 1.1;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
    
  3. 重新加载 Nginx 配置

    sudo systemctl reload nginx
    
  4. 启动您的代理服务,并通过 HTTPS 访问

    https://your-ec2-instance-public-ip/sse
    

📄 许可证

MIT License

👏 致谢

  • 使用 Anthropic 的 MCP 框架
  • 由 AWS Cost Explorer API 提供支持
  • 使用 FastMCP
help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client