Skip to main content
Glama
Jasuni69

Microsoft Fabric MCP Server

by Jasuni69

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
set_workspaceB

Set the current workspace for the session.

Args:
    workspace: Name or ID of the workspace
    ctx: Context object containing client information
Returns:
    A string confirming the workspace has been set.
list_workspacesA

List all available Fabric workspaces.

Args:
    ctx: Context object containing client information

Returns:
    A string containing the list of workspaces or an error message.
create_workspaceA

Create a new Fabric workspace.

Args:
    display_name: Workspace display name
    capacity_id: Optional capacity ID
    description: Optional description
    domain_id: Optional domain identifier
    ctx: Context object containing client information
Returns:
    A string confirming creation or an error message.
set_warehouseB

Set the current warehouse for the session.

Args:
    warehouse: Name or ID of the warehouse
    ctx: Context object containing client information

Returns:
    A string confirming the warehouse has been set.
list_warehousesA

List all warehouses in a Fabric workspace.

Args:
    workspace: Name or ID of the workspace (optional)
    ctx: Context object containing client information

Returns:
    A string containing the list of warehouses or an error message.
create_warehouseB

Create a new warehouse in a Fabric workspace.

Args:
    name: Name of the warehouse
    workspace: Name or ID of the workspace (optional)
    description: Description of the warehouse (optional)
    ctx: Context object containing client information
Returns:
    A string confirming the warehouse has been created or an error message.
set_lakehouseA

Set the current lakehouse for the session.

Args:
    lakehouse: Name or ID of the lakehouse
    ctx: Context object containing client information

Returns:
    A string confirming the lakehouse has been set.
list_lakehousesA

List all lakehouses in a Fabric workspace.

Args:
    workspace: Name or ID of the workspace (optional)
    ctx: Context object containing client information

Returns:
    A string containing the list of lakehouses or an error message.
create_lakehouseC

Create a new lakehouse in a Fabric workspace.

Args:
    name: Name of the lakehouse
    workspace: Name or ID of the workspace (optional)
    description: Description of the lakehouse (optional)
    ctx: Context object containing client information
Returns:
    A string confirming the lakehouse has been created or an error message.
set_tableD
list_tablesD
get_lakehouse_table_schemaD
get_all_lakehouse_schemasD
table_previewD
table_schemaD
describe_historyD
optimize_deltaD
vacuum_deltaD
list_semantic_modelsA

List all semantic models in a Fabric workspace.

Args:
    workspace: Name or ID of the workspace (optional)
    ctx: Context object containing client information

Returns:
    A string containing the list of semantic models or an error message.
get_semantic_modelA

Get a specific semantic model by ID.

Args:
    workspace: Name or ID of the workspace (optional)
    model_id: ID of the semantic model (optional)
    ctx: Context object containing client information

Returns:
    A string containing the details of the semantic model or an error message.
get_model_schemaB

Get the complete schema of a semantic model including tables, columns, measures, and relationships.

This retrieves the model definition in TMSL format and parses the structure.

Args:
    workspace: Name or ID of the workspace (optional)
    model: Name or ID of the semantic model (optional)
    ctx: Context object containing client information

Returns:
    A dictionary containing the model schema with tables, columns, measures, and relationships.
list_measuresB

List all DAX measures in a semantic model.

Args:
    workspace: Name or ID of the workspace (optional)
    model: Name or ID of the semantic model (optional)
    ctx: Context object containing client information

Returns:
    A list of measures with their definitions.
get_measureA

Get a specific DAX measure definition by name.

Args:
    measure_name: Name of the measure to retrieve
    workspace: Name or ID of the workspace (optional)
    model: Name or ID of the semantic model (optional)
    ctx: Context object containing client information

Returns:
    The measure definition including DAX expression.
create_measureA

Create a new DAX measure in a semantic model.

