Token导航 LogoToken导航TokenDH.com
Adf Cost Intelligence MCP logo
AI代理stdio官方级别未说明来源级核验

Adf Cost Intelligence MCP

MCP Server

一个基于Model Context Protocol (MCP)的企业级FinOps智能系统,用于分析Azure Data Factory的成本消耗、检测浪费并提供优化建议。

工具数

5

提示词数

0

GitHub Stars

1

资源数

0
PythonClaudeAI代理Claude DesktopClaudeCursorWindsurf

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

harinarayn

提供方

harinarayn

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

ADF成本情报MCP

Python 3.11+ MCP Azure ADF License MIT CI

询问你的AI助手哪个ADF管道正在消耗你的Azure预算,以及确切的原因。

Azure数据工厂的企业FinOps智能系统,通过模型上下文协议(MCP)公开。将原始ADF消耗指标(DIU小时、vCore小时、活动运行)转换为美元估算,检测浪费,识别成本峰值,并推荐具有量化节省的具体修复方案。定价是从Azure零售价格API实时获取的,而不是硬编码常量。

使用 Claude Desktop、Claude Code、GitHub Copilot、Cursor、Windsurf或任何兼容MCP的客户端。

______________________________________________________________________

你可以问什么

Which ADF pipeline cost the most this month?

Why did my ADF bill spike last week?

Are any of my pipelines running wastefully?

Give me your top recommendations to cut my ADF spend.

Break down the cost of my IngestSalesData pipeline.

示例响应:

本月最昂贵的三大管道: 1. 摄取销售数据 -142.30美元(司机:从复印活动开始计算DIU小时数) 1. 转换客户数据 -87.50美元(驱动程序:数据流vCore小时数) 1. 加载每日报告 -$34.20-每小时运行一次,处理的行数为零 建议:将LoadDailyReports切换到基于事件的触发器。预计节省: 34.20美元/月(410美元/年).

______________________________________________________________________

5工具

工具它做什么
get_top_costly_pipelines根据估计的月度成本对所有管道进行排名,并与上一时期进行趋势对比
get_pipeline_cost_breakdown特定管道按活动类型逐项列出的成本
get_wasteful_pipelines标记生产中的零行运行、非活动管道和调试运行
get_cost_spike_analysis比较当期与上期,解释成本突然增加的原因
get_optimization_recommendations7规则引擎,具有特定修复和估计的年度节省

______________________________________________________________________

5分钟后开始

新用户?沿着这条路走:

Step 1 - Clone and install         (~1 min)
Step 2 - Try with mock data        (~1 min)   no Azure needed
Step 3 - Connect your Azure ADF    (~10 min)  one-time setup
Step 4 - Add to your MCP client    (~2 min)

跳转到 快速开始 下面是完整的步骤。

已经有Python和ADF实例了吗? 通往真实数据的最短路径:

git clone https://github.com/harinarayn/adf-cost-intelligence-mcp
cd adf-cost-intelligence-mcp
pip install -r requirements.txt

# Create a service principal (one-time)
az ad sp create-for-rbac --name adf-cost-mcp-sp --role Reader \
  --scopes /subscriptions/{YOUR_SUB_ID}

# Grant it ADF read access (one-time)
az role assignment create --assignee {APP_ID} \
  --role "Data Factory Contributor" \
  --scope /subscriptions/{SUB}/resourceGroups/{RG}/providers/Microsoft.DataFactory/factories/{ADF}

# Configure credentials
cp .env.example .env
# Edit .env with your values

# Add to your MCP client config (see Connect Your MCP Client below)
# Then ask: "Which ADF pipeline cost the most this month?"

______________________________________________________________________

安全与隐私

此服务器完全在您自己的环境中运行。任何数据都不会离开您的基础设施。

  • 在本地或您自己的云中运行,而不是我们的服务器
  • 仅读取ADF运行元数据(管道名称、持续时间、状态、DIU计数),从不读取管道数据或业务内容
  • 服务主体需要只读访问权限(请参阅下面的设置)
  • 没有遥测,没有回调,除了公共之外没有第三方依赖关系 Azure零售价格API (未经验证的只读定价数据)
  • 完全开源-每一行代码都是可审计的

安全.md 为了全面的安全态势。

______________________________________________________________________

先决条件

要求如何检查
Python 3.11+python --version
Azure订阅至少有一个ADF实例
ADF运行历史至少7天的管道运行才能获得有意义的结果
MCP兼容客户端Claude Desktop、Copilot、Cursor、Windsurf或任何MCP客户端

______________________________________________________________________

快速开始

步骤1-克隆并安装

git clone https://github.com/harinarayn/adf-cost-intelligence-mcp
cd adf-cost-intelligence-mcp
pip install -r requirements.txt
cp .env.example .env

步骤2-立即使用模拟数据进行尝试(不需要Azure)

USE_MOCK_DATA=true python server.py

打开MCP客户端并询问: “本月哪个ADF管道成本最高?”

您将看到使用涵盖10个模拟管道的真实合成数据的响应,包括浪费运行、成本飙升和非活动管道。

步骤3-连接您的真实Azure ADF(约10分钟,一次性)

3a。登录并查找您的订阅ID

az login
az account show --query id -o tsv

3b。创建具有最小权限的服务主体

az ad sp create-for-rbac \
  --name adf-cost-mcp-sp \
  --role Reader \
  --scopes /subscriptions/{YOUR_SUBSCRIPTION_ID}
# Save the output - you need: appId, password, tenant

3c。授予对ADF实例的读取权限

az role assignment create \
  --assignee {APP_ID_FROM_ABOVE} \
  --role "Data Factory Contributor" \
  --scope /subscriptions/{SUB_ID}/resourceGroups/{RG}/providers/Microsoft.DataFactory/factories/{ADF_NAME}
最小权限: 服务主体只需要读取管道运行和活动运行。 Data Factory Contributor 是最接近的内置角色。为了加强安全性,请使用以下命令创建自定义角色 Microsoft.DataFactory/factories/read, Microsoft.DataFactory/factories/pipelineruns/read,以及 Microsoft.DataFactory/factories/activityruns/read.

3d。在ADF中启用按管道计费(重要)

  1. 打开 ADF工作室
  2. 首选 管理 > 出厂设置
  3. 按管道计费 并保存
没有这一点,成本数据仅在工厂层面,而不是每个管道。

步骤4-配置.env

AZURE_TENANT_ID=paste-from-step-3b
AZURE_CLIENT_ID=paste-appId-from-step-3b
AZURE_CLIENT_SECRET=paste-password-from-step-3b
AZURE_SUBSCRIPTION_ID=paste-from-step-3a
AZURE_RESOURCE_GROUP=your-resource-group-name
AZURE_DATA_FACTORY_NAME=your-adf-factory-name
USE_MOCK_DATA=false

______________________________________________________________________

连接您的MCP客户端

克劳德桌面

Mac/Linux: ~/.claude/claude_desktop_config.json 窗户: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "adf-cost-intelligence": {
      "command": "python",
      "args": ["/absolute/path/to/adf-cost-intelligence-mcp/server.py"],
      "env": {
        "AZURE_TENANT_ID": "your-tenant-id",
        "AZURE_CLIENT_ID": "your-app-id",
        "AZURE_CLIENT_SECRET": "your-secret",
        "AZURE_SUBSCRIPTION_ID": "your-subscription-id",
        "AZURE_RESOURCE_GROUP": "your-resource-group",
        "AZURE_DATA_FACTORY_NAME": "your-adf-name",
        "USE_MOCK_DATA": "false"
      }
    }
  }
}

重新启动克劳德桌面。工具会自动显示。

克劳德代码(CLI)

claude mcp add adf-cost-intelligence python /path/to/server.py

或者添加一个 .mcp.json 到您的项目根目录(可以安全提交,使用env-var引用):

{
  "servers": {
    "adf-cost-intelligence": {
      "type": "stdio",
      "command": "python",
      "args": ["server.py"],
      "env": {
        "AZURE_TENANT_ID": "${AZURE_TENANT_ID}",
        "AZURE_CLIENT_ID": "${AZURE_CLIENT_ID}",
        "AZURE_CLIENT_SECRET": "${AZURE_CLIENT_SECRET}",
        "AZURE_SUBSCRIPTION_ID": "${AZURE_SUBSCRIPTION_ID}",
        "AZURE_RESOURCE_GROUP": "${AZURE_RESOURCE_GROUP}",
        "AZURE_DATA_FACTORY_NAME": "${AZURE_DATA_FACTORY_NAME}",
        "USE_MOCK_DATA": "false"
      }
    }
  }
}

GitHub副本(VS代码)

添加 .vscode/mcp.json 在您的工作空间中:

{
  "servers": {
    "adf-cost-intelligence": {
      "type": "stdio",
      "command": "python",
      "args": ["/absolute/path/to/server.py"],
      "env": {
        "AZURE_TENANT_ID": "${env:AZURE_TENANT_ID}",
        "AZURE_CLIENT_ID": "${env:AZURE_CLIENT_ID}",
        "AZURE_CLIENT_SECRET": "${env:AZURE_CLIENT_SECRET}",
        "AZURE_SUBSCRIPTION_ID": "${env:AZURE_SUBSCRIPTION_ID}",
        "AZURE_RESOURCE_GROUP": "${env:AZURE_RESOURCE_GROUP}",
        "AZURE_DATA_FACTORY_NAME": "${env:AZURE_DATA_FACTORY_NAME}",
        "USE_MOCK_DATA": "false"
      }
    }
  }
}

光标/风帆

两者都通过以下方式支持MCP ~/.cursor/mcp.json~/.windsurf/mcp.json 使用与上述Claude Desktop配置相同的格式。

MCP检查员(用于测试和演示)

npx @modelcontextprotocol/inspector python server.py

打开浏览器UI,单独调用每个工具并检查原始JSON响应。可用于测试您的设置或运行演示。

______________________________________________________________________

MCP检验员测试

MCP Inspector允许您在浏览器UI中直接调用每个工具并检查原始JSON响应,而不需要AI客户端。非常适合测试您的设置、调试或演示。

MCP Inspector showing all 5 tools connected and returning real Azure data

启动(Windows)

scripts\inspect.cmd

这将从您的 .env 文件并自动打开检查器。

启动(Mac/Linux)

source .env && npx @modelcontextprotocol/inspector python server.py

你会看到什么

  1. 浏览器在以下位置打开 http://localhost:6274
  2. 绿色 连接 指示器-服务器已启动
  3. 工具 选项卡列出了所有5个工具及其说明
  4. 点击任意工具,输入参数,点击 运行工具,并查看您的AI客户端收到的确切JSON

示例-测试成本排名工具

点击 get_top_costly_pipelines,输入:

{ "days": 30, "top_n": 8 }

击打 运行工具。您将看到您的实际ADF管道按估计的每月成本、废物百分比和趋势数据进行排名。

______________________________________________________________________

运行测试

# All tests - no Azure credentials required (uses mock data)
USE_MOCK_DATA=true python -m pytest tests/ -v

# Specific modules
python -m pytest tests/test_cost_calculator.py -v
python -m pytest tests/test_pricing_client.py -v
python -m pytest tests/test_recommendations.py -v
python -m pytest tests/test_tools.py -v

______________________________________________________________________

如何计算成本

使用与Azure相同的计费模型,根据ADF活动运行元数据估算成本:

活动类型计费模型
复制(Azure IR)DIU小时x$0.25/DIU小时(每次运行最少4分钟)
复制(自托管IR)DIU小时x$0.10/DIU小时
映射数据流vCore小时x按计算类型划分的速率(最小1分钟)
管道/查找/ForEach活动执行小时x 0.005美元/小时
外部(copula等)活动执行时间x 0.00025美元/小时
非活动管道每月0.80美元固定费用

当可用时, 实际计费DIU小时数直接从以下网址读取 billingReference ADF活动输出,不是根据持续时间估算的。实时定价从 Azure零售价格API 启动时缓存24小时。

______________________________________________________________________

优化规则

推荐引擎在您的流程历史中应用了7条规则:

#条件修复典型保存
1计划触发器+>20%零行运行切换到基于事件的触发器20-80%的浪费运行成本
2复制DIU计数>4,数据\10启用并行性(isSequential=false)管道持续时间的30%
4DataFlow不带IR集群TTL设置集成运行时的生存时间DataFlow成本的15%
530天内零运行的管道退役(每月节省0.80美元)9.60美元/管道/年
6每日满表加载,大数据集实现水印增量加载70%的数据移动成本
7生产工厂调试运行强制开发/测试工厂分离每月管道成本的约8%

______________________________________________________________________

这与azure mcp和azure Advisor有何不同

azure mcp(官方)azure顾问此工具
ADF管道运行数据是-每次运行,30天历史
每条管道的成本是-估计到小数点后4位
废物检测是-零行运行,非活动管道
成本飙升分析是-本期与上期
具体的$节省估算通用是-根据建议
不使用日志分析N/AN/A是-直接读取ADF API

azure mcp给你的AI助手一把锤子。这给了它一把手术刀。

______________________________________________________________________

成本免责声明

成本估算基于Azure现收现付定价。实际成本因Azure协议类型(企业协议、CSP、PAYG)、保留容量、地区和货币而异。始终与Azure成本管理部门交叉检查重大决策,以获得准确的计费数据。

______________________________________________________________________

V2路线图

  • 用代码进行补救:生成ADF JSON管道/触发器配置作为修复,而不仅仅是建议
  • 多工厂支持:在一个对话中跨多个ADF实例进行查询
  • 趋势分析:通过异常检测进行每周成本趋势分析
  • copula集成:将copula作业成本作为ADF外部活动成本的一部分
  • 预算警报:设置阈值并获得主动警告
  • 远程MCP(企业):在具有托管身份、无本地凭据、完整审计跟踪的Azure容器应用程序上部署为远程MCP服务器

______________________________________________________________________

贡献

欢迎捐款。关键领域:

  • 附加推荐规则(提出问题)
  • 定价分析器中的新Azure区域
  • Synapse分析支持
  • 与真实ADF实例的集成测试
# Dev setup
pip install -r requirements.txt
USE_MOCK_DATA=true python -m pytest tests/ -v

许可证: 麻省理工学院

目录标签

目录标签

PythonClaudeAI代理成本分析本地部署AzureDataFactoryFinOpsMCP协议云成本优化

支持客户端

Claude DesktopClaudeCursorWindsurf

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP