msfabric-mcp
msfabric-mcp
一个用于 Microsoft Fabric 的 Model Context Protocol 服务器,基于 stdio,使用 Python 实现。
它通过一个连接为智能体提供 Fabric 的两个部分:
控制平面,通过
api.fabric.microsoft.com/v1上的公共 REST API(工作区、项、湖屋、仓库、笔记本、作业调度器),以及数据平面,通过仓库或湖屋的 SQL 分析端点,并受只读白名单守卫的保护。
另外还支持对 Power BI 语义模型执行可选的 DAX。
默认只读。除非操作者设置 FABRIC_ALLOW_WRITES,否则拒绝所有写入;即使设置了,UPDATE 和 DELETE 也必须带有 WHERE。
包:
msfabric-mcp(位于 PyPI)MCP 注册表名称:
io.github.nawafsheikh/msfabric-mcp许可证:MIT
坦诚的定位
截至 2026-08-22,Fabric MCP 领域已经相当拥挤。下面列出已有的实现以及本项目的区别。以下内容并非在声称其他实现不好。
项目 | 形态 | 涵盖 |
Fabric Core MCP Server(Microsoft,预览) | 远程,由 Microsoft 托管,在 MCP 注册表中为 | 约 30 个控制平面工具:工作区、项、文件夹、容量、OneLake 目录搜索、项定义、长时间运行的操作。不支持 T-SQL 执行、笔记本作业运行和 DAX。(文档) |
Power BI remote MCP server(Microsoft,预览) | 远程 | 报表和语义模型元数据,以及通过 Copilot 进行 DAX 生成(消耗 Copilot 容量)。(文档) |
microsoft/fabric-rti-mcp | 本地,开源 | Real-Time Intelligence:Eventhouse 和 Azure Data Explorer,KQL。这是与湖屋和仓库 T-SQL 不同的工作负载。(仓库) |
位于 PyPI 的 | 本地,开源 | 与其他方案有重叠,各有侧重 |
位于 PyPI 和 npm 的 | 不相关 | 那是另一个 Fabric,即 |
msfabric-mcp 的定位:
一个服务器横跨两个平面。 Microsoft 的 Core MCP 服务器仅覆盖控制平面;要运行查询,你还需要另一个工具。在这里,
list_items和run_sql位于同一进程、使用同一凭据。本地 stdio,无需加入预览。 Microsoft 的服务器是远程的且处于预览阶段。本服务器在你的机器上运行,使用正式发布的 REST API,因此你能够登录的任何租户都可以使用。
守卫即产品。
run_sql是白名单,而不是黑名单:只有当语句被明确归类为读取(或在启用写入时被归类为允许的写入)才会执行。首先剥离注释,拒绝语句批处理,并且在任何模式下都拒绝存储过程执行、OPENROWSET/OPENQUERY、GRANT/REVOKE、BACKUP/RESTORE和SHUTDOWN。输出有界。 每个结果集在行数和单元格宽度上都有限制,并在截断时予以说明,因此宽泛的
SELECT *不会淹没上下文窗口。
如果你只需要在已启用预览的租户内浏览控制平面,请使用 Microsoft 的 Core MCP 服务器;它是第一方产品,并且总能更快地跟进 API。当你希望在本地、在同一个服务器中同时使用 SQL 和作业,并希望默认严格只读时,请使用本服务器。
Related MCP server: Databricks MCP Server
安装
pip install msfabric-mcpSQL 访问需要一个驱动程序。请选择一种:
pip install "msfabric-mcp[sql]" # pyodbc, plus ODBC Driver 18 for SQL Server
pip install "msfabric-mcp[mssql]" # mssql-python, no external ODBC managerpyodbc 需要单独安装 ODBC Driver 18 for SQL Server(17 也可用)。Entra 令牌通过
SQL_COPT_SS_ACCESS_TOKEN连接属性(1256)传递。mssql-python 是 Microsoft 自家的驱动程序,需要 Python 3.10+,通过 wheel 安装其连接层,并支持 Fabric Data Warehouse 和 Lakehouse SQL 分析端点。
REST 工具不需要任何驱动程序。你可以在完全不配置 SQL 的情况下运行服务器,仍然可以浏览工作区、项和作业。
需要 Python 3.11 或更高版本。
配置
所有内容都来自环境变量。与租户、工作区、仓库或主机相关的任何信息都不会编译进包中。参见 .env.example。
身份验证
三种模式,全部基于 azure-identity。
1. DefaultAzureCredential(默认)。 无需设置任何内容。凭据链会采用 az login 会话、VS Code 登录、托管标识,或通过标准的 AZURE_CLIENT_ID / AZURE_TENANT_ID / AZURE_CLIENT_SECRET 环境变量配置的服务主体。
az login2. 服务主体。 设置全部三项后,模式会自动推断:
变量 | 含义 |
| 目录(租户)ID |
| 应用程序(客户端)ID |
| 客户端机密 |
服务主体必须以管理员、成员或参与者身份添加到工作区,并且租户设置 服务主体可调用 Fabric 公共 API 必须处于开启状态。
3. 设备代码,适用于无头计算机或 SSH 会话:
FABRIC_AUTH_MODE=device_code
FABRIC_CLIENT_ID=<a public client app registration>令牌按作用域缓存在内存中,并在过期前两分钟刷新。它们绝不会写入磁盘,不会被记录,也绝不会出现在服务器返回的任何错误消息中。
作用域与 SQL
变量 | 默认值 | 含义 |
| 未设置 | 默认工作区,因此工具无需重复指定。可选:每个工具也接受 |
| 未设置 | SQL 分析端点,仅主机名,不含协议。可在仓库或湖屋的设置页面找到。可选:未设置时,SQL 工具会说明它们未配置,而 REST 工具仍然可用。 |
| 未设置 | 默认仓库或湖屋名称 |
|
|
|
安全
变量 | 默认值 | 含义 |
|
| 关闭。关闭时,每条写入语句都会被拒绝并附带说明。仅在你愿意更改的工作区中将其打开。 |
|
| 每个结果集返回的行数,上限为 5000 行 |
|
| 每个单元格的字符数,上限为 4000 字符 |
任何机密都不会被打印。health 只报告租户 ID、客户端 ID 和机密是否已配置,绝不会报告它们的值;错误消息只包含异常类和一段简短的详细信息,并已去除查询字符串。
客户端配置
Claude Desktop、Claude Code 或任何 stdio MCP 客户端:
{
"mcpServers": {
"fabric": {
"command": "msfabric-mcp",
"env": {
"FABRIC_WORKSPACE_ID": "00000000-0000-0000-0000-000000000000",
"FABRIC_SQL_ENDPOINT": "your-endpoint.datawarehouse.fabric.microsoft.com",
"FABRIC_SQL_DATABASE": "your_warehouse"
}
}
}
}不要将 FABRIC_CLIENT_SECRET 放在位于仓库中的配置文件中。请使用 az login、托管标识或能够将变量注入服务器进程的机密管理器。
工具
工具 | 访问方式 | 功能说明 |
| REST | 身份可见的工作区 |
| REST | 工作区中的项目,按 Fabric 项目类型筛选 |
| REST | 单个项目的元数据 |
| REST | 湖屋 |
| REST | 仓库 |
| REST | 笔记本 |
| REST 或 SQL | 通过 Tables API 或 SQL 端点上的 |
| SQL | 列、类型、可空性、序号,来自 |
| SQL | 一条受保护语句 |
| REST | 启动 |
| REST | 状态、耗时、失败原因 |
| Power BI | 一条 DAX |
| 两者 | 配置摘要和可达性探测 |
笔记本和湖屋参数接受显示名称或 ID;名称会通过 list_items 即时解析。
SQL 防护机制详解
run_sql 每次调用接受一条语句,在做出任何判断之前会先去除注释。然后:
以
SELECT或WITH开头,且不包含SELECT ... INTO或FOR UPDATE:归类为读取,始终允许。以
INSERT、UPDATE、DELETE、MERGE、CREATE、ALTER、DROP、TRUNCATE开头,或是SELECT ... INTO:归类为写入。除非设置了FABRIC_ALLOW_WRITES,否则拒绝。即使启用了写入,UPDATE和DELETE还额外要求包含WHERE子句。其他任何情况:拒绝,因为不符合上述两种形态。
EXEC/EXECUTE、sp_*、xp_*、OPENROWSET、OPENDATASOURCE、OPENQUERY、BULK INSERT、GRANT、REVOKE、DENY、BACKUP、RESTORE、SHUTDOWN、RECONFIGURE:在所有模式下均拒绝。以
;分隔的多条语句:拒绝,以便每条语句单独判断。
提供给 describe_table 的表名和架构名会作为普通标识符进行验证,且查询本身是参数化的,因此名称无法携带 SQL。
这是针对代理失误的防护,而非权限的替代品。为身份授予其所需的最低访问权限;工作区角色和仓库自身的对象权限仍然是真正的边界。
关于 execute_dax 的说明
使用 JSON executeQueries 端点,而非较新的 Arrow executeDaxQueries,因为 executeQueries 适用于 Pro、PPU 和 Premium/Fabric 容量,且无需 Arrow 库。其文档规定的上限为每个查询 100,000 行和 1,000,000 个值;FABRIC_MAX_ROWS 在此基础上进一步限制。必须启用租户设置 Dataset Execute Queries REST API,且调用方需要对语义模型具有 Build 权限。仅接受 EVALUATE 和 DEFINE 查询。
涉及的外部资源
向
api.fabric.microsoft.com、api.powerbi.com和 Microsoft Entra 发起出站 HTTPS 请求以获取令牌。仅在调用 SQL 工具且设置了
FABRIC_SQL_ENDPOINT时,通过 1433 端口向 SQL 分析端点发起出站 TDS 连接。Encrypt=yes、TrustServerCertificate=no。不写入本地文件系统。无遥测。无第三方服务。
开发
git clone https://github.com/NawafSheikh/fabric-mcp
cd fabric-mcp
pip install -e ".[dev]"
pytest
python -m build整个测试套件在无网络、无 Fabric 租户、未安装 ODBC 驱动的情况下运行:REST 调用通过 httpx.MockTransport 进行,SQL 层接受可注入的连接工厂,测试用假的 DB-API 连接来填充。
贡献
欢迎在 https://github.com/NawafSheikh/fabric-mcp/issues 提交 Issue 和 Pull Request。
参考来源
检查日期:2026-08-22。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to access enterprise data from Unity Catalog (vector search, functions, Genie spaces) and perform developer actions in Databricks like managing notebooks and running jobs.
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Databricks workspaces programmatically, providing comprehensive tools for cluster management, notebook operations, job orchestration, Unity Catalog data governance, user management, permissions control, and FinOps cost analytics.263MIT
- AlicenseBqualityDmaintenanceEnables AI agents to interact with Microsoft Fabric by exposing tools for managing workspaces, notebooks, SQL queries, pipelines, and Livy Spark sessions. It provides a comprehensive set of operations for data engineering and analytics tasks using standard Azure authentication.374MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to interact with Microsoft Fabric and Power BI services through the Model Context Protocol. Users can manage workspaces, execute DAX queries, refresh datasets, and create Fabric notebooks using natural language.6142MIT
Related MCP Connectors
Shared, permission-aware company context for AI agents, with provenance, approvals and audit.
Debug, build, and manage Power Automate cloud flows with AI agents
Build, validate, and deploy multi-agent AI solutions from any AI environment.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/NawafSheikh/fabric-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server