Args:
    measure_name: Name of the measure to create
    dax_expression: DAX formula for the measure
    table_name: Name of the table to add the measure to
    workspace: Name or ID of the workspace (optional)
    model: Name or ID of the semantic model (optional)
    format_string: Display format string (e.g., "#,0.00", "0.0%") (optional)
    description: Description of the measure (optional)
    is_hidden: Whether to hide the measure from client tools (default: False)
    ctx: Context object containing client information

Returns:
    A dictionary containing success status and the created measure details.
update_measureA

Update an existing DAX measure in a semantic model.

Args:
    measure_name: Current name of the measure to update
    workspace: Name or ID of the workspace (optional)
    model: Name or ID of the semantic model (optional)
    dax_expression: New DAX formula (optional)
    format_string: New display format string (optional)
    description: New description (optional)
    is_hidden: New hidden status (optional)
    new_name: New name for the measure (optional)
    ctx: Context object containing client information

Returns:
    A dictionary containing success status and the updated measure details.
delete_measureB

Delete a DAX measure from a semantic model.

Args:
    measure_name: Name of the measure to delete
    workspace: Name or ID of the workspace (optional)
    model: Name or ID of the semantic model (optional)
    ctx: Context object containing client information

Returns:
    A dictionary containing success status and deletion details.
analyze_dax_queryA

Analyze a DAX query for performance insights and execution plan.

This tool executes a DAX query and returns performance metrics including
execution time, scan counts, and optionally the query execution plan.

Args:
    dax_query: DAX query to analyze
    workspace: Name or ID of the workspace (optional)
    model: Name or ID of the semantic model (optional)
    include_execution_plan: Whether to include detailed execution plan (default: True)
    ctx: Context object containing client information

Returns:
    A dictionary containing query results, execution metrics, and optionally the execution plan.
list_reportsC

List all reports in a Fabric workspace.

Args:
    workspace: Name or ID of the workspace (optional)
    ctx: Context object containing client information
Returns:
    A string containing the list of reports or an error message.
get_reportC

Get a specific report by ID.

Args:
    workspace: Name or ID of the workspace (optional)
    report_id: ID of the report (optional)
    ctx: Context object containing client information

Returns:
    A string containing the report details or an error message.
load_data_from_urlB

Load data from a URL into a delta table in a lakehouse via OneLake.

Args:
    url: The URL to download data from (CSV or Parquet supported).
    destination_table: The name of the table to load data into.
    workspace: Name or ID of the workspace (optional).
    lakehouse: Name or ID of the lakehouse (optional).
    warehouse: Name or ID of the warehouse (optional, uses SQL for warehouses).
    ctx: Context object containing client information.
Returns:
    A string confirming the data load or an error message.
run_notebook_jobC

Submit a notebook job run with optional parameters and configuration.

get_run_statusC

Poll a notebook job run until completion.

cancel_notebook_jobB

Cancel a running notebook job instance.

install_requirementsC

Install Python requirements for the workspace Spark environment.

install_wheelC

Install a wheel package into the workspace Spark environment.

cluster_infoC

Retrieve Spark cluster information for the workspace.

list_notebooksA

List all notebooks in a Fabric workspace.

Args:
    workspace: Name or ID of the workspace (optional)
    ctx: Context object containing client information
Returns:
    A string containing the list of notebooks or an error message.
create_notebookA

Create a new notebook in a Fabric workspace.

Args:
    workspace: Name or ID of the workspace
    notebook_name: Name of the new notebook
    content: Content of the notebook (in JSON format). If not provided, creates a basic Hello Fabric notebook.
    ctx: Context object containing client information
Returns:
    A string containing the ID of the created notebook or an error message.
get_notebook_contentA

Get the content of a specific notebook in a Fabric workspace.

Args:
    workspace: Name or ID of the workspace
    notebook_id: ID or name of the notebook
    ctx: Context object containing client information
Returns:
    A string containing the notebook content in JSON format or an error message.
