这是一个基于 Model Context Protocol (MCP) 实现的服务器,用于将 Azure 账单和成本管理功能暴露给支持 MCP 的大语言模型 (LLM) 客户端。通过此服务器,LLM 可以调用工具查询 Azure 费用、预算、使用详情等信息,或访问特定资源获取订阅或账单概览,甚至使用预定义的 Prompt 模板进行交互。
主要功能点
- 成本分析: 支持根据不同时间范围、粒度和分组方式分析 Azure 费用。
- 预算管理: 查询 Azure 订阅中配置的预算信息。
- 使用详情: 获取 Azure 资源在指定时间范围内的详细使用数据。
- 订阅信息: 检索当前 Azure 订阅的详细信息。
- 价格表: 访问 Azure 服务的价格信息。
- 资源访问: 提供标准的资源 URI ('azure_billing://subscription', 'azure_billing://billing-summary', 'azure_billing://budgets') 供 LLM 客户端直接读取。
- Prompt 模板: 提供用于成本分析、预算建议和成本削减建议的预设 Prompt 模板。
安装步骤
- 确保已安装 Python 环境。
- 使用 pip 安装此服务器软件包:
pip install mcp-azure-billing - 配置 Azure 凭据:
- 您需要在 Azure AD 中创建一个服务主体 (Service Principal)。
- 为该服务主体分配至少“成本管理读取者”(Cost Management Reader) 角色,作用域应至少包含您要查询账单的订阅。
- 记录服务主体的租户 ID (Tenant ID)、客户端 ID (Client ID) 和客户端密钥 (Client Secret)。
- 记录您的 Azure 订阅 ID (Subscription ID)。
- 将这些信息配置为环境变量,服务器启动时会读取:
export AZURE_BILLING_TENANT_ID="您的Azure租户ID" export AZURE_BILLING_CLIENT_ID="您的服务主体客户端ID" export AZURE_BILLING_CLIENT_SECRET="您的服务主体客户端密钥" export AZURE_BILLING_SUBSCRIPTION_ID="您的Azure订阅ID" - 请务必安全地管理您的 Azure 凭据。
服务器配置 (供 MCP 客户端参考)
MCP 客户端(如 Claude Desktop 或其他支持 MCP 的 LLM 应用)需要配置如何启动并连接到此 MCP 服务器。通常,这涉及指定服务器的名称、启动命令和任何必要的参数。
- 服务器名称: 'Azure Billing MCP'
- 启动命令 (Command): 'mcp-azure-billing'
- 参数 (Args): 通常不需要额外的命令行参数。
- 环境变量: 如果您没有在系统环境中设置 Azure 凭据,某些 MCP 客户端允许您在客户端的 MCP 配置中为该服务器进程设置特定的环境变量 (AZURE_BILLING_TENANT_ID, AZURE_BILLING_CLIENT_ID, AZURE_BILLING_CLIENT_SECRET, AZURE_BILLING_SUBSCRIPTION_ID)。
请参考您使用的具体 MCP 客户端的文档来配置外部 MCP 服务器。
基本使用方法
在 MCP 客户端中正确配置并启动此 Azure Billing MCP 服务器后,您的大语言模型即可通过调用服务器暴露的工具、访问资源或使用 Prompt 模板来获取 Azure 账单信息。
例如,您可以在支持的客户端中尝试向 LLM 提问:
- “我上个月的 Azure 费用是多少?” (LLM 可能会调用 'get_cost_analysis' 工具)
- “显示我的 Azure 预算。” (LLM 可能会调用 'get_budgets' 工具或访问 'azure_billing://budgets' 资源)
- “根据我的使用情况,有什么降低 Azure 成本的建议吗?” (LLM 可能会使用 'cost_reduction' Prompt 模板并结合工具获取数据来回答)
服务器将作为 LLM 的一个功能扩展,按需提供 Azure 账单数据。
信息
分类
商业系统