Skip to main content
Glama

Create or update a Fabric IQ ontology from the plan (dry run by default)

create_ontology
DestructiveIdempotent

Creates a Fabric IQ ontology (preview) item from the plan, or updates the item of that name in place. Requires workspace, source and name; the delegated permission Item.ReadWrite.All, Contributor on the workspace and a Fabric capacity. Returns JSON with the definition parts and the REST call; with dry_run=false also the result, or kind consent when the permission is missing. Changes Fabric only with dry_run=false: an update replaces the item's definition, so entity types not in the plan leave it; no item is deleted. Errors: {error, kind, hint}.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "workspace": "<workspace>",
      "source": "<source>",
      "name": "<name>"
    },
    "name": "create_ontology"
  }
}

Input Schema

NameRequiredDescriptionDefault
keysNoPrimary keys replacing the inferred ones. Default: inferred. Example: {"order_items": ["order_id", "line_no"]}.
nameYesDisplay name of the ontology item; an existing item with this name is updated in place. Example: "shop_ontology".
schemaNoSchema in the source. Default "dbo".dbo
sourceYesLakehouse, warehouse or SQL database, name or id.
tablesNoExact table names to include. Default all.
dry_runNotrue (default) returns what would be created and the REST calls, changing nothing; false creates or updates.
confirmedNoRelationships the user confirmed, added to the plan. Default none. Example: [{"source": "orders", "source_cols": ["ship_to_id"], "target": "addresses", "target_cols": ["address_id"]}].
workspaceYesFabric workspace, name or id.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "result": {
      -      "title": "Result",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "result"
      -  ],
      -  "title": "create_ontologyOutput",
      -  "type": "object"
      -}New value: +null
  2. Changed8 schema fields changed
    • addedInput schema / properties / confirmed / description
      Added value: +"Relationships the user confirmed, added to the plan. Default none. Example: [{\"source\": \"orders\", \"source_cols\": [\"ship_to_id\"], \"target\": \"addresses\", \"target_cols\": [\"address_id\"]}]."
    • addedInput schema / properties / dry_run / description
      Added value: +"true (default) returns what would be created and the REST calls, changing nothing; false creates or updates."
    • addedInput schema / properties / keys / description
      Added value: +"Primary keys replacing the inferred ones. Default: inferred. Example: {\"order_items\": [\"order_id\", \"line_no\"]}."
    • addedInput schema / properties / name / description
      Added value: +"Display name of the ontology item; an existing item with this name is updated in place. Example: \"shop_ontology\"."
    • addedInput schema / properties / schema / description
      Added value: +"Schema in the source. Default \"dbo\"."
    • addedInput schema / properties / source / description
      Added value: +"Lakehouse, warehouse or SQL database, name or id."
    • addedInput schema / properties / tables / description
      Added value: +"Exact table names to include. Default all."
    • addedInput schema / properties / workspace / description
      Added value: +"Fabric workspace, name or id."
  3. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Well beyond the annotations: it names the exact delegated permission and workspace role needed, describes the return payload (definition parts and REST call, result only when dry_run=false, consent kind when permission is missing), and states the destruction model precisely — an update replaces the definition so entity types absent from the plan are removed, while no item is ever deleted. The error shape {error, kind, hint} is also disclosed.

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

Conciseness4/5

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

Front-loaded with the action and its create-or-update duality, then prerequisites, then return values, then the mutation caveat and error shape. Dense but every clause carries information; the nested clause about consent kind is slightly compressed at the cost of readability.

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?

For a mutating, permission-gated, open-world tool with no output schema, the description covers prerequisites, return shape, dry-run behavior, replacement semantics, and error format. Nothing an agent needs in order to call it safely appears to be missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning by tying workspace/source/name to the permission prerequisites and spelling out that dry_run=false is what actually mutates Fabric and that name drives update-in-place. It does not elaborate on keys, confirmed, tables or schema, but those already carry examples in the schema.

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

Purpose4/5

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

States a specific verb and resource plus the dual mode: 'Creates a Fabric IQ ontology (preview) item from the plan, or updates the item of that name in place.' The create-or-update-by-name semantics are unambiguous. It doesn't explicitly distinguish itself from the sibling ontology_draft, which is the most likely confusion point.

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

Usage Guidelines4/5

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

Gives clear operating context: requires workspace, source and name, plus Item.ReadWrite.All, Contributor, and a Fabric capacity, and that dry_run defaults to true so nothing changes unless explicitly requested. What is missing is an explicit routing statement to the sibling preview tool (ontology_draft) or upstream plan tools as the prerequisite step; 'from the plan' implies it but never names it.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.