README
🚀 Azure Pricing MCP Server
本项目提供了一个模型上下文协议(MCP)服务器,可让你以编程方式查询 Azure 资源定价。该服务器提供了一个结构化工作流程,用于从 Azure 零售价格 API 检索定价信息。
🚀 快速开始
系统要求
- Python 3.8 或更高版本
- 能够访问 Azure 零售价格 API 的互联网连接
- 安装 Python 软件包的权限
- 无需 Azure 账户或凭证(使用公共定价 API)
安装步骤
-
克隆仓库:
git clone https://github.com/sboludaf/mcp-azure-pricing.git cd mcp-azure-pricing -
创建并激活虚拟环境:
python -m venv .venv- Windows:
.venv\Scripts\activate - macOS/Linux:
source .venv/bin/activate
- Windows:
-
安装依赖项:
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 定价信息:
- 获取服务系列 - 检索可用的 Azure 服务系列列表
- 获取服务名称 - 获取特定系列内的服务名称
- 获取产品 - 获取与服务关联的产品
- 计算月度成本 - 计算特定产品的月度成本
高级用法
服务器提供了四个主要工具,形成了一个用于查询 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 资源在所有区域都可用
🤝 贡献
欢迎贡献代码!你可以按照以下步骤为这个项目做出贡献:
- 分叉仓库
- 创建功能分支:
git checkout -b feature/amazing-feature - 提交更改:
git commit -m 'Add some amazing feature' - 推送到分支:
git push origin feature/amazing-feature - 打开拉取请求
📄 许可证
本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件。
微信扫一扫