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 (23 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 55 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 4 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
get_table_columns ~94

Return column metadata for a SQL table via ``sys.columns``. 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``.

NameTypeReqDescription
itemstringyes–
qualified_namestringyes–
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

get_table_health_metrics ~175

Return health metrics for a table via ``sp_get_table_health_metrics``. Only supported on SQL Analytics Endpoints (not Data Warehouses). The proc surfaces Delta/Parquet layout issues such as small files, fragmentation, excessive deletes/updates, and delayed checkpoints. The stored procedure is Generally Available (announced at Build 2026) but its output column schema is not yet documented by Microsoft. Columns and rows are passed through verbatim. Args: workspace: Workspace name or GUID. item: SQL Analytics Endpoint name or GUID. Data Warehouses are rejected with a ``ToolError``. 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.

get_view ~81

Fetch the full definition of a view (schema.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.

get_view_columns ~96

Return column metadata for a SQL view via ``sys.columns``. 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``.

NameTypeReqDescription
itemstringyes–
qualified_namestringyes–
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

get_warehouse ~34

Return details for a single warehouse (name or GUID).

NameTypeReqDescription
warehousestringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

get_warehouse_settings ~113

Return the current server-side database settings for a warehouse. Reads ``result_set_caching``, ``time_travel_retention_days``, ``time_travel_retention_cutoff_date``, and ``data_lake_log_publishing`` from ``sys.databases``. Both Data Warehouses and SQL Analytics Endpoints are supported. Args: workspace: Workspace name or GUID. item: Warehouse or SQL Analytics Endpoint name or GUID.

NameTypeReqDescription
itemstringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

get_workspace ~26

Return details for a single workspace (name or GUID).

NameTypeReqDescription
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

grant_permission ~346

Grant permissions on a securable to a principal. Executes ``GRANT <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,INSERT"``). principal: Grantee principal name (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"``). with_grant_option: When ``True``, allows the grantee to grant the permission to others (adds ``WITH GRANT OPTION``). 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––
with_grant_optionboolean––
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

import_table_from_url ~903

Load data into an existing Data Warehouse table via ``COPY INTO`` from a remote URL. The target table **must already exist** and have a compatible schema. For auto-create with schema inference from local files, use the CLI ``tables load --file --create`` command instead. ``if_exists`` controls behaviour when the table already exists: - ``"fail"`` (default): raise an error if the table already exists, or if it does not exist (the table must be created first with create_empty_table or create_table). - ``"append"``: load rows into the existing table without modification. Raises an error if the table does not exist. - ``"truncate"``: TRUNCATE the existing table, then load, both inside a single transaction so a failed load leaves the existing rows intact (atomic replace). Requires ``FABRIC_MCP_ALLOW_DESTRUCTIVE=1``. Raises an error if the table does **not** exist. - ``"replace"``: not supported for remote URLs (schema inference requires downloading the file). Use ``"truncate"`` to keep the current schema, or download locally and use the CLI with ``--create --if-exists replace``. Supported file types: ``CSV``, ``PARQUET``. JSON remote URLs require downloading and converting locally first; use the CLI ``tables load`` command for local files (including JSON). For OneLake or same-tenant URLs, no credential is needed. For secured external URLs supply ``credential_type`` and the appropriate ``secret``/``identity`` values. CAUTION: ``truncate`` is permanently destructive. Confirm the source URL and target table before calling. Note: ``secret`` / ``identity`` values are accepted but are NEVER logged or included in any debug output. 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``. url: Source URL (OneLake DFS URL or external Azure Blob URL). file_type: ``CSV`` or ``PARQUET``. if_exists: Policy wh…

NameTypeReqDescription
credential_typestring–Credential type for secured external URLs. Use 'none' for OneLake or public URLs.
delimiter––CSV column delimiter (e.g. ',', '\t').
encoding––CSV file encoding (e.g. 'UTF8', 'UTF8BOM').
field_quote––CSV field-quote character.
file_typestringyesFile type. JSON is not supported for remote URLs; download and convert locally first.
has_headerboolean–When True, the first CSV row is a header and is skipped.
identity––Identity value for managed-identity or service-principal credential types.
if_existsstring–What to do when the target table exists or is absent. 'fail': error if the table already exists, or if it does not exist (default). 'append': load into the existing table; error if the table is absen…
itemstringyes–
max_errors––Maximum number of errors before aborting.
qualified_namestringyes–
rejected_row_location––URL to write rejected rows to.
row_terminator––CSV row terminator (e.g. '\n', '\r\n').
secret––Credential secret (SAS token, client secret, or account key). NEVER log or echo this value.
urlstringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

kill_session ~78

Terminate a session on a warehouse by session_id. Args: workspace: Workspace name or GUID. item: Warehouse or SQL Analytics Endpoint name or GUID. session_id: Session ID to terminate (must be a positive integer).

NameTypeReqDescription
itemstringyes–
session_idintegeryes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

list_capabilities ~84

List all available MCP tools grouped by domain. Call this tool first to discover what dedicated tools are available before falling back to ``execute_sql``. Dedicated tools return typed, structured results and avoid SQL dialect pitfalls. Returns: A dict mapping domain name to a sorted list of tool names in that domain. The dict itself is sorted by domain key.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

list_capacities ~44

List all Fabric capacities the caller has access to. Requires the ``Capacity.Read.All`` permission. Returns a 403 ToolError when the caller lacks that permission.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultarrayyes–

No examples provided.

list_connections ~57

Return all active SQL connections on a warehouse or SQL Analytics Endpoint. Args: workspace: Workspace name or GUID. item: Warehouse or SQL Analytics Endpoint name or GUID.

NameTypeReqDescription
itemstringyes–
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

list_database_principals ~100

List database principals from sys.database_principals. Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID. principal_type: Filter by type -- ``"user"`` for users, ``"role"`` for database roles, ``"all"`` or omit for no filter.

NameTypeReqDescription
itemstringyes–
principal_type–––
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

list_frequent_queries ~125

Return frequently-run queries from queryinsights.frequently_run_queries. Args: workspace: Workspace name or GUID. item: Warehouse or SQL Analytics Endpoint name or GUID. limit: Maximum rows to return (1-10000, default 100). since: Optional ISO-8601 lower bound on last_run_start_time. until: Optional ISO-8601 upper bound on last_run_start_time.

NameTypeReqDescription
itemstringyes–
limitinteger––
since–––
until–––
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

list_functions ~175

List T-SQL user-defined functions on a warehouse or SQL Analytics Endpoint. Scalar UDFs (FN) and inline TVFs (IF) are preview features on Fabric DW as of mid-2026. 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. schema: When provided, only functions in this schema are returned. kind: Filter by function kind — ``"scalar"`` (FN only), ``"inline-tvf"`` (IF only), or ``"all"`` (FN + IF + TF, the default).

NameTypeReqDescription
itemstringyes–
kindstring––
schema–––
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

list_item_permissions ~113

Return principals with access to a Warehouse or SQL Analytics Endpoint item. Uses the Fabric admin API. Accepts both Data Warehouses and SQL Analytics Endpoints -- the item kind is resolved automatically from its GUID. Requires Fabric Administrator role (admin API). See https://learn.microsoft.com/en-us/fabric/admin/microsoft-fabric-admin for details. Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID.

NameTypeReqDescription
itemstringyes–
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

list_locks ~174

Return active lock rows from sys.dm_tran_locks joined with sys.dm_exec_requests. Args: workspace: Workspace name or GUID. item: Warehouse or SQL Analytics Endpoint name or GUID. limit: Maximum rows to return (1-10000, default 100). waiting_only: When True, restrict to locks with request_status WAIT or CONVERT. blocked_only: When True, show only blocked sessions (victims). The blocker's session_id appears in blocking_session_id. include_database: When True, include DATABASE-scoped lock rows (excluded by default).

NameTypeReqDescription
blocked_onlyboolean––
include_databaseboolean––
itemstringyes–
limitinteger––
waiting_onlyboolean––
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

list_long_running_queries ~124

Return long-running queries from queryinsights.long_running_queries. Args: workspace: Workspace name or GUID. item: Warehouse or SQL Analytics Endpoint name or GUID. limit: Maximum rows to return (1-10000, default 100). since: Optional ISO-8601 lower bound on last_run_start_time. until: Optional ISO-8601 upper bound on last_run_start_time.

NameTypeReqDescription
itemstringyes–
limitinteger––
since–––
until–––
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

list_masked_columns ~148

List columns with dynamic data masking from sys.masked_columns. Returns all masked columns on the target Data Warehouse or SQL Analytics Endpoint. Filter by *table_schema* and/or *table_name* to narrow results. Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID. table_schema: Optional schema filter (case-insensitive). Pass ``None`` to include all schemas. table_name: Optional table name filter (case-insensitive). Pass ``None`` to include all tables.

NameTypeReqDescription
itemstringyes–
table_name–––
table_schema–––
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

list_procedures ~92

List stored procedures on a warehouse or SQL Analytics Endpoint. 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. schema: When provided, only procedures in this schema are returned.

NameTypeReqDescription
itemstringyes–
schema–––
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

list_request_history ~119

Return completed SQL requests from queryinsights.exec_requests_history. Args: workspace: Workspace name or GUID. item: Warehouse or SQL Analytics Endpoint name or GUID. limit: Maximum rows to return (1-10000, default 100). since: Optional ISO-8601 lower bound on submit_time. until: Optional ISO-8601 upper bound on submit_time.

NameTypeReqDescription
itemstringyes–
limitinteger––
since–––
until–––
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

list_restore_points ~31

Return all restore points for a warehouse.

NameTypeReqDescription
warehousestringyes–
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

list_running_queries ~60

Return all currently-executing queries on a warehouse or SQL Analytics Endpoint. Args: workspace: Workspace name or GUID. item: Warehouse or SQL Analytics Endpoint name or GUID.

NameTypeReqDescription
itemstringyes–
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

list_schemas ~123

List user-defined SQL schemas on a warehouse or SQL Analytics Endpoint. System schemas (``sys``, ``INFORMATION_SCHEMA``, ``db_*`` fixed-role schemas, ``guest``) are excluded. ``dbo`` is included as it is user-writable. Listing schemas is a read-only operation and works on both Fabric Data Warehouses and SQL Analytics Endpoints. Args: workspace: Workspace name or GUID. item: Warehouse or SQL Analytics Endpoint name or GUID.

NameTypeReqDescription
itemstringyes–
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

list_security_policies ~74

List row-level security policies from sys.security_policies. Returns all security policies and their predicates for the target Data Warehouse or SQL Analytics Endpoint. Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID.

NameTypeReqDescription
itemstringyes–
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

list_session_history ~120

Return completed sessions from queryinsights.exec_sessions_history. Args: workspace: Workspace name or GUID. item: Warehouse or SQL Analytics Endpoint name or GUID. limit: Maximum rows to return (1-10000, default 100). since: Optional ISO-8601 lower bound on session_start_time. until: Optional ISO-8601 upper bound on session_start_time.

NameTypeReqDescription
itemstringyes–
limitinteger––
since–––
until–––
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

list_snapshots ~31

Return all snapshots belonging to a warehouse.

NameTypeReqDescription
warehousestringyes–
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

list_sql_endpoints ~87

List all SQL analytics endpoints in a workspace. Args: workspace: Workspace name or GUID. Optional when *all_workspaces* is ``True``; required otherwise. all_workspaces: When ``True``, ignore *workspace* and aggregate results across every workspace the caller can see.

NameTypeReqDescription
all_workspacesboolean––
workspace–––
NameTypeReqDescription
resultarrayyes–

No examples provided.

list_sql_permissions ~159

List T-SQL database permissions from sys.database_permissions. Reads from sys.database_permissions joined to sys.database_principals. Returns DATABASE, SCHEMA, and OBJECT class securables with readable names. Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID. principal: Filter by principal name (optional). schema: Filter by schema name -- returns SCHEMA class rows for this schema (optional). object_name: Filter by qualified object name ``<schema>.<object>`` -- returns OBJECT class rows for this object (optional).

NameTypeReqDescription
itemstringyes–
object_name–––
principal–––
schema–––
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

list_sql_pool_insights ~121

Return SQL pool insight events from queryinsights.sql_pool_insights. Args: workspace: Workspace name or GUID. warehouse: Warehouse or SQL Analytics Endpoint name or GUID. limit: Maximum rows to return (1-10000, default 100). since: Optional ISO-8601 lower bound on timestamp. until: Optional ISO-8601 upper bound on timestamp.

NameTypeReqDescription
limitinteger––
since–––
until–––
warehousestringyes–
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

list_sql_pools ~45

Return the list of custom SQL pools for a workspace. Requires workspace admin role. This tool targets a **beta / preview** API.

NameTypeReqDescription
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

list_statistics ~154

List statistics on a warehouse or SQL Analytics Endpoint. Both Data Warehouses and SQL Analytics Endpoints are supported. Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID. schema: When provided, only statistics on tables in this schema are returned. table: When provided, only statistics on this table (unqualified name) are returned. user_only: When True, only user-created statistics are returned. auto_only: When True, only auto-created statistics are returned.

NameTypeReqDescription
auto_onlyboolean––
itemstringyes–
schema–––
table–––
user_onlyboolean––
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

list_table_sync_status ~738

Show per-table metadata sync freshness via ``sys.dm_db_external_tables_log_status``. Only supported on SQL Analytics Endpoints (not Data Warehouses), and only on endpoints created after the workspace's 'New metadata sync' (preview) setting was enabled. A table with no matching DMV row still appears, with its sync fields ``null`` instead of the row being dropped -- this means no sync information is available for that table, NOT that it has never synced; do not treat a ``null`` row as proof the table has never synced. IMPORTANT for agents: by default this listing only includes tables already present in the endpoint's catalog (``sys.tables``), which is itself maintained by the metadata sync. A Lakehouse table whose discovery has not completed, or has failed, has no catalog row and so is **absent from this result entirely** -- it will not appear as a row with empty fields, it simply will not be there. Do not conclude a table does not exist, or was deleted, just because it is missing from this list. Pass ``check_lakehouse=True`` to close part of that gap: it cross-references the backing Lakehouse's own table inventory (one or more extra REST calls -- avoid setting this on every call of a tool an agent may invoke repeatedly) and adds a row with ``in_endpoint_catalog=false`` and all sync fields ``null`` for every table it finds there but not in the catalog, comparing names exactly (case-sensitively, matching Fabric's default collation). A Lakehouse table that differs from a catalog table only by case gets ``case_mismatched_catalog_name`` set to that catalog name instead of being reported as a flat miss. This works for both classic and schema-enabled Lakehouse-backed endpoints (the schema-enabled path uses a preview OneLake table API). If the endpoint's backing item cannot be resolved to a Lakehouse at all (a mirrored database, or similar), ``check_lakehouse=True`` raises a ``ToolError`` explaining why, rather than silently returning the unchanged catalog-only result:…

