织物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": "",
"FABRIC_LAKEHOUSE_ID": "",
"FABRIC_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/许可证
麻省理工学院
