Azure定价MCP服务器
](https://www.python.org/downloads/) 
此项目提供了一个模型上下文协议(MCP)服务器,允许您以编程方式查询Azure资源定价。该服务器提供了一个结构化的工作流程,用于从Azure零售价格API检索定价信息。
特性
- 通过简单、结构化的工作流查询Azure定价数据
- 从Azure零售价格API获取实时定价信息
- 浏览Azure服务系列、服务名称和产品
- 计算Azure资源的每月成本
系统要求
- Python 3.8或更高版本
- 访问Azure零售价格API的Internet连接
- 安装Python包的权限
- 不需要Azure帐户或凭据(使用公共定价API)
安装
- 克隆存储库:
git clone https://github.com/sboludaf/mcp-azure-pricing.git
cd mcp-azure-pricing- 创建并激活虚拟环境:
python -m venv .venv- 窗户:
.venv\Scripts\activate- macOS/Linux:
source .venv/bin/activate- 安装依赖项:
pip install -r requirements.txt用法
MCP服务器提供了一个结构化的四步工作流,用于访问Azure定价信息:
- 获得服务家庭 -检索可用Azure服务系列的列表
- 获取服务名称 -获取特定系列中的服务名称
- 获取产品 -获取与服务关联的产品
- 计算每月成本 -计算特定产品的每月成本
启动MCP服务器
source .venv/bin/activate # Activate the virtual environment
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与服务器运行的地址和端口匹配。
MCP工具
该服务器提供四个主要工具,形成查询Azure定价的逻辑工作流:
1.列表_服务_家庭
描述:根据Microsoft的官方文档列出Azure中所有可用的服务系列。
2.获取服务名称
描述:获取指定服务系列中的所有唯一服务名称。
参数:
service_family:要查询的服务系列(例如,“计算”、“存储”)region:Azure区域(默认:“西欧”)max_results:要处理的最大结果数
3.获取产品
描述:从特定服务系列获取产品名称。
参数:
service_family:要查询的服务系列region:Azure区域(默认:“西欧”)type:价格类型(可选,例如“消费”、“预订”)service_name:要筛选的服务名称(可选)product_name_contains:筛选名称包含此文本的产品(可选)limit:可退回的最大产品数量(可选)
4.每月费用
描述:计算特定Azure产品的每月成本。
参数:
product_name:产品的确切名称(例如,“Azure应用服务高级v3计划”)region:Azure区域(默认:“西欧”)monthly_hours:每月小时数(默认值:730)type:价格类型(可选,例如“消费”)
错误处理
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许可证获得许可-有关详细信息,请参阅许可证文件。
