Microsoft Fabric MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AUTH_MODE | Yes | Authentication mode: azcli, sp, or obo | |
| AZURE_CLIENT_ID | No | Azure client ID (required for sp or obo mode) | |
| AZURE_TENANT_ID | No | Azure tenant ID (required for sp or obo mode) | |
| AZURE_CLIENT_SECRET | No | Azure client secret (required for sp or obo mode) | |
| FABRIC_DEFAULT_WORKSPACE | No | Optional default workspace ID |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| fabric_list_workspacesA | List all Fabric workspaces the caller can access. |
| fabric_get_workspaceA | Get a workspace by ID. |
| fabric_create_workspaceC | Create a new workspace, optionally bound to a capacity. |
| fabric_update_workspaceB | Update a workspace name/description. |
| fabric_delete_workspaceB | Delete a workspace. Destructive. |
| fabric_list_workspace_role_assignmentsA | List role assignments (members) on a workspace. |
| fabric_add_workspace_role_assignmentB | Add a member (user/group/service principal) to a workspace with a role (Admin/Member/Contributor/Viewer). |
| fabric_delete_workspace_role_assignmentB | Remove a role assignment from a workspace. Destructive. |
| fabric_assign_workspace_to_capacityC | Assign a workspace to a capacity. |
| fabric_unassign_workspace_from_capacityA | Unassign a workspace from its capacity. |
| fabric_list_capacitiesA | List the capacities the caller can access. |
| fabric_list_itemsB | List items in a workspace, optionally filtered by type (Lakehouse, Notebook, DataPipeline, Warehouse, SemanticModel, Report, …). |
| fabric_get_itemA | Get a single item by ID. |
| fabric_create_itemA | Create any Fabric item by type, optionally with a definition (file parts). Use the type-specific tools for richer ergonomics. |
| fabric_update_itemC | Update an item's name/description. |
| fabric_delete_itemC | Delete an item by ID. Destructive. |
| fabric_get_item_definitionA | Fetch an item's full definition (long-running). Returns the raw definition and decoded file contents. |
| fabric_update_item_definitionC | Replace an item's definition from file parts (long-running). |
| fabric_list_lakehousesC | List lakehouses in a workspace. |
| fabric_get_lakehouseA | Get a lakehouse (includes its SQL endpoint + OneLake paths). |
| fabric_create_lakehouseC | Create a lakehouse, optionally schema-enabled. |
| fabric_delete_lakehouseB | Delete a lakehouse. Destructive. |
| fabric_list_lakehouse_tablesB | List the Delta tables in a lakehouse. |
| fabric_load_lakehouse_tableB | Load a file/folder in OneLake into a Delta table (long-running). |
| fabric_run_table_maintenanceB | Run table maintenance (OPTIMIZE / V-Order / VACUUM) on a lakehouse table (long-running). |
| fabric_list_warehousesB | List warehouses in a workspace. |
| fabric_get_warehouseB | Get a warehouse (includes its SQL connection string). |
| fabric_create_warehouseC | Create a data warehouse. |
| fabric_delete_warehouseC | Delete a warehouse. Destructive. |
| fabric_list_sql_endpointsA | List SQL analytics endpoints in a workspace. |
| fabric_get_sql_endpointA | Get a SQL analytics endpoint (connection string, etc.). |
| fabric_refresh_sql_endpoint_metadataA | Sync a SQL analytics endpoint's metadata with its source lakehouse (long-running). |
| fabric_list_shortcutsA | List OneLake shortcuts on an item (e.g. a lakehouse). |
| fabric_get_shortcutA | Get a single OneLake shortcut by path + name. |
| fabric_create_shortcutB | Create a OneLake shortcut. |
| fabric_delete_shortcutB | Delete a OneLake shortcut by path + name. Destructive. |
| fabric_list_notebooksB | List notebooks in a workspace. |
| fabric_get_notebookA | Get a notebook by ID. |
| fabric_create_notebookA | Create a notebook. Optionally populate cells at creation and attach a default lakehouse. |
| fabric_update_notebook_definitionA | Replace a notebook's cells (long-running). Optionally attach a default lakehouse. |
| fabric_get_notebook_definitionA | Fetch a notebook's definition and decoded cell source (long-running). |
| fabric_run_notebookC | Run a notebook on demand. Optionally pass executionData (parameters, configuration). |
| fabric_list_pipelinesA | List data pipelines in a workspace. |
| fabric_get_pipelineA | Get a data pipeline by ID. |
| fabric_create_pipelineB | Create a data pipeline, optionally with activities + parameters. |
| fabric_update_pipeline_definitionB | Replace a pipeline's activities + parameters (long-running). |
| fabric_get_pipeline_definitionA | Fetch a pipeline's definition (activities/parameters) decoded (long-running). |
| fabric_run_pipelineC | Run a data pipeline on demand. Optionally pass executionData (parameters). |
| fabric_run_jobC | Run an on-demand job for any item, by job type. Optionally pass executionData. |
| fabric_list_job_instancesB | List job instances (runs) for an item. |
| fabric_get_job_instanceB | Get the status/details of a job instance. |
| fabric_cancel_jobB | Cancel a running job instance. |
| fabric_list_job_schedulesB | List schedules configured for an item's job type. |
| fabric_create_job_scheduleB | Create a schedule for an item's job. configuration is the Fabric schedule object, e.g. {"type":"Daily","startDateTime":"2026-01-01T00:00:00","times":["09:00"],"localTimeZoneId":"UTC"}. |
| fabric_list_spark_job_definitionsA | List Spark job definitions in a workspace. |
| fabric_get_spark_job_definitionA | Get a Spark job definition by ID. |
| fabric_create_spark_job_definitionC | Create a Spark job definition. |
| fabric_run_spark_job_definitionC | Run a Spark job definition on demand. |
| fabric_list_spark_custom_poolsA | List the custom Spark pools in a workspace. |
| fabric_list_livy_sessionsB | List Spark Livy sessions in a workspace. |
| fabric_list_semantic_modelsC | List semantic models (datasets) in a workspace. |
| fabric_get_semantic_modelB | Get a semantic model by ID. |
| fabric_delete_semantic_modelB | Delete a semantic model. Destructive. |
| fabric_refresh_semantic_modelB | Trigger an asynchronous refresh of a semantic model. |
| fabric_get_semantic_model_refresh_historyB | Get the refresh history of a semantic model. |
| fabric_list_reportsC | List reports in a workspace. |
| fabric_get_reportB | Get a report by ID. |
| fabric_delete_reportB | Delete a report. Destructive. |
| fabric_list_dataflowsA | List Dataflow Gen2 items in a workspace. |
| fabric_get_dataflowB | Get a Dataflow Gen2 by ID. |
| fabric_create_dataflowC | Create a Dataflow Gen2. |
| fabric_delete_dataflowB | Delete a Dataflow Gen2. Destructive. |
| fabric_run_dataflowB | Run (refresh) a Dataflow Gen2 on demand. |
| fabric_list_eventhousesB | List eventhouses in a workspace. |
| fabric_get_eventhouseA | Get an eventhouse by ID. |
| fabric_create_eventhouseC | Create an eventhouse. |
| fabric_delete_eventhouseB | Delete an eventhouse. Destructive. |
| fabric_list_kql_databasesA | List KQL databases in a workspace. |
| fabric_get_kql_databaseA | Get a KQL database by ID. |
| fabric_create_kql_databaseC | Create a KQL database under an eventhouse. |
| fabric_delete_kql_databaseB | Delete a KQL database. Destructive. |
| fabric_list_eventstreamsC | List eventstreams in a workspace. |
| fabric_get_eventstreamB | Get an eventstream by ID. |
| fabric_create_eventstreamC | Create an eventstream. |
| fabric_delete_eventstreamC | Delete an eventstream. Destructive. |
| fabric_onelake_list_pathsA | List files/directories under a OneLake directory (e.g. "{lakehouseId}/Files"). |
| fabric_onelake_create_directoryC | Create a directory in OneLake. |
| fabric_onelake_read_fileA | Read a text file from OneLake. |
| fabric_onelake_write_fileB | Write a (small) text file to OneLake (create → append → flush). |
| fabric_onelake_delete_pathC | Delete a file or directory in OneLake. Destructive. |
| fabric_git_get_connectionA | Get a workspace's Git connection. |
| fabric_git_get_statusA | Get the Git status (changes) of a workspace. |
| fabric_git_connectB | Connect a workspace to a Git repository. gitProviderDetails = { gitProviderType: "AzureDevOps"|"GitHub", organizationName, projectName, repositoryName, branchName, directoryName }. |
| fabric_git_disconnectB | Disconnect a workspace from Git. Destructive. |
| fabric_git_initializeC | Initialize the Git connection (after connect) to sync direction. |
| fabric_git_commitC | Commit workspace changes to Git (mode All or Selective). |
| fabric_git_update_from_gitC | Update the workspace from the remote Git commit. |
| fabric_list_deployment_pipelinesB | List deployment pipelines. |
| fabric_get_deployment_pipelineA | Get a deployment pipeline by ID. |
| fabric_get_deployment_stagesA | Get the stages of a deployment pipeline. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| medallion-architecture | Stand up a medallion architecture: bronze/silver/gold lakehouses, transformation notebooks, and an orchestrating pipeline. |
| document-workspace | Inventory a workspace and produce a structured summary of its items and lineage. |
| build-etl | Create transformation notebooks and orchestrate them in a data pipeline. |
| diagnose-refresh | Investigate why a semantic model refresh failed or is slow. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| fabric-workspaces | All workspaces the caller can access. |
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/og-mcp/fabric-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server