返回市场
mcp-azure-定价

mcp-azure-定价

作者:sboludaf8 星标更新:2025-06-02

项目介绍

Azure 定价 MCP 服务器

Python 版本 许可证: MIT

该项目提供了一个模型上下文协议(MCP)服务器,允许您通过编程方式查询 Azure 资源定价。该服务器提供了一个结构化的流程,用于从 Azure 零售价格 API 中检索定价信息。

功能

  • 通过简单的结构化工作流查询 Azure 定价数据
  • 从 Azure 零售价格 API 获取实时定价信息
  • 浏览 Azure 服务类别、服务名称和产品
  • 计算 Azure 资源的月度成本

系统需求

  • Python 3.8 或更高版本
  • 访问 Azure 零售价格 API 的互联网连接
  • 安装 Python 包的权限
  • 不需要 Azure 帐户或凭据(使用公共定价 API)

安装

  1. 克隆仓库:

    git clone https://github.com/sboludaf/mcp-azure-pricing.git
    cd mcp--azure-pricing
    
  2. 创建并激活虚拟环境:

    python -m venv .venv
    
    • Windows:
      .venv\Scripts\activate
      
    • macOS/Linux:
      source .venv/bin/activate
      
  3. 安装依赖项:

    pip install -r requirements.txt
    

使用方法

MCP 服务器提供了一个四步结构化工作流,用于访问 Azure 定价信息:

  1. 获取服务类别 - 检索可用的 Azure 服务类别列表
  2. 获取服务名称 - 获取特定类别中的服务名称
  3. 获取产品 - 获取与服务相关的产品
  4. 计算月度成本 - 计算特定产品的月度成本

启动 MCP 服务器

source .venv/bin/activate  # 激活虚拟环境
python azure_pricing_mcp_server.py

默认情况下,服务器将在 http://0.0.0.0:8080 启动。

可用端点

  • GET /sse: 用于 MCP 通信的 Server-Sent Events 端点
  • GET /tools: 列出 MCP 服务器中可用的工具

MCP 客户端配置

要配置一个 MCP 客户端以连接到此服务器,请在您的 mcp_config.json 文件中添加以下内容:

"azure-pricing": {
  "serverUrl": "http://localhost:8080/sse"
}

此配置告诉 MCP 客户端使用 SSE 端点连接到本地服务器上的 8080 端口。确保 URL 与服务器运行的地址和端口匹配。

MCP 工具

服务器提供了四个主要工具,形成了一个逻辑工作流,用于查询 Azure 定价:

1. list_service_families

描述:根据微软官方文档列出 Azure 中所有可用的服务类别。

2. get_service_names

描述:获取指定服务类别内的所有唯一服务名称。

参数

  • service_family: 要查询的服务类别(例如,'Compute', 'Storage')
  • region: Azure 地区(默认:'westeurope')
  • max_results: 要处理的最大结果数

3. get_products

描述:从特定服务类别中获取产品名称。

参数

  • service_family: 要查询的服务类别
  • region: Azure 地区(默认:'westeurope')
  • type: 价格类型(可选,例如,'Consumption', 'Reservation')
  • service_name: 用于过滤的服务名称(可选)
  • product_name_contains: 过滤名称包含此文本的产品(可选)
  • limit: 返回的最大产品数量(可选)

4. get_monthly_cost

描述:计算特定 Azure 产品的月度成本。

参数

  • product_name: 产品的精确名称(例如,'Azure App Service Premium v3 Plan')
  • region: Azure 地区(默认:'westeurope')
  • monthly_hours: 每月小时数(默认:730)
  • type: 价格类型(可选,例如,'Consumption')

错误处理

MCP 服务器包括一个强大的错误处理系统,它:

  • 当资源无法找到时提供描述性错误消息
  • 正确处理 Azure API 错误
  • 为了调试目的记录详细信息

常见错误场景

  • 未找到产品:当指定地区中不存在产品名称时
  • 未找到服务类别:当指定无效的服务类别时
  • API 速率限制:当超过 Azure 零售价格 API 的速率限制时
  • 网络错误:当服务器无法连接到 Azure API 时

限制

  • 价格基于 Azure 零售价格 API 提供的公开信息进行估算
  • 不包括所有可能的折扣、帐户特定优惠或额外费用如税费或支持费用
  • Azure 零售价格 API 有速率限制,这可能会影响大量请求的性能
  • 价格可能会因所选区域和货币而有所不同
  • 并非所有 Azure 资源在所有区域都可用

贡献

欢迎贡献!以下是您可以如何为此项目做出贡献:

  1. 分叉仓库
  2. 创建功能分支:git checkout -b feature/amazing-feature
  3. 提交更改:git commit -m '添加一些惊人的功能'
  4. 推送到分支:git push origin feature/amazing-feature
  5. 打开拉取请求

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。