Skip to main content
Glama
sdebruyn

fabric-dw-mcp-cli

by sdebruyn

create_empty_table

Create an empty table in a Microsoft Fabric Data Warehouse from column definitions and optional clustering. This DDL-only operation builds CREATE TABLE without reading or inserting data.

Instructions

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemYes
columnsYes
workspaceYes
cluster_byNo
qualified_nameYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden, and it does so well: it states this is a pure DDL operation, that no data is read or inserted, and that server-side file access is unreliable in MCP deployments. It also discloses the cluster_by constraint. It falls short of a 5 only because it doesn't mention common behavioral edge cases such as behavior when the table already exists or required permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with a one-sentence summary, then provides a compact DDL template, relevant limitations, platform support, and an Arg list. Every sentence adds useful information: the server-side access note explains why inference is excluded, and the constraint about cluster_by prevents misuse. There is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's five parameters, no annotations, and an output schema, the description covers the essential behavior, parameter semantics, constraints, supported platforms, and alternatives. An agent has enough context to decide whether to invoke it, construct valid arguments, and know what to expect. The output schema relieves the description of needing to explain return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Even though the schema has 0% description coverage, the description fully documents all five parameters, including workspace/item as name or GUID, qualified_name as a dot-separated table name with an example, columns as dicts with name, sql_type, and nullable defaulting to true, and cluster_by as optional with a max of 4 and a validity constraint. This goes well beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Create an empty table from an explicit column spec (DDL only, no data).' It clearly separates this tool from general table creation by emphasizing that it builds a CREATE TABLE statement and reads or inserts no data. It also differentiates from CSV/Parquet-inference workflows by explicitly disclaiming them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-not guidance: CSV/Parquet inference is not available here, and users are directed to the fabric-dw tables create --from-parquet/--from-csv CLI commands instead. It also states the platform constraint: 'Only supported on Fabric Data Warehouses (not SQL Analytics Endpoints).' This provides clear usage boundaries and a named alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sdebruyn/fabric-dw-mcp-cli'

If you have feedback or need assistance with the MCP directory API, please join our Discord server