使用说明
Azure FinOps MCP服务器
MCP(模型上下文协议)服务器,将强大的Azure FinOps功能直接引入您的AI助手。使用自然语言分析云成本、审计浪费并获取预算见解,同时确保您的凭据在本地计算机上的安全。
为什么使用Azure FinOps MCP服务器?
管理Azure成本可能很复杂。要找到诸如“我们上个月在存储上花了多少钱?”或“我们有任何停止的虚拟机吗?”等问题的答案,通常需要浏览Azure门户或编写脚本。
此服务器通过将LLM强大的自然语言理解直接连接到Azure订阅的财务数据,弥合了这一差距。您可以在不离开聊天界面的情况下提出复杂的问题,并获得即时、可操作的见解。
使用案例:
克劳德桌面上的提示: “获取
usage-type基于过去90天内我所有Azure订阅的成本。并得到audit report适用于该地区的所有订阅eastus以简洁的方式用数据制作财务报告,并保持专业性。"
Amazon Q CLI上的提示: “你能用一下吗
azure-finopsmcp服务器,获取过去6个月内每月的成本数据subscription Production并以表格形式呈现数据,突出显示每月总成本和每项服务的成本是如何变化的?"
克劳德桌面上的提示: “使用Azure finops MCP服务器中可用的所有工具生成全面的finops报告以供管理。使用所有可用的订阅,并在需要时使用eastus地区。”
Claude使用Azure FinOps MCP服务器生成的其他示例报告
🚀 v2.0.0的新增功能
- 100%架构合规性:在架构验证中获得满分(142/142)
- 演出:通过并行处理和优化的批处理操作,速度提高了4.9倍
- 安全:所有高严重性问题均已解决,生产就绪的安全态势
- 模块化设计:重构为重点突出、可维护的模块(每个功能<50行)
- 增强测试:97.7%的测试覆盖率,包括全面的单元和集成测试
- 完整CI/CD:GitHub Actions管道,具有自动化测试和部署功能
- 更好的错误处理:重试逻辑、断路器和优雅降级
目录
主要特点
- 详细成本分析:使用标签、时间范围和服务分组查询Azure成本数据。
- 自动化金融运营审计:立即找到云浪费的常见来源,如停止的VM、未连接的托管磁盘和未关联的公共IP等。
- 预算监控:检查Azure预算的状态,看看你是否在正轨上、超出预算或预计会超出限额。
- 多订阅和多地区:在单个命令中跨任何或所有Azure订阅和区域进行无缝查询。
- 设计安全:您的Azure凭据 永远不要离开你的机器。服务器在本地运行,并使用您现有的Azure CLI配置直接对Azure进行API调用。
先决条件
通用要求
- Python 3.10+:确保安装了兼容的Python版本。
- MCP客户端:支持MCP的应用程序。本指南使用 Claude桌面版 作为示例。
Azure要求和IAM权限
- Azure命令行界面:The 必须安装Azure CLI 在你的机器上。
- Azure订阅:您至少需要一个具有活动凭据的Azure订阅。
- Azure权限:Azure标识(服务主体或用户)需要特定的只读权限才能正常运行。
您的Azure身份需要以下内置角色或等效的自定义权限。这些权限是 只读的 并且仅授予对必要服务的访问。
所需的Azure角色:
- 成本管理阅读器:用于访问成本和使用数据
- 读者:用于访问资源信息(VM、磁盘、IP)
或者,创建具有以下权限的自定义角色:
Microsoft.CostManagement/*/readMicrosoft.Consumption/*/readMicrosoft.Compute/virtualMachines/readMicrosoft.Compute/virtualMachines/instanceView/readMicrosoft.Compute/disks/readMicrosoft.Network/publicIPAddresses/readMicrosoft.Resources/subscriptions/readMicrosoft.Resources/subscriptions/resourceGroups/read
安装
有几种方法可以安装Azure FinOps MCP服务器:
选项1:使用uv(推荐-快速Python包管理器)
紫外线 是一个速度极快的现代Python包安装程序和解析器。
# Install uv if you don't have it yet
curl -LsSf https://astral.sh/uv/install.sh | sh
# Create project directory
mkdir azure-finops-mcp-server && cd azure-finops-mcp-server
# Create and activate python virtual environment
uv venv && source .venv/bin/activate
# Install azure-finops-mcp-server
uv pip install azure-finops-mcp-server
选项2:使用pipx
pipx install azure-finops-mcp-server
如果你没有 pipx,安装时使用:
python -m pip install --user pipx
python -m pipx ensurepath
选项3:来源
# Clone the repository
git clone https://github.com/julianobarbosa/azure-finops-mcp-server.git
cd azure-finops-mcp-server
# Create and activate python virtual environment
python -m venv .venv && source .venv/bin/activate
# Install using pip
pip install -e .
配置
步骤1:Azure CLI设置
如果您还没有,请登录Azure并设置您的订阅:
# Login to Azure
az login
# List available subscriptions
az account list
# Set a default subscription (optional)
az account set --subscription "Your Subscription Name"
Azure CLI将通过浏览器或设备代码流处理身份验证。您的凭据由Azure CLI安全存储和管理。
步骤2:MCP客户端设置(桌面版Claude)
要将此服务器与Claude for Desktop一起使用,您需要告诉应用程序如何运行它。
-
打开Claude for Desktop配置文件。它位于:
- macOS/Linux:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json
- macOS/Linux:
-
将以下条目添加到
mcpServers对象。如果文件不存在或为空,则需要创建JSON结构。{ "mcpServers": { "azure_finops": { "command": "azure-finops-mcp-server", "args": [] } } } -
保存文件并 完全重新启动Claude for Desktop.
重启后,服务器将在后台启动,其工具将可供Claude使用。
⚠️ 注: 安装此工具后(例如,通过
uv pip install azure-finops-mcp-server),确保azure-finops-mcp-server命令在您的系统中可用PATH.要检查其安装位置,请运行:
which azure-finops-mcp-server如果它返回一条类似的路径
/Users/yourname/.local/bin/azure-finops-mcp-server,但它是 不在你的路径中,您有两个选择:
- 如果使用pipx:运行
pipx ensurepath并重新启动您的终端, 或- 如果使用uv:确保您的虚拟环境已激活, 或
- 使用您的完整路径
mcpServers配置:{ "mcpServers": { "azure_finops": { "command": "/full/path/to/azure-finops-mcp-server", "args": [] } } }
用法和示例提示
现在,您可以用简单的英语询问有关Azure财务的问题。
用例:成本和使用分析
基本查询: “显示我的Azure成本
Production本月订阅。"
时间范围查询: “为我的天蓝色成本
Development过去14天的订阅”
筛选和分组查询: “我的成本是多少
Production上个月订阅,按标签筛选CostCenter=Project-Alpha,并按以下方式分组MeterSubcategory?"
多订阅查询: “比较我的成本
Staging和Production过去30天的订阅。"
用例:FinOps浪费和节省审计
简单审计: “对我的账户进行finops审计
Production订阅eastus."
多区域、多订阅审核: “检查中未使用的资源
westus2和westeurope为了我的Prod-US和Prod-EU订阅。"
对所有订阅进行全面审核: “对我在中配置的所有订阅运行FinOps审核
eastus."
支持的客户
- 克劳德桌面
- 亚马逊Q CLI
- 任何与MCP兼容的客户端支持工具
在以下位置查看支持MCP服务器的客户端列表 https://modelcontextprotocol.io/clients
工具参考
get_cost
从Azure成本管理获取成本和使用数据。
| 参数 | 类型 | 说明 |
|---|---|---|
profiles |
List[str] |
要使用的Azure订阅名称或ID的列表。 |
all_profiles |
bool |
如果 True,使用所有可用的订阅。默认为 False. |
time_range_days |
int |
过去获取数据的天数(例如。, 7 过去7天)。 |
start_date_iso |
str |
开始日期 YYYY-MM-DD 格式。优先于 time_range_days. |
end_date_iso |
str |
结束日期 YYYY-MM-DD 格式。必须与 start_date_iso. |
tags |
List[str] |
按成本分配标签过滤。格式: ["Key=Value", "Key2=Value2"]. |
dimensions |
List[str] |
按尺寸过滤。格式: ["REGION=us-east-1"]. |
group_by |
str |
按维度对成本进行分组。默认值为 ServiceName. |
run_finops_audit
进行财务审计,以发现未使用且可能成本高昂的资源。
| 参数 | 类型 | 说明 |
|---|---|---|
regions |
List[str] |
运行审核的Azure区域列表(例如。, ["eastus", "westeurope"]). |
profiles |
List[str] |
要使用的Azure订阅名称或ID的列表。 |
all_profiles |
bool |
如果 True,使用所有可用的配置文件。默认为 False. |
输出格式: JSON、CSV、PDF、HTML、Markdown(取决于客户端功能)
成本考虑
此工具与Azure成本管理API交互。Azure对这些API调用收费。
- 成本: 每次使用
get_cost工具,它对成本资源管理器API进行2次调用 $0.01. - 这
run_finops_audit该工具调用其他Azure服务API(计算、网络、消费),这些API通常包含在免费层中,或者在典型的使用级别上成本可以忽略不计。
发展与贡献
欢迎投稿!如果您想改进服务器或添加新功能,请按照以下步骤操作:
- 分叉和克隆: 分叉存储库并将其克隆到本地计算机。
- 使用紫外线设置环境:
git clone https://github.com/your-username/azure-finops-mcp-server.git cd azure-finops-mcp-server uv venv source .venv/bin/activate # On Windows, use `.venv\Scripts\activate` - 使用uv在可编辑模式下安装:
uv pip install -e . - 进行更改: 添加您的功能或错误修复。
- 提交拉取请求: 针对
main分支,清楚地描述您的更改。
许可证
该项目根据MIT许可证获得许可。请参阅 许可证 文件以获取完整详细信息。
这是受AWS FinOps MCP服务器项目的启发
最初由 拉维·基兰 对于AWS,通过以下方式迁移到Azure 朱利亚诺Barbosa
