Mcp Azure Pricing

Mcp Azure Pricing

🚀 Azure Pricing MCP Server

本项目提供了一个模型上下文协议(MCP)服务器,可让你以编程方式查询 Azure 资源定价。该服务器提供了一个结构化工作流程,用于从 Azure 零售价格 API 检索定价信息。

🚀 快速开始

系统要求

  • 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 服务器

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

服务器默认将在 http://0.0.0.0:8080 启动。

可用端点

  • GET /sse:用于 MCP 通信的服务器发送事件端点
  • GET /tools:列出 MCP 服务器中可用的工具

MCP 客户端配置

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

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

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

✨ 主要特性

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

💻 使用示例

基础用法

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

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

高级用法

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

1. list_service_families

描述:根据 Microsoft 的官方文档列出 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 'Add some amazing feature'
  4. 推送到分支:git push origin feature/amazing-feature
  5. 打开拉取请求

📄 许可证

本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件。

  • 0 关注
  • 0 收藏,21 浏览
  • system 提出于 2025-10-05 16:33

相似服务问题

相关AI产品