Skip to main content
Glama

msfabric-mcp

Ein Model Context Protocol Server für Microsoft Fabric, über stdio, in Python.

Er gibt einem Agenten eine einzige Verbindung, die beide Hälften von Fabric erreicht:

  • die Control Plane über die öffentliche REST-API unter api.fabric.microsoft.com/v1 (Workspaces, Items, Lakehouses, Warehouses, Notebooks, den Job-Scheduler) und

  • die Data Plane über den SQL-Analytics-Endpunkt eines Warehouses oder Lakehouses, hinter einer Allowlist-Read-only-Wache.

Zusätzlich optional DAX gegen ein Power BI-Semantikmodell.

Standardmäßig schreibgeschützt. Schreibvorgänge werden verweigert, es sei denn, der Betreiber setzt FABRIC_ALLOW_WRITES, und selbst dann müssen UPDATE und DELETE ein WHERE enthalten.


Ehrliche Positionierung

Fabric MCP ist ein überfülltes Regal (Stand 2026-08-22). Hier ist, was bereits existiert und wo sich dieses unterscheidet. Nichts unten ist eine Behauptung, dass die anderen schlecht sind.

Was

Form

Abdeckung

Fabric Core MCP Server (Microsoft, Vorschau)

remote, von Microsoft gehostet, com.microsoft/microsoft-fabric in der MCP-Registry

~30 Control-Plane-Tools: Workspaces, Items, Ordner, Kapazitäten, OneLake-Katalogsuche, Item-Definitionen, langlaufende Operationen. Keine T-SQL-Ausführung, kein Notebook-Job-Run, kein DAX. (Doku)

Power BI remote MCP server (Microsoft, Vorschau)

remote

Berichts- und Semantikmodell-Metadaten sowie DAX-Generierung über Copilot (verbraucht Copilot-Kapazität). (Doku)

microsoft/fabric-rti-mcp

lokal, Open Source

Real-Time Intelligence: Eventhouse und Azure Data Explorer, KQL. Eine andere Workload als Lakehouse- und Warehouse-T-SQL. (Repo)

fabric-lakehouse-mcp, microsoft-fabric-mcp auf PyPI, sowie Community-Server wie santhoshravindran7/Fabric-Analytics-MCP, Augustab/microsoft_fabric_mcp, sdebruyn/fabric-dw-mcp-cli

lokal, Open Source

überlappendes Terrain, jeder mit seinem eigenen Ausschnitt

fabric-mcp auf PyPI und npm

unabhängig

das ist das andere Fabric, das danielmiessler/fabric-Prompt-Framework. Dieses Paket verwendet diesen Namen bewusst nicht.

Wo msfabric-mcp steht:

  1. Ein Server über beide Ebenen. Microsofts Core-MCP-Server ist nur Control Plane; man braucht immer noch ein zweites Ding, um eine Abfrage auszuführen. Hier leben list_items und run_sql im selben Prozess und mit derselben Anmeldeinformation.

  2. Lokales stdio, keine Vorschau-Anmeldung. Die Microsoft-Server sind remote und in der Vorschau. Dies läuft auf deinem Rechner gegen die allgemein verfügbare REST-API, funktioniert also in jedem Mandanten, bei dem du dich bereits anmelden kannst.

  3. Die Wache ist das Produkt. run_sql ist eine Allowlist, keine Blocklist: Eine Anweisung wird nur ausgeführt, wenn sie positiv als Lesevorgang klassifiziert wird (oder als erlaubter Schreibvorgang, wenn Schreiben aktiviert ist). Kommentare werden zuerst entfernt, Anweisungsbatches werden verweigert, und Prozedurausführung, OPENROWSET/OPENQUERY, GRANT/REVOKE, BACKUP/RESTORE und SHUTDOWN werden in jedem Modus verweigert.

  4. Begrenzte Ausgabe. Jedes Ergebnisset ist in Zeilen und Zellenbreite begrenzt und gibt an, wenn es abgeschnitten wurde, sodass ein breites SELECT * keinen Kontextfenster überfluten kann.

Wenn du nur Control-Plane-Durchsuchen in einem Mandanten mit aktivierter Vorschau benötigst, verwende Microsofts Core-MCP-Server; er ist First-Party und wird die API immer schneller verfolgen. Verwende diesen, wenn du SQL und Jobs im selben Server lokal mit einer harten Read-only-Standardeinstellung möchtest.


Related MCP server: Databricks MCP Server

Installation

pip install msfabric-mcp

SQL-Zugriff benötigt einen Treiber. Wähle einen:

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