create_pyspark_notebookB

Create a new PySpark notebook from a template in a Fabric workspace.

Args:
    workspace: Name or ID of the workspace
    notebook_name: Name of the new notebook
    template_type: Type of PySpark template ('basic', 'etl', 'analytics', 'ml')
    ctx: Context object containing client information
Returns:
    A string containing the ID of the created notebook or an error message.
generate_pyspark_codeB

Generate PySpark code for common operations.

Args:
    operation: Type of operation ('read_table', 'write_table', 'transform', 'join', 'aggregate')
    source_table: Source table name (format: lakehouse.table_name)
    target_table: Target table name (format: lakehouse.table_name)
    columns: Comma-separated list of columns
    filter_condition: Filter condition for data
    ctx: Context object containing client information
Returns:
    A string containing the generated PySpark code or an error message.
validate_pyspark_codeB

Validate PySpark code for syntax and best practices.

Args:
    code: PySpark code to validate
    ctx: Context object containing client information
Returns:
    A string containing validation results and suggestions.
update_notebook_cellA

Update a specific cell in a notebook.

Args:
    workspace: Name or ID of the workspace
    notebook_id: ID or name of the notebook
    cell_index: Index of the cell to update (0-based)
    cell_content: New content for the cell
    cell_type: Type of cell ('code' or 'markdown')
    ctx: Context object containing client information
Returns:
    A string confirming the update or an error message.
create_fabric_notebookB

Create a new notebook optimized for Microsoft Fabric using advanced templates.

Args:
    workspace: Name or ID of the workspace
    notebook_name: Name of the new notebook
    template_type: Type of Fabric template ('fabric_integration', 'streaming')
    ctx: Context object containing client information
Returns:
    A string containing the ID of the created notebook or an error message.
generate_fabric_codeA

Generate Fabric-specific PySpark code for lakehouse operations.

Args:
    operation: Type of operation ('read_lakehouse', 'write_lakehouse', 'merge_delta', 'performance_monitor')
    lakehouse_name: Name of the lakehouse
    table_name: Name of the source table
    target_table: Name of the target table (for write/merge operations)
    ctx: Context object containing client information
Returns:
    A string containing the generated Fabric-specific PySpark code.
validate_fabric_codeC

Validate PySpark code for Microsoft Fabric compatibility and performance.

Args:
    code: PySpark code to validate for Fabric compatibility
    ctx: Context object containing client information
Returns:
    A string containing detailed validation results and Fabric-specific recommendations.
analyze_notebook_performanceB

Analyze a notebook's code for performance optimization opportunities in Fabric.

Args:
    workspace: Name or ID of the workspace
    notebook_id: ID or name of the notebook
    ctx: Context object containing client information
Returns:
    A string containing performance analysis and optimization recommendations.
resolve_itemC

Resolve an item name or ID to its canonical ID and metadata.

list_itemsC

List workspace items, optionally filtered by type or search term.

get_permissionsA

Retrieve the role assignments for a workspace.

Note: Fabric REST API does not support item-level permissions.
This returns workspace-level role assignments instead.
set_permissionsA

Add a workspace role assignment (Admin, Member, Contributor, Viewer).

Note: Fabric REST API supports workspace-level roles, not item-level permissions.

Args:
    workspace: Workspace name or ID
    principal_id: User, group, or service principal ID (UUID)
    principal_type: "User", "Group", or "ServicePrincipal"
    role: "Admin", "Member", "Contributor", or "Viewer"
onelake_lsC

List files and folders within a OneLake lakehouse path.

onelake_readC

Read file contents from OneLake.

onelake_writeC

Write text or base64 content to OneLake.

onelake_rmC

Delete a file or directory from OneLake.

onelake_create_shortcutA
Create a OneLake shortcut from one lakehouse to another.

This allows you to reference data from a target lakehouse without duplicating it.
Perfect for medallion architectures where Dev/Test/Prod read from a central Bronze layer.

