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

MCP server for Microsoft Fabric Data Warehouses and SQL Analytics Endpoints

0 this week 60 Trust /100

Last scanned (2 hours ago)

Scores higher than 98% of OCI servers

Category Databases

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
  • No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
  • Known CVEs could not be checked: this image's dependency list comes from an SBOM its publisher attached, which nothing verifies, so we will not report it as a clean result. View diagnostics → Unverified
  • Install-script risk not yet assessed.Unverified
  • Dependency health could not be checked: this image's dependency list comes from an SBOM its publisher attached. It names packages and versions but not whether each is deprecated, still maintained or linked to its source, so there is nothing we can fairly grade.Unverified
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to sdebruyn/fabric-dw-mcp-cli). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 56 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 Management100
  • No destabilizing schema changes in the last 30 days.Pass
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.

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.

  • 1 Nov 26 0
    • Stability: 0.97 → pass security
  • 31 Oct 26 0
    • Stability: pass → 0.97 functional
  • 24 Oct 26 0
    • Stability: 0.97 → pass security
  • 23 Oct 26 0
    • Stability: pass → 0.97 functional
  • 17 Oct 26 0
    • Stability: 0.97 → pass security
  • 16 Oct 26 +1

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

  • 14 Oct 26 +1

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

  • 12 Oct 26 +1

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

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 5 Nov 2026 · Analysed oci/ghcr.io/sdebruyn/fabric-dw:2026.9.0

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem oci
Reason Verified
Discovered via OCI referrers API
Source repo sdebruyn/fabric-dw-mcp-cli
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/sdebruyn/fabric-dw-mcp-cli/.github/workflows/docker.yml@refs/tags/v2026.9.0
Rekor log index 2770810681
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha256:c67d33ae0696a73e9a9ea194d1879e70ff01d036e7a4990b196d703d223860f7

Background: How many MCP packages publish verified provenance →

Vulnerabilities 72 ungraded findings

From the publisher's SBOM, not graded. These advisories match packages listed in the SBOM the publisher attached to this image. A publisher naming a vulnerable package in their own image is credible, so we show them. Nothing verifies that SBOM, though, so the Known CVEs signal does not grade the image from it.

ID CVE Severity Vector Fix available
GHSA-2g87-pp6c-29x5 high yes
GHSA-494j-54xm-rwp3 CVE-2026-111063 medium yes
GHSA-5wr8-gcqf-gqf3 CVE-2026-111064 high yes
GHSA-6cjc-53gc-5rqm CVE-2026-111065 medium yes
GHSA-9xw5-w5jj-pvcg CVE-2026-111066 high yes
GHSA-f9xw-jh8m-3mwq CVE-2026-111748 medium yes
GHSA-gx76-c99x-2c96 CVE-2026-111749 low yes
GHSA-pqxq-w44r-73xw CVE-2026-111750 medium yes
GHSA-6q48-6c7w-9gw2 critical yes
PYSEC-2026-4320 none yes
GHSA-567q-5qvw-pf92 CVE-2026-112907 low CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L yes
GHSA-6627-m3xw-93mp CVE-2026-112908 medium CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:L yes
GHSA-69hj-f68j-2879 CVE-2026-112909 medium CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:N yes
GHSA-8mx5-7m5m-r77g CVE-2026-112910 medium CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L yes
GHSA-9c4x-gm8v-wgc4 CVE-2026-112911 medium CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:H yes
GHSA-9vhv-jxww-xfm5 CVE-2026-112913 low CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L yes
GHSA-cwqr-hh33-gh44 CVE-2026-112915 medium CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H yes
GHSA-fq56-3cx3-fjxp CVE-2026-112935 medium CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:N yes
GHSA-j8f7-rjxc-mr56 CVE-2026-112936 medium CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L yes
GHSA-m462-7rxw-wvpg CVE-2026-112938 medium CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:H yes
GHSA-rfpc-qcw5-3pc4 CVE-2026-112939 medium CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:N yes
GHSA-v4x8-3wr5-3wq8 CVE-2026-112940 high CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H yes
GHSA-5h93-6whr-6q8j CVE-2026-116685 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N yes
GHSA-84m7-p3x7-pcfv CVE-2026-59951 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-rwrf-2pqf-9j8j CVE-2026-116686 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H yes
GHSA-w4fh-qvv9-3v23 CVE-2026-116684 medium CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N yes
GHSA-6v7p-g79w-8964 CVE-2026-57585 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-j586-36cw-2gc2 CVE-2026-114613 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes
PYSEC-2026-3625 CVE-2026-57585 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-54p9-h82j-f925 CVE-2026-104874 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L yes
PYSEC-2026-4244 CVE-2026-104874 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L yes
GHSA-xcq7-p3pf-p88h CVE-2026-114603 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L yes
GHSA-2gx3-rcp4-g85q CVE-2026-101917 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L yes
GHSA-42vr-xj54-vc7v CVE-2026-101918 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L yes
GHSA-8wjv-2p76-3863 CVE-2026-102265 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L yes
GHSA-9j54-fg26-wv3r CVE-2026-102266 high CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N yes
GHSA-9v7f-9g4p-ffgj CVE-2026-102267 high CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N yes
GHSA-ffc3-869f-jxw9 CVE-2026-102268 critical CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N yes
GHSA-gvp8-978c-rx2q CVE-2026-103001 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:N no
GHSA-hxm8-2xgr-2p9m CVE-2026-102269 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N yes
GHSA-jwrc-g2q2-pq5p CVE-2026-102270 medium CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:H yes
GHSA-p4g4-x82p-q773 CVE-2026-102271 high CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N yes
GHSA-pxh4-856f-4h89 high CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N yes
GHSA-r6x4-923q-g947 CVE-2026-102272 high CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N yes
GHSA-w2cx-738m-mc7w CVE-2026-102273 high CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N yes
GHSA-w6j9-cwv2-h6wq CVE-2026-102274 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-x33g-cr3x-6449 CVE-2026-102275 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:N yes
PYSEC-2026-4140 CVE-2026-101917 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L yes
PYSEC-2026-4141 CVE-2026-101918 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L yes
PYSEC-2026-4142 CVE-2026-102265 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L yes