NameTypeReqDescription
check_lakehouseboolean––
itemstringyes–
schema–––
table–––
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

list_tables ~73

List SQL tables on a warehouse or SQL Analytics Endpoint. Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID. schema: When provided, only tables in this schema are returned.

NameTypeReqDescription
itemstringyes–
schema–––
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

list_views ~73

List SQL views on a warehouse or SQL Analytics Endpoint. Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID. schema: When provided, only views in this schema are returned.

NameTypeReqDescription
itemstringyes–
schema–––
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

list_warehouses ~89

List all warehouses and SQL analytics endpoints in a workspace. Args: workspace: Workspace name or GUID. Optional when *all_workspaces* is ``True``; required otherwise. all_workspaces: When ``True``, ignore *workspace* and aggregate results across every workspace the caller can see.

NameTypeReqDescription
all_workspacesboolean––
workspace–––
NameTypeReqDescription
resultarrayyes–

No examples provided.

list_workspaces ~77

List all Fabric workspaces the caller has access to. When a workspace allowlist is configured (via ``FABRIC_MCP_WORKSPACES`` env var or ``[mcp] workspace_allowlist`` in ``config.toml``) only the workspaces that match the allowlist (by name or GUID) are returned.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultarrayyes–

No examples provided.

load_table_from_url ~579

