mcp-fabric
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-fabriclist workspaces"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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).
Related MCP server: Fabric-Analytics-MCP
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 |
| Windows WAM broker popup (no Azure CLI needed) |
| reuse an |
| browser sign-in popup |
| app registration; secret from |
|
|
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.jsonmacOS:
~/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.
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.
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/rajivdatta/mcp-fabric'
If you have feedback or need assistance with the MCP directory API, please join our Discord server