mcp-fabric
MCP server for managing Microsoft Fabric notebooks and Dataflow Gen2 via the Fabric REST API. Supports reading, creating, updating, running, and deleting items within workspaces.
README
mcp-fabric — Microsoft Fabric MCP server
A FastMCP server for developing Fabric
notebooks and Dataflow Gen2 through the Fabric REST API
(https://api.fabric.microsoft.com/v1). Tools take a workspace (display name
or GUID) and an item name/GUID; call list_workspaces first.
Read tools always work; create/update/delete/run tools require
"writable": true in config.json.
Tools
Discovery / read
list_workspaceslist_items— filter byitem_type(Notebook, Dataflow, Lakehouse, …)get_item— item metadataget_item_definition— decoded definition parts of any item (generic/advanced)
Notebooks
create_notebook— fromsource(code string) oripynb(full notebook JSON)get_notebook— returns the source extracted from the notebook's ipynbupdate_notebook— replace contentrun_notebook— run on demand with optional parameters → returns a jobInstanceId
Dataflow Gen2
create_dataflow— from a Power Query Mmashup_documentget_dataflow— decoded parts (mashup.pq= the M query,queryMetadata.json)update_dataflow— replace the M documentrefresh_dataflow/publish_dataflow— on-demand jobs
Jobs / lifecycle
get_job— status of a notebook run / dataflow refreshcancel_jobdelete_item
Definition create/update are long-running operations; the server polls them to completion automatically. Notebook/dataflow runs return a
jobInstanceIdyou monitor withget_job(they aren't polled to completion).
Known limitations (per Microsoft docs)
- Dataflow Gen2 run APIs: refresh/publish can be invoked, but Microsoft currently notes the run may not complete successfully via API.
- Service-principal auth is not supported for dataflows (works for notebooks).
Auth
Set "auth" in config.json:
| value | how it signs in |
|---|---|
broker (default) |
Windows WAM broker popup (no Azure CLI needed) |
azure-cli |
reuse an az login token |
interactive |
browser sign-in popup |
service-principal |
app registration; secret from client_secret_env (see .env.example) |
default |
DefaultAzureCredential |
The identity needs an appropriate workspace role (Admin/Member/Contributor)
to create and run items. Default token scope is
https://api.fabric.microsoft.com/.default.
Setup
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
copy config.example.json config.json # then edit if needed (broker auth works as-is)
.\.venv\Scripts\python.exe server.py # smoke test (Ctrl+C to stop)
Register with an MCP client
See examples/mcp.json:
{
"mcpServers": {
"fabric": {
"command": "C:\\path\\to\\mcp-fabric\\.venv\\Scripts\\python.exe",
"args": ["C:\\path\\to\\mcp-fabric\\server.py"],
"env": {}
}
}
}
Use with Claude Desktop
Claude Desktop reads its MCP servers from
claude_desktop_config.json. Open it from Settings → Developer → Edit Config
(this creates the file if it doesn't exist), or edit it directly:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Add this server under mcpServers, using absolute paths to the venv's
Python and server.py:
{
"mcpServers": {
"fabric": {
"command": "C:\\path\\to\\mcp-fabric\\.venv\\Scripts\\python.exe",
"args": ["C:\\path\\to\\mcp-fabric\\server.py"],
"env": {}
}
}
}
On macOS the paths are POSIX, e.g. "command": "/Users/you/mcp-fabric/.venv/bin/python".
Save the file and fully quit and reopen Claude Desktop (use Quit from the
tray/menu-bar icon — closing the window isn't enough). The server's tools then
appear in the tools (🔌) menu of a new chat.
License
MIT — see LICENSE.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.