Load data into a Data Warehouse table via ``COPY INTO`` from a remote URL. Supported file types: ``CSV``, ``PARQUET``. JSON remote URLs require downloading and converting locally first; use the CLI ``tables load`` command for local files (including JSON). For OneLake or same-tenant URLs, no credential is needed. For secured external URLs (Azure Blob Storage SAS, etc.), supply ``credential_type`` and the appropriate ``secret``/``identity`` values. CAUTION: This operation loads data into the target table. Confirm the source URL and target table before calling. Note: ``secret`` / ``identity`` values are accepted but are NEVER logged or included in any debug output. 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``. url: Source URL (OneLake DFS URL or external Azure Blob URL). file_type: ``CSV`` or ``PARQUET``. credential_type: Credential type for the source URL. secret: Credential secret (not logged). identity: Identity for managed-identity or service-principal. delimiter: CSV column delimiter. has_header: Whether the CSV file has a header row. encoding: CSV file encoding. field_quote: CSV field-quote character. row_terminator: CSV row terminator. max_errors: Maximum errors before aborting. rejected_row_location: URL for rejected-row output.

NameTypeReqDescription
credential_typestring–Credential type for secured external URLs. Use 'none' for OneLake or public URLs.
delimiter––CSV column delimiter (e.g. ',', '\t').
encoding––CSV file encoding (e.g. 'UTF8', 'UTF8BOM').
field_quote––CSV field-quote character.
file_typestringyesFile type to load. JSON is not supported for remote URLs; download and convert locally first.
has_headerboolean–When True, the first CSV row is a header and is skipped.
identity––Identity value for managed-identity or service-principal credential types.
itemstringyes–
max_errors––Maximum number of errors before aborting.
qualified_namestringyes–
rejected_row_location––URL to write rejected rows to.
row_terminator––CSV row terminator (e.g. '\n', '\r\n').
secret––Credential secret (SAS token, client secret, or account key). NEVER log or echo this value.
urlstringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