Showing 50 of 72 vulnerabilities.

Background: What a vulnerability scan can and cannot prove →

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
revoke_permission ~402

Revoke permissions on a securable from a principal. Executes ``REVOKE <permissions> ON <scope> FROM <principal>``. Blocked by ``FABRIC_MCP_READONLY``. Requires ``FABRIC_MCP_ALLOW_DESTRUCTIVE=1`` because revoke removes an existing permission (destructive operation). Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID. permissions: Comma-separated permission tokens (e.g. ``"SELECT,INSERT"``). principal: Principal name to revoke from (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``. grant_option_only: When ``True``, revokes only the grant option (adds ``GRANT OPTION FOR``), leaving the base permission in place. cascade: When ``True``, cascades the revocation to principals the grantee has granted the permission to (adds ``CASCADE``).

NameTypeReqDescription
cascadeboolean––
columns–––
grant_option_onlyboolean––
itemstringyes–
object_name–––
permissionsstringyes–
principalstringyes–
schema–––
scopestring––
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

roll_snapshot_timestamp ~117

Roll a snapshot's timestamp forward (or reset to current). Args: workspace: Workspace name or GUID. warehouse: Parent warehouse name or GUID (used for the SQL connection). snapshot_name: The snapshot database name to roll. new_dt: Optional ISO-8601 datetime string; defaults to CURRENT_TIMESTAMP. Naive datetimes (no timezone offset) are interpreted as UTC.

NameTypeReqDescription
new_dt–––
snapshot_namestringyes–
warehousestringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

set_audit_action_groups ~177

Replace the audited action groups for a warehouse or SQL analytics endpoint. Only replaces the action groups. Does not toggle the audit enabled or disabled state; if auditing was Disabled before the call it remains Disabled afterwards. CAUTION: Each audit write reads current settings via an eventually-consistent GET that may lag a recent PATCH by several minutes. The retention period read from that GET is round-tripped; if retention was changed within the lag 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. action_groups: List of audit action group names.

NameTypeReqDescription
action_groupsarrayyes–
warehousestringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

set_audit_retention ~170

Update the audit log retention period without changing the audit enabled/disabled state. Audit must already be enabled; if disabled, enable it first with ``enable_audit``. 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. days: Retention period in days (1-3650). The API enforces its own upper bound.

NameTypeReqDescription
daysintegeryes–
warehousestringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

set_cluster_columns ~310

Change (or remove) the data-clustering columns of an existing table. Rebuilds the table via a transactional CTAS-swap: 1. ``CREATE TABLE [schema].[__recluster_<hex>] [WITH (CLUSTER BY (...))] AS SELECT * FROM [schema].[orig]`` 2. ``DROP TABLE [schema].[orig]`` 3. ``EXEC sp_rename`` to restore the original name All three steps run inside ONE transaction. Any failure rolls back automatically — no orphan temp table is left behind. CAUTION: This operation copies the full table (runtime is proportional to table size). Dependent views and stored procedures that reference this table by name are NOT automatically updated by ``sp_rename`` and may need refreshing after the swap. Only supported on Fabric Data Warehouses (not SQL Analytics Endpoints). 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``. cluster_by: New list of column names for the ``CLUSTER BY`` clause (up to 4). Pass ``null`` or an empty list to remove clustering (rebuilds table without ``CLUSTER BY``).

NameTypeReqDescription
cluster_by–––
itemstringyes–
qualified_namestringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

set_column_mask ~508

Apply or replace a dynamic data mask on a column. Executes ``ALTER TABLE ... ALTER COLUMN ... ADD MASKED WITH (FUNCTION = '...')``. ``ADD MASKED`` replaces any existing mask on the column without error. Blocked by ``FABRIC_MCP_READONLY``. Supported mask function types: - ``"default"`` -- full masking; no extra args. - ``"email"`` -- email masking (exposes first char and ``".com"`` suffix); no extra args. - ``"random"`` -- numeric random mask; requires *start* and *end*. - ``"partial"`` -- custom string partial mask; requires *prefix*, *padding*, and *suffix*. 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 to mask. fn_type: Mask function type -- ``"default"``, ``"email"``, ``"random"``, or ``"partial"`` (case-insensitive). start: Lower bound for ``random()`` masking (required when *fn_type* is ``"random"``). Must be <= *end*. end: Upper bound for ``random()`` masking (required when *fn_type* is ``"random"``). prefix: Leading characters to expose for ``partial()`` masking (required when *fn_type* is ``"partial"``). padding: Replacement padding string for ``partial()`` masking (required when *fn_type* is ``"partial"``). Must not contain ``"``, ``)``, ``;``, ``--``, control characters (including U+0085, U+2028, U+2029), and must not exceed 128 characters. suffix: Trailing characters to expose for ``partial()`` masking (required when *fn_type* is ``"partial"``).

NameTypeReqDescription
column_namestringyes–
end–––
fn_typestringyes–
itemstringyes–
padding–––
prefix–––
start–––
suffix–––
table_namestringyes–
table_schemastringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

set_data_lake_log_publishing ~163

Enable or disable Delta Lake log publishing on a warehouse. Executes ``ALTER DATABASE CURRENT SET DATA_LAKE_LOG_PUBLISHING = { AUTO | PAUSED }`` and returns the effective settings read back after the change. Only supported on Fabric Data Warehouses (not SQL Analytics Endpoints). SQL Analytics Endpoints are rejected with a ``ToolError``. Args: workspace: Workspace name or GUID. item: Warehouse name or GUID. SQL Analytics Endpoints are rejected. enabled: ``True`` to enable Delta Lake log publishing (``= AUTO``), ``False`` to disable it (``= PAUSED``).

NameTypeReqDescription
enabledbooleanyes–
itemstringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

set_result_set_caching ~143

Enable or disable result-set caching on a warehouse. Executes ``ALTER DATABASE CURRENT SET RESULT_SET_CACHING { ON | OFF }`` and returns the effective settings read back after the change. Only supported on Fabric Data Warehouses (not SQL Analytics Endpoints). SQL Analytics Endpoints are rejected with a ``ToolError``. Args: workspace: Workspace name or GUID. item: Warehouse name or GUID. SQL Analytics Endpoints are rejected. enabled: ``True`` to enable result-set caching, ``False`` to disable it.

NameTypeReqDescription
enabledbooleanyes–
itemstringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

set_security_policy_state ~136

Enable or disable a row-level security policy. Executes ``ALTER SECURITY POLICY ... WITH (STATE = ON|OFF)``. Not destructive -- enabling or disabling a policy is reversible. Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID. policy_name: Qualified policy name (``"schema.name"`` or ``"name"``). enabled: ``True`` to enable the policy, ``False`` to disable it.

NameTypeReqDescription
enabledbooleanyes–
itemstringyes–
policy_namestringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

set_time_travel_retention ~148

Set the time-travel retention period on a warehouse. Executes ``ALTER DATABASE CURRENT SET TIME_TRAVEL_RETENTION_PERIOD = <n> DAYS`` and returns the effective settings read back after the change. Only supported on Fabric Data Warehouses (not SQL Analytics Endpoints). SQL Analytics Endpoints are rejected with a ``ToolError``. Args: workspace: Workspace name or GUID. item: Warehouse name or GUID. SQL Analytics Endpoints are rejected. days: Retention period in days. Must be in the range 1-120 (inclusive).

NameTypeReqDescription
daysintegeryes–
itemstringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

set_workspace_collation ~174

Set the default Data Warehouse collation for a workspace. Args: workspace: Workspace name or GUID. collation: Collation to apply. 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`` Supplying an unsupported value will cause the Fabric API to return an error. See the Fabric documentation for the full list of supported collations.

NameTypeReqDescription
collationstringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

show_statistics ~144

Show details of a statistic using DBCC SHOW_STATISTICS. Returns the stat header, density vector, and histogram steps. Both Data Warehouses and SQL Analytics Endpoints are supported. Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID. qualified_table: Qualified table name, e.g. ``dbo.sales``. stat_name: The name of the statistic to show. histogram_only: When True, return only the histogram steps.

NameTypeReqDescription
histogram_onlyboolean––
itemstringyes–
qualified_tablestringyes–
stat_namestringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

takeover_warehouse ~29

Take ownership of a Warehouse.

NameTypeReqDescription
warehousestringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

transfer_function ~223

Move a T-SQL user-defined function to another schema via ALTER SCHEMA TRANSFER. Function DDL is supported on both Data Warehouses and SQL Analytics Endpoints -- unlike table transfer, no endpoint guard applies here. CAUTION: ``ALTER SCHEMA ... TRANSFER`` does not rewrite the schema name inside the function's stored definition (``sys.sql_modules.definition``). After a transfer, ``get_function`` may still show the *old* schema name in the ``CREATE ... AS`` header, even though the function now lives in the new schema. This tool does not rewrite the definition text. Args: workspace: Workspace name or GUID. item: Warehouse or SQL Analytics Endpoint name or GUID. qualified_name: Current dot-separated qualified function name, e.g. ``dbo.fn_clean_input``. target_schema: Schema to move the function into, e.g. ``archive``.

NameTypeReqDescription
itemstringyes–
qualified_namestringyes–
target_schemastringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

transfer_procedure ~214

Move a stored procedure to another schema via ``ALTER SCHEMA ... TRANSFER OBJECT::...``. Stored procedures are supported on both Fabric Data Warehouses and SQL Analytics Endpoints; unlike ``transfer_table``, no endpoint guard is applied here. CAUTION: ``ALTER SCHEMA ... TRANSFER`` moves the procedure but does NOT rewrite the schema name inside its stored definition. After a transfer, ``get_procedure`` may still show the OLD schema name in the ``CREATE ... AS`` header even though the procedure now lives in the new schema. Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID. qualified_name: Current dot-separated qualified procedure name, e.g. ``dbo.usp_load``. target_schema: Schema to move the procedure into, e.g. ``archive``.

NameTypeReqDescription
itemstringyes–
qualified_namestringyes–
target_schemastringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

transfer_table ~217

Move a SQL table to another schema via ``ALTER SCHEMA ... TRANSFER OBJECT::...``. Data-Warehouse-only: transferring a table between schemas via T-SQL is not supported on the Fabric SQL Analytics Endpoint and can break the OneLake sync, so SQL Analytics Endpoints are rejected with a ``ToolError``. CAUTION: Permissions granted directly on the table are dropped by the engine when the schema changes. Dependent views and stored procedures that reference the table by its old schema-qualified name are NOT automatically updated and may need refreshing after the transfer. Args: workspace: Workspace name or GUID. item: Warehouse name or GUID. SQL Analytics Endpoints are rejected. qualified_name: Current dot-separated qualified table name, e.g. ``dbo.sales``. target_schema: Schema to move the table into, e.g. ``archive``.

NameTypeReqDescription
itemstringyes–
qualified_namestringyes–
target_schemastringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

transfer_view ~259

Move a SQL view to another schema via ``ALTER SCHEMA ... TRANSFER OBJECT::...``. Works on both Data Warehouses and SQL Analytics Endpoints — no DW-only guard is applied. CAUTION: ``ALTER SCHEMA ... TRANSFER`` moves the view but does **not** rewrite the schema name inside the view's stored definition (``sys.sql_modules.definition``, ``OBJECT_DEFINITION()``). After a transfer, the returned (and any subsequent ``get_view``) ``definition`` may still show the *old* schema name in the ``CREATE ... AS`` header, even though the view now lives in the new schema. This tool does not rewrite the definition text — doing so would require parsing and regenerating SQL, which this project deliberately avoids. Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID. qualified_name: Current dot-separated qualified view name, e.g. ``dbo.vw_sales``. target_schema: Schema to move the view into, e.g. ``archive``.

NameTypeReqDescription
itemstringyes–
qualified_namestringyes–
target_schemastringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

update_function ~208

Redefine a T-SQL user-defined function via CREATE OR ALTER FUNCTION. Note: ALTER FUNCTION cannot change the function kind (e.g. scalar to inline TVF). The body must be compatible with the original function's kind. 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. 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 new 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.

update_procedure ~149

Redefine a stored procedure via CREATE OR ALTER 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 new procedure body (the AS … section).

NameTypeReqDescription
bodystringyes–
itemstringyes–
qualified_namestringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

update_restore_point ~120

Rename and/or update the description of a restore point. At least one of *name* or *description* must be provided. Args: workspace: Workspace name or GUID. warehouse: Warehouse name or GUID. restore_point_id: The restore point ID string. name: New display name (max 128 chars). description: New description (max 512 chars).

NameTypeReqDescription
description–––
name–––
restore_point_idstringyes–
warehousestringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

update_sql_pool ~188

Update an existing SQL pool. Only the parameters you supply are changed. Args: workspace: Workspace name or GUID. name: Name of the pool to update. max_percent: New max resource percentage (1-100), or omit to keep current. is_default: Set or clear the default flag, or omit to keep current. optimize_for_reads: Enable/disable read optimisation, or omit to keep current. classifier_type: New classifier type, or omit to keep current. classifier_values: New classifier value list, or omit to keep current. Requires workspace admin role. This tool targets a **beta / preview** API.

NameTypeReqDescription
classifier_type–––
classifier_values–––
is_default–––
max_percent–––
namestringyes–
optimize_for_reads–––
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

update_statistics ~178

Update an existing statistic via UPDATE STATISTICS. 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 update. 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
fullscanboolean––
itemstringyes–
qualified_tablestringyes–
sample_percent–––
stat_namestringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

update_view ~261

Redefine a SQL view via CREATE OR ALTER 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 new 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.

Install

How do I install the fabric-dw MCP server?

fabric-dw runs locally as a container image, launched with docker run --rm -i -e FABRIC_AUTH -e FABRIC_MCP_READONLY -e FABRIC_MCP_ALLOW_DESTRUCTIVE -e FABRIC_MCP_WORKSPACES -e FABRIC_MCP_ALLOW_REMOTE -e FABRIC_LOG_LEVEL 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 -e FABRIC_AUTH -e FABRIC_MCP_READONLY -e FABRIC_MCP_ALLOW_DESTRUCTIVE -e FABRIC_MCP_WORKSPACES -e FABRIC_MCP_ALLOW_REMOTE -e FABRIC_LOG_LEVEL ghcr.io/sdebruyn/fabric-dw:2026.9.0

This image reads FABRIC_AUTH, FABRIC_MCP_READONLY, FABRIC_MCP_ALLOW_DESTRUCTIVE, FABRIC_MCP_WORKSPACES, FABRIC_MCP_ALLOW_REMOTE and FABRIC_LOG_LEVEL. Set them in your client's env block for this server; docker run -e passes each one through to the container.

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 60 out of 100 on VerifyMCP. The SBOM its publisher attached lists packages with 72 known advisories as of 5 November 2026. We do not grade that SBOM, as nothing verifies it. Its build provenance is signed and verified. 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 5 November 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.