Die REST-Tools benötigen keinen der Treiber. Du kannst den Server ohne jegliche SQL-Konfiguration ausführen und trotzdem Workspaces, Items und Jobs durchsuchen.

Erfordert Python 3.11 oder höher.


Konfiguration

Alles kommt aus Umgebungsvariablen. Nichts über einen Mandanten, Workspace, Warehouse oder Host ist in das Paket kompiliert. Siehe .env.example.

Authentifizierung

Drei Modi, alle auf azure-identity aufgebaut.

1. DefaultAzureCredential (die Standardeinstellung). Nichts setzen. Die Anmeldeinformationskette erkennt eine az login-Sitzung, eine VS-Code-Anmeldung, eine verwaltete Identität oder den Standard-AZURE_CLIENT_ID / AZURE_TENANT_ID / AZURE_CLIENT_SECRET-Umgebungsdienstprinzipal.

az login

2. Dienstprinzipal. Alle drei setzen und der Modus wird abgeleitet:

Variable

Bedeutung

FABRIC_TENANT_ID

Verzeichnis- (Mandanten-) ID

FABRIC_CLIENT_ID

Anwendungs- (Client-) ID

FABRIC_CLIENT_SECRET

Client-Geheimnis

Der Dienstprinzipal muss dem Workspace mit Admin, Member oder Contributor hinzugefügt werden, und die Mandanteneinstellung Dienstprinzipale können Fabric-öffentliche APIs aufrufen muss aktiviert sein.

3. Gerätecode, für eine headless Box oder eine SSH-Sitzung:

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

Tokens werden pro Bereich im Speicher zwischengespeichert und zwei Minuten vor Ablauf aktualisiert. Sie werden nie auf die Festplatte geschrieben, nie protokolliert und erscheinen nie in einer Fehlermeldung, die der Server zurückgibt.

Umfang und SQL

Variable

Standard

Bedeutung

FABRIC_WORKSPACE_ID

nicht gesetzt

Standard-Workspace, sodass Tools ihn nicht wiederholen müssen. Optional: Jedes Tool akzeptiert auch workspace.

FABRIC_SQL_ENDPOINT

nicht gesetzt

SQL-Analytics-Endpunkt nur Host, ohne Protokoll. Auf der Einstellungsseite des Warehouses oder Lakehouses zu finden. Optional: Ohne ihn erklären die SQL-Tools, dass sie nicht konfiguriert sind, und die REST-Tools funktionieren weiterhin.

FABRIC_SQL_DATABASE

nicht gesetzt

Standard-Warehouse- oder Lakehouse-Name

FABRIC_SQL_DRIVER

auto

auto, pyodbc oder mssql_python

Sicherheit

Variable

Standard

Bedeutung

FABRIC_ALLOW_WRITES

0

aus. Solange aus, wird jede Schreibanweisung mit einer Erklärung verweigert. Aktiviere es nur für einen Workspace, den du ändern möchtest.

FABRIC_MAX_ROWS

200

Zeilen pro Ergebnisset, begrenzt auf 5000

FABRIC_MAX_CELL_CHARS

200

Zeichen pro Zelle, begrenzt auf 4000

Es wird nie ein Geheimnis ausgegeben. health meldet ob eine Mandanten-ID, Client-ID und ein Geheimnis konfiguriert sind, nie deren Werte, und Fehlermeldungen enthalten eine Ausnahmeklasse und eine kurze Dienstbeschreibung mit entfernter Abfragezeichenfolge.

Client-Konfiguration

Claude Desktop, Claude Code oder ein beliebiger stdio-MCP-Client:

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

Setze FABRIC_CLIENT_SECRET nicht in eine Konfigurationsdatei, die in einem Repository liegt. Verwende az login, eine verwaltete Identität oder einen Geheimnisverwalter, der die Variable in den Serverprozess injiziert.


Werkzeuge

Tool

Erreicht

Was es tut

list_workspaces(name_filter?)

REST

für die Identität sichtbare Arbeitsbereiche

list_items(workspace?, item_type?, name_filter?)

REST

Elemente in einem Arbeitsbereich, gefiltert nach Fabric-Elementtyp

get_item(item_id, workspace?)

REST

Metadaten eines Elements

list_lakehouses(workspace?)

REST

Lakehouses

list_warehouses(workspace?)

REST

Warehouses

list_notebooks(workspace?)

REST

Notebooks

list_tables(lakehouse?, database?, workspace?)

REST oder SQL

Lakehouse-Tabellen über die Tables-API oder INFORMATION_SCHEMA.TABLES über den SQL-Endpunkt