my_permissions ~94

Return permissions for the current connection via sys.fn_my_permissions. Args: workspace: Workspace name or GUID. item: Warehouse or SQL endpoint name or GUID. scope: Scope string -- ``"database"`` (default), ``"schema:<name>"``, or ``"object:<schema>.<object>"``.

NameTypeReqDescription
itemstringyes–
scope–––
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

read_table ~170

Return up to *count* rows from a table as JSON-serialisable columns + rows. 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``. count: Maximum number of rows to return (1-10000, default 10). as_of: Optional ISO-8601 UTC timestamp for a point-in-time (time-travel) read. When supplied the query uses ``OPTION (FOR TIMESTAMP AS OF ...)``. Omit to read the latest data.

NameTypeReqDescription
as_of–––
countinteger––
itemstringyes–
qualified_namestringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

read_view ~172

Return up to *count* rows from a view as JSON-serialisable columns + rows. 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``. count: Maximum number of rows to return (1-10000, default 10). as_of: Optional ISO-8601 UTC timestamp for a point-in-time (time-travel) read. When supplied the query uses ``OPTION (FOR TIMESTAMP AS OF ...)``. Omit to read the latest data.

NameTypeReqDescription
as_of–––
countinteger––
itemstringyes–
qualified_namestringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

refresh_sql_endpoint_metadata ~207

Refresh metadata for a SQL analytics endpoint (sync from the underlying Lakehouse). This is a long-running operation (LRO) that is polled to completion. Returns a list of per-table sync results. Use this tool for SCHEMA changes (tables added or dropped). For cheap, per-table DATA-only staleness on a table you already know exists, use ``refresh_table_metadata`` instead -- it does not pick up schema changes. Args: workspace: Workspace name or GUID. endpoint: SQL analytics endpoint name or GUID. recreate_tables: When ``True``, drop and recreate all tables during the refresh. Use to resolve inconsistencies or force a clean rebuild. **Destructive** — use with caution. Requires ``FABRIC_MCP_ALLOW_DESTRUCTIVE=1`` when enabled.

NameTypeReqDescription
endpointstringyes–
recreate_tablesboolean––
workspacestringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

refresh_table_metadata ~390

Refresh one table's metadata via ``sys.sp_dw_refresh_ext_table``. This is the cheap, per-table refresh for DATA-only staleness: it re-reads the table's underlying Delta log without a full item-level sync. Use ``refresh_sql_endpoint_metadata`` instead when the SCHEMA changed (tables added or dropped) -- this tool does not pick up schema changes. Only supported on SQL Analytics Endpoints (not Data Warehouses), and only on endpoints created after the workspace's 'New metadata sync' (preview) setting was enabled. Mutating (respects ``FABRIC_MCP_READONLY``) but NOT destructive -- it never drops or recreates anything, so it does not require the ``FABRIC_MCP_ALLOW_DESTRUCTIVE`` opt-in. ``qualified_name`` must already exist in the endpoint's catalog -- the procedure does not create it, and raises a ``ToolError`` naming the table instead. That same error also fires when the table exists but you lack permission to it, since the driver does not distinguish the two -- ``refresh_sql_endpoint_metadata`` only helps the missing case, not a permissions one. The procedure may also decline a table by type, for reasons Microsoft does not document, raised as a ``ToolError`` in the same family as the legacy-sync one above; that failure also points at ``refresh_sql_endpoint_metadata`` (or ``fdw sql-endpoints refresh``) as the working alternative. Args: workspace: Workspace name or GUID. item: SQL Analytics Endpoint name or GUID. Data Warehouses are rejected with a ``ToolError``. 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.

remove_audit_group ~176

Remove a single audit action group without overwriting the others. Idempotent -- if the group is not 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.

rename_snapshot ~40

Rename a warehouse snapshot.

NameTypeReqDescription
description–––
new_namestringyes–
snapshotstringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

rename_table ~207

Rename a SQL table via ``sp_rename`` (Data-Warehouse-only). Renames the table in-place within the same schema using T-SQL ``EXEC sp_rename``. Both the current qualified name and the new bare name are passed as bound parameters — no SQL injection is possible. ``sp_rename`` cannot move a table to a different schema, so *new_name* must be an unqualified (bare) name without a dot. 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``. new_name: New table name (unqualified, e.g. ``sales_v2``). Must not contain a dot.

NameTypeReqDescription
itemstringyes–
new_namestringyes–
qualified_namestringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

rename_view ~149

Rename a SQL view via sp_rename. Works on both Data Warehouses and SQL Analytics Endpoints. The new name must be a bare (unqualified) identifier — ``sp_rename`` cannot move a view across schemas. 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``. new_name: New bare view name (no schema prefix), e.g. ``vw_revenue``.

NameTypeReqDescription
itemstringyes–
new_namestringyes–
qualified_namestringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

rename_warehouse ~46

Rename a Warehouse (and optionally update its description).

NameTypeReqDescription
description–––
new_namestringyes–
warehousestringyes–
workspacestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

restore_warehouse_in_place ~106

Restore a warehouse in-place to a restore point. WARNING: This is a destructive, long-running operation. The warehouse will be unavailable for approximately 10 minutes while the restore completes. Args: workspace: Workspace name or GUID. warehouse: Warehouse name or GUID. restore_point_id: The restore point ID string to restore to.

NameTypeReqDescription
restore_point_idstringyes–
warehousestringyes–
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 4 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 4 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.