内容
# Azure Pricing MCP Server
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
该项目提供了一个模型上下文协议(Model Context Protocol,MCP)服务器,允许您以编程方式查询Azure资源定价。该服务器提供了一个结构化的工作流程,以从Azure零售价格API中检索定价信息。
## 特性
- 通过简单、结构化的工作流程查询Azure定价数据
- 从Azure零售价格API获取实时定价信息
- 浏览Azure服务系列、服务名称和产品
- 计算Azure资源的月度成本
## 系统要求
- Python 3.8或更高版本
- 需要互联网连接以访问Azure零售价格API
- 需要安装Python包的权限
- 不需要Azure账户或凭据(使用公共定价API)
## 安装
1. **克隆仓库:**
```bash
git clone https://github.com/sboludaf/mcp-azure-pricing.git
cd mcp-azure-pricing
```
2. **创建并激活虚拟环境:**
```bash
python -m venv .venv
```
* Windows:
```bash
.venv\Scripts\activate
```
* macOS/Linux:
```bash
source .venv/bin/activate
```
3. **安装依赖:**
```bash
pip install -r requirements.txt
```
## 使用
MCP服务器提供了一个结构化的四步工作流程,用于访问Azure定价信息:
1. **获取服务系列** - 检索可用的Azure服务系列列表
2. **获取服务名称** - 获取特定系列中的服务名称
3. **获取产品** - 获取与服务相关的产品
4. **计算月度成本** - 计算特定产品的月度成本
## 启动MCP服务器
```bash
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` 文件中添加以下内容:
```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. Fork该仓库
2. 创建一个功能分支:`git checkout -b feature/amazing-feature`
3. 提交您的更改:`git commit -m 'Add some amazing feature'`
4. 推送到分支:`git push origin feature/amazing-feature`
5. 打开一个Pull Request
## 许可证
该项目根据MIT许可证进行许可 - 详细信息请参见LICENSE文件。
连接信息
猜你喜欢
Firecrawl
Firecrawl MCP Server 实现了网页抓取、爬虫和内容提取功能。
MarkItDown
将文件和办公文档转换为Markdown的Python工具。
MarkItDown MCP
MarkItDown-MCP是一个轻量级服务器,用于将URI转换为Markdown。
OmniRoute
永不停息的编码。免费 AI 网关 — 一个端点,160+ 提供商,零停机时间。智能 4 级自动降级(订阅 → API → 廉价 →...
文件系统操作
Node.js MCP服务器,用于文件系统操作,支持动态访问控制。
TrendRadar
TrendRadar:30秒内为您提供真实新闻的热点助手。