Skip to main content
Glama

msfabric-mcp

Un servidor de Protocolo de Contexto de Modelo para Microsoft Fabric, sobre stdio, en Python.

Proporciona a un agente una única conexión que alcanza ambas mitades de Fabric:

  • el plano de control, a través de la API REST pública en api.fabric.microsoft.com/v1 (espacios de trabajo, elementos, almacenes de lago, almacenes de datos, cuadernos, el programador de trabajos), y

  • el plano de datos, a través del punto de conexión de análisis de SQL de un almacén de datos o almacén de lago, detrás de una protección de solo lectura en lista de permitidos.

Además, DAX opcional contra un modelo semántico de Power BI.

Solo lectura de forma predeterminada. Las escrituras se rechazan a menos que el operador establezca FABRIC_ALLOW_WRITES, e incluso entonces UPDATE y DELETE deben llevar un WHERE.


Posicionamiento honesto

Fabric MCP es un estante abarrotado a fecha de 2026-08-22. Esto es lo que ya existe y en qué se diferencia este. Nada de lo siguiente afirma que los demás sean malos.

Qué

Forma

Cubre

Servidor MCP principal de Fabric (Microsoft, vista previa)

remoto, alojado por Microsoft, com.microsoft/microsoft-fabric en el registro de MCP

~30 herramientas del plano de control: espacios de trabajo, elementos, carpetas, capacidades, búsqueda de catálogo de OneLake, definiciones de elementos, operaciones de larga duración. Sin ejecución de T-SQL, sin ejecución de trabajos de cuaderno, sin DAX. (docs)

Servidor MCP remoto de Power BI (Microsoft, vista previa)

remoto

metadatos de informes y modelos semánticos, y generación de DAX a través de Copilot (consume capacidad de Copilot). (docs)

microsoft/fabric-rti-mcp

local, código abierto

Inteligencia en tiempo real: Eventhouse y Azure Data Explorer, KQL. Una carga de trabajo diferente del T-SQL de almacén de lago y almacén de datos. (repo)

fabric-lakehouse-mcp, microsoft-fabric-mcp en PyPI, además de servidores comunitarios como santhoshravindran7/Fabric-Analytics-MCP, Augustab/microsoft_fabric_mcp, sdebruyn/fabric-dw-mcp-cli

local, código abierto

terreno superpuesto, cada uno con su propia parte

fabric-mcp en PyPI y npm

no relacionado

ese es el otro Fabric, el marco de trabajo de prompts danielmiessler/fabric. Este paquete deliberadamente no usa ese nombre.

Dónde se sitúa msfabric-mcp:

  1. Un solo servidor en ambos planos. El servidor MCP principal de Microsoft es solo del plano de control; todavía necesitas una segunda cosa para ejecutar una consulta. Aquí, list_items y run_sql viven en el mismo proceso y con la misma credencial.

  2. Stdio local, sin inscripción a la vista previa. Los servidores de Microsoft son remotos y están en vista previa. Esto se ejecuta en tu máquina contra la API REST de disponibilidad general, por lo que funciona en cualquier inquilino en el que ya puedas iniciar sesión.

  3. La protección es el producto. run_sql es una lista de permitidos, no una lista de bloqueados: una instrucción solo se ejecuta cuando se clasifica positivamente como lectura (o como escritura permitida con las escrituras habilitadas). Primero se eliminan los comentarios, se rechazan los lotes de instrucciones y la ejecución de procedimientos, OPENROWSET/OPENQUERY, GRANT/REVOKE, BACKUP/RESTORE y SHUTDOWN se rechazan en todos los modos.

  4. Salida limitada. Cada conjunto de resultados está limitado en filas y en ancho de celda, y dice cuándo se truncó, para que un SELECT * amplio no pueda inundar una ventana de contexto.

Si solo necesitas la navegación del plano de control dentro de un inquilino que tenga la vista previa habilitada, usa el servidor MCP principal de Microsoft; es de primera parte y siempre seguirá el ritmo de la API más rápido. Usa este cuando quieras SQL y trabajos en el mismo servidor, localmente, con un valor predeterminado estricto de solo lectura.


Related MCP server: Databricks MCP Server

Instalar

pip install msfabric-mcp

El acceso a SQL necesita un controlador. Elige uno:

