项目简介
Azure 定价 MCP 服务器是一个强大的工具,旨在帮助 LLM(大型语言模型)客户端通过 Model Context Protocol (MCP) 协议,获取并分析 Azure 云服务的实时零售价格信息。它能够查询特定服务和 SKU 的价格、进行多区域价格比较、估算每月成本、发现可用 SKU,甚至推荐最经济的部署区域。此服务器作为 AI 代理的基础组件,使其能够进行成本敏感的架构设计和基础设施规划。
主要功能点
- 价格搜索: 根据服务名称、SKU、区域、价格类型和货币等条件,查询 Azure 零售价格。
- 价格比较: 比较同一服务或 SKU 在不同 Azure 区域的价格差异,或同一服务下不同 SKU 的价格。
- 成本估算: 基于指定的服务、SKU、区域和月度使用小时数,估算 Azure 资源的每月、每日和年度成本,并考虑潜在的折扣和节省计划。
- SKU 发现: 智能匹配用户友好的服务名称(如“web app”、“vm”),然后列出该服务下可用的所有 SKU 及其基本信息。
- 区域推荐: 动态发现给定服务和 SKU 在所有可用区域的价格,并推荐最经济的部署区域,显示节省百分比和 Spot 价格信息。
- 客户折扣查询: 提供获取客户折扣信息的接口(当前默认返回 0.0% 的标准折扣)。
安装步骤
- 安装 Python 3.10+ 和 'venv': 确保您的系统安装了 Python 3.10 或更高版本,并安装了 'venv' 模块。
- 克隆仓库:
git clone https://github.com/jonathan-vella/azure-agentic-infraops.git cd azure-agentic-infraops/mcp/azure-pricing-mcp - 运行安装脚本:
此脚本将创建一个名为 '.venv' 的虚拟环境并安装所有必要的依赖项。python scripts/install.py
服务器配置(针对 MCP 客户端)
MCP 客户端(如 VS Code Copilot Chat 或其他 LLM 应用)需要知道如何启动并连接到此 MCP 服务器。以下是 MCP 客户端配置此服务器的关键信息:
使用 'stdio' 传输(适用于本地客户端):
{ "name": "azure-pricing", "command": "python", "args": [ "-m", "azure_pricing_mcp", "--transport", "stdio" ], "description": "用于查询Azure零售价格和成本估算的MCP服务器,通过标准输入/输出与客户端通信。", "icon": "https://img.shields.io/badge/Azure-Pricing-0078D4?style=flat&logo=microsoftazure" }
- 'name': 服务器的唯一标识符(例如,'azure-pricing'),MCP 客户端用它来引用此服务器。
- 'command': 启动 MCP 服务器的可执行文件,通常是 'python'。
- 'args': 传递给 'command' 的参数列表。
- '-m azure_pricing_mcp': 以 Python 模块的形式运行 'azure_pricing_mcp' 包中的主程序。
- '--transport stdio': 指定服务器使用标准输入/输出('stdio')进行通信,这是本地 MCP 客户端最常用的方式。
- 'description': 服务器的简要描述,帮助用户理解其功能。
- 'icon': 可选,用于在客户端界面显示服务器图标的 URL。
使用 'http' 传输(适用于远程或 Docker 部署):
{ "name": "azure-pricing-http", "command": "python", "args": [ "-m", "azure_pricing_mcp", "--transport", "http", "--host", "0.0.0.0", "--port", "8080" ], "description": "通过HTTP/SSE提供Azure价格查询的MCP服务器,适用于远程访问。", "url": "http://localhost:8080/sse" }
- '--transport http': 指定服务器使用 HTTP/SSE 协议。
- '--host 0.0.0.0': 服务器绑定的主机地址('0.0.0.0' 表示监听所有网络接口)。
- '--port 8080': 服务器监听的端口。
- 'url': 如果是 HTTP 传输,客户端还需要提供服务器的 URL 地址来建立连接。
基本使用方法
- 激活虚拟环境: 运行安装脚本后,在项目根目录('azure-agentic-infraops/mcp/azure-pricing-mcp')下激活虚拟环境:
- Linux/macOS: 'source .venv/bin/activate'
- Windows: '.venv\Scripts\activate'
- 启动 MCP 服务器:
- 对于 'stdio' 传输: 如果您已在 MCP 客户端中配置服务器(如上所述),客户端将自动启动并管理此服务器作为子进程,您无需手动运行。
- 对于 'http' 传输 (手动启动示例): 如果您需要手动启动 HTTP 传输服务器(例如用于测试或独立部署):
服务器将在指定地址和端口启动,您可以通过浏览器访问 'http://localhost:8080/sse' 来验证其可用性(尽管通常此端点专供客户端使用)。python -m azure_pricing_mcp --transport http --host 0.0.0.0 --port 8080
- 在 MCP 客户端中使用: 在您的 MCP 客户端(例如 GitHub Copilot Chat 或支持 MCP 协议的 LLM 应用)中,按照上述“服务器配置”信息配置 'azure-pricing' 或 'azure-pricing-http' 服务器。配置完成后,您的 LLM 即可调用该服务器提供的工具来查询 Azure 价格信息。例如,LLM 可能会通过调用 'azure_price_search' 工具来查找特定虚拟机 SKU 的价格。
信息
分类
开发者工具