项目简介

该项目是一个 AWS EC2 定价查询 MCP 服务器,通过 MCP 协议对外提供 EC2 实例的实时定价信息查询功能。它解析 AWS 的定价数据,并暴露一个标准化的工具供 MCP 客户端(如支持 MCP 的 LLM 客户端或自动化框架)调用。

主要功能点

  • 查询 EC2 实例定价: 根据多种条件查找符合要求的 AWS EC2 实例及其当前定价。
  • 灵活的过滤选项: 支持按 AWS 区域、操作系统平台、实例租赁方式、计费模型(按需、预留实例)、最小硬件配置(CPU、内存、GPU、网络性能等)、实例族或尺寸、处理器类型等多种维度进行过滤。
  • 排序和分页: 支持按价格、硬件配置等字段进行排序,并提供分页功能。
  • 集成 MCP 工具: 将定价查询功能封装为名为 'find_instances' 的 MCP 工具,方便通过标准协议调用。

安装步骤

该服务器可以通过 Docker 镜像或本地 Python 环境运行。

方法 1:使用 Docker Hub 镜像 (推荐)

确保您的系统已安装 Docker。然后,MCP 客户端可以通过配置相应的 'command' 和 'args' 来启动并连接到该 Docker 镜像。

方法 2:使用本地 Python 运行

  1. 确保您的系统安装了 Python 环境。
  2. 下载 EC2 定价数据文件:
    curl https://cloudfix-public-aws-pricing.s3.us-east-1.amazonaws.com/pricing/ec2_pricing.json.gz | gunzip > ec2_pricing.json
    将下载的 'ec2_pricing.json' 文件放在 'server.py' 脚本所在的同一目录下。
  3. 安装 Python 依赖(例如 'fastmcp')。具体安装方式请参考项目源代码或相关文档。
  4. MCP 客户端可以通过配置相应的 'command' 和 'args' 来启动本地的 'server.py' 脚本。

服务器配置

MCP 服务器是为 MCP 客户端(如支持 MCP 的 LLM 客户端)提供服务的。您需要在 MCP 客户端的配置文件中指定如何启动此服务器。

配置信息通常是一个 JSON 结构,包含服务器名称(客户端用于标识)、启动命令 ('command') 和传递给命令的参数列表 ('args')。

配置示例说明 (适用于 MCP 客户端配置)

  • 服务器名称: 例如 '"AWS EC2 Pricing MCP"',这是客户端用来引用该服务器的标识符。
  • 'command':
    • 如果使用 Docker Hub 镜像,命令通常是 '"docker"'。
    • 如果使用本地 Python 运行,命令通常是 '"python"'。
  • 'args':
    • 如果使用 Docker Hub 镜像,参数列表可能包含 '["run", "--rm", "-i", "--network", "none", "ai1st/aws-pricing-mcp"]'。其中 '-i' 参数对于通过 Stdio 通信至关重要,'--rm' 确保容器退出时自动移除,'--network none' 增强安全性。
    • 如果使用本地 Python 运行,参数列表是服务器脚本的路径,例如 '["/path/to/server.py"]'。请确保路径正确。

您的 MCP 客户端会根据这些配置信息启动该服务器,并通过 Stdio(标准输入输出)与其建立通信。

基本使用方法

一旦 MCP 客户端成功启动并连接到 AWS EC2 定价查询服务,大型语言模型或客户端应用就可以通过调用名为 'find_instances' 的 MCP 工具来获取 EC2 定价数据。

调用 'find_instances' 工具时,可以传递各种参数来指定查询条件,例如:

  • 'filter_region':指定 AWS 区域 (e.g., '"us-east-1"')
  • 'filter_platform':指定操作系统 (e.g., '"Windows with SQL Server Enterprise"')
  • 'filter_min_ram':指定最小内存大小 (e.g., '32.0')
  • 'filter_max_price_per_hour':指定最高每小时价格 (e.g., '0.5')
  • 'sort_by':指定排序字段 (e.g., '"Price"')
  • 'sort_order':指定排序顺序 (e.g., '"Ascending"')

工具将返回一个符合条件的 EC2 实例对象列表,每个对象包含该实例的详细配置和不同计费模型下的有效价格信息。LLM 或客户端可以解析这些结果并用于进一步处理或回答用户问题。

信息

分类

AI与计算