← Force Fabric MCP Server

Force Fabric MCP Server 5d2a2973e6603367894b6c2a04b8711d6e38800d

source_git · tmdaidevs/force-fabric-mcp-server · current release

33
Tools
0
Resources
0
Templates
0
Prompts

Observation

Observed 2026-08-25T08:52:54.359Z using mcpSecurity-inventory. Status: succeeded. Negotiated protocol: 2025-06-18.

Server capabilities
{
  "tools": {
    "listChanged": true
  }
}

Tools 33

ToolCategoryAnnotationsRisk
auth_loginLogin to Microsoft Fabric. MUST be called before using any other tool. Choose a login method: azure_cli (recommended), interactive_browser, device_code, vscode, service_principal, or default.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "method": {
      "type": "string",
      "description": "Authentication method. Options: 'azure_cli' (use existing az login session — recommended), 'interactive_browser' (opens browser for login), 'device_code' (device code flow for headless environments), 'vscode' (use VS Code Azure account), 'service_principal' (requires tenantId, clientId, clientSecret), 'default' (auto-detect best available method)."
    },
    "tenantId": {
      "type": "string",
      "description": "Azure Tenant ID (optional, needed for interactive_browser, device_code, service_principal)"
    },
    "clientId": {
      "type": "string",
      "description": "Azure App Registration Client ID (optional, needed for interactive_browser, service_principal)"
    },
    "clientSecret": {
      "type": "string",
      "description": "Client secret (only for service_principal method)"
    }
  },
  "required": [
    "method"
  ]
}
— · —
auth_logoutLogout from Microsoft Fabric and clear cached credentials.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {}
}
— · —
auth_statusCheck if you are currently authenticated to Microsoft Fabric. Shows the login method and available authentication options.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {}
}
— · —
eventhouse_auto_optimizeAUTO-OPTIMIZE: Scans a Fabric Eventhouse for all fixable issues across all KQL databases and applies fixes. Covers: merge fragmentation, caching policies, retention policies, materialized views, ingestion batching, partitioning, merge policy, autocompaction, extent tags retention, streaming ingestion, stale materialized view refresh. Use dryRun=true to preview.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "The ID of the Fabric workspace"
    },
    "eventhouseId": {
      "type": "string",
      "description": "The ID of the eventhouse to optimize"
    },
    "cachingDays": {
      "type": "number",
      "description": "Hot cache days (default: 30)"
    },
    "retentionDays": {
      "type": "number",
      "description": "Retention days (default: 365)"
    },
    "dryRun": {
      "type": "boolean",
      "description": "If true, preview KQL commands without executing (default: false)"
    }
  },
  "required": [
    "workspaceId",
    "eventhouseId"
  ]
}
— · —
eventhouse_fixAUTO-FIX: Applies fixes to a Fabric Eventhouse. Fixable rules: EH-002 (merge fragmentation), EH-004 (caching), EH-005 (retention), EH-006 (re-enable materialized views), EH-014 (ingestion batching), EH-016 (partitioning), EH-017 (merge policy), EH-021 (autocompaction), EH-022 (extent tags retention), EH-024 (streaming ingestion), EH-025 (refresh stale materialized views). Use dryRun=true to preview commands without executing them.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "The ID of the Fabric workspace"
    },
    "eventhouseId": {
      "type": "string",
      "description": "The ID of the eventhouse to fix"
    },
    "ruleIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Rule IDs to fix: EH-002, EH-004, EH-005, EH-006, EH-014, EH-016, EH-017, EH-021, EH-022, EH-024, EH-025"
    },
    "kqlDatabaseName": {
      "type": "string",
      "description": "Optional: specific KQL database name"
    },
    "tableName": {
      "type": "string",
      "description": "Optional: specific table name"
    },
    "cachingDays": {
      "type": "number",
      "description": "Hot cache days (default: 30)"
    },
    "retentionDays": {
      "type": "number",
      "description": "Retention days (default: 365)"
    },
    "dryRun": {
      "type": "boolean",
      "description": "If true, preview commands without executing them (default: false)"
    }
  },
  "required": [
    "workspaceId",
    "eventhouseId"
  ]
}
— · —
eventhouse_fix_materialized_viewsAUTO-FIX: Diagnoses and repairs broken materialized views in a Fabric Eventhouse. Detects: disabled views, missing/renamed source tables. Auto-matches renamed tables by column schema similarity, then drops and recreates views. Use dryRun=true to preview changes.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "The ID of the Fabric workspace"
    },
    "eventhouseId": {
      "type": "string",
      "description": "The ID of the eventhouse"
    },
    "kqlDatabaseName": {
      "type": "string",
      "description": "Optional: specific KQL database name"
    },
    "dryRun": {
      "type": "boolean",
      "description": "If true, preview fixes without executing (default: false)"
    }
  },
  "required": [
    "workspaceId",
    "eventhouseId"
  ]
}
— · —
eventhouse_listList all eventhouses in a Fabric workspace with their query/ingestion URIs and KQL database counts.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "The ID of the Fabric workspace"
    }
  },
  "required": [
    "workspaceId"
  ]
}
— · —
eventhouse_list_kql_databasesList all KQL databases in a Fabric workspace.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "The ID of the Fabric workspace"
    }
  },
  "required": [
    "workspaceId"
  ]
}
— · —
eventhouse_optimization_recommendationsLIVE SCAN: Connects to a Fabric Eventhouse KQL endpoint and runs real diagnostic commands. Analyzes 20 rules: table storage/fragmentation (extent stats), caching policies, retention policies, materialized views health, ingestion batching, streaming ingestion, partitioning, merge/encoding/row_order policies, stored functions, and query performance. Returns findings with prioritized action items.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "The ID of the Fabric workspace"
    },
    "eventhouseId": {
      "type": "string",
      "description": "The ID of the eventhouse to analyze"
    }
  },
  "required": [
    "workspaceId",
    "eventhouseId"
  ]
}
— · —
fabric_optimization_reportGenerate a comprehensive optimization report for an entire Fabric workspace. Scans all Lakehouses, Warehouses, Eventhouses, and Semantic Models and provides a checklist of optimization action items for each item, plus cross-cutting recommendations for capacity management, data architecture, security, and cost optimization.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "The ID of the Fabric workspace to analyze"
    }
  },
  "required": [
    "workspaceId"
  ]
}
— · —
gateway_fixAUTO-FIX: Applies fixes to gateway and connection issues. Fixable rules: GW-004 (delete unused datasources), GW-006 (remove excess admins), GW-008 (delete orphaned connections), GW-010 (delete duplicate datasources). Use dryRun=true to preview changes without executing them.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "ruleIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Rule IDs to fix: GW-004, GW-006, GW-008, GW-010"
    },
    "dryRun": {
      "type": "boolean",
      "description": "If true, preview changes without executing them (default: false)"
    }
  }
}
— · —
gateway_listList all gateways with their status, version, type, and VNet configuration.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {}
}
— · —
gateway_list_connectionsList all connections with their connectivity type, gateway binding, and privacy level.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {}
}
— · —
gateway_optimization_recommendationsLIVE SCAN: Scans all gateways and connections with 12 rules covering availability (online status, connectivity), security (credentials, excessive admins, privacy levels), governance (unused gateways/datasources, orphaned connections, duplicates, display names), and configuration (VNet setup, version currency). Returns findings with prioritized action items.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {}
}
— · —
lakehouse_auto_optimizeAUTO-OPTIMIZE: Discovers ALL Delta tables in a Lakehouse and applies fixes to every table in a single Livy Spark session (no notebooks needed). Default fixes: auto-optimize, retention, data-skipping. Use dryRun=true to preview. Use fixIds to select specific fixes. Additional fixes: v-order, change-data-feed, column-mapping, checkpoint-interval, deletion-vectors, compute-stats.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "The ID of the Fabric workspace"
    },
    "lakehouseId": {
      "type": "string",
      "description": "The ID of the lakehouse"
    },
    "fixIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Fix IDs: auto-optimize, retention, data-skipping, audit-columns, v-order, change-data-feed, column-mapping, checkpoint-interval, deletion-vectors, compute-stats. Default: first three."
    },
    "dryRun": {
      "type": "boolean",
      "description": "If true, preview commands without executing (default: false)"
    }
  },
  "required": [
    "workspaceId",
    "lakehouseId"
  ]
}
— · —
lakehouse_fixAUTO-FIX: Applies Spark SQL fixes to a Lakehouse via Livy API (no notebooks needed). Falls back to temporary Notebook if Livy is unavailable. Can fix: auto-optimize, retention policy, data skipping, audit columns, v-order, change-data-feed, column-mapping, checkpoint-interval, deletion-vectors, compute-stats. Use dryRun=true to preview commands without executing them. Available fixIds: auto-optimize, retention, data-skipping, audit-columns, v-order, change-data-feed, column-mapping, checkpoint-interval, deletion-vectors, compute-stats.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "The ID of the Fabric workspace"
    },
    "lakehouseId": {
      "type": "string",
      "description": "The ID of the lakehouse"
    },
    "tableName": {
      "type": "string",
      "description": "The table to fix"
    },
    "fixIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Fix IDs to apply: auto-optimize, retention, data-skipping, audit-columns, v-order, change-data-feed, column-mapping, checkpoint-interval, deletion-vectors, compute-stats. If omitted, all are applied."
    },
    "dryRun": {
      "type": "boolean",
      "description": "If true, preview commands without executing them (default: false)"
    }
  },
  "required": [
    "workspaceId",
    "lakehouseId",
    "tableName"
  ]
}
— · —
lakehouse_get_job_statusCheck the status of a table maintenance job on a Fabric Lakehouse.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "The ID of the Fabric workspace"
    },
    "lakehouseId": {
      "type": "string",
      "description": "The ID of the lakehouse"
    },
    "jobInstanceId": {
      "type": "string",
      "description": "The ID of the job instance to check"
    }
  },
  "required": [
    "workspaceId",
    "lakehouseId",
    "jobInstanceId"
  ]
}
— · —
lakehouse_listList all lakehouses in a Fabric workspace with their metadata, SQL endpoint status, and OneLake paths.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "The ID of the Fabric workspace"
    }
  },
  "required": [
    "workspaceId"
  ]
}
— · —
lakehouse_list_tablesList all tables in a Fabric Lakehouse with their type, format (Delta/Parquet), and location.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "The ID of the Fabric workspace"
    },
    "lakehouseId": {
      "type": "string",
      "description": "The ID of the lakehouse"
    }
  },
  "required": [
    "workspaceId",
    "lakehouseId"
  ]
}
— · —
lakehouse_optimization_recommendationsLIVE SCAN: Analyzes a Fabric Lakehouse by checking table formats (Delta vs non-Delta), connecting to the SQL Analytics Endpoint to inspect row counts, column data types, empty tables, and large tables. Returns findings with prioritized action items.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "The ID of the Fabric workspace"
    },
    "lakehouseId": {
      "type": "string",
      "description": "The ID of the lakehouse to analyze"
    }
  },
  "required": [
    "workspaceId",
    "lakehouseId"
  ]
}
— · —
lakehouse_run_table_maintenanceRun table maintenance (OPTIMIZE with V-Order, Z-ORDER, VACUUM) on a Fabric Lakehouse. Can target a specific table or all tables. Compacts small files, applies V-Order compression, and removes unreferenced old files.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "The ID of the Fabric workspace"
    },
    "lakehouseId": {
      "type": "string",
      "description": "The ID of the lakehouse"
    },
    "tableName": {
      "type": "string",
      "description": "Optional: name of a specific table to optimize. If omitted, all tables are processed."
    },
    "optimizeSettings": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {},
      "description": "OPTIMIZE settings"
    },
    "vacuumSettings": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {},
      "description": "VACUUM settings"
    }
  },
  "required": [
    "workspaceId",
    "lakehouseId"
  ]
}
— · —
semantic_model_auto_optimizeAUTO-OPTIMIZE: Applies all 19 safe fixes to a Semantic Model using XMLA/TMSL commands (falls back to download/upload if XMLA is unavailable). Covers: DAX fixes (IFERROR, EVALUATEANDLOG, +0, direct refs, SUMX→SUM, ALL→REMOVEFILTERS), model fixes (format strings, descriptions, date tables, IsKey, hidden MDX, auto-date tables, bidirectional relationships, SummarizeBy), and bloat fixes (hide description/GUID columns, remove constants, clean measure names). Use dryRun=true to preview.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "The ID of the Fabric workspace"
    },
    "semanticModelId": {
      "type": "string",
      "description": "The ID of the semantic model to optimize"
    },
    "dryRun": {
      "type": "boolean",
      "description": "If true, preview fixes without applying (default: false)"
    }
  },
  "required": [
    "workspaceId",
    "semanticModelId"
  ]
}
— · —
semantic_model_fixAUTO-FIX: Uses XMLA/TMSL commands for atomic per-object fixes (measures, columns, tables). Falls back to download/upload (BIM/TMDL) if XMLA endpoint is unavailable. 19 fix rules: SM-FIX-FORMAT, SM-FIX-DESC, SM-FIX-HIDDEN, SM-FIX-DATE, SM-FIX-KEY, SM-FIX-AUTODATE, SM-FIX-IFERROR, SM-FIX-EVALLOG, SM-FIX-ADDZERO, SM-FIX-DIRECTREF, SM-FIX-SUMX, SM-FIX-MEASUREDESC, SM-FIX-MEASURENAME, SM-FIX-HIDEDESC, SM-FIX-HIDEGUID, SM-FIX-CONSTCOL, SM-FIX-BIDI, SM-FIX-SUMMARIZE, SM-FIX-REMOVEFILTERS.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "The ID of the Fabric workspace"
    },
    "semanticModelId": {
      "type": "string",
      "description": "The ID of the semantic model to fix"
    },
    "ruleIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional: specific fix IDs to apply. If omitted, all safe fixes are applied."
    }
  },
  "required": [
    "workspaceId",
    "semanticModelId"
  ]
}
— · —
semantic_model_listList all semantic models in a Fabric workspace.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "The ID of the Fabric workspace"
    }
  },
  "required": [
    "workspaceId"
  ]
}
— · —
semantic_model_optimization_recommendationsLIVE SCAN: Connects to a Fabric Semantic Model and executes DAX queries (COLUMNSTATISTICS) to analyze the actual model. Runs Best Practice Analyzer rules to detect: high-cardinality text columns, constant columns, booleans/dates/numbers stored as text, wide tables, string keys, description columns wasting memory. Also checks bidirectional relationships (SM-021), implicit measures (SM-022), disconnected tables (SM-023), ALL() vs REMOVEFILTERS() (SM-024), excessive USERELATIONSHIP (SM-025), complex relationship webs (SM-026), inactive relationships (SM-027), missing format strings (SM-028), and pseudo-hierarchies (SM-029). Returns memory hotspots and prioritized fixes.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "The ID of the Fabric workspace"
    },
    "semanticModelId": {
      "type": "string",
      "description": "The ID of the semantic model to analyze"
    }
  },
  "required": [
    "workspaceId",
    "semanticModelId"
  ]
}
— · —
warehouse_analyze_query_patternsLIVE SCAN: Connects to a Fabric Warehouse SQL endpoint and analyzes real query execution history. Returns top slow queries, most frequent queries, recent failures, and daily query volume trends with actual data.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "The ID of the Fabric workspace"
    },
    "warehouseId": {
      "type": "string",
      "description": "The ID of the warehouse"
    }
  },
  "required": [
    "workspaceId",
    "warehouseId"
  ]
}
— · —
warehouse_auto_optimizeAUTO-OPTIMIZE: Scans a Fabric Warehouse for all fixable issues and applies all safe fixes automatically. Runs diagnostics first, then applies: stale statistics refresh, PK constraints, ANSI settings, result set caching, snapshot isolation, AUTO_CREATE_STATISTICS, Query Store, FK indexes, and more. Fixable rule IDs: WH-001, WH-008, WH-026, WH-027, WH-028, WH-029, WH-030, WH-032, WH-036, WH-040, WH-041, WH-044. Use dryRun=true to preview.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "The ID of the Fabric workspace"
    },
    "warehouseId": {
      "type": "string",
      "description": "The ID of the warehouse to optimize"
    },
    "dryRun": {
      "type": "boolean",
      "description": "If true, preview SQL commands without executing (default: false)"
    }
  },
  "required": [
    "workspaceId",
    "warehouseId"
  ]
}
— · —
warehouse_fixAUTO-FIX: Connects to a Fabric Warehouse and applies fixes for detected issues. Can fix: stale statistics, missing PKs, disabled constraints, missing audit columns, sensitive data masking, database settings (AUTO_UPDATE_STATISTICS, AUTO_CREATE_STATISTICS, result set caching, snapshot isolation, ANSI settings), Query Store, and missing FK indexes. Fixable rule IDs: WH-001, WH-008, WH-026, WH-027, WH-028, WH-029, WH-030, WH-032, WH-036, WH-040, WH-041, WH-044. Specify ruleIds to fix specific issues, or omit to fix all auto-fixable issues. Use dryRun=true to preview SQL commands without executing them.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "The ID of the Fabric workspace"
    },
    "warehouseId": {
      "type": "string",
      "description": "The ID of the warehouse to fix"
    },
    "ruleIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional: specific rule IDs to fix (e.g. ['WH-008', 'WH-026']). If omitted, all auto-fixable rules are applied."
    },
    "dryRun": {
      "type": "boolean",
      "description": "If true, preview SQL commands without executing them (default: false)"
    }
  },
  "required": [
    "workspaceId",
    "warehouseId"
  ]
}
— · —
warehouse_listList all warehouses in a Fabric workspace with their metadata and connection details.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "The ID of the Fabric workspace"
    }
  },
  "required": [
    "workspaceId"
  ]
}
— · —
warehouse_optimization_recommendationsLIVE SCAN: Connects to a Fabric Warehouse SQL endpoint and runs real diagnostic queries. Analyzes table schemas, data types, statistics coverage, slow queries, frequent queries, failed queries, and query volume trends. Returns findings with prioritized action items.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "The ID of the Fabric workspace"
    },
    "warehouseId": {
      "type": "string",
      "description": "The ID of the warehouse to analyze"
    }
  },
  "required": [
    "workspaceId",
    "warehouseId"
  ]
}
— · —
workspace_capacity_infoList Fabric capacities with their SKU, state, and region. Includes capacity optimization tips.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {}
}
— · —
workspace_listList all Fabric workspaces you have access to with their IDs, types, and capacity assignments.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {}
}
— · —
workspace_list_itemsList all items in a Fabric workspace, optionally filtered by type (Lakehouse, Warehouse, Notebook, Pipeline, SemanticModel, Report, etc.). Items are grouped by type.
Input schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "The ID of the Fabric workspace"
    },
    "itemType": {
      "type": "string",
      "description": "Optional: filter by item type (e.g., Lakehouse, Warehouse, Notebook, SemanticModel, Pipeline, Report, Eventhouse, KQLDatabase, Dashboard, Dataflow)"
    }
  },
  "required": [
    "workspaceId"
  ]
}
— · —

Resources 0

Resource templates 0

Prompts 0

Let’s talk about MCP security.

Share your details and our security team will contact you.