Args:
    lakehouse: Source lakehouse name or ID (where the shortcut will appear)
    shortcut_name: Name for the shortcut
    shortcut_path: Path in source where shortcut appears (e.g., "Tables", "Files/exports")
    target_workspace: Target workspace name or ID (containing the data)
    target_lakehouse: Target lakehouse name or ID (containing the data)
    target_path: Path in target to link to (e.g., "Tables/customers_raw", "Files/bronze")
    workspace: Source workspace name or ID (optional, uses context if not provided)
    conflict_policy: Action when shortcut exists (Abort, GenerateUniqueName, CreateOrOverwrite, OverwriteOnly)
    ctx: Context object

Returns:
    Dictionary with shortcut details including name, path, and target

Example:
    # Create shortcut from DEV silver lakehouse to central Bronze
    onelake_create_shortcut(
        workspace="DEV-Analytics",
        lakehouse="silver_dev",
        shortcut_name="bronze_customers",
        shortcut_path="Tables",
        target_workspace="RAW-Bronze-Central",
        target_lakehouse="bronze_central",
        target_path="Tables/customers_raw"
    )
onelake_list_shortcutsA
List all OneLake shortcuts in a lakehouse.

Args:
    lakehouse: Lakehouse name or ID
    workspace: Workspace name or ID (optional, uses context if not provided)
    ctx: Context object

Returns:
    Dictionary with list of shortcuts

Example:
    onelake_list_shortcuts(
        workspace="DEV-Analytics",
        lakehouse="silver_dev"
    )
onelake_delete_shortcutA
Delete a OneLake shortcut from a lakehouse.

Args:
    lakehouse: Lakehouse name or ID containing the shortcut
    shortcut_path: Path where shortcut exists (e.g., "Tables", "Files/exports")
    shortcut_name: Name of the shortcut to delete
    workspace: Workspace name or ID (optional, uses context if not provided)
    ctx: Context object

Returns:
    Dictionary with success status

Example:
    onelake_delete_shortcut(
        workspace="DEV-Analytics",
        lakehouse="silver_dev",
        shortcut_path="Tables",
        shortcut_name="bronze_customers"
    )
sql_queryC

Run a SQL query against a lakehouse or warehouse endpoint.

sql_explainB

Retrieve an estimated execution plan for a query.

sql_exportC

Export query results to OneLake as CSV or Parquet.

pipeline_runD
pipeline_statusD
pipeline_logsD
dataflow_refreshD
schedule_listD
schedule_setD
create_data_pipelineA
Create a Data Pipeline in a Fabric workspace with custom activities and dependencies.

Perfect for orchestrating medallion architecture workflows (Bronze → Silver → Gold).

Args:
    pipeline_name: Name for the pipeline
    pipeline_definition: Pipeline JSON definition with activities and dependencies
    workspace: Workspace name or ID (optional, uses context if not provided)
    description: Optional description for the pipeline
    ctx: Context object

Returns:
    Dictionary with pipeline details including ID and status

Example - Bronze to Silver to Gold cascade:
    pipeline_definition = {
        "properties": {
            "activities": [
                {
                    "name": "Bronze_Ingestion",
                    "type": "Notebook",
                    "typeProperties": {
                        "notebook": {"name": "bronze_ingest_notebook"}
                    },
                    "dependsOn": []
                },
                {
                    "name": "Silver_Transform",
                    "type": "Notebook",
                    "typeProperties": {
                        "notebook": {"name": "silver_transform_notebook"}
                    },
                    "dependsOn": [
                        {
                            "activity": "Bronze_Ingestion",
                            "dependencyConditions": ["Succeeded"]
                        }
                    ]
                },
                {
                    "name": "Gold_Transform",
                    "type": "Notebook",
                    "typeProperties": {
                        "notebook": {"name": "gold_transform_notebook"}
                    },
                    "dependsOn": [
                        {
                            "activity": "Silver_Transform",
                            "dependencyConditions": ["Succeeded"]
                        }
                    ]
                }
            ]
        }
    }

    create_data_pipeline(
        pipeline_name="Medallion_ETL_Pipeline",
        pipeline_definition=pipeline_definition,
        workspace="PROD-Analytics",
        description="Orchestrates Bronze → Silver → Gold transformations"
    )