pip install "msfabric-mcp[sql]"     # pyodbc, plus ODBC Driver 18 for SQL Server
pip install "msfabric-mcp[mssql]"   # mssql-python, no external ODBC manager

Las herramientas REST no necesitan ninguno de los dos controladores. Puedes ejecutar el servidor sin ninguna configuración de SQL y aun así explorar espacios de trabajo, elementos y trabajos.

Requiere Python 3.11 o posterior.


Configurar

Todo proviene de variables de entorno. Nada sobre un inquilino, espacio de trabajo, almacén de datos o host está compilado en el paquete. Consulta .env.example.

Autenticación

Tres modos, todos basados en azure-identity.

1. DefaultAzureCredential (el predeterminado). No establezcas nada. La cadena de credenciales recoge una sesión de az login, un inicio de sesión de VS Code, una identidad administrada o la entidad de servicio de entorno AZURE_CLIENT_ID / AZURE_TENANT_ID / AZURE_CLIENT_SECRET estándar.

az login

2. Entidad de servicio. Establece las tres y el modo se deduce:

Variable

Significado

FABRIC_TENANT_ID

id de directorio (inquilino)

FABRIC_CLIENT_ID

id de aplicación (cliente)

FABRIC_CLIENT_SECRET

secreto de cliente

La entidad de servicio debe agregarse al espacio de trabajo con los roles de Administrador, Miembro o Colaborador, y la configuración de inquilino Las entidades de servicio pueden llamar a las API públicas de Fabric debe estar activada.

3. Código de dispositivo, para una máquina sin interfaz gráfica o una sesión SSH:

FABRIC_AUTH_MODE=device_code
FABRIC_CLIENT_ID=<a public client app registration>

Los tokens se almacenan en caché en memoria por ámbito y se actualizan dos minutos antes de que caduquen. Nunca se escriben en el disco, nunca se registran y nunca aparecen en ningún mensaje de error que devuelva el servidor.

Ámbito y SQL

Variable

Predeterminado

Significado

FABRIC_WORKSPACE_ID

sin establecer

espacio de trabajo predeterminado, para que las herramientas no tengan que repetirlo. Opcional: cada herramienta también acepta workspace.

FABRIC_SQL_ENDPOINT

sin establecer

solo el host del punto de conexión de análisis de SQL, sin protocolo. Se encuentra en la página de configuración del almacén de datos o almacén de lago. Opcional: sin él, las herramientas SQL explican que no están configuradas y las herramientas REST siguen funcionando.

FABRIC_SQL_DATABASE

sin establecer

nombre predeterminado del almacén de datos o almacén de lago

FABRIC_SQL_DRIVER

auto

auto, pyodbc o mssql_python

Seguridad

Variable

Predeterminado

Significado

FABRIC_ALLOW_WRITES

0

desactivado. Mientras esté desactivado, cada instrucción de escritura se rechaza con una explicación. Actívalo solo para un espacio de trabajo que estés dispuesto a cambiar.

FABRIC_MAX_ROWS

200

filas devueltas por conjunto de resultados, con un máximo de 5000

FABRIC_MAX_CELL_CHARS

200

caracteres por celda, con un máximo de 4000

Ningún secreto se imprime jamás. health informa si un id. de inquilino, id. de cliente y secreto están configurados, nunca sus valores, y los mensajes de error llevan una clase de excepción y un breve detalle del servicio con la cadena de consulta eliminada.

Configuración del cliente

Claude Desktop, Claude Code o cualquier cliente MCP stdio:

{
  "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"
      }
    }
  }
}

No pongas FABRIC_CLIENT_SECRET en un archivo de configuración que viva en un repositorio. Usa az login, una identidad administrada o un administrador de secretos que inyecte la variable en el proceso del servidor.


Herramientas

Herramienta

Alcance

Qué hace

list_workspaces(name_filter?)

REST

áreas de trabajo visibles para la identidad

list_items(workspace?, item_type?, name_filter?)

REST

elementos de un área de trabajo, filtrados por tipo de elemento de Fabric

get_item(item_id, workspace?)

REST

metadatos de un elemento

list_lakehouses(workspace?)

REST

lakehouses

list_warehouses(workspace?)

REST

warehouses

list_notebooks(workspace?)

REST

notebooks

list_tables(lakehouse?, database?, workspace?)

REST o SQL

tablas de lakehouse mediante la Tables API, o INFORMATION_SCHEMA.TABLES sobre el endpoint SQL

describe_table(table, schema?, database?)

SQL

columnas, tipos, nulidad, ordinal, desde INFORMATION_SCHEMA.COLUMNS, parametrizado

run_sql(sql, database?)

SQL

una única sentencia protegida

run_notebook(notebook, workspace?, parameters?)

REST

inicia un trabajo RunNotebook, devuelve el id de la instancia del trabajo y no bloquea

get_job_status(item_id, job_instance_id, workspace?)

REST

estado, tiempos y motivo del fallo

execute_dax(dataset_id, query_text, workspace?)

Power BI

una consulta DAX EVALUATE, opcional

health()

ambos

resumen de la configuración y una comprobación de alcanzabilidad

Los argumentos de Notebook y lakehouse aceptan o un nombre para mostrar o un id; un nombre se resuelve mediante list_items sobre la marcha.

La protección SQL, en detalle

run_sql acepta una sentencia por llamada, con los comentarios eliminados antes de tomar cualquier decisión. Después:

  • Empieza por SELECT o WITH y no contiene SELECT ... INTO ni FOR UPDATE: se clasifica como lectura, siempre permitida.

  • Empieza por INSERT, UPDATE, DELETE, MERGE, CREATE, ALTER, DROP, TRUNCATE, o es un SELECT ... INTO: se clasifica como escritura. Se rechaza a menos que FABRIC_ALLOW_WRITES esté definida. UPDATE y DELETE además requieren una cláusula WHERE incluso cuando las escrituras están habilitadas.

  • Cualquier otra cosa: se rechaza, porque no coincide con ninguna de las dos formas.

  • EXEC/EXECUTE, sp_*, OPENROWSET, OPENDATASOURCE, OPENQUERY, BULK INSERT, GRANT, REVOKE, DENY, BACKUP, RESTORE, SHUTDOWN, RECONFIGURE: se rechazan en todos los modos.

  • Varias sentencias separadas por ;: se rechazan, de modo que cada una se pueda juzgar por separado.

Los nombres de tabla y de esquema proporcionados a describe_table se validan como identificadores simples y la búsqueda en sí está parametrizada; un nombre no puede incluir/materializar SQL.

Esto es una protección contra los fallos de un agente, no sustitutiva de los permisos. Concede a la identidad el mínimo acceso que necesite; el rol del área de trabajo y los permisos de los objetos propios del warehouse siguen siendo el límite real.

Notas sobre execute_dax

Usa el endpoint JSON executeQueries en lugar de la más reciente Arrow executeDaxQueries, porque executeQueries funciona en capacidades Pro, PPU y de Premium/Fabric y no necesita una biblioteca Arrow. Su ese techo documentado es de 100,000 filas y 1,000,000 valores por consulta; FABRIC_MAX_ROWS se aplica encima de eso. La configuración de inquilino Dataset Execute Queries REST API debe estar habilitada, y el llamador necesita permiso de Build sobre el modelo semántico. Solo se aceptan consultas EVALUATE y DEFINE.


Qué toca

  • HTTPS saliente hacia api.fabric.microsoft.com, api.powerbi.com y Microsoft Entra para los tokens.

  • TDS saliente en el puerto 1433 hacia tu endpoint de análisis SQL, solo cuando se llama a una herramienta SQL y FABRIC_SQL_ENDPOINT está definida. Encrypt=yes, TrustServerCertificate=no.

  • No escribe en el sistema de archivos local. No telemetría. No requiere de servicios de terceros.

Desarrollo

git clone https://github.com/NawafSheikh/fabric-mcp
cd fabric-mcp
pip install -e ".[dev]"
pytest
python -m build

Toda la suite de pruebas se ejecuta sin red, sin un inquilino de Fabric y sin driver ODBC instalado: las llamadas REST pasan por un httpx.MockTransport, y la capa SQL usa una conectividad de fábrica inyectable que las pruebas rellenan con una conexión simulada compatible con DB-API.

Contribución

Se aceptan issues y pull requests en https://github.com/NawafSheikh/fabric-mcp/issues.

Fuentes

Verificado el 2026-08-22.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    263
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables 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.
    37
    4
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables 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.
    6
    14
    2
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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