Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

fabric-dw

OCI · GHCR.IO/SDEBRUYN/FABRIC-DW:2026.9.0 · SCANNED SEP 20

MCP server for Microsoft Fabric Data Warehouses and SQL Analytics Endpoints

+5 this week 41 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security0
  • Malware scan not yet available for this package.Unverified
  • Known CVEs could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.Unverified
  • Install-script risk not yet assessed.Unverified
  • Dependency health could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.Unverified
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 10 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability66
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 20729 tokens (~168/item across 123 items; 123 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management37
  • Stability observed for 11 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage73
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 5% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 23 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "delete_warehouse" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 124 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

How do I install the fabric-dw MCP server?

fabric-dw runs locally as a container image, launched with docker run --rm -i ghcr.io/sdebruyn/fabric-dw:2026.9.0. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

oci · ghcr.io/sdebruyn/fabric-dw:2026.9.0

# add to Claude Code
claude mcp add sdebruyn-fabric-dw-mcp -- docker run --rm -i ghcr.io/sdebruyn/fabric-dw:2026.9.0
// .cursor/mcp.json
{
  "mcpServers": {
    "sdebruyn-fabric-dw-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/sdebruyn/fabric-dw:2026.9.0"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "sdebruyn-fabric-dw-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/sdebruyn/fabric-dw:2026.9.0"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add sdebruyn-fabric-dw-mcp -- docker run --rm -i ghcr.io/sdebruyn/fabric-dw:2026.9.0
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sdebruyn-fabric-dw-mcp": {
      "type": "local",
      "command": [
        "docker",
        "run",
        "--rm",
        "-i",
        "ghcr.io/sdebruyn/fabric-dw:2026.9.0"
      ],
      "enabled": true
    }
  }
}
# ~/.hermes/config.yaml
mcp_servers:
  sdebruyn-fabric-dw-mcp:
    command: "docker"
    args: ["run", "--rm", "-i", "ghcr.io/sdebruyn/fabric-dw:2026.9.0"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "sdebruyn-fabric-dw-mcp": {
      "Transport": "stdio",
      "Command": "docker",
      "Arguments": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/sdebruyn/fabric-dw:2026.9.0"
      ]
    }
  }
}
// mcp.json
{
  "mcpServers": {
    "sdebruyn-fabric-dw-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/sdebruyn/fabric-dw:2026.9.0"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

  • 17 Sept 26 +4
    • Stability: unverified → 0.27 functional
  • 9 Sept 26 36

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed oci/ghcr.io/sdebruyn/fabric-dw:2026.9.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem oci
Reason No attestation published

Background: How many MCP packages publish verified provenance →

MCP tools · 123 exposed · ~20,549 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
add_audit_group ~175

Add a single audit action group without overwriting the others. Idempotent -- if the group is already present the current settings are returned unchanged. Auditing must already be enabled. CAUTION: changes take effect immediately on the live audit policy. CAUTION: Each audit write reads current settings via an eventually-consistent GET that may lag a recent PATCH by several minutes. Two audit writes issued within that window can cause the second to silently revert the first. Space audit writes at least a few minutes apart. Args: workspace: Workspace name or GUID. warehouse: Warehouse or SQL analytics endpoint name or GUID. group: Action group name, e.g. ``BATCH_COMPLETED_GROUP``.

NameTypeReqDescription
groupstringyes
warehousestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

add_security_predicate ~229

Add a FILTER predicate to an existing row-level security policy. Executes ``ALTER SECURITY POLICY ... ADD FILTER PREDICATE``. There is no predicate-type or operation parameter (#966): Fabric Data Warehouse supports FILTER predicates only. Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID. policy_name: Qualified policy name (``"schema.name"`` or ``"name"``). fn_name: Name of the predicate function. fn_args: Column names to pass to the predicate function. table_schema: Schema name of the target table. table_name: Name of the target table. fn_schema: Schema name of the predicate function (optional -- omit when the function lives in the default schema).

NameTypeReqDescription
fn_argsarrayyes
fn_namestringyes
fn_schema
itemstringyes
policy_namestringyes
table_namestringyes
table_schemastringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

assign_workspace_to_capacity ~57

Assign a workspace to a Fabric capacity. Args: workspace: Workspace name or GUID. capacity_id: UUID of the capacity to assign the workspace to.

NameTypeReqDescription
capacity_idstringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

clear_cache ~138

Erase cached workspace and item name-to-UUID mappings. Args: scope: Which portion of the cache to clear. - ``"workspaces"`` — clear only workspace name→UUID entries. - ``"items"`` — clear only item (warehouse/endpoint) entries. - ``"all"`` (default) — clear all entries. Returns: A dict with keys ``scope`` (the value used), ``workspaces_cleared`` (number of workspace entries removed), and ``items_cleared`` (number of item workspace buckets removed).

NameTypeReqDescription
scopestring

Structured output declared, but exposes no named fields.

No examples provided.

clear_table ~151

Truncate a SQL table (remove all rows, keep structure). Only supported on Fabric Data Warehouses (not SQL Analytics Endpoints). The service rejects SQL Analytics Endpoints with a ``ToolError``. CAUTION: This is a destructive, irreversible operation. All rows will be permanently deleted. The table structure and schema are preserved. Confirm with the user before calling. Args: workspace: Workspace name or GUID. item: Warehouse name or GUID. SQL Analytics Endpoints are rejected. qualified_name: Dot-separated qualified table name, e.g. ``dbo.sales``.

NameTypeReqDescription
itemstringyes
qualified_namestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

clone_table ~200

Create a zero-copy clone of a table using ``CREATE TABLE … AS CLONE OF …``. Only supported on Fabric Data Warehouses (not SQL Analytics Endpoints). Args: workspace: Workspace name or GUID. item: Warehouse name or GUID. source: Qualified source table name, e.g. ``dbo.sales``. new_table: Qualified name for the new cloned table, e.g. ``dbo.sales_clone``. at: Optional ISO-8601 UTC timestamp for a point-in-time clone, e.g. ``2024-05-20T14:00:00``. Must be within the data-retention window (30 days by default). When omitted, the clone reflects the current state of the source table.

NameTypeReqDescription
at
itemstringyes
new_tablestringyes
sourcestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

count_table_rows ~154

Return the total row count of a table via ``SELECT COUNT_BIG(*)``. Works on both Fabric Data Warehouses and SQL Analytics Endpoints. Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID. qualified_name: Dot-separated qualified table name, e.g. ``dbo.sales``. as_of: Optional ISO-8601 UTC timestamp for a point-in-time (time-travel) count. When supplied the query uses ``OPTION (FOR TIMESTAMP AS OF ...)``. Omit to count the latest data.

NameTypeReqDescription
as_of
itemstringyes
qualified_namestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

count_view_rows ~156

Return the total row count of a view via ``SELECT COUNT_BIG(*)``. Works on both Fabric Data Warehouses and SQL Analytics Endpoints. Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID. qualified_name: Dot-separated qualified view name, e.g. ``dbo.vw_sales``. as_of: Optional ISO-8601 UTC timestamp for a point-in-time (time-travel) count. When supplied the query uses ``OPTION (FOR TIMESTAMP AS OF ...)``. Omit to count the latest data.

NameTypeReqDescription
as_of
itemstringyes
qualified_namestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

create_empty_table ~332

Create an empty table from an explicit column spec (DDL only, no data). Builds ``CREATE TABLE [schema].[table] (col TYPE [NULL|NOT NULL], …)`` from the supplied column definitions. No data is read or inserted; this is a pure DDL operation. Server-side file access is unreliable in MCP deployments, so CSV/Parquet inference is not available via this tool — use the ``fabric-dw tables create --from-parquet`` or ``--from-csv`` CLI commands instead. Only supported on Fabric Data Warehouses (not SQL Analytics Endpoints). When ``cluster_by`` is supplied, each column must appear in ``columns``. Args: workspace: Workspace name or GUID. item: Warehouse name or GUID. qualified_name: Dot-separated qualified table name, e.g. ``dbo.sales``. columns: List of column definitions, each a dict with: ``name`` (str) — column identifier; ``sql_type`` (str) — Fabric-DW T-SQL type, e.g. ``"INT"``, ``"VARCHAR(255)"``; ``nullable`` (bool, optional, default true) — whether the column allows NULL. cluster_by: Optional list of column names for the ``CLUSTER BY`` clause (up to 4). Each name must appear in ``columns``.

NameTypeReqDescription
cluster_by
columnsarrayyes
itemstringyes
qualified_namestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

create_function ~200

Create a new T-SQL user-defined function. Scalar UDFs and inline TVFs are preview features on Fabric DW as of mid-2026. Function DDL is supported on both Data Warehouses and SQL Analytics Endpoints. CAUTION: ``body`` is executed verbatim as DDL. Ensure the body matches the user's intent before calling this tool. The body should include the parameter list, RETURNS clause, and function body (everything that follows ``CREATE FUNCTION [schema].[name]``). Args: workspace: Workspace name or GUID. item: Warehouse or SQL Analytics Endpoint name or GUID. qualified_name: Dot-separated qualified function name, e.g. ``dbo.fn_clean_input``. body: The function body (parameter list, RETURNS clause, and implementation).

NameTypeReqDescription
bodystringyes
itemstringyes
qualified_namestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

create_procedure ~141

Create a new stored procedure. Stored procedures are supported on both Fabric Data Warehouses and SQL Analytics Endpoints. CAUTION: ``body`` is executed verbatim as DDL. Ensure the body matches the user's intent before calling this tool. Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID. qualified_name: Dot-separated qualified procedure name, e.g. ``dbo.usp_load``. body: The procedure body (the AS … section).

NameTypeReqDescription
bodystringyes
itemstringyes
qualified_namestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

create_restore_point ~86

Create a restore point for a warehouse at the current timestamp. Args: workspace: Workspace name or GUID. warehouse: Warehouse name or GUID. name: Optional display name (max 128 chars). description: Optional description (max 512 chars).

NameTypeReqDescription
description
name
warehousestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

create_schema ~105

Create a new SQL schema on a warehouse or SQL Analytics Endpoint. Both Fabric Data Warehouses and SQL Analytics Endpoints support ``CREATE SCHEMA`` per the Microsoft Fabric T-SQL reference. Args: workspace: Workspace name or GUID. item: Warehouse or SQL Analytics Endpoint name or GUID. name: The schema name. Must be a valid SQL identifier.

NameTypeReqDescription
itemstringyes
namestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

create_security_policy ~240

Create a row-level security policy. Executes ``CREATE SECURITY POLICY`` with one or more FILTER predicates. There is no predicate-type option (#966): Fabric Data Warehouse supports FILTER predicates only. Each entry in *predicates* must include: - ``fn_schema``: schema of the predicate function - ``fn_name``: name of the predicate function - ``fn_args``: list of column names to pass to the function - ``table_schema``: schema of the target table - ``table_name``: name of the target table Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID. policy_name: Qualified policy name (``"schema.name"`` or ``"name"``). predicates: List of predicate definitions (see above). state: Initial policy state -- ``True`` to enable, ``False`` to disable (default: ``True``).

NameTypeReqDescription
itemstringyes
policy_namestringyes
predicatesarrayyes
stateboolean
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

create_snapshot ~113

Create a new warehouse snapshot. Args: workspace: Workspace name or GUID. warehouse: Warehouse name or GUID. name: Display name for the new snapshot. description: Optional description. snapshot_dt: Optional ISO-8601 datetime string for the snapshot point-in-time. Naive datetimes (no timezone offset) are interpreted as UTC.

NameTypeReqDescription
description
namestringyes
snapshot_dt
warehousestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

create_sql_pool ~184

Add a new custom SQL pool to a workspace. Args: workspace: Workspace name or GUID. name: Pool name (must be unique within the workspace). max_percent: Max resource percentage (1-100). is_default: Whether this pool is the default pool. Defaults to false. optimize_for_reads: Enable read optimisation. Defaults to true. classifier_type: Classifier type (e.g. ``"Application Name"``). classifier_values: List of classifier values (e.g. application names). Requires workspace admin role. This tool targets a **beta / preview** API.

NameTypeReqDescription
classifier_type
classifier_values
is_defaultboolean
max_percentintegeryes
namestringyes
optimize_for_readsboolean
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

create_statistics ~205

Create a single-column statistic on a table. Only supported on Data Warehouses (SQL Analytics Endpoints are read-only). Only single-column statistics are supported (Fabric limitation). Args: workspace: Workspace name or GUID. item: Warehouse name or GUID. SQL Analytics Endpoints are rejected. qualified_table: Qualified table name, e.g. ``dbo.sales``. column: Column name to build the statistic on. stat_name: Name for the new statistic. fullscan: When True (default), use WITH FULLSCAN. Ignored when sample_percent is provided. sample_percent: Sample percentage (1-100). When provided, overrides fullscan and uses WITH SAMPLE n PERCENT.

NameTypeReqDescription
columnstringyes
fullscanboolean
itemstringyes
qualified_tablestringyes
sample_percent
stat_namestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

create_table ~386

Create a new SQL table via CTAS (CREATE TABLE AS SELECT). Only supported on Fabric Data Warehouses (not SQL Analytics Endpoints). The service rejects SQL Analytics Endpoints with a ``ToolError``. CAUTION: ``select_body`` is executed verbatim as DDL on the warehouse. Ensure the body matches the user's intent before calling this tool. ``select_body`` must be a single read-only SELECT or WITH (CTE) statement. The guard is always on and fail-closed: a write keyword (DELETE, DROP, INSERT, etc.) or a semicolon anywhere in the body is rejected, even inside a string literal or quoted identifier. If a legitimate query body contains a write keyword (e.g. a column alias 'DELETE'), rewrite the expression to avoid the keyword. When ``cluster_by`` is supplied, the DDL becomes ``CREATE TABLE … WITH (CLUSTER BY ([c1], [c2])) AS SELECT …``. Column existence is not validated for CTAS because the result columns come from the SELECT and are not known ahead of time. Args: workspace: Workspace name or GUID. item: Warehouse name or GUID. SQL Analytics Endpoints are rejected. qualified_name: Dot-separated qualified table name, e.g. ``dbo.sales``. select_body: Single read-only SELECT or WITH (CTE) statement for the CTAS source. Write keywords and semicolons are rejected fail-closed, even inside string literals or quoted identifiers. cluster_by: Optional list of column names for the ``CLUSTER BY`` clause (up to 4).

NameTypeReqDescription
cluster_by
itemstringyes
qualified_namestringyes
select_bodystringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

create_view ~254

Create a new SQL view. CAUTION: ``select_body`` is executed verbatim as DDL. Ensure the body matches the user's intent before calling this tool. ``select_body`` must be a single read-only SELECT or WITH (CTE) statement. The guard is always on and fail-closed: a write keyword (DELETE, DROP, INSERT, etc.) or a semicolon anywhere in the body is rejected, even inside a string literal or quoted identifier. If a legitimate view body contains a write keyword (e.g. a column alias 'DELETE'), rewrite the expression to avoid the keyword. Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID. qualified_name: Dot-separated qualified view name, e.g. ``dbo.vw_sales``. select_body: Single read-only SELECT or WITH (CTE) statement for the view body. Write keywords and semicolons are rejected fail-closed, even inside string literals or quoted identifiers.

NameTypeReqDescription
itemstringyes
qualified_namestringyes
select_bodystringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

create_warehouse ~214

Create a new Warehouse in a workspace. Args: workspace: Workspace name or GUID. name: Display name for the new warehouse. collation: Optional default collation for the new warehouse. Fabric Data Warehouse supports a fixed set of collations. Supported values include: - ``Latin1_General_100_BIN2_UTF8`` (recommended default) - ``Latin1_General_100_CI_AS_KS_WS_SC_UTF8`` - ``Latin1_General_CI_AS`` - ``SQL_Latin1_General_CP1_CI_AS`` When omitted, the workspace default collation is used. Supplying an unsupported value will cause the Fabric API to return an error. See the Fabric documentation for the full list of supported collations. description: Optional description for the new warehouse.

NameTypeReqDescription
collation
description
namestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

delete_restore_point ~76

Delete a user-defined restore point. System-created restore points cannot be deleted. Args: workspace: Workspace name or GUID. warehouse: Warehouse name or GUID. restore_point_id: The restore point ID string.

NameTypeReqDescription
restore_point_idstringyes
warehousestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

delete_schema ~211

Drop a SQL schema from a warehouse. CAUTION: This is a destructive, irreversible operation. The schema will be permanently deleted. If the schema still contains tables or views, the operation will fail unless *cascade* is ``True``. CAUTION: When *cascade* is ``True``, **all tables and views in the schema are permanently deleted along with their data**. Confirm explicitly with the user before calling with ``cascade=True``. Both Fabric Data Warehouses and SQL Analytics Endpoints support ``DROP SCHEMA`` per the Microsoft Fabric T-SQL reference. Args: workspace: Workspace name or GUID. item: Warehouse or SQL Analytics Endpoint name or GUID. name: The schema name to drop. cascade: When ``True``, drop all tables and views in the schema first. Defaults to ``False``.

NameTypeReqDescription
cascadeboolean
itemstringyes
namestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

delete_snapshot ~27

Delete a warehouse snapshot.

NameTypeReqDescription
snapshotstringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

delete_sql_pool ~70

Delete an SQL pool from a workspace. Args: workspace: Workspace name or GUID. pool_name: Name of the pool to delete. Requires workspace admin role. This tool targets a **beta / preview** API.

NameTypeReqDescription
pool_namestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

delete_statistics ~124

Drop a statistic via DROP STATISTICS. CAUTION: This is a destructive, irreversible operation. Only supported on Data Warehouses (SQL Analytics Endpoints are read-only). Args: workspace: Workspace name or GUID. item: Warehouse name or GUID. SQL Analytics Endpoints are rejected. qualified_table: Qualified table name, e.g. ``dbo.sales``. stat_name: Name of the statistic to drop.

NameTypeReqDescription
itemstringyes
qualified_tablestringyes
stat_namestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

delete_table ~137

Drop a SQL table. Only supported on Fabric Data Warehouses (not SQL Analytics Endpoints). The service rejects SQL Analytics Endpoints with a ``ToolError``. CAUTION: This is a destructive, irreversible operation. The table and all its data will be permanently deleted. Confirm with the user before calling. Args: workspace: Workspace name or GUID. item: Warehouse name or GUID. SQL Analytics Endpoints are rejected. qualified_name: Dot-separated qualified table name, e.g. ``dbo.sales``.

NameTypeReqDescription
itemstringyes
qualified_namestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

delete_warehouse ~27

Delete a Warehouse.

NameTypeReqDescription
warehousestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

deny_permission ~303

Deny permissions on a securable to a principal. Executes ``DENY <permissions> ON <scope> TO <principal>``. Blocked by ``FABRIC_MCP_READONLY``. Does NOT require ``FABRIC_MCP_ALLOW_DESTRUCTIVE``. Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID. permissions: Comma-separated permission tokens (e.g. ``"SELECT"``). principal: Principal name to deny (Entra UPN, app GUID, or role name). scope: Securable class -- ``"DATABASE"`` (default), ``"SCHEMA"``, or ``"OBJECT"``. schema: Schema name (required when scope is ``"SCHEMA"``). object_name: Qualified object name ``<schema>.<object>`` (required when scope is ``"OBJECT"``). columns: Optional list of column names for column-level security (OBJECT scope only; permissions must be SELECT, UPDATE, or REFERENCES). Pass ``None`` (omit) for no column restriction. Passing an empty list raises a ``ToolError``.

NameTypeReqDescription
columns
itemstringyes
object_name
permissionsstringyes
principalstringyes
schema
scopestring
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

disable_audit ~110

Disable SQL auditing on a warehouse or SQL analytics endpoint. CAUTION: Each audit write reads current settings via an eventually-consistent GET that may lag a recent PATCH by several minutes. Two audit writes issued within that window can cause the second to silently revert the first. Space audit writes at least a few minutes apart. Args: workspace: Workspace name or GUID. warehouse: Warehouse or SQL analytics endpoint name or GUID.

NameTypeReqDescription
warehousestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

disable_sql_pools ~60

Disable custom SQL Pools for a workspace, preserving pool configuration. Re-enabling with enable_sql_pools restores the previously saved configuration. Requires workspace admin role. This tool targets a **beta / preview** API.

NameTypeReqDescription
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

drop_column_mask ~167

Remove a dynamic data mask from a column. Executes ``ALTER TABLE ... ALTER COLUMN ... DROP MASKED``. This is a permanently destructive operation -- the mask is removed from the column and unmasked values become visible to all users who query the column. Requires ``FABRIC_MCP_ALLOW_DESTRUCTIVE=1``. Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID. table_schema: Schema name of the target table. table_name: Name of the target table. column_name: Name of the column whose mask to remove.

NameTypeReqDescription
column_namestringyes
itemstringyes
table_namestringyes
table_schemastringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

drop_function ~148

Drop a T-SQL user-defined function. Function DDL is supported on both Data Warehouses and SQL Analytics Endpoints. Args: workspace: Workspace name or GUID. item: Warehouse or SQL Analytics Endpoint name or GUID. qualified_name: Dot-separated qualified function name, e.g. ``dbo.fn_clean_input``. if_exists: When ``true``, a missing function is treated as a no-op and ``{"dropped": false}`` is returned instead of raising an error. Defaults to ``false``.

NameTypeReqDescription
if_existsboolean
itemstringyes
qualified_namestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

drop_procedure ~93

Drop a stored procedure. Stored procedures are supported on both Fabric Data Warehouses and SQL Analytics Endpoints. Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID. qualified_name: Dot-separated qualified procedure name, e.g. ``dbo.usp_load``.

NameTypeReqDescription
itemstringyes
qualified_namestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

drop_security_policy ~119

Drop a row-level security policy. Executes ``DROP SECURITY POLICY``. This is a permanently destructive operation -- the policy and all its predicates are removed. Requires ``FABRIC_MCP_ALLOW_DESTRUCTIVE=1``. Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID. policy_name: Qualified policy name (``"schema.name"`` or ``"name"``).

NameTypeReqDescription
itemstringyes
policy_namestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

drop_security_predicate ~176

Drop the FILTER predicate from an existing row-level security policy. Executes ``ALTER SECURITY POLICY ... DROP FILTER PREDICATE ON``. The T-SQL ``DROP PREDICATE ON`` syntax takes no operation qualifier. There is no predicate-type parameter (#966): Fabric Data Warehouse supports FILTER predicates only. Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID. policy_name: Qualified policy name (``"schema.name"`` or ``"name"``). table_schema: Schema name of the target table. table_name: Name of the target table.

NameTypeReqDescription
itemstringyes
policy_namestringyes
table_namestringyes
table_schemastringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

drop_view ~75

Drop a SQL view. Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID. qualified_name: Dot-separated qualified view name, e.g. ``dbo.vw_sales``.

NameTypeReqDescription
itemstringyes
qualified_namestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

enable_audit ~147

Enable SQL auditing on a warehouse or SQL analytics endpoint. CAUTION: The pre-flight GET used to round-trip the existing action-group list is eventually consistent and may lag a recent PATCH by several minutes. If the action-group list was changed within that window, this call may silently revert it. Space audit writes at least a few minutes apart. Args: workspace: Workspace name or GUID. warehouse: Warehouse or SQL analytics endpoint name or GUID. retention_days: Log retention in days (0-3650; 0 = unlimited). Default 0.

NameTypeReqDescription
retention_daysinteger
warehousestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

enable_sql_pools ~46

Enable custom SQL Pools for a workspace without modifying pool definitions. Requires workspace admin role. This tool targets a **beta / preview** API.

NameTypeReqDescription
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

execute_sql ~580

Execute an arbitrary SQL statement or batch against a warehouse or SQL Analytics Endpoint. Prefer dedicated tools for common operations: use read_table or read_view to fetch rows, count_table_rows or count_view_rows to count, list_tables, list_views, list_schemas to discover objects, get_table_columns or get_view_columns to inspect schemas, and delete_table, rename_table, or clear_table to mutate. Dedicated tools return structured, typed results with no dialect pitfalls or batch-truncation surprises. WARNING: this tool executes arbitrary SQL against the target. DDL (DROP, ALTER, TRUNCATE) and DML (DELETE, UPDATE) are permitted unless ``FABRIC_MCP_READONLY=1`` is set. Use only when the user explicitly requests data modification. Default to SELECT when the user's intent is read-only investigation. Supports both Warehouse and SQL Analytics Endpoint items. Multi-statement batches are allowed; the tool keeps the last result set that has a column list (i.e. the last query), not the last statement. A batch that ends with DDL/DML after a query, such as ``SELECT id FROM t; UPDATE t SET x = 1;``, returns the ``SELECT`` result and does not separately report that the ``UPDATE`` ran. A statement with no result set at all (DDL/DML with nothing else in the batch) returns ``columns=[]`` and ``rows=[]``. ``datetime`` and ``Decimal`` column values are pre-serialised to strings. ``bytes`` / varbinary columns are base64-encoded and their column names are suffixed with ``__base64``. For large tables, add a TOP clause or WHERE predicate to the query rather than relying solely on ``max_rows``. The driver fetches at most ``max_rows + 1`` rows (enough to detect truncation) so memory is bounded, but pushing the limit into the query itself is always more efficient. Args: workspace: Workspace name or GUID. item: Warehouse or SQL Analytics Endpoint name or GUID. query: SQL statement or batch to execute. max_rows: Maximum rows to return (1-10000, default 1000). When t…

NameTypeReqDescription
itemstringyes
max_rowsinteger
querystringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

generate_dbt_profile ~425

Generate dbt-fabric project file contents for a Fabric Data Warehouse. Returns the generated file contents as text strings. Because the MCP server cannot write to the caller's local filesystem, it is the caller's responsibility to write the returned strings to the appropriate files. Authentication note: dbt-fabric is Entra-only. ServicePrincipal mode emits ``{{ env_var(...) }}`` placeholders for tenant_id / client_id / client_secret — no literal secrets are included in the output. Args: workspace: Workspace name or GUID. item: Warehouse name or GUID. project_name: dbt project name (default: sanitized warehouse name). profile_name: dbt profile name (default: same as project_name). schema: Default schema (default: ``dbo``). target: dbt output target name (default: ``dev``). threads: Number of dbt threads (default: 4). authentication: dbt-fabric authentication string — ``auto`` (DefaultAzureCredential), ``CLI`` (interactive), or ``ServicePrincipal``. Defaults to the server's auth mode. with_sources: When ``True``, generate a ``_sources.yml`` from the warehouse's actual schemas and tables. Returns: A dict with keys: - ``profiles_yml``: content for ``profiles.yml``. - ``dbt_project_yml``: content for ``dbt_project.yml``. - ``sources_yml``: content for ``models/staging/_sources.yml``. - ``requirements_txt``: content for ``requirements.txt``. - ``gitignore``: content for ``.gitignore``.

NameTypeReqDescription
authenticationstring
itemstringyes
profile_namestring
project_namestring
schemastring
targetstring
threadsinteger
with_sourcesboolean
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

get_audit_settings ~60

Fetch the current SQL audit settings for a warehouse or SQL analytics endpoint. Args: workspace: Workspace name or GUID. warehouse: Warehouse or SQL analytics endpoint name or GUID.

NameTypeReqDescription
warehousestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

get_cluster_columns ~114

Return the data-clustering columns of a table, ordered by clustering ordinal. Only supported on Fabric Data Warehouses. SQL Analytics Endpoints raise a ``ToolError``. Returns an empty list when no clustering columns are defined. Args: workspace: Workspace name or GUID. item: Warehouse name or GUID. qualified_name: Dot-separated qualified table name, e.g. ``dbo.sales``.

NameTypeReqDescription
itemstringyes
qualified_namestringyes
workspacestringyes
NameTypeReqDescription
resultarrayyes

No examples provided.

get_function ~133

Fetch the full definition of a T-SQL user-defined function (schema.fn). Returns the function definition (from ``sys.sql_modules``) and its parameter list (from ``sys.parameters``). Scalar UDFs and inline TVFs are supported on both Data Warehouses and SQL Analytics Endpoints. Args: workspace: Workspace name or GUID. item: Warehouse or SQL Analytics Endpoint name or GUID. qualified_name: Dot-separated qualified function name, e.g. ``dbo.fn_clean_input``.

NameTypeReqDescription
itemstringyes
qualified_namestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

get_procedure ~100

Fetch the full definition of a stored procedure (schema.proc). Stored procedures are supported on both Fabric Data Warehouses and SQL Analytics Endpoints. Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID. qualified_name: Dot-separated qualified procedure name, e.g. ``dbo.usp_load``.

NameTypeReqDescription
itemstringyes
qualified_namestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

get_query_plan ~584

Capture the estimated SHOWPLAN_XML execution plan for a SQL query without executing it. This tool does NOT execute the query — it only retrieves the estimated execution plan as SHOWPLAN_XML. Because no data is modified, this tool is permitted even under ``FABRIC_MCP_READONLY=1``. The plan XML uses the standard namespace ``http://schemas.microsoft.com/sqlserver/2004/07/showplan`` and can be opened in SSMS, Azure Data Studio, or uploaded to pastetheplan.com for visual analysis. Since the query is not executed, DDL/DML query text is safe to plan without modifying any data. Supports both Warehouse and SQL Analytics Endpoint items. **Format options:** - ``"xml"`` *(default, backwards-compatible)* — returns the raw SHOWPLAN_XML string in ``plan_xml``. Existing callers relying on ``{"plan_xml": str}`` continue to work unchanged. - ``"tree"`` — parses the XML into a native nested list of dicts (one entry per statement) in ``plan``. Best for agent reasoning over the plan structure. - ``"json"`` — same tree, serialised to an indented JSON string in ``plan_json``. Ready to write out or pass through as compact text. - ``"mermaid"`` — renders a Mermaid ``flowchart TD`` diagram string in ``mermaid``. Paste into mermaid.live or embed in GitHub Markdown. **Artifact formats (SVG/HTML/DOT) are CLI-only.** They write files to disk and are only available via ``fdw sql plan --format <fmt> -o <file>``. The MCP server never writes files (ambiguous cwd, invisible side-effects). Args: workspace: Workspace name or GUID. item: Warehouse or SQL Analytics Endpoint name or GUID. query: SQL statement to generate an estimated execution plan for. format: Output format — one of ``"xml"`` (default), ``"tree"``, ``"json"``, or ``"mermaid"``. Returns: A dict whose shape depends on *format*: - ``xml`` → ``{"format": "xml", "plan_xml": str}`` - ``tree`` → ``{"format": "tree", "plan": list[dict]}`` - ``json`` → ``{…

NameTypeReqDescription
formatstring
itemstringyes
querystringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

get_request_detail ~100

Look up a completed query from queryinsights.exec_requests_history. Uses distributed_statement_id to retrieve full query text and execution metrics after the query completes. Args: workspace: Workspace name or GUID. item: Warehouse or SQL Analytics Endpoint name or GUID. dist_statement_id: The GUID identifying the distributed statement to look up.

NameTypeReqDescription
dist_statement_idstringyes
itemstringyes
workspacestringyes
NameTypeReqDescription
resultyes

No examples provided.

get_restore_point ~82

Return a single restore point by ID. Args: workspace: Workspace name or GUID. warehouse: Warehouse name or GUID. restore_point_id: The restore point ID string (e.g. ``"1726617378000"``).

NameTypeReqDescription
restore_point_idstringyes
warehousestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

get_sql_endpoint ~36

Return details for a single SQL analytics endpoint (name or GUID).

NameTypeReqDescription
endpointstringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

get_sql_pool ~69

Return details for a single SQL pool by name. Args: workspace: Workspace name or GUID. pool_name: The pool name. Requires workspace admin role. This tool targets a **beta / preview** API.

NameTypeReqDescription
pool_namestringyes
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

get_sql_pools_status ~100

Return whether custom SQL Pools are enabled for a workspace. Returns only the workspace-level enabled/disabled switch (``customSQLPoolsEnabled``). Use ``list_sql_pools`` to see the pool list, or ``get_sql_pool`` for a single pool's details. Requires workspace admin role. This tool targets a **beta / preview** API endpoint that may change before general availability.

NameTypeReqDescription
workspacestringyes

Structured output declared, but exposes no named fields.

No examples provided.

Common questions

What is the fabric-dw MCP server?

fabric-dw is an MCP server listed in the public MCP registry as io.github.sdebruyn/fabric-dw-mcp. MCP server for Microsoft Fabric Data Warehouses and SQL Analytics Endpoints. This page covers its container image (ghcr.io/sdebruyn/fabric-dw:2026.9.0).

Is the fabric-dw MCP server safe to use?

fabric-dw scores 41 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the fabric-dw MCP server expose?

fabric-dw exposes 123 tools: assign_workspace_to_capacity, list_capacities, list_workspaces, get_workspace, set_workspace_collation, and 118 more. Their descriptions and schemas cost roughly 20,549 tokens of context every time the server is loaded.

Is the fabric-dw MCP server still maintained?

fabric-dw is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the fabric-dw MCP server under?

fabric-dw declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.