describe_table(table, schema?, database?)

SQL

Spalten, Typen, NULL-Fähigkeit, Ordnung aus INFORMATION_SCHEMA.COLUMNS, parametrisiert

run_sql(sql, database?)

SQL

eine abgesicherte Anweisung

run_notebook(notebook, workspace?, parameters?)

REST

startet einen RunNotebook-Auftrag, gibt die Auftragsinstanz-ID zurück, blockiert nicht

get_job_status(item_id, job_instance_id, workspace?)

REST

Status, Zeitabläufe, Fehlergrund

execute_dax(dataset_id, query_text, workspace?)

Power BI

eine DAX-EVALUATE-Abfrage, optional

health()

beides

Konfigurationsübersicht und Erreichbarkeitstest

Notebook- und Lakehouse-Argumente akzeptieren entweder einen Anzeigenamen oder eine ID; ein Name wird dabei über list_items aufgelöst.

Die SQL-Absicherung, präzise

run_sql akzeptiert eine Anweisung pro Aufruf, wobei Kommentare vor jeder Entscheidung entfernt werden. Dann:

  • Beginnt mit SELECT oder WITH und enthält kein SELECT ... INTO oder FOR UPDATE: als lesend eingestuft, immer erlaubt.

  • Beginnt mit INSERT, UPDATE, DELETE, MERGE, CREATE, ALTER, DROP, TRUNCATE oder ist ein SELECT ... INTO: als schreibend eingestuft. Wird abgelehnt, es sei denn, FABRIC_ALLOW_WRITES ist gesetzt. UPDATE und DELETE erfordern zusätzlich eine WHERE-Klausel, selbst wenn Schreibvorgänge aktiviert sind.

  • Alles andere: abgelehnt, da es keiner Form entspricht.

  • EXEC/EXECUTE, sp_*, xp_*, OPENROWSET, OPENDATASOURCE, OPENQUERY, BULK INSERT, GRANT, REVOKE, DENY, BACKUP, RESTORE, SHUTDOWN, RECONFIGURE: in jedem Modus abgelehnt.

  • Mehrere durch ; getrennte Anweisungen: abgelehnt, damit jede einzeln beurteilt werden kann.

Tabellen- und Schemanamen, die an describe_table übergeben werden, werden als einfache Bezeichner validiert, und die Suche selbst ist parametrisiert, sodass ein Name kein SQL enthalten kann.

Dies ist ein Schutz vor Fehlern eines Agenten, kein Ersatz für Berechtigungen. Gewähren Sie der Identität den geringstmöglichen Zugriff; die Arbeitsbereichsrolle und die Objektberechtigungen des Warehouses bleiben die eigentliche Grenze.

Hinweise zu execute_dax

Verwendet den JSON-executeQueries-Endpunkt anstelle der neueren Arrow-executeDaxQueries-API, da executeQueries mit Pro-, PPU- und Premium-/Fabric-Kapazitäten funktioniert und keine Arrow-Bibliothek benötigt. Das dokumentierte Limit liegt bei 100.000 Zeilen und 1.000.000 Werten pro Abfrage; FABRIC_MAX_ROWS gilt zusätzlich. Die Mandanteneinstellung Dataset Execute Queries REST API muss aktiviert sein, und der Aufrufer benötigt die Build-Berechtigung für das semantische Modell. Es werden nur EVALUATE- und DEFINE-Abfragen akzeptiert.


Was berührt wird

  • Ausgehender HTTPS-Verkehr zu api.fabric.microsoft.com, api.powerbi.com und Microsoft Entra für Token.

  • Ausgehendes TDS auf Port 1433 zu Ihrem SQL-Analytics-Endpunkt, nur wenn ein SQL-Tool aufgerufen wird und FABRIC_SQL_ENDPOINT gesetzt ist. Encrypt=yes, TrustServerCertificate=no.

  • Keine lokalen Dateisystemzugriffe. Keine Telemetrie. Kein Drittanbieterdienst.


Entwickeln

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

Die gesamte Testsuite läuft ohne Netzwerk, ohne Fabric-Mandanten und ohne installierten ODBC-Treiber: REST-Aufrufe laufen über ein httpx.MockTransport, und die SQL-Schicht verwendet eine injizierbare Verbindungsfabrik, die die Tests mit einer gefälschten DB-API-Verbindung füllen.

Mitwirken

Probleme und Pull-Requests sind willkommen unter https://github.com/NawafSheikh/fabric-mcp/issues.

Quellen

Geprüft am 22.08.2026.

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