get_pipeline_definitionA
Get the definition of an existing Data Pipeline including activities and dependencies.

Args:
    pipeline: Pipeline name or ID
    workspace: Workspace name or ID (optional, uses context if not provided)
    ctx: Context object

Returns:
    Dictionary with pipeline definition including decoded activities

Example:
    get_pipeline_definition(
        pipeline="Medallion_ETL_Pipeline",
        workspace="PROD-Analytics"
    )
semantic_model_refreshD
dax_queryD
report_exportD
report_params_listD
graph_userA

Query Azure AD user profile details via Microsoft Graph.

graph_mailA

Send mail via Microsoft Graph on behalf of the current identity.

graph_teams_messageB

Post a message to a Teams channel via Microsoft Graph.

Args:
    team_id: The target Microsoft Teams team identifier.
    channel_id: The channel identifier within the team.
    text: The message body to send.
    content_type: Graph contentType, defaults to "html". Can be "html", "text", "markdown".
    ctx: FastMCP context.
graph_driveA

List files in a OneDrive or SharePoint drive via Microsoft Graph.

save_teams_channel_aliasB

Create or update a named alias for a Teams channel (team_id + channel_id).

list_teams_channel_aliasesA

List all saved Teams channel aliases.

delete_teams_channel_aliasB

Delete a saved Teams channel alias.

graph_teams_message_aliasA

Post a message to a Teams channel using a saved alias.

Resolves the alias into `(team_id, channel_id)` and forwards to `graph_teams_message`.
get_sql_endpointB
Retrieve the SQL endpoint for a specified lakehouse or warehouse.

Args:
    workspace: Name or ID of the workspace (optional).
    lakehouse: Name or ID of the lakehouse (optional).
    warehouse: Name or ID of the warehouse (optional).
    type: Type of resource ('lakehouse' or 'warehouse'). If not provided, it will be inferred.
    ctx: Context object containing client information.

Returns:
    A string containing the resource type, name/ID, and its SQL endpoint.
clear_contextA

Clear the current session context.

Returns:
    A string confirming the context has been cleared.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.1/5.0

Scored across 83 tools

Disambiguation2/5

Several tools have overlapping purposes, such as create_notebook, create_pyspark_notebook, and create_fabric_notebook, or generate_pyspark_code vs generate_fabric_code. dax_query and analyze_dax_query, as well as table_schema and get_lakehouse_table_schema, also blur boundaries. Multiple empty descriptions like vacuum_delta and set_table make selection even more ambiguous.

Naming Consistency3/5

Most tools follow a readable snake_case pattern with a rough verb_noun structure like list_*, get_*, create_*, update_*, and delete_*. However, there are notable deviations such as onelake_ls, pipeline_run/status/logs, table_preview, and describe_history. The naming is generally predictable within subgroups but inconsistent across the full set.

Tool Count1/5

With 83 tools, this server is far beyond a manageable scope for agent tool selection and exceeds the 50+ extreme threshold. Even though Microsoft Fabric is a broad platform, consolidating this many operations into one MCP server creates significant cognitive overhead. This would be better split into focused servers by domain.

Completeness2/5

The tool surface covers many Fabric areas including workspaces, lakehouses, warehouses, notebooks, semantic models, pipelines, OneLake, SQL, and Graph integrations. However, CRUD coverage is incomplete: warehouses and lakehouses lack update/delete, reports lack create/delete, and pipelines lack list/update/delete. These gaps create dead ends for common lifecycle workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues