Fabric MCP动态工具集

一个封装Azure REST API和OneLake的自定义MCP服务器,提供数据质量检查、数据血缘跟踪、Delta日志重放和可视化等功能,适用于数据操作和管道管理。

  • by ankinguyen-engineer-2002
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ankinguyen-engineer-2002/fabric-mcp-dynamic

使用说明

织物MCP动态

自定义MCP服务器包装 Azure REST API+OneLake 将其转化为Claude Code的可重用工具。 适用于任何项目,不依赖于外部MCP服务器。

为什么存在

服务器 身份验证 实时数据 DQ 谱系 增量回放 Viz
@microsoft/fabric-mcp (官方) N/A 否(离线文档) 否 否 无 否
@wcg-hieule/fabric-mcp (社区) 服务负责人 是 否 否 不 否
fabric-dynamic (这个) az login 是 是 是

补充官方和社区服务器——独特价值: DQ检查、Lineage、Delta日志回放、D3.js可视化、跨层验证.

27工具(7类)

类别 工具 描述
发现 (4) scan_workspace, get_metadata, get_pipeline_def, get_notebook_list 探索工作区项目
数据操作 (6) query_lakehouse, query_warehouse, read_delta_table, get_table_schema, get_row_count, preview_table 读取和查询数据
管道 (4) trigger_pipeline, get_pipeline_status, get_pipeline_history, cancel_pipeline 编排管道
数据质量 (4) run_dq_check, get_dq_results, validate_row_counts, check_freshness 验证数据质量
世系 (3) get_data_dictionary, get_lineage, update_metadata 跟踪数据沿袭
可视化 (3) generate_viz, deploy_github_pages, preview_local D3.js管道可视化
环境 (3) health_check, switch_env, get_current_config/set_current_config 管理连接

技术栈

  • Python 3.10+ 和 fastmcp (MCP-SDK)
  • PyArrow 用于拼花地板/三角桌读取(检查点回放)
  • httpx 用于异步HTTP到OneLake+结构REST API
  • 认证: az login 令牌--不需要服务主体

设置

先决条件

# Azure CLI authenticated
az login
az account show  # verify correct subscription

安装

# Clone
git clone https://github.com/ankinguyen-engineer-2002/fabric-mcp-dynamic.git
cd fabric-mcp-dynamic

# Install
pip install -e .

配置Claude代码

添加 ~/.claude.json:

{
  "mcpServers": {
    "fabric-dynamic": {
      "type": "stdio",
      "command": "python",
      "args": ["-m", "fabric_mcp_dynamic"],
      "env": {
        "FABRIC_WORKSPACE_ID": "<your-workspace-id>",
        "FABRIC_LAKEHOUSE_ID": "<your-lakehouse-id>",
        "FABRIC_WAREHOUSE_ID": "<your-warehouse-id>",
        "FABRIC_ENV": "dev"
      }
    }
  }
}

将ID替换为您自己的Microsoft Fabric工作区/lakehouse/仓库GUID。

验证

在Claude Code中,运行:

health_check

应返回:auth OK,工作区可达。

用法

直接工具调用

自然地问Claude Code:

“扫描我的Fabric工作区并向我显示所有项目”

“读取增量表utl_pipeline_metadata并显示层细分”

“运行DQ检查并验证所有层的行数”

全管道扫描(技能)

将技能文件复制到您的Claude Code命令中:

cp skills/analytics_fabric_mcp_dynamic.md ~/.claude/commands/

然后在任何Claude Code会话中:

/analytics_fabric_mcp_dynamic

这将运行完整的6阶段工作流:身份验证检查、工作区扫描、元数据提取、DQ验证、可视化和部署。

项目结构

fabric-mcp-dynamic/
├── pyproject.toml
├── src/
│   └── fabric_mcp_dynamic/
│       ├── __init__.py
│       ├── server.py              # MCP entry point
│       ├── auth.py                # az cli token management
│       ├── config.py              # workspace/env config
│       ├── tools/
│       │   ├── discovery.py       # scan_workspace, get_metadata, ...
│       │   ├── data_ops.py        # query_lakehouse, read_delta_table, ...
│       │   ├── pipeline.py        # trigger_pipeline, get_pipeline_status, ...
│       │   ├── data_quality.py    # run_dq_check, validate_row_counts, ...
│       │   ├── lineage.py         # get_data_dictionary, get_lineage, ...
│       │   └── viz.py             # generate_viz, deploy_github_pages, ...
│       └── utils/
│           ├── delta.py           # Delta log checkpoint replay
│           ├── onelake.py         # OneLake REST client
│           └── fabric_api.py      # Fabric API REST client
└── tests/

许可证

麻省理工学院