Skip to main content
Glama

mcp-fabric-api

MCP (Model Context Protocol) server for the Microsoft Fabric REST APIs. Built for data engineers and data analysts who want to use AI assistants beyond Copilot — such as Claude, Claude Code, or any MCP-compatible client — to build and manage their Fabric components. Covers workspaces, lakehouses, warehouses, notebooks, pipelines, semantic models, reports, dataflows, eventhouses, eventstreams, reflexes, GraphQL APIs, SQL endpoints, variable libraries, git integration, deployment pipelines, mirrored databases, KQL databases, ML models, ML experiments, copy jobs, external data shares, and environments (Spark compute + libraries, with notebook attach/detach).

Safe by default: This server blocks all destructive operations (create, update, delete) until you explicitly configure the WRITABLE_WORKSPACES environment variable. Read operations always work. Set WRITABLE_WORKSPACES="*" to allow writes to all workspaces, or use patterns to limit access. See Workspace Safety Guard for details.

Prerequisites

  • Node.js 18+

  • Access to a Microsoft Fabric workspace

  • One of:

    • Azure CLI (az login) — easiest on Windows

    • Azure app registration with device code flow enabled — best for Mac / Claude Desktop

    • Service principal credentials — best for headless / automated scenarios

Related MCP server: Fabric-Analytics-MCP

Quick Start

Windows (Azure CLI):

az login
npx @einlogic/mcp-fabric-api

Mac / Claude Desktop (Device Code):

AUTH_METHOD=device-code AZURE_CLIENT_ID=your-app-id AZURE_TENANT_ID=your-tenant-id npx @einlogic/mcp-fabric-api

On first API call, a sign-in URL and code will appear in the logs. Open the URL in your browser, enter the code, and authenticate.

Setup

Claude Desktop

Add to your Claude Desktop config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Windows (uses Azure CLI credentials):

{
  "mcpServers": {
    "fabric": {
      "command": "npx",
      "args": ["-y", "@einlogic/mcp-fabric-api"]
    }
  }
}

macOS (uses device code flow):

{
  "mcpServers": {
    "fabric": {
      "command": "npx",
      "args": ["-y", "@einlogic/mcp-fabric-api"],
      "env": {
        "AUTH_METHOD": "device-code",
        "AZURE_CLIENT_ID": "your-app-client-id",
        "AZURE_TENANT_ID": "your-tenant-id"
      }
    }
  }
}

When the server starts, check the Claude Desktop logs for a sign-in prompt:

  • macOS: ~/Library/Logs/Claude/mcp-server-fabric.log

  • Windows: %APPDATA%\Claude\logs\mcp-server-fabric.log

The prompt will say: "To sign in, use a web browser to open https://microsoft.com/devicelogin and enter the code XXXXXXX". Complete the sign-in once and the token is cached for the session.

Claude Code CLI

Windows:

claude mcp add fabric -- npx -y @einlogic/mcp-fabric-api

macOS:

claude mcp add fabric -e AUTH_METHOD=device-code -e AZURE_CLIENT_ID=your-app-id -e AZURE_TENANT_ID=your-tenant-id -- npx -y @einlogic/mcp-fabric-api

To verify it was added:

claude mcp list

HTTP Mode (Remote)

For remote deployments, set environment variables:

export TRANSPORT=http
export PORT=3000
export AZURE_CLIENT_ID=your-client-id
export AZURE_CLIENT_SECRET=your-client-secret
export AZURE_TENANT_ID=your-tenant-id
npx @einlogic/mcp-fabric-api

The server exposes:

  • POST /mcp — MCP endpoint (StreamableHTTP)

  • GET /mcp — SSE stream for server notifications

  • DELETE /mcp — Session cleanup

  • GET /.well-known/oauth-protected-resource — OAuth metadata

Authentication Methods

The server supports multiple authentication methods via the AUTH_METHOD environment variable. Choose the method that fits your platform and scenario:

Method

AUTH_METHOD

Required env vars

Best for

Azure CLI (default)

default

None

Windows with az login

Device Code

device-code

AZURE_CLIENT_ID, AZURE_TENANT_ID

Mac / Claude Desktop

Client Secret

client-secret

AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, AZURE_TENANT_ID

Headless / automated

Interactive Browser

interactive-browser

None (optional: AZURE_CLIENT_ID, AZURE_TENANT_ID)

Systems with browser access

Default (Azure CLI): Uses the DefaultAzureCredential chain from the Azure Identity SDK. On a developer machine this picks up credentials from az login. No extra configuration needed. This is the original behavior and works best on Windows where Claude Desktop can access the Azure CLI token cache.

Device Code: On first API call, prints a URL and one-time code to stderr. You open the URL in any browser, enter the code, and sign in with your Azure account. The token is cached in memory for the session. This is the recommended method for Mac users with Claude Desktop, because the Claude Desktop process on macOS cannot access the Azure CLI token cache.

To use device code flow, you need an Azure app registration with "Allow public client flows" enabled:

  1. Go to Azure Portal > App registrations > New registration

  2. Name it (e.g., "Fabric MCP") and register

  3. Under Authentication > Advanced settings, set "Allow public client flows" to Yes

  4. Under API permissions, add https://api.fabric.microsoft.com/Workspace.ReadWrite.All (or the scopes your tools need)

  5. Copy the Application (client) ID and your Directory (tenant) ID

Client Secret: Uses a service principal with client credentials. Requires an Azure app registration with a client secret. Suitable for CI/CD pipelines, automated scripts, or any headless environment where interactive sign-in is not possible.

Interactive Browser: Opens a browser window for OAuth sign-in. Works on systems where the server process can launch a browser. Optional AZURE_CLIENT_ID and AZURE_TENANT_ID can be provided to target a specific app and tenant.

Workspace Safety Guard

Control which workspaces allow write operations (create, update, delete) via the WRITABLE_WORKSPACES environment variable. Only workspaces matching the configured name patterns will permit CUD (Create, Update, Delete) operations. Read operations are never restricted.

Default behavior: When WRITABLE_WORKSPACES is not set or empty, all destructive operations are blocked. You must explicitly configure this variable to enable writes.

WRITABLE_WORKSPACES value

Behavior

Not set / empty

All writes blocked (safe default)

*

All workspaces writable

*-Dev,*-Test,Sandbox*

Only matching workspaces writable

Set comma-separated glob patterns:

WRITABLE_WORKSPACES=*-Dev,*-Test,Sandbox*

Wildcard examples:

  • * matches all workspaces (allow everything)

  • *-Dev matches "Sales-Dev", "Finance-Dev"

  • Sandbox* matches "Sandbox-123", "Sandbox-Mike"

  • Exact-Name matches only "Exact-Name" (case-insensitive)

Guarded tools (131 total) — every tool that creates, updates, or deletes workspace items:

Domain

Guarded tools

Workspace

workspace_update, workspace_delete, workspace_add_role_assignment, workspace_update_role_assignment, workspace_delete_role_assignment

Folder

folder_create, folder_update, folder_move, folder_delete

Tags

item_apply_tags, item_unapply_tags

OneLake Data Access Security

onelake_set_data_access_role, onelake_delete_data_access_role

SQL Database

sql_database_create, sql_database_update, sql_database_delete, sql_database_update_definition, sql_database_start_mirroring, sql_database_stop_mirroring

KQL Queryset

kql_queryset_create, kql_queryset_update, kql_queryset_delete, kql_queryset_update_definition

KQL Dashboard

kql_dashboard_create, kql_dashboard_update, kql_dashboard_delete, kql_dashboard_update_definition

Lakehouse

lakehouse_create, lakehouse_update, lakehouse_delete, lakehouse_load_table, lakehouse_create_shortcut, lakehouse_update_definition, lakehouse_delete_shortcut, lakehouse_create_folder, lakehouse_upload_file, lakehouse_move_file, lakehouse_delete_file

Warehouse

warehouse_create, warehouse_update, warehouse_delete, warehouse_update_definition

Notebook

notebook_create, notebook_update, notebook_delete, notebook_update_definition, notebook_attach_environment, notebook_detach_environment

Pipeline

pipeline_create, pipeline_update, pipeline_delete, pipeline_create_schedule, pipeline_update_schedule, pipeline_delete_schedule, pipeline_update_definition

Semantic Model

semantic_model_create_bim, semantic_model_create_tmdl, semantic_model_update_details, semantic_model_delete, semantic_model_update_bim, semantic_model_update_tmdl, semantic_model_take_over

Report

report_create_definition, report_update, report_delete, report_clone, report_update_definition, report_rebind

Dataflow

dataflow_create, dataflow_update, dataflow_delete

Eventhouse

eventhouse_create, eventhouse_update, eventhouse_delete

Eventstream

eventstream_create, eventstream_update, eventstream_delete, eventstream_update_definition

Reflex

reflex_create, reflex_update, reflex_delete, reflex_update_definition

GraphQL API

graphql_api_create, graphql_api_update, graphql_api_delete

Variable Library

variable_library_create, variable_library_update, variable_library_delete, variable_library_update_definition

Git Integration

git_connect, git_disconnect, git_initialize_connection, git_commit_to_git, git_update_from_git, git_update_credentials

Deployment Pipeline

deployment_pipeline_assign_workspace, deployment_pipeline_unassign_workspace, deployment_pipeline_deploy

Mirrored Database

mirrored_database_create, mirrored_database_update, mirrored_database_delete, mirrored_database_update_definition, mirrored_database_start_mirroring, mirrored_database_stop_mirroring

KQL Database

kql_database_create, kql_database_update, kql_database_delete, kql_database_update_definition

ML Model

ml_model_create, ml_model_update, ml_model_delete

ML Experiment

ml_experiment_create, ml_experiment_update, ml_experiment_delete

Copy Job

copy_job_create, copy_job_update, copy_job_delete, copy_job_update_definition

External Data Share

external_data_share_create, external_data_share_revoke

Environment

environment_create, environment_update, environment_update_definition, environment_delete, environment_publish, environment_cancel_publish, environment_import_staging_external_libraries, environment_upload_staging_custom_library, environment_delete_staging_custom_library, environment_remove_staging_external_library, environment_update_staging_spark_compute

Not guarded: Read operations (list, get, get_definition, get_bim, get_tmdl), query execution (DAX, KQL, SQL, GraphQL), run/refresh/cancel operations, export operations, and deployment pipeline CRUD (tenant-level, not workspace-scoped).

Claude Desktop config with guard (Windows):

{
  "mcpServers": {
    "fabric": {
      "command": "npx",
      "args": ["-y", "@einlogic/mcp-fabric-api"],
      "env": {
        "WRITABLE_WORKSPACES": "*-Dev,*-Test,Sandbox*"
      }
    }
  }
}

Claude Desktop config with guard (macOS):

{
  "mcpServers": {
    "fabric": {
      "command": "npx",
      "args": ["-y", "@einlogic/mcp-fabric-api"],
      "env": {
        "AUTH_METHOD": "device-code",
        "AZURE_CLIENT_ID": "your-app-client-id",
        "AZURE_TENANT_ID": "your-tenant-id",
        "WRITABLE_WORKSPACES": "*-Dev,*-Test,Sandbox*"
      }
    }
  }
}

Claude Code CLI with guard:

WRITABLE_WORKSPACES="*-Dev,*-Test" claude mcp add fabric -- npx -y @einlogic/mcp-fabric-api

Error when not configured:

WRITABLE_WORKSPACES is not configured. Destructive actions are blocked by default. Set WRITABLE_WORKSPACES to a comma-separated list of workspace name patterns, or "*" to allow all.

Error when workspace not in allow list:

Workspace "Production-Analytics" is not in the writable workspaces list. Allowed patterns: *-Dev, *-Test, Sandbox*

Debug Logging

Enable verbose debug logging to diagnose API errors, inspect request/response details, and trace long-running operations. All log output goes to stderr (visible in Claude Desktop's log files, never interferes with JSON-RPC on stdout).

Set the LOG_LEVEL environment variable to debug:

Claude Desktop config:

{
  "mcpServers": {
    "fabric": {
      "command": "npx",
      "args": ["-y", "@einlogic/mcp-fabric-api"],
      "env": {
        "LOG_LEVEL": "debug"
      }
    }
  }
}

Claude Code CLI:

LOG_LEVEL=debug claude mcp add fabric -- npx -y @einlogic/mcp-fabric-api

What gets logged at debug level:

Category

Details logged

HTTP requests

Method, full URL, request body size in bytes

HTTP responses

Status code, duration (ms), x-ms-request-id header

Definition uploads

Part paths, payload types, payload sizes — never payload content

API errors

Full error body including errorCode, details[], innererror, relatedResource, x-ms-request-id

LRO polling

Operation ID, poll count, elapsed time, final status

Pagination

Page count, items per page, total items

SQL/KQL queries

Server, database, duration, column/row counts — never query text or result data

Rate limiting

Retry-after duration, affected endpoint

Compliance: Debug logging never captures actual data content — no query text, no query results, no definition payloads, no bearer tokens. Only structural metadata (URLs, sizes, counts, timing, error details) is logged.

Viewing logs in Claude Desktop:

  • macOS: ~/Library/Logs/Claude/mcp-server-fabric.log

  • Windows: %APPDATA%\Claude\logs\mcp-server-fabric.log

You can also tail the log in real time:

# macOS
tail -f ~/Library/Logs/Claude/mcp-server-fabric.log

# Windows (PowerShell)
Get-Content "$env:APPDATA\Claude\logs\mcp-server-fabric.log" -Wait

The x-ms-request-id value logged with every API error is the key identifier needed when opening a support case with Microsoft for Fabric API issues.

Read vs Write Tool Annotations

Every tool declares MCP ToolAnnotations so MCP clients can distinguish read-only tools from mutations when presenting them in a configuration UI. This lets users enable all read tools in a single toggle while requiring explicit approval for writes.

Annotation

Meaning

Typical tool names

readOnlyHint: true

Pure read, no state change

*_list, *_get, *_get_definition, DAX queries, export operations

readOnlyHint: false, destructiveHint: false

Creates or updates state

*_create, *_update, *_run, *_refresh, *_publish, *_import, *_upload

readOnlyHint: false, destructiveHint: true

Deletes, cancels, or removes

*_delete, *_cancel_run, *_remove_*, *_revoke, *_disconnect, *_detach_*

All 273 tools carry these hints. The workspace safety guard (WRITABLE_WORKSPACES) still applies independently on top of whatever the client permits.

File-Based I/O

To avoid large payloads overwhelming MCP clients, definition tools use file paths instead of inline content. The server reads files from disk when sending definitions to Fabric, and writes files to disk when retrieving definitions from Fabric.

Input tools — the server reads definition files from the specified path and uploads to Fabric:

Tool

Parameter

Description

semantic_model_create_bim

definitionFilePath

Path to model.bim JSON file

semantic_model_update_bim

definitionFilePath

Path to model.bim JSON file

semantic_model_create_tmdl

filesDirectoryPath

Directory of .tmdl and .pbism files

semantic_model_update_tmdl

filesDirectoryPath

Directory of .tmdl and .pbism files

notebook_update_definition

definitionDirectoryPath

Directory containing notebook definition files

eventstream_update_definition

definitionDirectoryPath

Directory containing eventstream definition files

report_create_definition

definitionDirectoryPath

Directory of PBIR report definition files

report_update_definition

definitionDirectoryPath

Directory of PBIR report definition files

variable_library_create

definitionDirectoryPath

Directory of .json and .platform files

variable_library_update_definition

definitionDirectoryPath

Directory of .json and .platform files

lakehouse_update_definition

partsDirectoryPath

Directory of definition files (or inline parts)

warehouse_update_definition

partsDirectoryPath

Directory of definition files (or inline parts)

pipeline_update_definition

partsDirectoryPath

Directory of definition files (or inline parts)

reflex_update_definition

partsDirectoryPath

Directory of definition files (or inline parts)

mirrored_database_update_definition

partsDirectoryPath

Directory of definition files (or inline parts)

kql_database_update_definition

partsDirectoryPath

Directory of definition files (or inline parts)

copy_job_update_definition

partsDirectoryPath

Directory of definition files (or inline parts)

sql_database_update_definition

partsDirectoryPath

Directory of .dacpac or .sqlproj/.sql files (or inline parts)

kql_queryset_update_definition

partsDirectoryPath

Directory of definition files (or inline parts)

kql_dashboard_update_definition

partsDirectoryPath

Directory of definition files (or inline parts)

environment_create

definitionDirectoryPath (optional)

Directory of environment definition files to seed on create

environment_update_definition

definitionDirectoryPath

Directory of environment definition files

environment_import_staging_external_libraries

yamlFilePath

Path to an environment.yml file (replaces external library list)

environment_upload_staging_custom_library

libraryFilePath

Path to .jar / .py / .whl / .tar.gz (max 100 MB)

lakehouse_upload_file

localFilePath

Any local file (binary-safe), uploaded to the lakehouse's Files section via the OneLake Data Access API

Output tools — the server retrieves definitions from Fabric and writes them to disk:

Tool

Parameter

What gets written

semantic_model_get_bim

outputFilePath

Single model.bim JSON file

semantic_model_get_tmdl

outputDirectoryPath

TMDL files preserving folder structure

notebook_get_definition

outputDirectoryPath

Notebook definition files

lakehouse_get_definition

outputDirectoryPath

Lakehouse definition files

warehouse_get_definition

outputDirectoryPath

Warehouse definition files

pipeline_get_definition

outputDirectoryPath

Pipeline definition files

report_get_definition

outputDirectoryPath

Report definition files (report.json, pages, visuals)

dataflow_get_definition

outputDirectoryPath

Dataflow definition files

eventstream_get_definition

outputDirectoryPath

Eventstream definition files

graphql_api_get_definition

outputDirectoryPath

GraphQL schema definition files

reflex_get_definition

outputDirectoryPath

Reflex definition files

variable_library_get_definition

outputDirectoryPath

Variable library files (variables.json, valueSets/)

mirrored_database_get_definition

outputDirectoryPath

Mirrored database definition files

kql_database_get_definition

outputDirectoryPath

KQL database definition files

lakehouse_download_file

localFilePath

Any file (binary-safe) from the lakehouse's Files section, via the OneLake Data Access API

notebook_get_livy_log

outputFilePath

Raw Livy/driver/executor log text for a notebook's Spark session

copy_job_get_definition

outputDirectoryPath

Copy job definition files

environment_get_definition

outputDirectoryPath

Environment definition files

sql_database_get_definition

outputDirectoryPath

SQL database definition files (.dacpac or .sqlproj/.sql)

kql_queryset_get_definition

outputDirectoryPath

KQL queryset definition files

kql_dashboard_get_definition

outputDirectoryPath

KQL dashboard definition files

environment_export_staging_external_libraries

outputFilePath

Staging environment.yml

environment_export_published_external_libraries

outputFilePath

Published environment.yml

TMDL directory structure example:

/tmp/my-model/
  model.tmdl
  definition.pbism
  definition/
    tables/
      Sales.tmdl
      Product.tmdl
    relationships.tmdl

Development

git clone https://github.com/your-org/mcp-fabric-api.git
cd mcp-fabric-api
npm install
npm run build
npm start
npm run dev          # Watch mode
npm run inspect      # Launch MCP Inspector

Tools (273 total)

Auth (4 tools)

Tool

Description

auth_get_current_account

Show current Azure identity, tenant, and token expiry

auth_list_available_accounts

List subscriptions/tenants from local az login state (does not query Entra)

auth_switch_tenant

Switch to a different Azure tenant (with rollback on failure)

auth_clear_token_cache

Clear cached tokens to force re-acquisition

Workspace (11 tools)

Tool

Description

workspace_list

List all accessible Fabric workspaces

workspace_get

Get details of a specific workspace

workspace_create

Create a new workspace

workspace_update

Update a workspace's name or description

workspace_delete

Delete a workspace

workspace_list_items

List all items in a workspace (with optional type filter)

workspace_list_role_assignments

List who has Admin/Member/Contributor/Viewer access to a workspace

workspace_get_role_assignment

Get a specific role assignment by ID

workspace_add_role_assignment

Grant a user, group, service principal, or the entire tenant a workspace role

workspace_update_role_assignment

Change a principal's workspace role

workspace_delete_role_assignment

Remove a principal's workspace role assignment

Lakehouse (21 tools)

Tool

Description

lakehouse_list

List all lakehouses in a workspace

lakehouse_get

Get lakehouse details (SQL endpoint, OneLake paths)

lakehouse_create

Create a new lakehouse (LRO, schemas enabled by default)

lakehouse_update

Update lakehouse name or description

lakehouse_delete

Delete a lakehouse

lakehouse_list_tables

List all tables in a lakehouse (falls back to SQL endpoint for schema-enabled lakehouses)

lakehouse_load_table

Load data into a table from OneLake (LRO). Not supported for schema-enabled lakehouses

lakehouse_create_shortcut

Create a OneLake shortcut (file, folder, table, or schema level) with support for multiple target types

lakehouse_get_sql_endpoint

Get SQL endpoint details

lakehouse_get_definition

Get lakehouse definition (LRO). Writes files to outputDirectoryPath

lakehouse_update_definition

Update lakehouse definition (LRO). Reads from partsDirectoryPath or inline parts

lakehouse_list_shortcuts

List all OneLake shortcuts in a lakehouse

lakehouse_get_shortcut

Get details of a specific OneLake shortcut

lakehouse_delete_shortcut

Delete a OneLake shortcut

lakehouse_list_files

List files/folders under a path in the Files section (OneLake Data Access API)

lakehouse_get_file_properties

Get metadata (size, last modified, etag) for a file or folder in Files

lakehouse_create_folder

Create a folder in the Files section

lakehouse_upload_file

Upload a local file into the Files section

lakehouse_download_file

Download a file from the Files section to local disk

lakehouse_move_file

Move or rename a file or folder within the Files section

lakehouse_delete_file

Delete a file or folder from the Files section

Warehouse (9 tools)

Tool

Description

warehouse_list

List all warehouses in a workspace

warehouse_get

Get warehouse details including connection string and provisioning status

warehouse_create

Create a new warehouse (LRO)

warehouse_update

Update warehouse name or description

warehouse_delete

Delete a warehouse

warehouse_get_sql_endpoint

Get SQL connection details for a warehouse

warehouse_list_tables

List all tables in a warehouse

warehouse_get_definition

Get warehouse definition (LRO). Writes files to outputDirectoryPath

warehouse_update_definition

Update warehouse definition (LRO). Reads from partsDirectoryPath or inline parts

Notebook (15 tools)

Tool

Description

notebook_list

List all notebooks in a workspace

notebook_get

Get notebook details

notebook_create

Create a new notebook (LRO)

notebook_update

Update notebook name or description

notebook_delete

Delete a notebook

notebook_get_definition

Get notebook definition (LRO). Writes files to outputDirectoryPath

notebook_update_definition

Update notebook definition (LRO). Reads files from definitionDirectoryPath

notebook_run

Run a notebook on demand

notebook_get_run_status

Get notebook run status

notebook_cancel_run

Cancel a running notebook

notebook_list_livy_sessions

List Spark Livy sessions for a notebook (state, compute sizing, durations)

notebook_get_livy_session

Get details of a specific Livy session

notebook_get_livy_log

Download the Livy/driver/executor log for a Livy session to local disk — the driver log is the closest thing to notebook "results" available via API (unstructured print/display output, stack traces)

notebook_attach_environment

Attach a Fabric Environment to a notebook by mutating its definition metadata (handles both .py and .ipynb notebooks)

notebook_detach_environment

Remove the attached environment from a notebook

Pipeline (16 tools)

Tool

Description

pipeline_list

List all data pipelines

pipeline_get

Get pipeline details

pipeline_create

Create a new pipeline

pipeline_update

Update pipeline name or description

pipeline_delete

Delete a pipeline

pipeline_run

Run a pipeline on demand

pipeline_get_run_status

Get pipeline run status

pipeline_cancel_run

Cancel a running pipeline

pipeline_list_runs

List all run instances

pipeline_query_activity_runs

Get per-activity run details for a pipeline run (status, input, output, error per activity)

pipeline_list_schedules

List pipeline schedules

pipeline_create_schedule

Create a pipeline schedule

pipeline_update_schedule

Update a pipeline schedule

pipeline_delete_schedule

Delete a pipeline schedule

pipeline_get_definition

Get pipeline definition (LRO). Writes files to outputDirectoryPath

pipeline_update_definition

Update pipeline definition (LRO). Reads from partsDirectoryPath or inline parts

Semantic Model (15 tools)

Tool

Description

semantic_model_list

List all semantic models

semantic_model_get_details

Get semantic model metadata (name, ID, description) — does not return the definition

semantic_model_create_bim

Create a semantic model from a BIM/JSON file (LRO). Reads model.bim from definitionFilePath

semantic_model_create_tmdl

Create a semantic model from TMDL files (LRO). Reads .tmdl/.pbism from filesDirectoryPath

semantic_model_update_details

Update semantic model name or description — does not modify the definition

semantic_model_delete

Delete a semantic model

semantic_model_refresh

Trigger a model refresh (Power BI API)

semantic_model_execute_dax

Execute a DAX query (Power BI API)

semantic_model_get_bim

Get definition in BIM/JSON format (LRO). Writes model.bim to outputFilePath

semantic_model_get_tmdl

Get definition in TMDL format (LRO). Writes TMDL files to outputDirectoryPath

semantic_model_update_bim

Update definition from BIM/JSON file (LRO). Reads model.bim from definitionFilePath

semantic_model_update_tmdl

Update definition from TMDL files (LRO). Reads .tmdl/.pbism from filesDirectoryPath

semantic_model_get_refresh_history

Get refresh history (Power BI API)

semantic_model_take_over

Take over ownership of a semantic model (Power BI API)

semantic_model_get_datasources

Get data sources of a semantic model (Power BI API)

Report (13 tools)

Tool

Description

report_list

List all reports

report_get

Get report details

report_create_definition

Create a new report from PBIR definition files (LRO). Reads from definitionDirectoryPath

report_update

Update report name or description

report_delete

Delete a report

report_clone

Clone a report (Power BI API)

report_export

Export report to file format (PDF, PPTX, PNG, etc.) via Power BI API

report_get_export_status

Check report export status

report_get_definition

Get report definition (LRO). Writes files to outputDirectoryPath

report_update_definition

Update report definition from PBIR directory (LRO). Reads from definitionDirectoryPath

report_rebind

Rebind a report to a different semantic model/dataset (Power BI API)

report_get_pages

Get the list of pages in a report (Power BI API)

report_get_datasources

Get data sources used by a report (Power BI API)

Dataflow Gen2 (8 tools)

Tool

Description

dataflow_list

List all Dataflow Gen2 items

dataflow_get

Get dataflow details

dataflow_create

Create a new dataflow

dataflow_update

Update dataflow name or description

dataflow_delete

Delete a dataflow

dataflow_refresh

Trigger a dataflow refresh

dataflow_get_refresh_status

Get refresh job status

dataflow_get_definition

Get dataflow definition (LRO). Writes files to outputDirectoryPath

Eventhouse (7 tools)

Tool

Description

eventhouse_list

List all eventhouses

eventhouse_get

Get eventhouse details

eventhouse_create

Create a new eventhouse (LRO)

eventhouse_update

Update eventhouse name or description

eventhouse_delete

Delete an eventhouse

eventhouse_get_sql_endpoint

Get query service URI and connection details

eventhouse_execute_kql

Execute a KQL query against a KQL database

Eventstream (7 tools)

Tool

Description

eventstream_list

List all eventstreams

eventstream_get

Get eventstream details

eventstream_create

Create a new eventstream (LRO)

eventstream_update

Update eventstream name or description

eventstream_delete

Delete an eventstream

eventstream_get_definition

Get eventstream definition (LRO). Writes files to outputDirectoryPath

eventstream_update_definition

Update eventstream definition (LRO). Reads from definitionDirectoryPath

Reflex / Activator (7 tools)

Tool

Description

reflex_list

List all Reflex (Activator) items

reflex_get

Get reflex details

reflex_create

Create a new reflex

reflex_update

Update reflex name or description

reflex_delete

Delete a reflex

reflex_get_definition

Get reflex definition (LRO). Writes files to outputDirectoryPath

reflex_update_definition

Update reflex definition (LRO). Reads from partsDirectoryPath or inline parts

GraphQL API (7 tools)

Tool

Description

graphql_api_list

List all GraphQL API items

graphql_api_get

Get GraphQL API details

graphql_api_create

Create a new GraphQL API

graphql_api_update

Update GraphQL API name or description

graphql_api_delete

Delete a GraphQL API

graphql_api_get_definition

Get GraphQL schema definition (LRO). Writes files to outputDirectoryPath

graphql_api_execute_query

Execute a GraphQL query

SQL Endpoint (4 tools)

Tool

Description

sql_endpoint_list

List all SQL endpoints

sql_endpoint_get

Get SQL endpoint details

sql_endpoint_get_connection_string

Get TDS connection string

sql_endpoint_execute_query

Execute a T-SQL query against a lakehouse or warehouse SQL endpoint

Variable Library (7 tools)

Tool

Description

variable_library_list

List all variable libraries in a workspace

variable_library_get

Get variable library details including active value set name

variable_library_create

Create a variable library, optionally with definition files from definitionDirectoryPath (LRO)

variable_library_update

Update name, description, or active value set

variable_library_delete

Delete a variable library

variable_library_get_definition

Get definition (LRO). Writes files (variables.json, valueSets/) to outputDirectoryPath

variable_library_update_definition

Update definition from directory of .json and .platform files (LRO)

Git Integration (9 tools)

Tool

Description

git_get_connection

Get Git connection details for a workspace

git_get_status

Get Git status of items (sync state between workspace and remote)

git_connect

Connect a workspace to a Git repository (Azure DevOps or GitHub)

git_disconnect

Disconnect a workspace from its Git repository

git_initialize_connection

Initialize a Git connection after connecting (LRO)

git_commit_to_git

Commit workspace changes to the connected Git repository (LRO)

git_update_from_git

Update workspace from the connected Git repository (LRO)

git_get_credentials

Get Git credentials configuration for the current user

git_update_credentials

Update Git credentials configuration for the current user

Deployment Pipeline (12 tools)

Tool

Description

deployment_pipeline_list

List all deployment pipelines accessible to the user

deployment_pipeline_get

Get details of a specific deployment pipeline

deployment_pipeline_create

Create a new deployment pipeline

deployment_pipeline_update

Update deployment pipeline name or description

deployment_pipeline_delete

Delete a deployment pipeline

deployment_pipeline_list_stages

List all stages in a deployment pipeline

deployment_pipeline_list_stage_items

List all items in a specific stage

deployment_pipeline_assign_workspace

Assign a workspace to a pipeline stage

deployment_pipeline_unassign_workspace

Unassign a workspace from a pipeline stage

deployment_pipeline_deploy

Deploy items from one stage to another (LRO)

deployment_pipeline_list_operations

List operations (deployment history)

deployment_pipeline_get_operation

Get details of a specific deployment operation

Mirrored Database (11 tools)

Tool

Description

mirrored_database_list

List all mirrored databases in a workspace

mirrored_database_get

Get details of a specific mirrored database

mirrored_database_create

Create a new mirrored database (LRO)

mirrored_database_update

Update mirrored database name or description

mirrored_database_delete

Delete a mirrored database

mirrored_database_get_definition

Get mirrored database definition (LRO). Writes files to outputDirectoryPath

mirrored_database_update_definition

Update definition (LRO). Reads from partsDirectoryPath or inline parts

mirrored_database_start_mirroring

Start mirroring for a mirrored database

mirrored_database_stop_mirroring

Stop mirroring for a mirrored database

mirrored_database_get_mirroring_status

Get the mirroring status

mirrored_database_get_tables_mirroring_status

Get mirroring status of individual tables

KQL Database (7 tools)

Tool

Description

kql_database_list

List all KQL databases in a workspace

kql_database_get

Get details of a specific KQL database

kql_database_create

Create a new KQL database (LRO). Requires a parent eventhouse

kql_database_update

Update KQL database name or description

kql_database_delete

Delete a KQL database

kql_database_get_definition

Get KQL database definition (LRO). Writes files to outputDirectoryPath

kql_database_update_definition

Update definition (LRO). Reads from partsDirectoryPath or inline parts

ML Model (5 tools)

Tool

Description

ml_model_list

List all ML models in a workspace

ml_model_get

Get details of a specific ML model

ml_model_create

Create a new ML model (LRO)

ml_model_update

Update ML model name or description

ml_model_delete

Delete an ML model

ML Experiment (5 tools)

Tool

Description

ml_experiment_list

List all ML experiments in a workspace

ml_experiment_get

Get details of a specific ML experiment

ml_experiment_create

Create a new ML experiment (LRO)

ml_experiment_update

Update ML experiment name or description

ml_experiment_delete

Delete an ML experiment

Copy Job (11 tools)

Tool

Description

copy_job_list

List all copy jobs in a workspace

copy_job_get

Get details of a specific copy job

copy_job_create

Create a new copy job

copy_job_update

Update copy job name or description

copy_job_delete

Delete a copy job

copy_job_get_definition

Get copy job definition (LRO). Writes files to outputDirectoryPath

copy_job_update_definition

Update definition (LRO). Reads from partsDirectoryPath or inline parts

copy_job_run

Run a copy job on demand

copy_job_get_run_status

Get copy job run status

copy_job_cancel_run

Cancel a running copy job

copy_job_list_runs

List all run instances for a copy job

External Data Share (4 tools)

Tool

Description

external_data_share_list

List all external data shares for an item

external_data_share_get

Get details of a specific external data share

external_data_share_create

Create a new external data share for an item

external_data_share_revoke

Revoke an external data share

Environment (20 tools)

Fabric Environments are the attachable runtime unit for notebooks and Spark job definitions — they bundle a runtime version, a Spark compute configuration, and a set of libraries. Tools cover the full CRUD surface plus the staging/publish lifecycle.

Tool

Description

environment_list

List all environments in a workspace

environment_get

Get environment metadata including publish state

environment_create

Create a new environment (optionally seeded with a definition from definitionDirectoryPath)

environment_update

Update environment display name or description

environment_delete

Delete an environment

environment_get_definition

Get the environment public definition (LRO). Writes files to outputDirectoryPath

environment_update_definition

Override the environment public definition (LRO). Reads from definitionDirectoryPath

environment_publish

Trigger a publish to make staging changes effective (LRO)

environment_cancel_publish

Cancel an ongoing publish operation

environment_list_staging_libraries

List staging libraries (published + pending)

environment_export_staging_external_libraries

Export staging external libraries as environment.yml to outputFilePath

environment_import_staging_external_libraries

Upload environment.yml from yamlFilePath to replace the external library list

environment_upload_staging_custom_library

Upload a .jar / .py / .whl / .tar.gz from libraryFilePath (max 100 MB)

environment_delete_staging_custom_library

Delete a custom library from staging by filename

environment_remove_staging_external_library

Remove a single external library from staging (one at a time)

environment_get_staging_spark_compute

Get the staging Spark compute configuration

environment_update_staging_spark_compute

Update staging Spark compute (pool, cores, memory, runtime, sparkProperties)

environment_list_published_libraries

List published (currently effective) libraries

environment_get_published_spark_compute

Get published Spark compute configuration

environment_export_published_external_libraries

Export published external libraries as environment.yml to outputFilePath

Folder (6 tools, preview API)

In-workspace folder hierarchy for organizing items.

Tool

Description

folder_list

List folders in a workspace, optionally scoped to a subtree

folder_get

Get details of a specific folder

folder_create

Create a folder (optionally nested under a parent folder)

folder_update

Rename a folder

folder_move

Move a folder to a different parent (or to the workspace root)

folder_delete

Delete a folder

Tags (3 tools)

Tenant-wide tags applied to items for categorization and discovery.

Tool

Description

tag_list

List all tags defined in the tenant

item_apply_tags

Apply one or more existing tags to a workspace item

item_unapply_tags

Remove one or more tags from a workspace item

Catalog (1 tool, preview API)

Tool

Description

catalog_search

Search for Fabric items across every workspace the caller can access, without needing to know which workspace they're in

OneLake Data Access Security (4 tools, preview API)

Fine-grained, table/folder-level read access roles inside a Lakehouse (or other OneLake-backed item) — finer-grained than workspace roles.

Tool

Description

onelake_list_data_access_roles

List data access roles defined on an item

onelake_get_data_access_role

Get details of a specific role

onelake_set_data_access_role

Create or update (upsert) a single role without touching other roles on the item

onelake_delete_data_access_role

Delete a role by name

SQL Database (10 tools)

Fabric's native transactional SQL database item (OLTP), distinct from Warehouse (OLAP).

Tool

Description

sql_database_list

List all SQL databases in a workspace

sql_database_get

Get database details including connection string

sql_database_create

Create a new database (fresh, or restored from a source/deleted database via creationPayload)

sql_database_update

Update database name or description

sql_database_delete

Delete a database

sql_database_get_definition

Get the public definition (dacpac/sqlproj, LRO). Writes files to outputDirectoryPath

sql_database_update_definition

Update the public definition (LRO). Reads from partsDirectoryPath or inline parts

sql_database_list_restorable_deleted_databases

List deleted databases still eligible for point-in-time restore

sql_database_start_mirroring

Start streaming database changes into OneLake as Delta tables

sql_database_stop_mirroring

Stop mirroring

KQL Queryset (7 tools)

Saved KQL query tabs associated with a KQL/Eventhouse database.

Tool

Description

kql_queryset_list

List all KQL querysets in a workspace

kql_queryset_get

Get queryset details

kql_queryset_create

Create a new queryset (optionally seeded from definitionDirectoryPath)

kql_queryset_update

Update name or description

kql_queryset_delete

Delete a queryset

kql_queryset_get_definition

Get the definition (LRO). Writes files to outputDirectoryPath

kql_queryset_update_definition

Update the definition (LRO). Reads from partsDirectoryPath or inline parts

KQL Dashboard (7 tools)

Real-time visualization dashboards built on KQL/Eventhouse data — the Real-Time Intelligence equivalent of a Power BI Report.

Tool

Description

kql_dashboard_list

List all KQL dashboards in a workspace

kql_dashboard_get

Get dashboard details

kql_dashboard_create

Create a new dashboard (optionally seeded from definitionDirectoryPath)

kql_dashboard_update

Update name or description

kql_dashboard_delete

Delete a dashboard

kql_dashboard_get_definition

Get the definition (LRO). Writes files to outputDirectoryPath

kql_dashboard_update_definition

Update the definition (LRO). Reads from partsDirectoryPath or inline parts

License

AGPL-3.0

Available Tools

219 tools
auth_clear_token_cacheA
Destructive

Clear cached authentication tokens to force re-acquisition on next API call

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already mark this as destructive, and the description adds meaningful behavioral context by explaining the consequence (next API call will re-acquire tokens). It does not detail the scope of what is cleared (e.g., all accounts, current tenant) or potential side effects like forced re-login, but for a zero-parameter utility the transparency is solid.

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?

A single, front-loaded sentence with no filler. It states the action, the target, and the outcome without wasting words.

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 simple, parameterless, destructive-but-explained utility, the description plus annotations provide enough information for an agent to select and invoke it correctly. The absence of an output schema is not a significant gap for this kind of action.

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?

With zero parameters and 100% schema coverage, the description doesn't need to explain any parameters. It fully conveys the operation's purpose, so the baseline for 0-parameter tools applies.

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 uses a specific verb ('Clear') and a clear resource ('cached authentication tokens'), stating exactly what the tool does. It also distinguishes itself from sibling auth tools (get current account, list accounts, switch tenant) by targeting a different operation entirely.

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?

The phrase 'to force re-acquisition on next API call' implicitly provides the primary use case: invalidate stale or unwanted cached tokens. It does not explicitly mention alternatives or when not to use it, but no sibling offers a comparable token-clearing behavior, so the guidance is clear enough.

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

auth_get_current_accountA
Read-only

Show the current Azure identity, tenant, and token expiry by decoding the Fabric JWT

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds meaningful behavioral detail beyond that: it decodes the Fabric JWT and surfaces identity, tenant, and token expiry. This tells the agent it is a local inspection operation with no write side effects, which is consistent with the annotations.

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 a single front-loaded sentence that names the action, the resource, and the returned information without filler. Every part earns its place.

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 zero-parameter, read-only introspection tool, the description is complete: it states what the tool returns (identity, tenant, token expiry), how it obtains that (decoding the JWT), and the annotations cover the safety profile. No output schema is present, so describing the shown fields directly is sufficient.

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?

The tool has zero parameters, so the schema fully covers the input side. Per the baseline for zero-parameter tools, the description does not need to add parameter detail, and it correctly avoids inventing any.

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 uses a specific verb ('Show') and a clear resource: the current Azure identity, tenant, and token expiry. The 'current' qualifier distinguishes it from sibling tools like auth_list_available_accounts, and the mechanism ('decoding the Fabric JWT') makes it an obvious introspection call.

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

Usage Guidelines3/5

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

The description implies when to use it — whenever current Azure identity/tenant/token expiry is needed — but offers no explicit guidance about alternatives such as auth_list_available_accounts, auth_switch_tenant, or auth_clear_token_cache. Given the sibling set, a sentence clarifying what this tool is not for would strengthen it.

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

auth_list_available_accountsA
Read-only

List Azure subscriptions and tenants the local user has logged into via 'az login'. Reads local CLI state only — does not query Entra ID or list other users.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already state readOnlyHint=true and destructiveHint=false, so the safe-read nature is known. The description adds valuable context about reading local CLI state only, not making live Entra ID queries, and not listing other users — which clarifies side effects and data source beyond the annotations.

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?

Two sentences, no filler. The main action and scope are in the first sentence, and the important scoping boundary ('local CLI state only') is upfront in the second. Every phrase earns its place.

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 zero-parameter, read-only list tool with annotations covering safety, the description is complete: it tells the agent what is listed, under what condition, and what it does not do. No output schema is needed for invocation, and the description covers the key selection criteria.

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?

The tool has zero parameters and 100% schema description coverage, so there is nothing for the description to add about parameter semantics. The baseline of 4 applies for parameterless tools, and the description's reference to 'az login' clarifies the underlying prerequisite context.

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 (List) and resource (Azure subscriptions and tenants), and further scopes it to accounts the local user logged into via 'az login'. It also distinguishes itself from other auth tools by noting it reads local CLI state only and does not query Entra ID or list other users.

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?

The description provides clear context: use this tool to enumerate locally authenticated Azure subscriptions and tenants. It states a when-not ('does not query Entra ID or list other users'), implicitly indicating this is not for live directory queries or user enumeration, but it does not name an alternative sibling tool explicitly such as auth_get_current_account.

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

auth_switch_tenantA

Switch to a different Azure tenant. Acquires a new token to verify access; rolls back on failure.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenantIdYesThe Azure AD tenant ID (GUID) to switch to

TDQS

A4.2/5.0
Behavior4/5

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

The description goes beyond the annotations by disclosing that switching acquires a new token to verify access and rolls back on failure. This is useful side-effect and failure semantics. It stops short of mentioning broader impact on cached tokens or subsequent tool calls, but the rollback detail is meaningful.

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?

Two tightly written sentences with no filler. The main operation is front-loaded, and the behavioral detail is placed directly after it, making the definition easy to scan and parse.

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

Completeness4/5

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

For a single-parameter tool with no output schema, the description is largely complete: it states the action, the verification behavior, and rollback safety. A minor gap is that it does not describe what the caller should expect on success or how the switch affects future sibling tool calls, but the low complexity and clear schema reduce the risk.

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

Parameters3/5

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

Schema description coverage is 100%, and the tenantId parameter is already documented as 'The Azure AD tenant ID (GUID) to switch to.' The description does not need to add parameter-level details and does not provide any beyond the 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 names a specific verb and resource: 'Switch to a different Azure tenant.' It also adds unique behavioral detail (acquiring a new token and rolling back on failure) that clearly distinguishes this from the sibling auth tools like auth_get_current_account and auth_clear_token_cache.

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?

The phrase 'Switch to a different Azure tenant' provides clear context for when the tool applies: when the current tenant must be changed. It does not explicitly list alternatives or exclusions, but no sibling tool performs this same tenant-switching function, so the implied usage is straightforward.

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

copy_job_cancel_runB
Destructive

Cancel a running copy job

ParametersJSON Schema
NameRequiredDescriptionDefault
copyJobIdYesThe copy job ID
workspaceIdYesThe workspace ID
jobInstanceIdYesThe job instance ID to cancel

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is clear. The description adds that it targets a 'running' copy job, which is useful, but it does not disclose whether cancellation is graceful or forceful, whether it affects only the specified jobInstanceId, or what happens if the job is already finished. With annotations covering the destructive nature, a 3 is appropriate.

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?

The description is a single short sentence with no wasted words. It is front-loaded and clearly states the action. It could add a conditional phrase like 'if the run is still in progress', but as-is it is concise and direct.

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

Completeness3/5

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

For a destructive cancel operation with no output schema, the description is minimally viable: it names the action and the required scoping identifiers exist in the schema. However, it omits behavioral details such as whether the cancellation is asynchronous, how to check completion afterward, or any error conditions. Given the destructiveHint annotation, extra context about safety and next steps would improve completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters (workspaceId, copyJobId, jobInstanceId). The description adds no additional parameter-specific meaning beyond identifying the operation as cancelling a run; the schema's field descriptions are sufficient.

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?

The description 'Cancel a running copy job' clearly states the verb (cancel) and resource (copy job run), and the name copy_job_cancel_run makes the intent explicit. It is distinguishable from copy_job_run and copy_job_get_run_status among siblings, though it does not explicitly contrast with them.

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

Usage Guidelines3/5

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

The description implies usage when a copy job run is running and needs to be cancelled, but it does not state when NOT to use it or mention alternatives such as copy_job_get_run_status for checking status first. The sibling naming pattern provides context, but the description itself lacks explicit routing guidance.

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

copy_job_createB

Create a new copy job in a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoDescription of the copy job
displayNameYesDisplay name for the copy job
workspaceIdYesThe workspace ID

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already convey that this operation is not read-only and not destructive. The description adds no further behavioral detail such as side effects, required permissions, idempotency, or what happens on success. There is no contradiction with the annotations.

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 entire description is one short, front-loaded sentence with no filler or redundancy. It efficiently communicates the core operation without wasting words.

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

Completeness2/5

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

With no output schema, the description does not mention what the API returns after creation, such as a copy job ID or full job object. It also omits any indication of follow-up operations or prerequisites beyond the schema, leaving the agent with an incomplete picture for invoking and using the result.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents workspaceId, displayName, and description adequately. The tool description does not add any extra parameter meaning, which keeps this at the baseline score of 3.

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 clearly states the action ('Create'), the resource ('a new copy job'), and the scope ('in a workspace'). This distinguishes it from sibling tools like copy_job_update, copy_job_delete, and copy_job_list by indicating it creates rather than modifies, deletes, or reads.

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

Usage Guidelines2/5

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

No explicit guidance is provided about when to choose this tool over alternatives such as copy_job_update or copy_job_create_definition. The word 'new' implies creation of a non-existent job, but no exclusions or routing cues are given.

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

copy_job_deleteB
Destructive

Delete a copy job

ParametersJSON Schema
NameRequiredDescriptionDefault
copyJobIdYesThe copy job ID
workspaceIdYesThe workspace ID

TDQS

B3.3/5.0
Behavior2/5

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

The annotations already declare destructiveHint=true and readOnlyHint=false, and the description adds no behavioral context beyond restating the delete operation. It does not mention irreversibility, cascading effects, whether running jobs are affected, or any 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 a single, focused sentence with no wasted words. It immediately conveys the operation and is appropriately sized for a simple delete tool.

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

Completeness3/5

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

For a simple two-parameter delete operation with full schema coverage and destructive annotations, the description is minimally adequate. However, it does not describe what the return value or success/failure behavior looks like, and there is no output schema to fill that gap.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already fully documents both required parameters (workspaceId and copyJobId). The description adds no additional parameter semantics, but the schema carries the burden effectively, yielding the baseline score.

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 clearly states a specific verb ('Delete') and resource ('a copy job'), making the operation unambiguous. It is easily distinguished from the many sibling tools that operate on other resource types and from non-delete copy_job operations.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives such as copy_job_cancel_run or copy_job_update. The description states only what it does, not the context or conditions for choosing it.

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

copy_job_getB
Read-only

Get details of a specific copy job

ParametersJSON Schema
NameRequiredDescriptionDefault
copyJobIdYesThe copy job ID
workspaceIdYesThe workspace ID

TDQS

B3.3/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds little behavioral context beyond the operation name, and it does not mention return format, error behavior, or any other runtime traits.

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 a single clear sentence with no filler. It is appropriately front-loaded and conveys the essential operation in the fewest necessary words.

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

Completeness3/5

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

For a simple read operation with fully documented parameters and safe annotations, the description is minimally adequate. However, with no output schema, the return content is unspecified, and the ambiguity against copy_job_get_definition leaves a gap in completeness.

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

Parameters3/5

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

Schema description coverage is 100%: both copyJobId and workspaceId are described in the schema. The description adds no additional parameter meaning beyond 'specific', so the baseline score of 3 applies.

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?

The description states a clear verb ('Get') and resource ('details of a specific copy job'), and the singular 'specific' distinguishes it from list operations like copy_job_list. However, it does not differentiate from the sibling copy_job_get_definition, since 'details' and 'definition' overlap.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as copy_job_list or copy_job_get_definition. The context signals and sibling list imply usage, but the description itself provides no explicit selection criteria or exclusions.

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

copy_job_get_definitionA
Read-only

Get the definition of a copy job (long-running). Writes definition files to the specified output directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
copyJobIdYesThe copy job ID
workspaceIdYesThe workspace ID
outputDirectoryPathYesDirectory path where definition files will be written

TDQS

A3.9/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds that the operation is long-running and writes definition files to a specified directory. This is useful beyond the annotations because it reveals latency and a side effect. No contradiction exists between the read-only annotation and writing output files.

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 two short sentences with no filler. 'Get the definition of a copy job' is front-loaded, and the second sentence gives the key behavioral detail about writing files. Each sentence earns its place.

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

Completeness3/5

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

The description explains the destination of files and notes the operation is long-running, but with no output schema it does not say what the call returns or how an agent knows when the definition files are ready. Given the 'long-running' qualifier, some completion or response detail would make it more complete.

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

Parameters3/5

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

The schema already documents all three parameters with 100% coverage, so the description does not need to add much. It does reinforce that outputDirectoryPath is where definition files will be written, but it adds no new parameter-level meaning beyond the 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 clearly states the verb and resource: get the definition of a copy job. It also distinguishes itself from siblings like copy_job_get by noting it writes definition files to an output directory, and from copy_job_update_definition by being a get operation. The 'long-running' parenthetical adds useful operational context.

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

Usage Guidelines3/5

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

The description implies usage when someone needs the definition files of a copy job, but it does not explicitly say when to prefer this over copy_job_get or compare against related get_definition tools. It gives no exclusions or alternative routing guidance. The 'long-running' note is a mild usage caution but not enough to fully guide selection.

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

copy_job_get_run_statusA
Read-only

Get the status of a copy job run

ParametersJSON Schema
NameRequiredDescriptionDefault
copyJobIdYesThe copy job ID
workspaceIdYesThe workspace ID
jobInstanceIdYesThe job instance ID from copy_job_run

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, which covers the safety profile. The description adds no further behavioral detail beyond the obvious read-only status lookup, so it is consistent but not enriching.

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 a single compact sentence with no filler or redundant wording. It is front-loaded with the action and resource, making it appropriately sized for a simple status lookup tool.

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

Completeness4/5

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

For a simple three-parameter read-only status tool, the description combined with the fully documented schema is nearly complete. The only minor absence is a note about polling behavior or status values, but the annotations and unambiguous name make this a small gap.

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

Parameters3/5

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

Schema description coverage is 100%, with workspaceId, copyJobId, and jobInstanceId each described. The tool description itself adds no additional parameter semantics, so the schema is doing the heavy lifting and the baseline applies.

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 states a specific verb ('Get') and resource ('status of a copy job run'), which clearly distinguishes it from sibling tools like copy_job_get, copy_job_list_runs, and copy_job_run. An agent can tell what this tool does at a glance.

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

Usage Guidelines3/5

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

The description implies usage after a copy job run has been started, especially because the schema notes that jobInstanceId comes from copy_job_run, but it does not explicitly state when to use this tool versus alternatives like copy_job_list_runs. Usage is inferable but not directly guided.

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

copy_job_listA
Read-only

List all copy jobs in a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that the tool returns all copy jobs in a workspace, which is useful, but it does not disclose pagination behavior, ordering, or the shape of the returned list.

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?

A single sentence with no filler. The action, resource, and scope are all front-loaded, making it easy for an agent to parse quickly.

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

Completeness4/5

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

For a simple one-parameter read-only list tool, the description and schema are sufficient for correct invocation. The lack of an output schema or explicit pagination note is a minor gap, but 'List all copy jobs' conveys the expected behavior clearly enough.

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

Parameters3/5

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

The input schema already documents workspaceId with 100% coverage, so the description does not need to add much. It only loosely repeats the workspace scope and provides no additional format or semantic detail beyond the 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 uses a specific verb ('List'), a specific resource ('copy jobs'), and a clear scope ('in a workspace'). It clearly distinguishes this from siblings like copy_job_get, copy_job_run, and copy_job_list_runs.

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

Usage Guidelines3/5

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

The description implies the enumeration use case but does not explicitly state when to use this tool over alternatives. It does not mention copy_job_get for single-job details or copy_job_list_runs for run history, leaving selection partly to the tool name.

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

copy_job_list_runsA
Read-only

List all run instances for a copy job

ParametersJSON Schema
NameRequiredDescriptionDefault
copyJobIdYesThe copy job ID
workspaceIdYesThe workspace ID

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the 'all run instances' scope but does not disclose pagination, ordering, or returned fields, which remains a gap for a list operation.

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?

A single focused sentence with no filler or redundancy. It front-loads the verb and resource, earning every word.

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

Completeness4/5

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

For a low-complexity, two-parameter read-only tool, the description plus schema and annotations is sufficient for an agent to invoke it correctly. The only notable omission is return-value details, but no output schema exists to make that a hard requirement.

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

Parameters3/5

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

Schema coverage is 100%, with descriptions for workspaceId and copyJobId. The tool description adds no further parameter semantics, so baseline 3 is appropriate.

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?

The description states a specific verb ('List') and resource ('run instances for a copy job'), making the core operation clear. It does not explicitly distinguish this from sibling tools like copy_job_get_run_status or copy_job_list, though 'run instances' helps narrow the meaning.

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

Usage Guidelines3/5

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

The intended use is implied by 'List all run instances for a copy job' – an agent can infer when to call it. However, it offers no explicit guidance about when to prefer copy_job_get_run_status for a single run or copy_job_list for the jobs themselves.

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

copy_job_runC

Run a copy job on demand

ParametersJSON Schema
NameRequiredDescriptionDefault
copyJobIdYesThe copy job ID
workspaceIdYesThe workspace ID

TDQS

C2.9/5.0
Behavior2/5

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

Annotations indicate this is not read-only, but the description adds no behavioral context. It doesn't disclose whether the tool blocks until completion, returns a run ID asynchronously, or requires the copy job to be in a certain state before running. Without an output schema, the agent is left guessing about the operation's behavior.

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?

The description is extremely concise and front-loaded, with no wasted words. It earns a 4 for efficiency, though the brevity contributes to the lack of behavioral and usage context noted in other dimensions.

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

Completeness2/5

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

For an action-oriented tool with no output schema, the description is too sparse. An agent cannot tell whether the tool returns a run ID, whether it should be followed by a status poll, or how long the run might take. Sibling tools like copy_job_get_run_status suggest this is a multi-step workflow, but the description doesn't explain that.

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

Parameters3/5

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

Schema description coverage is 100%, so both copyJobId and workspaceId are already documented in the schema. The description adds no additional meaning about how these parameters interact or what values are expected.

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?

The description 'Run a copy job on demand' states a specific verb (Run), a resource (copy job), and a qualifier (on demand), making the tool's core purpose clear. It doesn't explicitly distinguish from sibling tools like copy_job_get_run_status or copy_job_cancel_run, but the action of triggering a run is distinct enough.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives. It doesn't mention that this is for ad-hoc execution while scheduled runs might be managed elsewhere, nor does it point to copy_job_get_run_status for monitoring the resulting run.

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

copy_job_updateA

Update a copy job's name or description

ParametersJSON Schema
NameRequiredDescriptionDefault
copyJobIdYesThe copy job ID
descriptionNoNew description
displayNameNoNew display name
workspaceIdYesThe workspace ID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate this is a non-read-only, non-destructive operation, and the description's 'Update' aligns with that. However, the description adds no additional behavioral context such as partial-update semantics, permission requirements, or what happens when only one field is provided. It is adequate but not enriching.

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 a single sentence that wastes no words. It front-loads the action, resource, and the specific fields involved, making it efficient and easy to parse.

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

Completeness4/5

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

For a simple update tool with 100% schema coverage, no output schema, and annotations covering the mutation safety profile, the description is largely complete. The only notable gap is the absence of guidance distinguishing this from copy_job_update_definition, but the overall clarity of the operation compensates for that.

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

Parameters3/5

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

Schema description coverage is 100%, so all parameters are already documented in the schema. The description's reference to 'name or description' aligns with the displayName and description parameters, but it does not add meaningful detail beyond what the schema already provides. Baseline of 3 is appropriate.

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 uses a specific verb ('Update') and resource ('copy job') and narrows the scope to 'name or description', which clearly distinguishes it from sibling tools like copy_job_update_definition. It is immediately obvious what this tool does and what it does not do.

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

Usage Guidelines3/5

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

The description implies when to use the tool - when a copy job's name or description needs updating - but it does not explicitly state alternatives or exclusions. It does not mention that structural changes should go to copy_job_update_definition, leaving the selection guidance to inference from the tool name and sibling list.

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

copy_job_update_definitionB

Update a copy job's definition (long-running). Accepts definition parts inline or a directory path.

ParametersJSON Schema
NameRequiredDescriptionDefault
partsNoArray of definition parts to upload
copyJobIdYesThe copy job ID
workspaceIdYesThe workspace ID
partsDirectoryPathNoPath to a directory containing definition files

TDQS

B3.4/5.0
Behavior3/5

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

The 'long-running' parenthetical adds a useful behavioral signal beyond the annotations, indicating the operation may not complete synchronously. However, it does not explain how to check completion, whether the update replaces the entire definition, or what the caller should expect after triggering it.

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 compact and front-loaded: it states the operation and the long-running warning first, then the two input modes. Every clause earns its place with no redundant filler.

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

Completeness3/5

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

For a mutation tool with no output schema, the description covers purpose, long-running behavior, and input modes. But it omits what the operation returns and how a caller should monitor or confirm the definition update, which is a meaningful gap for an asynchronous operation.

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 description coverage is 100%, so parameter names and types are already documented. The description adds value by framing the choice between 'parts' and 'partsDirectoryPath' as inline content versus a directory path, which clarifies how the two modes relate.

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?

The description clearly states the action ('Update a copy job's definition') and the resource being acted on, and it adds input-mode detail (inline parts or directory path). It is distinguishable from siblings like copy_job_get_definition and copy_job_update, though it does not explicitly name or contrast them.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives such as copy_job_update or copy_job_get_definition. The inline-versus-directory distinction is an input-mode choice, not a decision between tools, so usage context must be inferred entirely from the tool name.

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

dataflow_createA

Create a new Dataflow Gen2 item in a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoDescription of the dataflow
displayNameYesDisplay name for the dataflow
workspaceIdYesThe workspace ID

TDQS

A3.6/5.0
Behavior2/5

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

Annotations already indicate a non-read-only, non-destructive operation; the description adds little beyond 'new' and 'workspace'. It does not disclose potential side effects, permission requirements, idempotency behavior, or what happens on duplicate names.

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?

Single sentence, clear, and front-loaded with the key scoping information. There is no filler or redundant explanation.

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

Completeness4/5

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

For a simple create tool with three flat parameters and no nested objects, the description plus schema is sufficient to invoke it correctly. The lack of an output schema or explicit return-value information is a minor gap but not critical for selecting or calling the tool.

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

Parameters3/5

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

Schema description coverage is 100%, so workspaceId, displayName, and description are all already documented in the schema. The description does not add parameter-level meaning, but it does not need to because the schema handles it.

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?

States a specific action ('Create'), a specific resource ('Dataflow Gen2 item'), and the target location ('in a workspace'). This clearly distinguishes it from sibling tools like dataflow_get, dataflow_update, and dataflow_delete.

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

Usage Guidelines3/5

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

The phrase 'Create a new...' implies the tool should be used when creating a Dataflow, not when reading, updating, or deleting one. However, it does not explicitly mention alternatives or provide exclusion conditions, leaving usage partly to inference.

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

dataflow_deleteA
Destructive

Delete a Dataflow Gen2 item

ParametersJSON Schema
NameRequiredDescriptionDefault
dataflowIdYesThe dataflow ID
workspaceIdYesThe workspace ID

TDQS

A3.6/5.0
Behavior2/5

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

The description simply restates the delete action and adds no behavioral context beyond what the annotations already declare. It does not disclose that deletion is likely permanent, that it cannot be undone, or that it may impact dependent artifacts. The annotations carry the destructiveHint, but the description itself contributes no additional transparency.

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 a single, focused sentence with no filler or redundant information. It is front-loaded with the core action and resource, making it easy for an agent to parse quickly.

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

Completeness4/5

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

For a simple two-parameter delete operation, the description together with the destructiveHint annotation and fully covered schema is mostly complete. The main missing context is whether the deletion is permanent or whether there are prerequisites like ensuring the dataflow is not in use, but these are relatively minor gaps for this tool.

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

Parameters3/5

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

The input schema covers 100% of parameters, each with a basic description ('The dataflow ID', 'The workspace ID'), so the schema is doing the heavy lifting. The tool description adds no additional meaning about how the IDs are used, their format, or any constraints beyond what the schema already provides.

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 states a specific verb ('Delete') and resource ('Dataflow Gen2 item'), which clearly distinguishes it from sibling tools like dataflow_list, dataflow_get, dataflow_create, and dataflow_update. The name and description align, leaving no ambiguity about what the tool does.

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

Usage Guidelines3/5

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

The description implies the tool should be used when a Dataflow Gen2 item needs to be deleted, so an agent can infer the basic use case. However, it offers no explicit guidance about when not to use it, no prerequisites, and no mention of the destructive nature or confirmation steps before invoking.

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

dataflow_getA
Read-only

Get details of a specific Dataflow Gen2 item

ParametersJSON Schema
NameRequiredDescriptionDefault
dataflowIdYesThe dataflow ID
workspaceIdYesThe workspace ID

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds no further behavioral context such as return characteristics or errors, but it does not contradict the annotations and remains adequate for a simple getter.

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 a single concise sentence with no filler. It front-loads the core action and resource while remaining immediately scannable.

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

Completeness3/5

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

For a simple two-parameter read-only get, the description is mostly sufficient, especially with full schema coverage. However, there is no output schema and the description does not clarify what 'details' include or how this differs from dataflow_get_definition, leaving some ambiguity for an agent navigating a large sibling set.

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

Parameters3/5

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

Schema description coverage is 100%, with self-explanatory parameters 'dataflowId' and 'workspaceId'. The description does not add meaning beyond the schema, so the baseline score of 3 is appropriate.

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 uses a specific verb and resource: 'Get details of a specific Dataflow Gen2 item.' It distinguishes itself from sibling tools like dataflow_list by emphasizing 'specific' and from dataflow_get_definition by using 'details' rather than 'definition.'

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

Usage Guidelines3/5

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

The word 'specific' implies this is for fetching a single known item, and the required IDs support that inference. However, there is no explicit guidance about when to prefer this over dataflow_list or dataflow_get_definition, or about prerequisites such as knowing the workspace and dataflow IDs beforehand.

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

dataflow_get_definitionA
Read-only

Get the definition of a Dataflow Gen2 item (long-running). Writes definition files to the specified output directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataflowIdYesThe dataflow ID
workspaceIdYesThe workspace ID
outputDirectoryPathYesDirectory path where definition files will be written

TDQS

A3.5/5.0
Behavior4/5

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

The description adds meaningful behavioral context beyond the readOnlyHint and destructiveHint annotations by stating that the operation is 'long-running' and that it writes definition files to a specified output directory. It does not fully describe file-overwrite behavior or how completion is surfaced, but it does disclose the key side effect and latency trait.

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?

Two short sentences convey the action, target resource, latency characteristic, and side effect with no wasted words. The most decision-relevant detail ('long-running') is front-loaded, and the file-writing behavior is stated immediately.

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

Completeness3/5

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

For a read-only export-style operation with full schema coverage, the description is mostly adequate, but it leaves gaps around what 'long-running' means operationally (e.g., whether the agent must poll or wait) and what the tool returns or how success is indicated. There is no output schema, so the description carries more responsibility for explaining the result, and it does not fully do so.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters with clear meanings. The description only reinforces the outputDirectoryPath purpose and adds no deeper per-parameter semantics such as expected path format, directory creation behavior, or file naming conventions.

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?

The description clearly states the action ('Get the definition') and the resource ('Dataflow Gen2 item'), and adds the concrete side effect of writing definition files to an output directory. It is distinguishable from sibling tools like dataflow_get because it targets definition export rather than item metadata, though it does not explicitly name an alternative.

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

Usage Guidelines2/5

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

The description gives no explicit guidance on when to use this tool versus alternatives such as dataflow_get, dataflow_update, or other get_definition tools. Usage is only implied by the verb 'Get the definition'; there are no stated prerequisites, exclusions, or conditions that would help an agent route to this tool confidently.

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

dataflow_get_refresh_statusB
Read-only

Get the status of a dataflow refresh job

ParametersJSON Schema
NameRequiredDescriptionDefault
dataflowIdYesThe dataflow ID
workspaceIdYesThe workspace ID
jobInstanceIdYesThe job instance ID from dataflow_refresh

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, and the description adds no behavioral detail beyond restating that it gets status. No information about response shape, status values, or polling behavior is disclosed.

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 a single, front-loaded sentence with no filler. Every word contributes to the core purpose.

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

Completeness3/5

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

For a low-complexity read-only getter with fully documented required parameters, the description is minimally viable. However, with no output schema and no mention of the relationship to dataflow_refresh in the description, an agent is missing useful context about the expected return value and the workflow position.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are already documented. The description itself adds no parameter-level meaning, but the schema covers this adequately, so the baseline of 3 is appropriate.

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 states a clear verb ('Get') and a specific resource ('the status of a dataflow refresh job'). It is immediately distinct from siblings like dataflow_refresh, which initiates a refresh, and dataflow_get, which retrieves dataflow metadata.

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

Usage Guidelines2/5

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

No usage guidance is provided. The description does not mention that this tool should be used after dataflow_refresh, how polling might work, or when an alternative like dataflow_get would be more appropriate.

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

dataflow_listA
Read-only

List all Dataflow Gen2 items in a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered by structured data. The description adds modest behavioral context by stating 'all' (no filtering) and 'Gen2' (item-type scope), but it discloses no further traits such as pagination, ordering, response shape, or failure behavior. There is no contradiction with the annotations.

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?

One eight-word sentence that front-loads the verb and resource, with zero filler or repetition. Every word contributes meaning, and there is no extraneous context.

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

Completeness4/5

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

For a simple one-parameter list operation with annotations covering the safety profile, the description is nearly complete: it names the operation, resource type, and target workspace. Since there is no output schema, the return format is not stated, but for a list operation the result is self-evident, making this a minor omission rather than a functional gap.

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

Parameters3/5

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

Schema description coverage is 100% — the single required parameter workspaceId is already documented as 'The workspace ID' in the schema. The description adds no additional parameter semantics, so the baseline of 3 applies per the rubric.

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 uses a specific verb ('List'), names the exact resource ('Dataflow Gen2 items'), and scopes it ('in a workspace'). The 'Gen2' qualifier removes ambiguity about item type and cleanly distinguishes it from sibling tools like dataflow_get, dataflow_create, and dataflow_delete, as well as from other *_list tools targeting different resource types.

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

Usage Guidelines3/5

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

The intended use is inferable — call this to enumerate all Dataflow Gen2 items in a workspace — but the description provides no explicit guidance on when to prefer it over alternatives such as dataflow_get or other *_list siblings. No exclusions, fallback conditions, or alternative-routing hints are stated; the pattern of sibling list tools implies the usage rather than spelling it out.

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

dataflow_refreshA

Trigger a refresh of a Dataflow Gen2 item

ParametersJSON Schema
NameRequiredDescriptionDefault
dataflowIdYesThe dataflow ID
workspaceIdYesThe workspace ID

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the description is not responsible for the basic safety profile. It adds that the target is a Dataflow Gen2 item and that the action is a 'trigger', which implies an asynchronous operation, but it does not explicitly disclose returns, side effects, or follow-up status checking.

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 a single, front-loaded sentence with no wasted words. It immediately conveys the verb and resource, making it easy for an agent to parse quickly.

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

Completeness3/5

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

The schema fully covers the two required parameters and the action is simple, but with no output schema, the description leaves the return behavior and asynchronous nature of the refresh unstated. The sibling dataflow_get_refresh_status hints at follow-up, but the description itself does not provide that context.

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

Parameters3/5

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

Input schema coverage is 100%, and both parameters already have clear descriptions. The tool description adds no additional parameter-level meaning, so the baseline score of 3 is appropriate.

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 states a specific verb ('Trigger'), a clear resource ('a Dataflow Gen2 item'), and the action ('refresh'). This distinguishes it from related siblings like dataflow_get_refresh_status and dataflow_delete, and from semantic_model_refresh, which targets a different resource type.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives, no mention that the refresh is asynchronous, and no indication that status should be tracked via dataflow_get_refresh_status. It only states the action without context for invocation sequencing.

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

dataflow_updateA

Update a Dataflow Gen2 item's name or description

ParametersJSON Schema
NameRequiredDescriptionDefault
dataflowIdYesThe dataflow ID
descriptionNoNew description
displayNameNoNew display name
workspaceIdYesThe workspace ID

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate this is a non-read-only, non-destructive mutation. The description confirms the mutation scope (name or description) but adds no deeper behavioral context such as partial-update semantics, permission needs, or whether an update with neither field supplied is a no-op. No contradiction with annotations.

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 a single front-loaded sentence with no filler. It efficiently communicates the action, target resource, and affected fields.

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

Completeness4/5

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

For a simple metadata-update tool with full schema coverage and annotations covering the safety profile, the description is largely sufficient. It omits minor details like return behavior and the expectation of at least one optional field, but an agent can likely make a correct call with the available information.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all four parameters. The description only echoes 'name or description' and does not add meaning beyond the schema, such as clarifying that at least one optional field should be provided for a meaningful update.

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 states a specific verb ('Update'), a specific resource ('Dataflow Gen2 item'), and the exact scope ('name or description'). This clearly distinguishes the tool from siblings like dataflow_create, dataflow_delete, dataflow_refresh, and dataflow_get.

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

Usage Guidelines2/5

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

The description gives no explicit when-to-use guidance, no alternatives, and no prerequisites or exclusions. The intended usage must be inferred from the verb and resource, but no additional context helps an agent decide between this and related dataflow tools.

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

deployment_pipeline_assign_workspaceB

Assign a workspace to a deployment pipeline stage

ParametersJSON Schema
NameRequiredDescriptionDefault
stageIdYesThe stage ID
pipelineIdYesThe deployment pipeline ID
workspaceIdYesThe workspace ID to assign

TDQS

B3.3/5.0
Behavior2/5

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

The description merely restates the core mutation without disclosing behavioral details such as whether an existing workspace assignment is replaced, whether stages must be empty before assignment, or any pipeline state constraints. Annotations already convey that it is a non-read-only, non-destructive operation, so the description adds little beyond them.

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?

A single, front-loaded sentence with no wasted words. It conveys the action, object, and target in the most compact useful form.

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

Completeness3/5

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

For a simple three-parameter mutation, the basics are present: the action is stated and the schema fully documents parameters and required fields. However, the description omits any usage context or exclusions, so an agent gets no help with edge cases like existing assignments or relationship to adjacent pipeline operations.

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

Parameters3/5

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

Schema description coverage is 100% and each parameter already has a clear description, so the tool description need not repeat them. It adds no extra meaning, but none is required given the complete 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 uses a specific verb ('Assign') and states the resource and target ('a workspace to a deployment pipeline stage'), which clearly distinguishes it from the sibling unassign_workspace and deploy operations. It is immediately actionable.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool instead of alternatives; for instance, it does not mention that unassign_workspace removes an assignment or that deploy is needed to push changes. Choosing this over siblings is left to tool-name inference.

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

deployment_pipeline_createC

Create a new deployment pipeline

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoDescription of the deployment pipeline
displayNameYesDisplay name for the deployment pipeline

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the tool is known to mutate without being destructive. The description adds only that a new pipeline is created, which largely restates the tool name. It does not disclose what creation entails, what is returned, or any side effects beyond existence of the resource.

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?

The description is a single, compact sentence with no filler. It is appropriately short for a simple CRUD tool, though it could have included one or two extra clauses about usage context without becoming verbose.

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

Completeness3/5

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

This is a simple two-parameter create operation with a fully documented schema and no output schema. The description is minimally sufficient for an agent to understand that it creates a deployment pipeline, but it omits any mention of follow-up steps, return behavior, or distinguishing context among the many deployment_pipeline_* siblings.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema fully documents both parameters: displayName and description. The description adds no parameter-level information, but none is needed because the schema already carries the semantic weight. Baseline 3 is appropriate.

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?

The description uses a specific verb and resource: 'Create a new deployment pipeline.' It is clear this is a creation operation, which semantically distinguishes it from sibling operations like update, delete, get, and deploy. However, it does not explicitly name or contrast any sibling, so it stops short of a top score.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives such as deployment_pipeline_update, deployment_pipeline_deploy, or deployment_pipeline_get. The create verb implies usage, but there are no conditions, prerequisites, or exclusions stated.

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

deployment_pipeline_deleteC
Destructive

Delete a deployment pipeline

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineIdYesThe deployment pipeline ID

TDQS

C2.9/5.0
Behavior2/5

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

The annotations already mark this as destructive (destructiveHint=true, readOnlyHint=false), and the description merely restates the delete action without adding behavioral context. It does not disclose irreversibility, cascading effects on stages or workspaces, or any authorization requirements.

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?

The description is a single, front-loaded sentence with no filler words or redundancy. It is appropriately concise, though it sacrifices potentially useful context in favor of brevity.

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

Completeness3/5

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

For a simple one-parameter destructive tool, the schema and annotations cover the essential invocation details. However, the description omits clarification about deletion effects, return behavior, and how it differs from the similar-sounding pipeline_delete, leaving moderate gaps.

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

Parameters3/5

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

The schema has 100% description coverage for the only parameter, pipelineId, documented as 'The deployment pipeline ID'. The description adds no parameter-level meaning beyond what the schema already provides, so the baseline score of 3 applies.

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?

The description states a specific verb ('Delete') and a specific resource type ('deployment pipeline'), which clearly conveys the operation and distinguishes it from sibling tools like pipeline_delete. However, it does not elaborate beyond the action and resource named in the tool itself.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as pipeline_delete or deployment_pipeline_deploy. It neither states selection criteria nor mentions exclusions, leaving the agent to infer context from the tool name alone.

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

deployment_pipeline_deployA

Deploy items from one stage to another in a deployment pipeline (long-running)

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoDeployment note
itemsNoSpecific items to deploy (deploys all if omitted)
pipelineIdYesThe deployment pipeline ID
workspaceIdNoThe workspace ID (for workspace guard validation)
sourceStageIdYesThe source stage ID to deploy from
targetStageIdNoThe target stage ID (defaults to the next stage)

TDQS

A3.5/5.0
Behavior3/5

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

The description adds the useful behavioral note that the operation is 'long-running', which is not captured by the annotations. However, it does not disclose what the call returns, whether it triggers an asynchronous operation, or what side effects deployment has on target stage items, leaving the agent to infer these aspects.

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?

A single sentence with no filler, and the most important behavioral qualifier ('long-running') is included parenthetically. Every part of the description earns its place.

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

Completeness3/5

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

For an asynchronous mutation-style tool with no output schema, the description is minimal. It mentions long-running behavior but does not reference how to monitor the operation or what the return value represents, which is important context given the sibling tool deployment_pipeline_get_operation exists.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters and the description is not required to repeat them. The phrase 'from one stage to another' does add conceptual linkage between sourceStageId and targetStageId, but it does not add deeper meaning beyond the 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?

States a specific action ('Deploy'), the resource ('deployment pipeline'), and the operation's scope ('items from one stage to another'). This clearly distinguishes it from reading, creating, or deleting deployment pipeline resources, including the closely named deployment_pipeline_get_operation and deployment_pipeline_list_stages.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives, such as checking operation status with deployment_pipeline_get_operation or listing pipeline stages first. The context is implied by the name, but there are no explicit when-to-use or when-not-to-use instructions.

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

deployment_pipeline_getB
Read-only

Get details of a specific deployment pipeline

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineIdYesThe deployment pipeline ID

TDQS

B3.1/5.0
Behavior2/5

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

The description adds no behavioral detail beyond the readOnlyHint/destructiveHint annotations; it simply restates the get operation. It doesn't disclose response contents, error behavior, or any side effects, though the annotations already establish safety.

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?

A single, front-loaded sentence with no filler. It conveys the operation and resource in as few words as possible.

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

Completeness3/5

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

For a simple one-parameter read tool with safety annotations, the description is minimally viable. However, it doesn't clarify what 'details' means, what the response contains (no output schema exists), or how this differs from deployment_pipeline_get_operation, leaving some gaps.

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

Parameters3/5

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

Schema description coverage is 100%, with pipelineId already described as 'The deployment pipeline ID'. The description adds no additional parameter meaning, so the baseline of 3 applies given the schema fully documents the parameter.

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?

Description states a specific verb ('Get') and resource ('details of a specific deployment pipeline'), which clearly indicates a read operation on one pipeline. It doesn't explicitly name sibling tools like deployment_pipeline_get_operation or deployment_pipeline_list, but the 'specific' wording and resource distinction are sufficient to differentiate at a basic level.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives. The description does not mention deployment_pipeline_list for enumerating pipelines, deployment_pipeline_get_operation for operation details, or any condition that selects this tool over those siblings.

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

deployment_pipeline_get_operationB
Read-only

Get details of a specific deployment pipeline operation

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineIdYesThe deployment pipeline ID
operationIdYesThe operation ID

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds minimal behavioral context by clarifying that it returns details for a specific operation, but it does not describe what the details contain, such as status, progress, or timestamps, especially since there is no output schema.

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?

The description is a single, direct sentence with no filler or repetition. It is appropriately sized for a simple getter, though it could have been slightly more informative by naming the sibling list operation.

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

Completeness3/5

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

For a read-only operation with fully documented required parameters, the description is adequate. However, with no output schema, it does not clarify what operation details are returned or how this operation relates to deployment_pipeline_list_operations, leaving some ambiguity for the agent.

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

Parameters3/5

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

Schema description coverage is 100%, and both pipelineId and operationId have clear descriptions. The tool description does not add further parameter-level meaning beyond the schema, which is acceptable given the high schema coverage.

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?

The description states a clear verb ('Get') and resource ('details of a specific deployment pipeline operation'), so an agent can tell this fetches one operation rather than a list. It is concise and matches the tool name without being a pure tautology, though it does not explicitly contrast with similar sibling tools.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool instead of deployment_pipeline_list_operations for enumerating operations or deployment_pipeline_get for pipeline-level details. The intended use is implied by the required IDs, but no explicit context, exclusions, or alternative routing is provided.

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

deployment_pipeline_listA
Read-only

List all deployment pipelines accessible to the user

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

The annotations already establish readOnlyHint=true and destructiveHint=false, so the description's job is lighter. It adds the useful behavioral scoping 'accessible to the user' but does not disclose pagination, ordering, or response shape; this is minor for a parameterless list, so a 3 is appropriate.

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?

One sentence, eight words, with the action, resource, and scope all front-loaded. There is no filler or redundant restatement of the tool name.

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

Completeness4/5

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

For a zero-parameter, read-only listing tool, the definition is nearly complete: an agent knows what will be listed and that the operation is safe. The only missing piece is a description of returned fields, but the verb 'List' plus no output schema still leaves enough for invocation.

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?

There are no parameters and schema coverage is 100%, so there is no parameter burden for the description to carry. The baseline for zero-parameter tools is 4, and the description does not attempt to over-explain what does not exist.

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 names the exact verb ('List') and resource ('deployment pipelines'), with the scoping qualifier 'accessible to the user', which separates it from a detail retrieval sibling like deployment_pipeline_get. This makes the tool's purpose unambiguous.

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

Usage Guidelines3/5

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

The description gives a clear enumeration context but does not explicitly state when to choose it over deployment_pipeline_get or the stage/item list siblings. The sibling naming pattern implies the usage, so guidance is present only by inference.

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

deployment_pipeline_list_operationsA
Read-only

List operations (deployment history) for a deployment pipeline

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineIdYesThe deployment pipeline ID

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description aligns with those. It adds the 'deployment history' context, but does not disclose ordering, pagination, or the shape of the returned operation list.

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 a single, focused sentence with no filler. It front-loads the action and resource, and every word contributes to understanding the tool's purpose.

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

Completeness4/5

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

For a simple read-only list tool with one required parameter and no output schema, the description is sufficiently complete. It communicates what the tool returns conceptually, though additional detail about the operation list contents would improve it.

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

Parameters3/5

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

The schema describes pipelineId as 'The deployment pipeline ID' and coverage is 100%. The description adds no further parameter-level detail, so it meets the baseline but does not go beyond what the schema already provides.

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?

The description clearly identifies the action (list operations), the resource (deployment pipeline), and scopes the result as deployment history. It is distinguishable from the sibling deployment_pipeline_get_operation by the list vs. get contrast, though it does not explicitly name the alternative.

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

Usage Guidelines3/5

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

The phrase 'deployment history' implies when this tool should be used, but the description provides no explicit guidance about alternatives or exclusions. An agent must infer from sibling names that get_operation is for individual operations.

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

deployment_pipeline_list_stage_itemsA
Read-only

List all items in a specific deployment pipeline stage

ParametersJSON Schema
NameRequiredDescriptionDefault
stageIdYesThe stage ID
pipelineIdYesThe deployment pipeline ID

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the 'all items' scope, but does not disclose other behavioral traits such as pagination, ordering, required permissions, or return value shape. It is adequate but minimal.

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?

A single, focused sentence that states the action and resource with no wasted words. The core information is front-loaded, making it easy to scan.

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 simple read-only list operation with fully documented parameters and safety annotations, the description is complete enough for an agent to select and invoke the tool correctly. No output schema exists, but the expected result is straightforward for a list operation.

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

Parameters3/5

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

Schema description coverage is 100%, and both stageId and pipelineId have clear descriptions. The tool description does not add meaning beyond the schema, which is acceptable since the schema already documents the parameters fully.

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 states a specific verb ('List'), a clear resource ('all items in a specific deployment pipeline stage'), and the required scope (pipeline and stage). It distinguishes itself from sibling tools like deployment_pipeline_list_stages, which lists stages rather than items within a stage.

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

Usage Guidelines2/5

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

The description does not provide any guidance on when to use this tool versus alternatives, nor does it mention exclusions or sibling tools that might be more appropriate for related tasks. Usage must be inferred entirely from the name and resource description.

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

deployment_pipeline_list_stagesC
Read-only

List all stages in a deployment pipeline

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineIdYesThe deployment pipeline ID

TDQS

C2.9/5.0
Behavior2/5

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

The annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile, but the description adds no behavioral context beyond the name — nothing about what 'all stages' includes, pagination, ordering, or error behavior for an unknown pipelineId. It does not contradict the annotations.

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?

A single front-loaded sentence with no filler, appropriately sized for a one-parameter read-only tool. It is efficient, though it edges toward under-specification by restating the tool name almost verbatim.

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

Completeness3/5

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

For a simple 1-param read-only list, the core call contract (pipelineId → stages) is conveyed and annotations cover the safety profile. However, with no output schema, the return shape of a stage is entirely unspecified, and no disambiguation from deployment_pipeline_list_stage_items is offered, leaving modest gaps.

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

Parameters3/5

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

Schema coverage is 100% since pipelineId is documented as 'The deployment pipeline ID', so the baseline of 3 applies. The description only loosely ties to the parameter by mentioning 'a deployment pipeline' and contributes no additional semantic detail.

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?

The description names a specific verb ('List') and resource ('stages in a deployment pipeline'), which is clear and accurately reflects the operation. However, it stops short of explicitly distinguishing itself from the similarly named sibling deployment_pipeline_list_stage_items, so differentiation rests on the resource noun alone.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus closely related siblings such as deployment_pipeline_list_stage_items or deployment_pipeline_list_operations. No prerequisites (e.g., needing a valid pipeline ID) or exclusion conditions are mentioned; usage must be inferred entirely from the tool name.

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

deployment_pipeline_unassign_workspaceA
Destructive

Unassign a workspace from a deployment pipeline stage

ParametersJSON Schema
NameRequiredDescriptionDefault
stageIdYesThe stage ID
pipelineIdYesThe deployment pipeline ID
workspaceIdYesThe workspace ID to unassign

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=true. The description clarifies that the destructive action is an unassignment rather than a workspace deletion, which adds useful context, but it does not mention side effects, reversibility, or whether the action is asynchronous. Given the annotation coverage, this is adequate but not rich.

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 a single focused sentence with no filler. The verb and object are front-loaded, and every word contributes to the tool's meaning.

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

Completeness3/5

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

For a simple three-parameter mutating tool with complete schema and annotations, the description is nearly sufficient. However, it omits caveats such as whether a stage must contain the workspace before unassignment, whether unassignment can affect deployment, or how to confirm success. Since there is no output schema, a bit more operational context would improve completeness.

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

Parameters3/5

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

The input schema has 100% description coverage for all three parameters, so the schema already documents their meaning. The description adds no additional parameter-level semantics, which is acceptable but not additive.

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 states a precise operation: 'Unassign a workspace from a deployment pipeline stage.' It includes the verb, the object being acted on, and the containing resource, and it clearly differentiates from the inverse sibling deployment_pipeline_assign_workspace.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives such as deployment_pipeline_assign_workspace or deployment_pipeline_list_stage_items. There are no prerequisites, exclusions, or conditions stated, so the agent must infer usage entirely from the tool name.

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

deployment_pipeline_updateB

Update a deployment pipeline's name or description

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineIdYesThe deployment pipeline ID
descriptionNoNew description
displayNameNoNew display name

TDQS

B3.2/5.0
Behavior2/5

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

The annotations already indicate readOnlyHint=false and destructiveHint=false, so the description adds no new behavioral context beyond the fact that this is an update. It doesn't disclose side effects, whether changes are immediately visible, whether existing settings are preserved, or any permission requirements. No contradiction exists, but there is also no added transparency.

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 a single front-loaded sentence that conveys the essential operation with no wasted words. It is appropriately sized for a simple update tool with three well-documented parameters.

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

Completeness4/5

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

For a simple update operation with three flat parameters and full schema coverage, the description is largely sufficient to understand what the tool does. It could be marginally improved by noting that only the specified fields are changed and others remain intact, but the core invocation context is complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all three parameters. The description adds minimal semantic value by mentioning 'name or description', which maps to displayName and description, but it does not provide additional details about formats, constraints, or relationships between parameters.

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?

The description clearly states the action ('Update') and the resource ('a deployment pipeline'), and identifies the mutable fields ('name or description'). It does not explicitly differentiate from sibling tools like deployment_pipeline_get or deployment_pipeline_create, but the verb and resource scope are unambiguous.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, nor any mention of when not to use it. For example, it doesn't note that deployment_pipeline_get should be used to retrieve a pipeline, or that creating/deleting pipelines requires different tools. The usage context is only implied by the tool name and description.

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

environment_cancel_publishA
Destructive

Cancel an ongoing environment publish operation

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
environmentIdYesThe environment ID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate destructiveHint=true, so the mutation risk is known. The description adds the 'ongoing' scoping, which is useful, but it does not disclose side effects, failure behavior when no publish is ongoing, or whether cancellation is partial or full. No contradiction with annotations exists.

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 a single, front-loaded sentence with no filler. Every word adds meaning, and the key scoping term 'ongoing' is included without extra verbosity.

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

Completeness4/5

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

For a simple cancellation tool with two well-documented ID parameters and destructive annotations, the description is largely sufficient. It could mention what happens if no publish operation is ongoing or describe the outcome of cancellation, but these are minor gaps given the tool's low complexity.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters described as 'The workspace ID' and 'The environment ID'. The tool description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate.

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 uses a specific verb ('Cancel') and a specific resource ('environment publish operation'), making the tool's function immediately clear. It also distinguishes itself from related siblings like environment_publish and environment_delete by targeting an in-progress publish operation.

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

Usage Guidelines3/5

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

The word 'ongoing' implies the tool should be used only when a publish operation is already in progress, providing some usage context. However, it does not explicitly state when not to use it, nor does it reference alternatives such as checking publish status or waiting for completion.

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

environment_createA

Create a new environment in a workspace. Optionally seed with a definition by passing definitionDirectoryPath.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoDescription of the environment
displayNameYesDisplay name for the environment
workspaceIdYesThe workspace ID
definitionDirectoryPathNoOptional directory containing environment definition files to seed the environment

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate a non-read-only, non-destructive operation, and the description confirms the create behavior. It adds the optional seeding behavior, but does not disclose what is returned, whether creation is asynchronous, or any naming/validation constraints beyond the schema.

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?

Two concise sentences with the core action front-loaded and no filler. Every word contributes to understanding the tool's purpose and optional seeding capability.

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

Completeness4/5

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

For a simple create tool with a fully documented input schema, the description is largely complete. It could mention the response shape or post-creation lifecycle, but those are minor gaps given the schema coverage and the presence of sibling tools like environment_publish and environment_get.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description highlights definitionDirectoryPath's role but does not add meaning beyond the schema's own parameter descriptions.

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?

States a specific action ('Create') and resource ('a new environment in a workspace'), with an optional seeding behavior. It is clearly distinguishable from sibling operations like environment_update, environment_delete, environment_publish, and workspace_create.

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?

Clearly signals when to use: when creating a new environment in a workspace. The optional definitionDirectoryPath further clarifies a common use case. It does not explicitly exclude alternatives, but the create/update/delete sibling pattern makes the intended use unambiguous.

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

environment_deleteC
Destructive

Delete an environment

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
environmentIdYesThe environment ID

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already signal readOnlyHint=false and destructiveHint=true, which cover the core danger. The description simply restates 'delete' and adds no context about whether deletion is permanent, cascades to attached resources, or requires special permissions.

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?

Three words with no filler and the core action front-loaded. It is extremely easy to skim, though the brevity borders on under-specification.

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

Completeness3/5

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

For a simple two-parameter destructive operation with clear annotations, the description is basically adequate. However, it omits any note about side effects, return behavior, or prerequisites, and there is no output schema to fill those gaps.

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

Parameters3/5

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

Both parameters (workspaceId and environmentId) are fully documented in the schema with descriptions, so schema coverage is 100%. The description adds no parameter-level information, but the schema already carries that burden.

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 the action and target precisely ('Delete an environment'). It is unambiguous against delete tools for other resources, but it does not explicitly differentiate from environment-scoped operations like environment_delete_staging_custom_library or clarify that it removes the entire environment.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus updating an environment, deleting a staging library, or other environment-scoped operations. No prerequisites, dependency, or warning context is provided.

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

environment_delete_staging_custom_libraryA
Destructive

Delete a custom library from environment staging by full filename (e.g., samplelibrary.jar)

ParametersJSON Schema
NameRequiredDescriptionDefault
libraryNameYesFull library filename including extension
workspaceIdYesThe workspace ID
environmentIdYesThe environment ID

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, and the description aligns by using 'Delete.' It adds useful scope context about the staging custom library target but does not disclose additional behavior such as irreversibility beyond the annotation or effects on published environments.

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 a single front-loaded sentence with no wasted words. The parenthetical filename example is the only extra detail and it earns its place by clarifying expected input format.

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

Completeness4/5

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

For a three-parameter destructive operation with fully described schema properties and no output schema, the description plus annotations are largely sufficient. It could optionally mention discovering the exact filename via environment_list_staging_libraries, but the example mitigates that gap.

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

Parameters3/5

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

Schema description coverage is 100%, with libraryName already documented as 'Full library filename including extension.' The description reinforces this with 'full filename' and the 'samplelibrary.jar' example, but it adds only marginal meaning beyond the 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 states a specific action ('Delete'), a precise resource ('custom library'), and a scope ('environment staging'), with a concrete filename example. This clearly separates it from environment_delete, which deletes the whole environment, and from environment_remove_staging_external_library, which targets external rather than custom libraries.

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?

The description gives clear context: it is for deleting custom libraries in staging, and the libraryName must be the full filename. It does not explicitly name sibling alternatives or exclusion cases, but the 'custom library' scope is enough to guide tool selection.

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

environment_export_published_external_librariesA
Read-only

Export the published external libraries as an environment.yml file. Writes the yaml to disk.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
environmentIdYesThe environment ID
outputFilePathYesFile path where the environment.yml content will be written

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds a meaningful behavioral detail: it writes the yaml to disk, which is a side effect not captured by annotations. It does not, however, describe overwrite behavior or error conditions.

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?

Two short sentences with no filler. The core action and side effect are front-loaded, and every word earns its place.

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

Completeness4/5

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

For a simple three-parameter tool with full schema coverage and annotations already covering safety, this description is largely complete. The only minor gap is not explicitly stating that the environment must already have published external libraries, but the 'published' qualifier makes that reasonably clear.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters. The description only reinforces that outputFilePath receives the environment.yml content, adding no new semantic detail beyond what the schema provides. Baseline 3 is appropriate.

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 uses a specific verb ('Export'), names the resource ('published external libraries'), and states the concrete output ('environment.yml file'). It clearly differentiates from the sibling tool environment_export_staging_external_libraries by specifying 'published' rather than 'staging'.

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

Usage Guidelines3/5

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

The description implies this tool is for published external libraries, and the sibling name environment_export_staging_external_libraries provides an alternative. However, it does not explicitly state when to use this tool versus the staging export, nor does it mention prerequisites such as the environment needing to be published first.

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

environment_export_staging_external_librariesA
Read-only

Export the staging external libraries as an environment.yml file. Writes the yaml to disk.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
environmentIdYesThe environment ID
outputFilePathYesFile path where the environment.yml content will be written

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the useful behavioral detail that the content is written to disk, which is a side effect the agent should know, though it doesn't describe overwrite behavior or return behavior.

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?

Two short sentences with no filler, front-loading the core purpose before the side-effect detail. Every word earns its place.

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

Completeness4/5

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

For a simple three-parameter tool with complete schema descriptions and safety annotations, the description is largely sufficient. It clearly identifies what is exported, where it is written, and via the staging qualifier, which sibling it relates to. A slight gap is lack of detail about what happens if the output file already exists.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all three parameters. The description adds minimal extra meaning beyond confirming the outputFilePath is where the yaml content lands, but it doesn't materially enhance parameter understanding.

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 clearly states a specific action ('Export') and resource ('staging external libraries') and specifies the output format ('environment.yml file'). It also distinguishes itself from the sibling environment_export_published_external_libraries by emphasizing 'staging'.

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?

The description makes the use case clear: exporting staging external libraries. It doesn't explicitly name the alternative for published libraries, but the 'staging' qualifier and the existence of the published-export sibling provide adequate context for selecting this tool.

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

environment_getA
Read-only

Get metadata of a specific environment including its publish state

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
environmentIdYesThe environment ID

TDQS

A3.6/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds that the result includes publish state, which is useful beyond the annotation, but it does not disclose other behavioral aspects such as error cases or whether the metadata is a summary or full representation.

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 a single, focused sentence that states the action, target, and a key piece of returned information. There is no filler or redundant restatement of the tool name.

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

Completeness4/5

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

For a simple read-only get operation with two fully described parameters and safety annotations, the description is mostly complete. The only notable gap is that it does not clarify how this differs from environment_get_definition, but the 'publish state' mention provides some differentiation.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already documented with basic meaning. The description reinforces that these identify the 'specific environment,' but it adds no additional semantic detail such as ID format, required permissions, or parameter relationships.

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?

The description uses a specific verb and resource: 'Get metadata of a specific environment.' The phrase 'including its publish state' adds useful detail and helps distinguish this from environment_list and environment_get_definition, though it does not explicitly name those siblings.

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

Usage Guidelines3/5

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

The description implies use when you need metadata for one specific environment, since it says 'specific environment' and requires both workspaceId and environmentId. However, it gives no explicit guidance about when to use environment_list, environment_get_definition, or other environment-related tools instead.

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

environment_get_definitionA
Read-only

Get the environment public definition (long-running). Writes definition files to the specified output directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
environmentIdYesThe environment ID
outputDirectoryPathYesDirectory path where definition files will be written

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds meaningful behavioral context by stating the operation is long-running and writes definition files to a local output directory, which is a side effect not captured by the annotations. This helps the agent set expectations beyond the safety hints.

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 two short sentences with no filler. It front-loads the core action and then immediately notes the file-writing side effect, which is the most important extra behavioral detail.

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

Completeness3/5

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

The description is adequate for a straightforward get-definition tool, but the 'long-running' label is not elaborated. With no output schema, the agent does not learn how completion is reported, whether an operation ID is returned, or how to check progress, which is a notable gap for an asynchronous operation.

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

Parameters3/5

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

The input schema covers all three parameters with descriptions, so the schema already carries the parameter semantics. The description mentions the output directory but does not add deeper meaning about workspaceId or environmentId beyond what the schema provides. Baseline 3 is appropriate.

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?

The description uses a specific verb ('Get') and resource ('environment public definition'), and clarifies that it writes definition files to an output directory. It is clear enough to distinguish from environment_get, though it does not explicitly name the distinguishing sibling.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives like environment_get or environment_update_definition. The 'long-running' note hints at behavior, but the description does not state when this is the appropriate choice or when another environment tool should be used.

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

environment_get_published_spark_computeA
Read-only

Get the published (currently effective) Spark compute configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
environmentIdYesThe environment ID

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the useful context that this returns the currently effective published configuration rather than staging, but does not describe response structure, error behavior, or any operation-specific caveats. This is adequate but adds only modest behavioral detail.

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?

A single sentence that front-loads the operation and the key distinguishing qualifier. Every word earns its place, and there is no redundant or filler content.

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

Completeness4/5

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

For a simple read-only GET tool with two well-documented parameters and safe annotations, the description is nearly complete. It does not describe the return payload structure, but the phrase 'Spark compute configuration' adequately communicates what the caller receives.

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

Parameters3/5

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

Schema description coverage is 100%, so the workspaceId and environmentId parameters are fully documented in the schema. The description adds no additional parameter-level meaning, which is acceptable given the schema already handles parameter semantics.

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 states a specific verb ('Get'), a specific resource ('Spark compute configuration'), and an important scoping qualifier ('published (currently effective)'). This clearly distinguishes the tool from environment_get_staging_spark_compute and environment_get_definition without needing to open the schema.

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?

The description gives clear context for when to use this tool: when the published/effective Spark compute configuration is needed. It does not explicitly name the sibling staging alternative or state when not to use it, but the 'published (currently effective)' wording makes the primary use case unambiguous.

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

environment_get_staging_spark_computeA
Read-only

Get the staging Spark compute configuration for an environment

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
environmentIdYesThe environment ID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description's 'Get' aligns with those. The description adds the staging-scope context but does not disclose additional behavioral details such as return shape or whether the configuration may be null or incomplete.

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 a single, front-loaded sentence with no filler or redundancy. Every word contributes to identifying the action and the target resource.

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

Completeness4/5

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

For a low-complexity read-only getter with two clearly documented parameters and a safe annotation profile, this description is adequate to select and invoke the tool correctly. It could be improved by briefly describing what the returned staging Spark compute configuration contains, but the absence of an output schema does not make the tool ambiguous.

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

Parameters3/5

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

The input schema already provides 100% coverage for both parameters with 'The workspace ID' and 'The environment ID'. The description adds no parameter-level meaning beyond saying the configuration belongs to an environment, so the baseline of 3 applies.

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 states a specific verb ('Get') and a specific resource ('staging Spark compute configuration') tied to an environment. The word 'staging' clearly distinguishes it from sibling tools like environment_get_published_spark_compute and environment_update_staging_spark_compute.

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

Usage Guidelines3/5

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

The usage context is implied by the word 'staging': use this when you need the staging Spark compute configuration. However, it does not explicitly say when not to use it or name alternatives like environment_get_published_spark_compute for the published counterpart.

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

environment_import_staging_external_librariesA

Upload an environment.yml file to replace the environment's external libraries list. Reads yaml from a file.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
yamlFilePathYesPath to an environment.yml file
environmentIdYesThe environment ID

TDQS

A4.1/5.0
Behavior4/5

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

The description discloses the key behavioral trait: the existing external libraries list is replaced. This goes beyond the annotations, which only indicate readOnlyHint=false and destructiveHint=false, by specifying exactly what state changes.

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?

Two short sentences, both informative: the first states the operation, the second clarifies how input is consumed. No filler or redundant content.

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

Completeness3/5

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

The description covers the main action and input, but it omits that this targets the staging external libraries specifically, which is relevant given published-library variants. It also does not mention expected YAML format, validation behavior, or what happens on failure.

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

Parameters3/5

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

Parameter schema coverage is 100%, with all three parameters described. The description adds minimal extra meaning beyond 'yamlFilePath' being a path to an environment.yml file, so a baseline score of 3 is appropriate.

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?

Description states a specific action: upload an environment.yml file to replace the environment's external libraries list. This clearly distinguishes it from siblings like environment_export_staging_external_libraries and environment_upload_staging_custom_library.

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?

The description makes clear when to use this tool: when replacing the external libraries list from a YAML file. It does not explicitly mention alternatives or exclusion cases, but the replace semantics provide sufficient context against sibling operations.

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

environment_listA
Read-only

List all environments in a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the workspace scoping behavior but does not disclose possible pagination, filtering, or return characteristics. With annotations present, this is adequate but not rich.

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 a single, focused sentence with no filler. Every word contributes to understanding the tool's purpose and scope.

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 low-complexity list operation with one required parameter, full schema coverage, and read-only annotations, the description is complete enough for an agent to invoke it correctly. No critical operational details are missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents workspaceId as 'The workspace ID'. The description does not add any extra meaning beyond what the schema already provides, so the baseline score of 3 applies.

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 states a specific verb ('List'), a resource ('environments'), and a scope ('in a workspace'). This clearly distinguishes it from sibling tools like environment_get (single item), environment_create, or environment_delete.

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?

The description makes the intended context clear: use this when you need all environments belonging to a workspace. It does not explicitly mention alternatives or exclusions, but the 'list all' phrasing and workspace scope provide unambiguous usage context.

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

environment_list_published_librariesA
Read-only

List published (currently effective) libraries for an environment

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
environmentIdYesThe environment ID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the useful semantic detail that only published/currently effective libraries are returned, but it does not disclose return format or pagination behavior. This is acceptable for a simple read-only list tool.

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 one concise sentence with the verb and resource front-loaded. It contains no filler, redundant phrasing, or repeated schema information.

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

Completeness4/5

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

For a simple two-parameter, read-only list tool, the description plus annotations provide the core information needed to invoke it correctly. Minor gaps include the lack of explicit alternative routing to environment_list_staging_libraries and no mention of the return shape, but neither is critical for this simple operation.

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

Parameters3/5

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

The input schema fully documents both parameters (workspaceId and environmentId) with 100% coverage, so a baseline of 3 applies. The description does not add parameter-level detail, but it does not need to because the schema already carries that information.

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 uses a specific verb ('List'), a specific resource ('published (currently effective) libraries'), and a clear scope ('for an environment'). The qualifier 'currently effective' distinguishes it from the staging-library sibling (environment_list_staging_libraries), so an agent can tell this tool apart without inspecting schemas.

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

Usage Guidelines3/5

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

The phrase 'currently effective' implies this is the right tool when the agent wants the published libraries rather than staging libraries, but the description does not explicitly name the alternative or state when not to use it. Usage context is implied rather than stated.

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

environment_list_staging_librariesA
Read-only

List staging libraries (published + pending) for an environment

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
environmentIdYesThe environment ID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safe read behavior is covered. The description adds the useful status detail that both published and pending staging libraries are returned, but it does not describe output format or any pagination/filtering behavior. This is acceptable but not rich.

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?

A single front-loaded sentence states the action, object, scope, and result coverage with no filler. The parenthetical is informative and earns its place.

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

Completeness4/5

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

For a simple read-only list operation with two fully described required parameters and no nested objects, the description covers the essential semantics. The lack of an output schema is not a major gap for an inventory-style tool. It would only benefit from an explicit pointer to environment_list_published_libraries for published-only results.

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

Parameters3/5

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

Schema description coverage is 100%: workspaceId and environmentId each have meaningful descriptions. The tool description does not repeat parameter details, which is appropriate since the schema already documents them. It adds no extra parameter semantics, so the baseline 3 applies.

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?

Description uses a specific verb 'List' with concrete resource 'staging libraries' and scope 'for an environment'. The parenthetical '(published + pending)' makes the coverage explicit and differentiates it from the sibling environment_list_published_libraries, which focuses on published libraries only.

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

Usage Guidelines3/5

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

The purpose makes it clear when a user would call this tool, and the phrase 'published + pending' implicitly distinguishes it from environment_list_published_libraries. However, there is no explicit guidance about when to choose this tool over the closely related sibling, so the alternatives are left to inference.

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

environment_publishA

Trigger an environment publish to make staging changes effective (long-running)

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
environmentIdYesThe environment ID

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already indicate this is a mutating but non-destructive operation. The description adds the useful behavioral trait that the operation is 'long-running', but does not disclose what the response looks like, whether the call is asynchronous, or how cancellation might be handled.

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?

A single, front-loaded sentence conveys the action, purpose, and an important operational nuance ('long-running') with no filler or redundancy.

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

Completeness3/5

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

The core invocation details are present and the two required parameters are fully described in the schema. However, with no output schema, the description does not clarify the return value, operation status handling, or how this interacts with environment_cancel_publish for a long-running operation.

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

Parameters3/5

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

Schema coverage is 100%: both workspaceId and environmentId are documented in the input schema. The description adds no parameter-level detail, so the baseline of 3 applies.

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 states a specific action ('Trigger an environment publish') and the precise outcome ('make staging changes effective'). This clearly distinguishes it from environment_cancel_publish and other environment_* tools without needing to inspect schemas.

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?

The description provides a clear context for when to use the tool: when staging changes need to take effect. It does not explicitly mention exclusions or name alternatives like environment_cancel_publish, but the trigger condition is unambiguous.

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

environment_remove_staging_external_libraryA
Destructive

Remove a single external library from environment staging (one at a time)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe external library name (e.g., fuzzywuzzy)
versionYesThe external library version (e.g., 0.0.1)
workspaceIdYesThe workspace ID
environmentIdYesThe environment ID

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=true, so the destructive nature is covered. The description adds that the operation handles a single external library and targets environment staging specifically. This is useful but not deeply behavioral; it omits side effects or whether a publish is required afterward.

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?

A single short sentence with no filler. The core action, target, scope, and singular constraint are all front-loaded and immediately actionable.

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

Completeness4/5

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

For a simple one-item removal with four fully documented parameters and annotations carrying the destructive signal, the description is mostly sufficient. It could add whether this affects only the staging environment or also the published state, but the tool name and 'from environment staging' largely convey the scope.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters are already documented in the schema. The description adds no additional parameter-level detail beyond restating that it is a single external library operation. Baseline 3 is appropriate.

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?

States a specific verb and resource: 'Remove a single external library from environment staging.' The qualifier '(one at a time)' clearly signals the singular, non-batch nature of the operation, which distinguishes it from bulk import/export siblings and from custom-library operations.

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

Usage Guidelines2/5

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

The description gives no explicit guidance on when to choose this tool over alternatives such as environment_delete_staging_custom_library, environment_list_staging_libraries, or bulk import/export operations. The only usage hint is the implicit 'one at a time' behavior, which does not provide selection criteria.

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

environment_updateA

Update an environment's display name or description

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoNew description
displayNameNoNew display name
workspaceIdYesThe workspace ID
environmentIdYesThe environment ID

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate this is a mutating but non-destructive operation. The description adds that only display name or description are affected, which is useful behavioral context, though it does not disclose details like partial-update semantics or permission requirements.

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?

A single, concise sentence that immediately conveys the tool's purpose without unnecessary detail. Every word earns its place.

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

Completeness4/5

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

For a simple metadata-update tool with full schema coverage and annotations covering the mutation profile, the description is nearly complete. It could note that at least one of displayName or description should be supplied, but the current phrasing largely implies this.

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

Parameters3/5

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

The schema has 100% description coverage for all four parameters, so the baseline is 3. The description reinforces the roles of displayName and description as the updatable fields, but adds little beyond what the schema already states.

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 states a specific verb (Update), a specific resource (environment), and the exact fields affected (display name or description). This clearly distinguishes it from sibling tools like environment_update_definition and environment_delete.

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?

The description gives clear context: it is for updating an environment's display name or description. It does not explicitly mention exclusions or route to environment_update_definition for other update scenarios, which would be the next step up.

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

environment_update_definitionB

Override the environment public definition (long-running). Reads definition files from the specified directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
environmentIdYesThe environment ID
definitionDirectoryPathYesPath to a directory containing environment definition files

TDQS

B3.3/5.0
Behavior3/5

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

The description adds useful behavioral context beyond annotations by noting the operation is long-running and reads from a directory. However, it does not explain side effects, whether an operation ID is returned, or how to track completion. No contradiction with annotations exists.

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?

Two short sentences carry the key facts: the action, the long-running nature, and the input source. There is no filler or redundancy, and the core verb is front-loaded.

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

Completeness3/5

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

The tool is simple with three fully described parameters, but it is marked long-running and has no output schema. The description does not say what the caller receives or how to check operation status, leaving an important gap for correct invocation and follow-up.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds only marginal meaning by clarifying that definition files are read from the supplied directory, but it does not elaborate on file formats, expected contents, or directory structure.

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?

The description states a specific verb and resource: 'Override the environment public definition'. The term 'definition' distinguishes it from generic environment settings updates, though it does not explicitly contrast with sibling tools like environment_get_definition or environment_update.

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

Usage Guidelines2/5

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

No guidance is given on when to choose this tool over alternatives such as environment_update, environment_publish, or environment_get_definition. The phrase 'reads definition files from a specified directory' implies the use case but does not state conditions or exclusions.

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

environment_update_staging_spark_computeA

Update the staging Spark compute configuration (pool, cores, memory, runtimeVersion, sparkProperties). Set a sparkProperty value to null to remove it.

ParametersJSON Schema
NameRequiredDescriptionDefault
driverCoresNo
workspaceIdYesThe workspace ID
driverMemoryNoe.g., '56g'
instancePoolNo
environmentIdYesThe environment ID
executorCoresNo
executorMemoryNoe.g., '56g'
runtimeVersionNo
sparkPropertiesNo
dynamicExecutorAllocationNo

TDQS

A3.7/5.0
Behavior3/5

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

The description adds useful behavior beyond the annotations by explaining that setting a sparkProperty value to null removes it. However, it does not disclose whether omitted fields are left unchanged or reset, and it gives no detail on side effects of changing compute for the staging environment. The annotations only indicate that the operation is not read-only and not destructive.

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 two sentences, front-loaded with the action and resource, and contains no filler or redundant restatement. The null-removal note is a single high-value behavioral addition that earns its place.

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

Completeness3/5

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

For a ten-parameter mutation with no output schema and minimal annotations, the description is somewhat thin: it never states whether this is a partial patch or full replacement, and it omits dynamicExecutorAllocation. The core fields are covered and the schema provides structural detail, but an agent would still have to infer important update semantics.

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

Parameters3/5

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

The description groups the ten parameters into categories (pool, cores, memory, runtimeVersion, sparkProperties) and clarifies the null value semantics for sparkProperties, which partially compensates for the low 40% schema description coverage. It omits dynamicExecutorAllocation and does not add meaning beyond the schema for the required workspaceId and environmentId parameters. This is adequate but not thorough.

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 states a specific verb ('Update'), a specific resource ('staging Spark compute configuration'), and enumerates the affected settings: pool, cores, memory, runtimeVersion, sparkProperties. The 'staging' qualifier clearly distinguishes it from published/environment-wide siblings such as environment_get_published_spark_compute and environment_update.

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

Usage Guidelines3/5

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

The description makes the context clear: it is for updating the staging Spark compute configuration. However, it does not explicitly state when to prefer this over sibling tools like environment_update or environment_update_definition, nor does it mention what to use for published compute. Usage is implied rather than explicitly routed.

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

environment_upload_staging_custom_libraryA

Upload a custom library file (.jar, .py, .whl, .tar.gz, max 100MB) into environment staging. Reads the file from disk.

ParametersJSON Schema
NameRequiredDescriptionDefault
libraryNameNoLibrary name with extension (e.g., samplelibrary.jar). Defaults to the basename of libraryFilePath.
workspaceIdYesThe workspace ID
environmentIdYesThe environment ID
libraryFilePathYesPath to the library file to upload

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already show this is a mutating but not destructive operation. The description adds useful behavioral context beyond annotations: it reads the file from disk, accepts only certain file types, and enforces a 100MB maximum. It does not disclose overwrite/duplicate behavior, but the provided constraints are valuable and consistent with the annotations.

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 a single sentence with no filler. Every detail—action, target, accepted formats, size limit, and disk source—is front-loaded and earns its place.

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

Completeness4/5

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

For a 4-parameter upload tool with no output schema, the description is largely complete: it covers what is uploaded, where it is uploaded, accepted formats, size limits, and the source location. It does not mention what the response contains or what happens if a library with the same name already exists, but these are minor gaps for invocation.

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. The description adds meaning beyond the schema by specifying accepted file extensions, the 100MB size cap, and clarifying that libraryFilePath refers to a file on disk. This directly helps the agent populate parameters correctly.

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 clearly states a specific action ('Upload'), a specific resource ('custom library file'), and the destination ('environment staging'). It also names accepted file extensions and size limit, which distinguishes it from sibling tools that list, delete, or import external staging libraries.

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

Usage Guidelines3/5

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

The description implies this tool is for uploading a custom library from local disk into environment staging, which gives reasonable context. However, it does not explicitly name alternatives or exclusions, such as using environment_import_staging_external_libraries for external libraries or environment_delete_staging_custom_library for removal, so usage guidance is only implied rather than explicit.

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

eventhouse_createA

Create a new eventhouse in a workspace (long-running operation)

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoDescription of the eventhouse
displayNameYesDisplay name for the eventhouse
workspaceIdYesThe workspace ID

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already signal a mutating but non-destructive operation. The description adds a valuable behavioral trait: the operation is long-running, which affects how the agent should treat the call and its result. It doesn't describe polling or follow-up, but it surpasses what the annotations alone provide.

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?

A single, front-loaded sentence containing the essential verb, object, scope, and the long-running caveat. No filler or repetition of schema content.

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

Completeness4/5

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

For a simple create call with fully documented parameters and no output schema, the description covers the key invocation facts. The only gap is the lack of guidance on how to handle the long-running aspect, such as polling or checking the created eventhouse, which is useful but not critical.

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

Parameters3/5

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

The schema has 100% description coverage for all three parameters, so the description doesn't need to re-explain them. It adds no parameter-level detail beyond naming the workspace context, matching the baseline for fully documented schemas.

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?

States a specific action ('Create'), a specific resource ('eventhouse'), and the location context ('in a workspace'), plus flags the operation as long-running. This distinguishes it from eventhouse_update/eventhouse_delete and from create tools for other resources.

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?

Clearly conveys the intended use: provisioning a new eventhouse in a specified workspace. It does not explicitly mention alternatives or when not to use it, but the exclusions are inferable from sibling names like eventhouse_update and eventhouse_delete.

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

eventhouse_deleteA
Destructive

Delete an eventhouse

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
eventhouseIdYesThe eventhouse ID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already flag the operation as destructive (destructiveHint=true) and non-read-only, so the description does not need to restate that. Still, the description adds no extra behavioral context such as whether deletion is permanent, whether associated data is removed, or whether the operation is reversible.

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 a single clear sentence with no filler or redundant explanation. It is appropriately sized for a simple delete operation and front-loads the core action and object.

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

Completeness4/5

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

For a low-complexity delete tool with two fully documented parameters and a destructive annotation, the description is mostly complete. The only missing context is any irreversibility or cascade-effect warning, but that is partially mitigated by destructiveHint=true.

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

Parameters3/5

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

Schema description coverage is 100%: both required parameters have descriptions in the schema. The description itself adds no parameter-level detail, but with full schema coverage, a baseline score of 3 is appropriate.

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 states a specific verb ('Delete') and a specific resource ('an eventhouse'), making the tool's function unambiguous. It distinguishes this from sibling tools like eventhouse_get or eventhouse_update, and from other resource deletes by naming the resource type.

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

Usage Guidelines3/5

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

The intended usage is implied: use this tool when you need to delete an eventhouse. However, it does not explicitly mention preconditions, what to check before deleting, or why an agent might choose this over related tools such as kql_database_delete or eventhouse_update.

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

eventhouse_execute_kqlC

Execute a KQL query against an eventhouse's KQL database

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesKQL query string to execute
maxRowsNoMaximum number of rows to return (default 1000)
databaseYesKQL database name to query
workspaceIdYesThe workspace ID
eventhouseIdYesThe eventhouse ID

TDQS

C2.9/5.0
Behavior2/5

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

The annotations only indicate readOnlyHint=false and destructiveHint=false, which are not informative. The description does not disclose that KQL queries can potentially include management commands, that results may be large, or that this operation may not be purely read-only. It adds no behavioral context beyond 'execute a query'.

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 a single clear sentence with no filler or repetition. It is appropriately compact for a tool whose parameter details are already captured by the schema.

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

Completeness2/5

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

There is no output schema, so the description should indicate what the query returns or at least note that results are returned and capped by maxRows. It also doesn't clarify whether arbitrary KQL including mutating commands is allowed. For an execution tool, this leaves significant context missing.

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

Parameters3/5

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

Schema description coverage is 100%, and each parameter has a functional description. The tool description itself adds no extra parameter meaning, so the baseline of 3 applies.

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?

The description states a specific verb ('Execute'), a specific resource type (KQL query against an eventhouse's KQL database), and is clearly distinct from siblings like sql_endpoint_execute_query and semantic_model_execute_dax. It does not mention what the query returns, so it falls short of a 5, but the core purpose is unambiguous.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives such as sql_endpoint_execute_query or kql_database_get. The description implies 'use this for KQL queries against eventhouse databases' but provides no explicit conditions, exclusions, or alternative routing.

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

eventhouse_getB
Read-only

Get details of a specific eventhouse

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
eventhouseIdYesThe eventhouse ID

TDQS

B3.4/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds no extra behavioral context such as response format, pagination, or permissions, but it does not contradict the annotations.

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 a single concise sentence with no filler or redundancy. The verb and resource are front-loaded, making it easy for an agent to parse quickly.

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

Completeness4/5

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

For a simple read operation with two well-documented parameters and safe annotations, the description is largely sufficient. It could be improved by distinguishing itself from eventhouse_get_sql_endpoint or noting what 'details' includes, but nothing critical is missing for a basic get call.

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

Parameters3/5

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

Schema description coverage is 100% for both parameters (workspaceId and eventhouseId), so the schema fully documents them. The description adds no additional parameter-level meaning beyond what the schema already provides.

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?

The description states a clear verb ('Get') and resource ('details of a specific eventhouse'), which distinguishes it from list-type siblings at a basic level. However, it does not explicitly differentiate from closely related siblings like eventhouse_get_sql_endpoint or eventhouse_execute_kql.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as eventhouse_get_sql_endpoint or eventhouse_list. No exclusions, prerequisites, or context cues beyond the schema are provided.

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

eventhouse_get_sql_endpointA
Read-only

Get the query service URI and connection details for an eventhouse

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
eventhouseIdYesThe eventhouse ID

TDQS

A3.8/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true and destructiveHint=false, and the description's 'Get' aligns with those traits. The description adds the output focus (query service URI and connection details) but does not disclose further behavioral context such as authentication needs, permission requirements, or response variability.

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 a single, front-loaded sentence with no filler or redundant information. Every word contributes to explaining what the tool returns and for which resource type.

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

Completeness4/5

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

For a simple read-only lookup with two fully documented required parameters, the description is nearly complete: it names the resource type and the output. It would benefit from more detail about the exact shape of the returned connection details, especially since there is no output schema, but the tool's low complexity and the safety annotations reduce the gap.

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

Parameters3/5

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

Both parameters are already fully described in the input schema with 'The workspace ID' and 'The eventhouse ID'. Since schema description coverage is 100%, the description doesn't need to add parameter details, and it doesn't add any beyond implying the IDs identify the eventhouse whose endpoint is retrieved.

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 clearly states the action ('Get') and the specific resource and payload ('query service URI and connection details for an eventhouse'). It is distinct from sibling tools like lakehouse_get_sql_endpoint and warehouse_get_sql_endpoint because it explicitly scopes the operation to an eventhouse.

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

Usage Guidelines3/5

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

The description implies the tool should be used when an agent needs an eventhouse's SQL/query endpoint, but it does not explicitly explain when to use this versus alternatives such as sql_endpoint_get_connection_string or lakehouse_get_sql_endpoint. No exclusions or alternative guidance is provided.

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

eventhouse_listA
Read-only

List all eventhouses in a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds no further behavioral detail such as pagination, ordering, or return format, but for a simple read-only list operation this is not a major gap.

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 a single concise sentence that front-loads the verb, resource, and scope. There is no redundant wording or filler.

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

Completeness4/5

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

For a one-parameter, annotated list operation, the description is nearly complete. It does not describe the return shape or pagination, but those are not required for correct invocation, and the 'List all' phrasing makes the basic return expectation evident.

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

Parameters3/5

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

The schema provides 100% coverage for the single parameter, workspaceId, with a clear description ('The workspace ID'). The tool description adds no additional parameter semantics, so the baseline of 3 is appropriate.

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 states a specific action ('List'), a specific resource ('eventhouses'), and a clear scope ('in a workspace'). This makes the tool's purpose immediately clear and distinguishes it from sibling list tools by resource type.

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

Usage Guidelines3/5

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

The description implies use when the agent needs to enumerate eventhouses in a given workspace, but it does not explicitly contrast this with eventhouse_get or other list tools, nor does it state when not to use it.

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

eventhouse_updateA

Update an eventhouse's name or description

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoNew description
displayNameNoNew display name
workspaceIdYesThe workspace ID
eventhouseIdYesThe eventhouse ID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already communicate that this is a write operation (readOnlyHint=false) that is not destructive (destructiveHint=false). The description adds that the update scope is limited to name and description, but it does not disclose partial-update behavior, idempotency, or required permissions, so it adds only modest behavioral context beyond the annotations.

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?

A single front-loaded sentence that states the action, object, and affected attributes with no filler. It is appropriately sized for a tool whose parameter semantics are fully documented in the schema.

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

Completeness4/5

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

For a simple two-field update tool, the description plus the 100%-coverage schema and safety annotations provide enough to call it correctly: required IDs are in the schema, and the operation's non-destructive mutation nature is clear. It could note whether unspecified fields remain unchanged, but this is a minor gap given the tool's simplicity.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents workspaceId, eventhouseId, displayName, and description. The description's 'name or description' restates the optional parameters without adding new syntax, constraints, or update semantics beyond the 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 uses a specific verb ('Update'), the resource ('eventhouse'), and the exact mutable attributes ('name or description'), making it immediately distinguishable from sibling tools like eventhouse_create, eventhouse_delete, and eventhouse_get. The schema's displayName/description fields map cleanly to the description's wording.

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

Usage Guidelines3/5

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

The only guidance is implicit: an agent can infer that this tool is for modifying an existing eventhouse's metadata, but there is no explicit statement of when to choose it over alternatives or whether both fields can be updated in one call. No when-not-to-use conditions or alternative tool references are provided.

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

eventstream_createA

Create a new eventstream in a workspace (long-running operation)

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoDescription of the eventstream
displayNameYesDisplay name for the eventstream
workspaceIdYesThe workspace ID

TDQS

A4/5.0
Behavior4/5

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

The annotations only indicate that this is a non-readonly, non-destructive operation. The description adds a meaningful behavioral fact: the operation is long-running, which an agent should account for when invoking it and interpreting the result. It does not detail polling or timeout behavior, but the long-running qualifier is valuable beyond the annotations.

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 one compact sentence that conveys the action, target, scope, and long-running nature without filler. It is front-loaded and every element earns its place.

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

Completeness4/5

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

For a create operation with only three simple, fully described parameters, the description covers the essential invocation context. The only notable gap is the lack of return-value guidance, but since there is no output schema and the long-running qualifier sets expectations, this is a minor omission.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter already documented: workspaceId, displayName, and description. The tool description adds no additional parameter-level meaning, so the schema carries the semantic burden; this matches the baseline score of 3.

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 states a specific verb ('Create'), a specific resource ('eventstream'), and a scope ('in a workspace'), so an agent can clearly tell what the tool does. It also adds a behavioral qualifier ('long-running operation') that distinguishes it from simple read tools like eventstream_list or eventstream_get.

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

Usage Guidelines3/5

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

The intended use case — creating a new eventstream — is implied by the verb and object, so an agent can infer when to call this tool. However, there is no explicit guidance about when not to use it or how it compares to alternatives like eventstream_update, so the usage guidance is implicit rather than direct.

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

eventstream_deleteB
Destructive

Delete an eventstream

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
eventstreamIdYesThe eventstream ID

TDQS

B3.3/5.0
Behavior3/5

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

The annotations already flag destructiveHint=true and readOnlyHint=false, and the description is consistent with them by stating deletion. However, it adds no further behavioral context such as irreversibility, effect on dependent resources, 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?

A single, clear sentence with no filler. It front-loads the action and resource and every word contributes to the meaning.

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

Completeness3/5

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

For a simple two-parameter deletion with explicit annotations, this is arguably sufficient to invoke, but it lacks any description of side effects or the expected outcome. There is also no output schema to clarify what a successful deletion returns.

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

Parameters3/5

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

Both parameters are already fully described in the input schema (workspaceId and eventstreamId), so the description is not required to repeat them. It adds no semantic detail about how to obtain or format the IDs.

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?

The description clearly states a specific action and resource: deleting an eventstream. It is unambiguous within the eventstream sibling group, though it offers no detail about the deletion scope or what distinguishes it from other eventstream operations beyond the verb.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool instead of alternatives or any exclusions/prerequisites. The intended usage is implied by the verb 'delete' but not explicitly connected to a scenario such as removing an unneeded eventstream.

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

eventstream_getB
Read-only

Get details of a specific eventstream

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
eventstreamIdYesThe eventstream ID

TDQS

B3.3/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds no extra behavioral context beyond 'get details', such as return format, permissions, or failure behavior, but it also does not contradict the annotations.

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 a single concise sentence with no filler. It front-loads the operation and is immediately understandable.

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

Completeness3/5

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

For a simple two-parameter read-only get operation with fully documented parameters, the description is nearly sufficient. However, with no output schema and a sibling eventstream_get_definition, the term 'details' is underspecified and could lead to choosing the wrong tool.

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

Parameters3/5

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

The schema describes both parameters (workspaceId and eventstreamId) with 100% coverage, so the description does not need to repeat them. The description adds no parameter-level detail beyond what the schema already provides, making the baseline 3 appropriate.

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?

The description states a clear verb ('Get') and a specific resource ('a specific eventstream'), so the core action is obvious. However, it does not distinguish itself from the similarly named sibling eventstream_get_definition, leaving some ambiguity about whether 'details' means metadata or definition.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus alternatives like eventstream_list or eventstream_get_definition. The word 'specific' weakly implies an ID-based lookup, but the description does not state exclusions or selection criteria.

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

eventstream_get_definitionA
Read-only

Get the definition of an eventstream (long-running). Writes definition files to the specified output directory and returns the list of files written.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
eventstreamIdYesThe eventstream ID
outputDirectoryPathYesDirectory path where eventstream definition files will be written

TDQS

A3.8/5.0
Behavior4/5

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

Beyond the annotations, the description discloses meaningful behavioral details: it is long-running, it writes files to a specified directory, and it returns the list of files written. The 'writes definition files' language does not contradict the readOnlyHint because the write targets an output directory rather than mutating the eventstream resource.

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 two sentences with no filler. It front-loads the core purpose, flags the long-running nature, then states the side effect and return value, making it efficient and easy to parse.

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

Completeness4/5

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

For a simple three-parameter tool with strong annotations, the description covers the key operational expectations: it is long-running, writes files, and returns the list written. It does not elaborate on file formats or timeout behavior, but nothing critical is missing for invoking the tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters are already documented. The description adds little beyond confirming that outputDirectoryPath is where files are written; it does not enrich parameter semantics further, so the baseline score of 3 is appropriate.

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 states a specific action and resource: 'Get the definition of an eventstream.' It also distinguishes this from the sibling eventstream_get by noting the behavior of writing definition files to an output directory and returning the list of files written, making the tool's unique role clear.

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

Usage Guidelines2/5

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

The description gives no explicit guidance on when to use this tool versus alternatives. While the behavior implies it is for exporting definition files, it does not mention eventstream_get or eventstream_update_definition as related choices, nor does it state any exclusions or prerequisites beyond what the schema already provides.

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

eventstream_listA
Read-only

List all eventstreams in a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the scoping behavior ('all ... in a workspace'), but it does not disclose return format, ordering, pagination, or whether full definitions are included. This adds minimal context beyond what annotations and schema already convey.

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 a single, front-loaded sentence with no filler or redundancy. It is appropriately sized for a simple list operation and every word contributes to meaning.

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

Completeness4/5

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

For a read-only list tool with one well-documented parameter and no output schema, the description is largely complete: it names the action, resource, and scope. Minor gaps exist around return type, pagination, and routing to alternatives, but they do not seriously hinder correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, and the workspaceId parameter already has a description ('The workspace ID'). The description's 'in a workspace' reinforces the parameter's role but provides no additional semantic detail beyond the 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 uses a specific verb ('List'), a clear resource ('eventstreams'), and scope ('in a workspace'), making the operation unambiguous. It is easily distinguished from eventstream_get and other resource-specific list tools by the resource name and action.

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

Usage Guidelines3/5

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

The description implies when to use the tool (when you need to list all eventstreams in a workspace) but provides no explicit guidance on alternatives or when not to use it. It does not mention eventstream_get for a single eventstream or eventstream_get_definition for full definition details.

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

eventstream_updateB

Update an eventstream's name or description

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoNew description
displayNameNoNew display name
workspaceIdYesThe workspace ID
eventstreamIdYesThe eventstream ID

TDQS

B3.3/5.0
Behavior3/5

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

Annotations (readOnlyHint=false, destructiveHint=false) already establish this as a non-destructive write, and the description is consistent with them — no contradiction. The description adds that only name/description are touched rather than the definition, but it does not disclose partial-update semantics (whether one or both optional fields can be supplied) or response behavior.

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?

Seven words in a single sentence with verb, object, and scope in order. Every word earns its place, and the update scope is front-loaded with no filler.

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

Completeness3/5

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

For a simple metadata-update tool with full schema coverage and safety annotations, the description is mostly adequate. Gaps remain: no routing guidance versus eventstream_update_definition, and no statement that the two optional fields can be updated independently, which an agent needs to invoke the call correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters are already documented ('New description', 'New display name', 'The workspace ID', 'The eventstream ID'). The description adds only the implicit mapping that 'name' corresponds to displayName, which is marginal value beyond the schema; baseline 3 applies.

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 ('Update'), resource ('eventstream'), and scope ('name or description') in the first sentence, making the core operation clear. However, it does not distinguish itself from the sibling eventstream_update_definition, and 'name' is an imprecise alias for the schema's displayName field.

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

Usage Guidelines2/5

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

Provides no guidance on when to use this tool versus the closely named sibling eventstream_update_definition, which could plausibly also modify an eventstream. No prerequisites, exclusions, or alternative routing are mentioned anywhere in the description.

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

eventstream_update_definitionA

Update the definition of an eventstream (long-running). Reads definition files from the specified directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
eventstreamIdYesThe eventstream ID
definitionDirectoryPathYesPath to a directory containing eventstream definition files

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate this is not read-only and not destructive. The description adds useful behavioral context by noting the operation is long-running and that it reads definition files from a directory, which signals an asynchronous, file-driven update process.

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?

Two concise sentences deliver the core purpose first, flag the long-running behavior, and state the input mechanism. There is no redundant or filler content.

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

Completeness4/5

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

For a tool with fully documented parameters and clear annotations, the description covers the main operational facts: what it updates, how it updates it, and that it is long-running. It does not mention how to track the operation's result or status, but the provided details are sufficient for correct invocation.

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

Parameters3/5

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

The input schema already documents all three parameters with 100% coverage. The description adds only marginal context by confirming definitionDirectoryPath is where definition files are read from; it does not explain file format or directory structure expectations.

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 states a specific verb ('Update'), a specific resource ('definition of an eventstream'), and the mechanism ('Reads definition files from the specified directory'). This clearly distinguishes it from sibling tools like eventstream_update and eventstream_get_definition.

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

Usage Guidelines3/5

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

The description implies when to use this tool: when an eventstream definition needs to be updated from a directory of definition files. However, it does not explicitly name alternatives or state when not to use it, leaving some routing to inference.

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

external_data_share_createA

Create a new external data share for an item

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsYesArray of paths to share externally
itemIdYesThe item ID
workspaceIdYesThe workspace ID
recipientUserPrincipalNameYesUser principal name of the recipient (email)

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, establishing that this is a mutating but non-destructive operation. The description adds no further behavioral context such as permissions required, share lifecycle implications, or side effects, but it does not contradict the annotations.

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 a single, front-loaded sentence that directly states the action and resource. It contains no filler, redundant qualifiers, or unnecessary detail.

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

Completeness3/5

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

For a simple create operation with four flat, fully documented parameters, the description plus schema is minimally sufficient for invocation. However, it does not explain what an external data share is, what item types support it, or what kind of result the agent should expect, leaving some conceptual ambiguity.

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

Parameters3/5

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

The input schema has 100% coverage and documents all four parameters: paths, itemId, workspaceId, and recipientUserPrincipalName. The description adds no additional parameter-level semantics beyond the schema, so the baseline score of 3 is appropriate.

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 uses the specific verb 'Create' with the resource 'external data share' and the object 'an item', clearly identifying the operation. This also distinguishes it from sibling tools like external_data_share_list, external_data_share_get, and external_data_share_revoke.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus related external data share operations such as listing, getting, or revoking shares. There is also no mention of prerequisites, item type compatibility, or situations where this tool should not be used.

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

external_data_share_getA
Read-only

Get details of a specific external data share

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesThe item ID
workspaceIdYesThe workspace ID
externalDataShareIdYesThe external data share ID

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds no extra behavioral context such as failure modes, permissions, or relationship to other share operations, but nothing contradicts the annotations.

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 a single, front-loaded sentence with no filler. Every word adds meaning, and it is appropriately sized for a straightforward get operation.

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

Completeness3/5

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

For a simple read-only get with three fully documented parameters, the schema and annotations cover most invocation needs. However, there is no output schema and the description does not indicate what 'details' will be returned, leaving some ambiguity about the response.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are already documented in the input schema. The description adds no additional meaning about how workspaceId, itemId, or externalDataShareId relate to each other, which keeps this at the baseline.

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?

The description uses a clear verb ('Get') and resource ('external data share'), and the word 'specific' correctly distinguishes this from listing operations. It does not explicitly name sibling tools, so it stops just short of full differentiation.

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

Usage Guidelines3/5

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

The description implies this tool is for retrieving one existing external data share by ID, as opposed to listing or creating shares. However, it does not explicitly state when to prefer this over external_data_share_list or mention any prerequisites or exclusions.

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

external_data_share_listA
Read-only

List all external data shares for an item

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesThe item ID
workspaceIdYesThe workspace ID

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already mark the operation as read-only and non-destructive. The description adds the scope qualifier 'all ... for an item,' but does not disclose pagination, response shape, permission requirements, or other behavioral details that would add value beyond the annotations.

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?

One short sentence contains a clear verb, object, and scope with no filler or redundant phrasing. It is front-loaded and easy to parse.

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

Completeness4/5

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

For a simple read-only list operation with only two schema-covered parameters and no output schema, the description is nearly sufficient. It could further clarify what an 'item' means or what the returned share list contains, but those are minor given the low complexity.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents workspaceId and itemId. The tool description adds no extra meaning to either parameter, so it stays at the baseline for schema-covered parameters.

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 uses a specific verb ('List') and resource ('external data shares') with an explicit scope ('for an item'), making the operation identifiable. It also distinguishes itself from sibling operations like external_data_share_get by saying 'all', and from create/revoke by the list verb.

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

Usage Guidelines2/5

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

No guidance is given for when to choose this tool over siblings such as external_data_share_get, create, or revoke. There are no prerequisite conditions, exclusions, or alternative routing mentioned, so the agent must infer usage entirely from the name.

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

external_data_share_revokeC
Destructive

Revoke an external data share

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesThe item ID
workspaceIdYesThe workspace ID
externalDataShareIdYesThe external data share ID to revoke

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false and destructiveHint=true, and the description's verb 'revoke' is consistent with them (no contradiction). However, the description adds no behavioral context beyond the annotations: it doesn't say whether revocation is irreversible, what happens to the external consumer's access, or whether a confirmation/response is returned.

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?

The description is maximally compact — five words, action verb first, zero filler. It is front-loaded and readable, though minimal enough that it borders on under-specification rather than deliberate conciseness.

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

Completeness2/5

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

For a destructive operation (destructiveHint=true) with no output schema, this single-clause description is inadequate. It omits side effects, how to locate the externalDataShareId, and what the agent should expect after calling it; an agent would have to infer the workflow from the sibling tool names.

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

Parameters3/5

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

Schema description coverage is 100%, with all three required parameters (workspaceId, itemId, externalDataShareId) individually documented in the schema, so the baseline is 3. The free-text description adds no parameter-level information beyond what the schema already provides.

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?

The description states a specific verb ('Revoke') and resource ('external data share'), clearly distinguishing this from sibling operations like external_data_share_list, external_data_share_get, and external_data_share_create. It is clear but terse, leaving the exact meaning of 'revoke' (versus delete or unshare) unstated, so it stops short of a 5.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives, nor any prerequisites such as obtaining the externalDataShareId via external_data_share_list first. The description is a single clause with no context about the typical workflow (e.g., list shares, then revoke the target one).

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

git_commit_to_gitA

Commit workspace changes to the connected Git repository (long-running)

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesCommit mode: All items or Selective
itemsNoItems to commit (required when mode is Selective)
commentNoCommit comment/message
workspaceIdYesThe workspace ID
workspaceHeadNoWorkspace head object ID for concurrency control

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already establish that the operation is not read-only and not destructive. The description adds the useful behavioral cue that this is long-running, which helps an agent expect asynchronous execution or a status response. It implies a connected repository prerequisite, though it does not detail side effects like push behavior.

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 one short sentence with a parenthetical qualifier. The primary action is front-loaded, and there is no wasted wording or repetition of schema details.

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

Completeness4/5

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

The description plus the rich schema and annotations provide enough information for an agent to select and invoke the tool. The long-running nature is flagged, and all required and optional parameters are documented in the schema. The main omission is what the operation returns, but no output schema exists to make that expectation explicit.

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

Parameters3/5

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

Schema coverage is 100%, so all five parameters are already described in the schema. The tool description adds no additional meaning about how workspaceId, mode, items, comment, or workspaceHead interact, so it stays at the baseline.

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 clearly states the operation: commit workspace changes to the connected Git repository. It identifies a specific verb, resource, and scope, and it is easily distinguishable from sibling tools like git_update_from_git and git_get_status.

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

Usage Guidelines2/5

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

The description gives no explicit guidance on when to use this tool versus alternatives such as git_get_status, git_update_from_git, or git_connect. The intended use is inferable from the verb 'commit,' but no conditions, prerequisites, or exclusions are stated.

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

git_connectB

Connect a workspace to a Git repository (Azure DevOps or GitHub)

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
gitProviderDetailsYesGit provider connection details

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate a non-read-only, non-destructive operation, and the description adds the concrete effect of connecting a workspace to a repository. However, it does not disclose whether an existing connection is replaced, whether initialization is required first, or what side effects may occur.

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 a single front-loaded sentence with no filler. The core action and supported providers are communicated immediately and efficiently.

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

Completeness3/5

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

The schema covers the nested and provider-conditional parameters, and the description clearly states the operation. However, the tool's relationship to git_initialize_connection and the behavior after connecting are not addressed, which leaves some contextual ambiguity.

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

Parameters3/5

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

Schema coverage is 100%, so the input schema already documents workspaceId, gitProviderDetails, and every nested field, including the Azure DevOps projectName requirement. The description adds only provider-type context that the schema enum already provides.

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?

The description states a specific action ('Connect') with a clear resource pairing: a workspace and a Git repository, and it names the supported providers. It is unambiguous on its own, but it does not differentiate itself from the similar sibling git_initialize_connection.

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

Usage Guidelines2/5

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

The description provides no when-to-use guidance, no prerequisites, and no alternatives. With many git-related siblings such as git_initialize_connection, git_get_connection, and git_disconnect, the agent is not told when this tool should be selected over those.

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

git_disconnectA
Destructive

Disconnect a workspace from its Git repository

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID

TDQS

A3.5/5.0
Behavior3/5

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

The annotations declare destructiveHint=true, which already signals this is destructive. The description adds minimal behavioral context beyond that: it says 'disconnect' but does not disclose whether connected commits, branches, or history are lost or whether the workspace is changed irreversibly. No contradiction with annotations.

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?

One concise sentence that directly conveys the tool's purpose with no fillers. Every word earns its place.

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

Completeness3/5

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

For a single-parameter destructive tool, the definition is adequate but thin. Given the destructiveHint annotation, an agent might benefit from knowing what 'disconnect' does to the workspace's Git history, branches, or uncommitted changes before invoking it.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter workspaceId, and the schema itself says 'The workspace ID'. The description adds no extra semantic detail beyond the schema, which is acceptable given full schema coverage.

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?

The description 'Disconnect a workspace from its Git repository' clearly states the verb (disconnect) and resource (workspace and its Git repository). It distinguishes this from git_connect and other git operations, though it doesn't explicitly name the inverse sibling.

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

Usage Guidelines3/5

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

The description implies the tool is for severing the Git integration of a workspace, and the sibling context shows git_connect as the opposite. However, it doesn't state when to use it versus other git tools, nor any preconditions (e.g., workspace must be connected).

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

git_get_connectionB
Read-only

Get the Git connection details for a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description's 'Get' is consistent with that safety profile. It adds no additional behavioral context such as what the connection details contain or any prerequisites, but the annotation coverage lowers the burden.

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?

The description is a single front-loaded sentence with no wasted words. It is appropriately sized for a simple one-parameter read tool, though it is terse and could add a bit more value without becoming verbose.

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

Completeness3/5

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

The tool is simple, has one required parameter, and annotations cover its read-only nature, but there is no output schema and the description does not clarify what 'connection details' includes. An agent can invoke it, but interpretation of the return value is left ambiguous.

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

Parameters3/5

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

Schema description coverage is 100% and the single workspaceId parameter is already documented with 'The workspace ID' in the schema. The description adds no additional meaning beyond that schema, so the baseline 3 applies.

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?

The description uses a specific verb 'Get' and resource 'Git connection details for a workspace', making it clear what the tool does. It does not explicitly differentiate it from similar sibling tools like git_get_status or git_get_credentials, so it falls short of a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as git_get_status, git_get_credentials, or git_connect. Context is limited to 'for a workspace', with no exclusions or selection criteria.

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

git_get_credentialsA
Read-only

Get the Git credentials configuration for the current user in a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description's 'Get' verb is consistent with that safe read profile. The description adds some context (current user, workspace scope) but does not disclose the return format, whether secrets are masked, or other behavioral details.

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?

A single front-loaded sentence with no filler. Every word contributes to identifying the resource, scope, and action.

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

Completeness4/5

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

Given the low complexity (one required parameter, no nested objects, read-only annotations), the description is largely complete for invoking the tool correctly. The main gap is the absence of any indication of what the credentials configuration looks like in the response, especially with no output schema present.

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

Parameters3/5

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

Schema description coverage is 100% and workspaceId is already documented as 'The workspace ID.' The description mentions a workspace but adds no additional semantic detail beyond the 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 states a specific verb ('Get') and resource ('Git credentials configuration') scoped to the current user in a workspace. This adequately differentiates it from sibling git tools like git_get_connection, git_get_status, and git_update_credentials.

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

Usage Guidelines2/5

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

The description gives no explicit guidance on when to use this tool versus alternatives, and no exclusions or prerequisites. It relies entirely on the tool's name and the agent inferring that this is the read variant of git_update_credentials.

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

git_get_statusA
Read-only

Get the Git status of items in a workspace (shows sync state between workspace and remote)

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare the operation as readOnly and non-destructive. The description adds value by defining what 'status' means in this context—the sync state between workspace and remote—which is behavioral context beyond the annotations. There is no contradiction.

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 a single sentence that front-loads the action and resource, with a useful clarifying parenthetical. There is no redundant or extraneous wording, making it easy to parse quickly.

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

Completeness3/5

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

The definition is adequate for a simple read-only status check, but with no output schema it does not describe the shape or granularity of the returned status (e.g., per-item details, summary, or changed files). It also omits any precondition such as an existing git connection, which sibling tools further suggest may be relevant.

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

Parameters3/5

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

The input schema has 100% description coverage for the single parameter (workspaceId), so the schema already documents the parameter meaning. The tool description adds no additional parameter-level detail, so the baseline of 3 applies.

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?

States a specific verb ('Get') and resource ('Git status of items in a workspace') and clarifies the meaning via the parenthetical 'shows sync state between workspace and remote'. This clearly distinguishes it from sibling git tools like git_commit_to_git or git_update_from_git, which operate on the sync state rather than report it.

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?

The description implies a clear use case—checking the sync state between workspace and remote—so an agent can infer when this tool is relevant. It does not explicitly name alternatives or provide when-not-to-use guidance, but the context is clear and there are no misleading exclusions.

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

git_initialize_connectionA

Initialize a Git connection after connecting (long-running). Chooses whether workspace or remote content takes precedence.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
initializationStrategyYesStrategy for resolving conflicts during initialization

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already indicate a non-read-only, non-destructive operation, and the description adds useful behavioral context: it is long-running and makes a precedence decision between workspace and remote content. This goes beyond the annotations and helps the agent anticipate delays and conflict-resolution behavior.

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?

Two short sentences with no filler. The lifecycle timing and long-running nature are front-loaded, and the key behavioral distinction is stated in the second sentence. Every phrase earns its place.

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

Completeness4/5

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

For a two-parameter tool with complete schema descriptions and no output schema, the description covers the essential context: when to use it, that it is long-running, and what decision it makes. It does not detail conflict-resolution mechanics or return behavior, but those are not critical for selecting and invoking it correctly.

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 parameters are already documented. The description adds semantic value by explaining that initializationStrategy controls whether workspace or remote content takes precedence, which clarifies the enum values. It does not add much about workspaceId, but the schema already defines that.

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?

The description clearly names the action ('Initialize a Git connection'), the resource, and the lifecycle context ('after connecting'). It also signals that the tool resolves precedence between workspace and remote content, which distinguishes it from related git tools even though it does not explicitly name a sibling.

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?

The phrase 'after connecting' gives explicit sequencing guidance, telling the agent this tool runs after git_connect but before operations like commit or update. It also flags the call as 'long-running,' which sets expectations. It does not list exclusions or alternative tools, but the context is clear enough.

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

git_update_credentialsB

Update the Git credentials configuration for the current user in a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesCredential source type
workspaceIdYesThe workspace ID
connectionIdNoConnection ID (required when source is ConfiguredConnection)

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the mutating but non-destructive nature is covered. The description adds useful scope ('current user in a workspace') but does not disclose whether existing credentials are overwritten or whether a prior Git connection is required.

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?

A single, focused sentence that contains no filler and states the action, resource, and scope immediately. Every word earns its place.

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

Completeness3/5

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

The description is adequate for a simple update operation with fully documented parameters and safety annotations, but it leaves out behavioral context such as what 'credentials configuration' means in practice and when a connectionId is relevant. An agent could call it correctly but may not understand the full impact.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are already documented. The description adds no additional semantics about the source enum values or the conditional connectionId requirement, so the baseline of 3 applies.

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?

The description states a specific action ('Update') and a specific resource ('Git credentials configuration') scoped to 'the current user in a workspace'. This distinguishes it from siblings like git_get_credentials and git_connect, though it does not explicitly name alternatives.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives such as git_connect, git_initialize_connection, or git_get_credentials. The description provides no exclusions, prerequisites, or decision criteria.

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

git_update_from_gitA

Update workspace from the connected Git repository (long-running)

ParametersJSON Schema
NameRequiredDescriptionDefault
optionsNoUpdate options
workspaceIdYesThe workspace ID
workspaceHeadNoWorkspace head object ID for concurrency control
remoteCommitHashYesThe remote commit hash to update to
conflictResolutionNoConflict resolution settings

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate mutation (readOnlyHint=false) and non-destructiveness (destructiveHint=false). The description adds the useful behavioral trait that the operation is long-running, which is beyond what annotations provide. However, it does not disclose the possibility of overriding workspace items, how conflicts are resolved, or what side effects the update may have on local workspace content.

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 a single, front-loaded sentence with no filler. It states the action, target, source, and a key behavioral trait ('long-running') in minimal words, and every part earns its place.

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

Completeness2/5

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

The tool has five parameters, nested conflict-resolution settings, and is explicitly long-running, yet there is no output schema and no explanation of what the call returns or how the agent should monitor completion. The description also fails to explain how workspaceHead, allowOverrideItems, or conflictResolution affect the update, leaving important operational context missing for a complex mutation tool.

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

Parameters3/5

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

Schema description coverage is 100%, so all parameters, including workspaceHead for concurrency control, remoteCommitHash, allowOverrideItems, and conflictResolution, are already documented in the schema. The description adds no extra parameter-level meaning, so the baseline score of 3 is appropriate.

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 states a specific verb ('Update'), a direct object ('workspace'), and a source ('connected Git repository'), which clearly conveys a pull-style sync. It is distinguishably different from the sibling git_commit_to_git (push direction) and workspace_update (workspace settings), even without naming them explicitly.

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

Usage Guidelines3/5

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

The phrase 'from the connected Git repository' implies the tool is for pulling remote changes into the workspace, which gives clear context. However, it does not explicitly state when to use this tool versus git_commit_to_git, git_get_status, or other Git tools, and no prerequisites such as needing an active Git connection are mentioned.

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

graphql_api_createB

Create a new GraphQL API item in a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoDescription of the GraphQL API
displayNameYesDisplay name for the GraphQL API
workspaceIdYesThe workspace ID

TDQS

B3.3/5.0
Behavior2/5

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

Annotations declare readOnlyHint=false and destructiveHint=false, so the safety profile is already established and the description is consistent with it. However, the description adds no behavioral context beyond the tool name: no idempotency information, no return-value behavior, no naming or duplicate constraints, and no statement about what happens on successful creation.

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?

A single 10-word sentence, 'Create a new GraphQL API item in a workspace,' with the verb front-loaded and zero filler. Every word carries meaning — action, object, and location.

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

Completeness3/5

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

For a simple 3-parameter create with full schema coverage and safety annotations, the description is minimally adequate. But it omits the prerequisite that the target workspace must exist, says nothing about what the call returns (no output schema exists to fill that gap), and offers no hint about behavior on duplicate display names.

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

Parameters3/5

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

Schema description coverage is 100%; workspaceId, displayName, and description are all documented in the schema itself, so baseline is 3. The tool description contributes no parameter-level detail beyond what the schema already provides.

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 (create), resource (GraphQL API item), and scope (in a workspace). The action alone differentiates it from the sibling set (graphql_api_update, graphql_api_delete, graphql_api_get, graphql_api_list), and 'in a workspace' correctly scopes it away from workspace_create. However, it doesn't explicitly name any alternative, and 'item' is a slightly generic noun.

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

Usage Guidelines3/5

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

Usage is only implied by the verb: call this when you want a new GraphQL API. There is no explicit when-to-use guidance, no mention of prerequisites (e.g., that workspaceId must reference an existing workspace), and no pointer to graphql_api_update as the alternative for modifying an existing item.

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

graphql_api_deleteB
Destructive

Delete a GraphQL API item

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
graphqlApiIdYesThe GraphQL API ID

TDQS

B3.2/5.0
Behavior2/5

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

The annotations already indicate destructiveHint=true and readOnlyHint=false, so the destructive nature is covered structurally. The description adds no additional behavioral context such as permanence, side effects, cascading deletion, or permission requirements, so it provides no value beyond the annotations.

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?

The description is a single concise sentence with no unnecessary words. It loses a point because 'item' is slightly vague and the description is so minimal that it could be more informative without sacrificing conciseness.

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

Completeness3/5

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

For a simple delete operation with two required parameters, the schema and annotations cover the basics. However, the description does not mention any consequences of deletion, return behavior, or whether the action is reversible, leaving it at the minimum viable level.

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

Parameters3/5

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

The schema description coverage is 100% and both parameters have basic descriptions. The tool description does not add meaning to the parameters, but the baseline of 3 applies because the schema already documents them adequately.

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 says 'Delete a GraphQL API item', which names the specific verb and resource. It is easily distinguished from the sibling graphql_api_get/update/create/list tools by the delete action, and from other delete tools by the GraphQL API resource.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool vs alternatives, nor does it mention prerequisites or verification steps before deleting. The only implied usage is the obvious one: use it when you want to delete a GraphQL API.

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

graphql_api_execute_queryB

Execute a GraphQL query against a GraphQL API endpoint. Uses the Power BI scope token.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe GraphQL query string
variablesNoGraphQL query variables
workspaceIdYesThe workspace ID
graphqlApiIdYesThe GraphQL API ID

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the risk profile is partially covered. The description adds the Power BI scope token detail, which is useful auth context, but it does not disclose that an arbitrary GraphQL query may cause side effects, nor does it mention error behavior or output shape.

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?

Two short sentences with no filler. The action and target are front-loaded, and the Power BI scope token detail earns its place as useful context.

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

Completeness3/5

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

For an execution tool with no output schema, the description is thin: it does not explain what the response will contain, how errors are surfaced, or how to construct a valid GraphQL query beyond the schema fields. The required identifiers are covered by the schema, but the missing output/error context leaves an agent somewhat uncertain about the call result.

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

Parameters3/5

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

All four parameters are already described in the schema (100% coverage), so the description does not need to repeat them. It adds no extra parameter-level meaning, such as how query and variables interact or whether variables are optional.

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?

The description states a specific action ('Execute') and resource ('GraphQL query against a GraphQL API endpoint'), making it clear this is the query-execution counterpart to graphql_api_* management tools and distinguishable from sql_endpoint_execute_query. It does not explicitly name sibling alternatives, but the core purpose is unambiguous.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance or comparison with alternatives such as sql_endpoint_execute_query, eventhouse_execute_kql, or semantic_model_execute_dax. The phrase 'Uses the Power BI scope token' hints at a specific auth context but does not state when this tool should be selected over others.

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

graphql_api_getB
Read-only

Get details of a specific GraphQL API item

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
graphqlApiIdYesThe GraphQL API ID

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description is consistent with those annotations and conveys a single-item read operation, but it adds no further behavioral context such as whether the definition is included or what fields are returned.

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 a single concise sentence with no filler or redundant detail. It is front-loaded and easy to parse, which is ideal for agent consumption.

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

Completeness3/5

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

For a simple get-by-ID operation with fully documented parameters and readOnly annotations, the description is minimally adequate. However, the existence of graphql_api_get_definition creates ambiguity that this description does not resolve, and there is no output schema to clarify what 'details' means.

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

Parameters3/5

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

Schema description coverage is 100%, and both parameters have basic descriptions ('The workspace ID', 'The GraphQL API ID'). The tool description adds no additional parameter semantics, so the baseline score of 3 applies.

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?

The description clearly identifies the verb ('Get'), the resource ('GraphQL API'), and the singular scope ('a specific item'). However, it does not explicitly distinguish itself from the sibling tool graphql_api_get_definition, so 'details' vs 'definition' introduces mild ambiguity.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus alternatives like graphql_api_get_definition or graphql_api_execute_query. The description implies a general 'get details' use case but does not state any exclusions or preferred conditions, leaving tool selection unclear.

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

graphql_api_get_definitionA
Read-only

Get the GraphQL schema definition of a GraphQL API item (long-running). Writes definition files (.graphql, etc.) to the specified output directory and returns the list of files written.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
graphqlApiIdYesThe GraphQL API ID
outputDirectoryPathYesDirectory path where GraphQL definition files will be written

TDQS

A4/5.0
Behavior4/5

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

The description adds meaningful behavioral context beyond the readOnlyHint and destructiveHint annotations: it is long-running, writes definition files to an output directory, and returns the list of files written. This is important for the agent to set expectations about side effects and runtime. It does not contradict the annotations because the operation does not mutate the GraphQL API item itself.

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?

Two sentences with no filler. The primary action is front-loaded, and the follow-up sentence covers side effects and return value. Every clause earns its place.

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

Completeness4/5

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

For a three-parameter tool with no output schema, the description is complete enough: it names the target, the action, the long-running nature, the side effect, and the return value. It could add details about overwrite behavior or error conditions, but those are secondary for an agent deciding whether and how to invoke it.

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

Parameters3/5

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

The input schema already documents all three parameters with 100% coverage, so the baseline is 3. The description echoes the outputDirectoryPath semantics by mentioning the specified output directory, but it does not add meaningful new parameter-level detail beyond what the schema provides.

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 clearly states a specific verb and resource: get the GraphQL schema definition of a GraphQL API item. It also specifies concrete behavior (writes .graphql definition files) that distinguishes it from generic getters like graphql_api_get and from execute/update operations.

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

Usage Guidelines3/5

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

The purpose makes it reasonably clear when to use it: when the GraphQL schema definition is needed. However, it does not explicitly mention alternatives or exclusions, such as using graphql_api_get for item metadata or graphql_api_execute_query for running queries. Usage context is implied rather than stated.

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

graphql_api_listA
Read-only

List all GraphQL API items in a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare this as a safe read-only operation, so the description does not need to restate that. The description adds the workspace scoping context but does not disclose potential pagination, sorting, or volume-related behavior, which could matter for a 'list all' operation.

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 a single, focused sentence with no filler. It front-loads the action and resource, then specifies the scope. Every word earns its place.

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

Completeness4/5

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

For a one-parameter read-only list operation with complete schema coverage, the description is mostly sufficient. A small gap is the lack of any mention of return shape or pagination behavior, but the list verb strongly implies a collection response, and the annotations already cover the safety profile.

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

Parameters3/5

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

The input schema has 100% coverage: the single required parameter workspaceId has a description. The tool description only repeats the workspace scope already present in the schema and adds no additional semantic detail about the parameter's format, constraints, or relationship to the listed items.

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 uses a specific verb ('List') with a clear resource ('GraphQL API items') and scope ('in a workspace'). This distinguishes it from sibling tools like graphql_api_get, which retrieves a single item, and graphql_api_execute_query, which runs operations.

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

Usage Guidelines2/5

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

The description implies the tool is for listing all GraphQL API items in a workspace, but it does not explicitly state when to use this tool versus alternatives such as graphql_api_get for a single item or graphql_api_get_definition for item details. No exclusions or routing guidance is provided.

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

graphql_api_updateA

Update a GraphQL API item's name or description

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoNew description
displayNameNoNew display name
workspaceIdYesThe workspace ID
graphqlApiIdYesThe GraphQL API ID

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already communicate that this is not read-only and not destructive. The description adds some useful context by narrowing the update scope to name/description, but it does not disclose partial-update behavior, permission requirements, or whether omitting both optional fields is a no-op or an error. This is acceptable given the annotations but not particularly rich.

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 a single concise sentence with no filler. It front-loads the action and resource, then states the mutable fields. Every word earns its place.

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

Completeness3/5

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

For a simple update tool with a fully covered schema and non-destructive/non-read-only annotations, the description is mostly adequate. However, it omits the operational detail that displayName and description are optional and that at least one should probably be supplied to make a meaningful update. No output schema exists, so not describing return values is acceptable.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already explains all parameters. The description simply re-expresses the displayName and description fields as 'name or description' without adding extra semantics such as 'at least one must be provided' or 'unspecified fields remain unchanged.'

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 uses a specific verb ('Update'), a concrete resource ('GraphQL API item'), and the exact scope of what can be changed ('name or description'). This clearly distinguishes it from sibling tools like graphql_api_create, graphql_api_delete, graphql_api_get, and graphql_api_execute_query.

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

Usage Guidelines2/5

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

The description gives no explicit guidance on when to use this tool versus alternatives. It does not mention that this is for modifying an existing GraphQL API's metadata, nor does it contrast with graphql_api_create for new items or graphql_api_get_definition for reading. Usage context is only implied by the word 'Update'.

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

kql_database_createA

Create a new KQL database in a workspace (long-running). Requires a parent eventhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoDescription of the KQL database
displayNameYesDisplay name for the KQL database
workspaceIdYesThe workspace ID
databaseTypeYesDatabase type
parentEventhouseItemIdYesParent eventhouse item ID

TDQS

A4/5.0
Behavior3/5

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

Annotations already communicate that this is a read-only=false, non-destructive operation. The description adds useful behavior beyond that: it is long-running and depends on a parent eventhouse. However, it does not explain what the agent should expect after invocation, such as how to track completion or what the response shape is, so it stops short of full transparency.

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?

Two short sentences, no filler. The core action and the long-running behavior are front-loaded, and the prerequisite is stated immediately after. Every word earns its place.

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

Completeness4/5

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

For a create operation with five parameters fully documented in the schema, the description provides the essential missing context: async behavior and the parent eventhouse requirement. It could mention how to check operation status or what is returned, but the lack of an output schema makes that less critical, so this is still reasonably complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are already individually documented. The description adds conceptual meaning by highlighting the parentEventhouseItemId dependency, but it does not need to restate parameter-level details. Baseline 3 is appropriate.

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 clearly identifies the action ('Create a new KQL database') and the resource context ('in a workspace'), and adds a key distinguishing detail: it requires a parent eventhouse. This separates it from sibling tools like kql_database_get, kql_database_update, or eventhouse_create without ambiguity.

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?

The description provides a clear prerequisite ('Requires a parent eventhouse'), which tells the agent when this tool is appropriate and what must exist first. It does not explicitly name alternatives or exclusion conditions, but the prerequisite gives sufficient usage context.

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

kql_database_deleteB
Destructive

Delete a KQL database

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
kqlDatabaseIdYesThe KQL database ID

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds no behavioral context beyond repeating the delete action, such as irreversibility, cascading effects, permissions, or failure conditions. No contradiction exists, but no extra transparency value is provided.

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?

One short declarative sentence with no filler or irrelevant detail. The action and target are front-loaded, making the description maximally concise for a simple deletion tool.

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

Completeness3/5

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

The definition is minimally adequate given the two fully documented parameters and destructive annotation. However, it does not explain what happens on deletion, whether the operation is reversible, error conditions, or what the response/return value indicates, which would improve an agent's confidence in invoking it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, with both workspaceId and kqlDatabaseId documented. The description adds no parameter-specific meaning, so the baseline score of 3 is appropriate because the schema carries the documentation burden.

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 states a clear action ('Delete') and a specific resource ('KQL database') in plain language. It inherently distinguishes from sibling operations like kql_database_get, kql_database_update, and kql_database_list, since delete is a unique operation for this resource.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool, when not to use it, prerequisites, or alternatives. The description merely restates the operation and leaves all contextual decision-making to the agent.

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

kql_database_getC
Read-only

Get details of a specific KQL database

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
kqlDatabaseIdYesThe KQL database ID

TDQS

C2.9/5.0
Behavior2/5

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

The annotations already declare readOnlyHint=true and destructiveHint=false, and the description simply says 'Get details' without adding behavioral context such as what data is returned, whether it returns full metadata, or how it differs from kql_database_get_definition. No contradiction exists, but the description contributes no behavioral transparency beyond the annotations.

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?

A single, focused sentence of nine words with no filler. Every word contributes meaning, and the core action and target resource are front-loaded.

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

Completeness2/5

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

This is a minimal description for a simple tool, but there is no output schema and no explanation of what 'details' includes. Given the sibling kql_database_get_definition, the agent could be uncertain whether this returns metadata, configuration, or the full definition. More context is needed to disambiguate the return value.

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

Parameters3/5

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

The input schema describes both parameters with 100% coverage: 'The workspace ID' and 'The KQL database ID.' The description adds no additional parameter semantics, so it correctly relies on the schema. Baseline 3 applies.

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?

The description uses a specific verb and resource: 'Get details of a specific KQL database.' This clearly conveys a read operation targeting one database, and the word 'specific' helps distinguish it from kql_database_list. However, it does not explicitly differentiate from kql_database_get_definition, so it is not a perfect 5.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool instead of siblings such as kql_database_list or kql_database_get_definition. The description implies a single-resource lookup but offers no explicit context, exclusions, or alternative routing.

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

kql_database_get_definitionB
Read-only

Get the definition of a KQL database (long-running). Writes definition files to the specified output directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
kqlDatabaseIdYesThe KQL database ID
outputDirectoryPathYesDirectory path where definition files will be written

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds 'long-running' as a genuinely useful behavioral trait, but the file-write sentence largely restates the outputDirectoryPath schema description rather than disclosing new behavior such as overwrite rules or completion signaling.

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?

The description is short and front-loads the core purpose. It loses a point because the second sentence partly duplicates the schema description for outputDirectoryPath instead of contributing new information.

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

Completeness3/5

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

For three simple, fully described parameters this is adequate, but the lack of an output schema makes the 'long-running' note vague: the agent is not told what the call returns, how to detect completion, or what files are produced. That is a meaningful gap for an export-style tool.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all three parameters. The description adds no new meaning beyond the property descriptions; it mentions the output directory but does not clarify file naming, format, or overwrite behavior.

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?

The first sentence names a specific verb ('Get') and resource ('definition of a KQL database'), so an agent can immediately see the target. The 'long-running' qualifier and the file-write mechanism add useful scope, though it does not explicitly differentiate itself from the sibling kql_database_get.

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

Usage Guidelines2/5

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

No when-to-use or when-not-to-use guidance is provided. The description does not mention alternatives like kql_database_get for quick reads, nor does it state prerequisites such as whether the output directory must already exist or how long the operation may take.

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

kql_database_listA
Read-only

List all KQL databases in a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is established. The description adds that it lists 'all' databases within a workspace, which is useful scoping, but it does not disclose any return format, pagination behavior, or error conditions beyond what the annotations already imply.

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?

A single, short sentence that states the operation, resource, and scope with zero filler. The key action ('List') and target ('KQL databases') are front-loaded, making it immediately scannable by an agent.

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 simple, read-only list operation with one fully documented required parameter, the description is sufficient for correct invocation. The absence of an output schema is acceptable because the word 'List' already implies the return value is a collection of KQL databases.

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

Parameters3/5

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

The input schema has 100% coverage of the single parameter 'workspaceId' with the description 'The workspace ID'. The tool description does not add further parameter-level meaning, but it also does not need to since the schema fully documents the only required input.

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 uses a specific verb ('List'), a specific resource ('KQL databases'), and a scoping context ('in a workspace'). This clearly distinguishes it from sibling tools like kql_database_get, kql_database_create, and list tools for other resource types.

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

Usage Guidelines3/5

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

The intended use is implied: call this when you need to enumerate all KQL databases in a given workspace. However, there is no explicit mention of when not to use it or alternatives such as kql_database_get for a single database, so the guidance is not fully explicit.

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

kql_database_updateA

Update a KQL database's name or description

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoNew description
displayNameNoNew display name
workspaceIdYesThe workspace ID
kqlDatabaseIdYesThe KQL database ID

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the operation's safety profile is known. The description adds that the updatable fields are name and description, which is useful, but it does not disclose partial-update semantics, permission needs, or response behavior. It is not contradictory to the annotations.

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 a single, front-loaded sentence that states the action and affected fields without filler. It is easy to scan and appropriately sized for a simple update tool.

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

Completeness3/5

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

For a straightforward metadata update with full schema coverage and safety annotations, the description is mostly sufficient. However, it omits guidance on partial updates and does not explicitly distinguish this tool from kql_database_update_definition, leaving some context for the agent to infer.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all four parameters. The description only adds a synonym ('name' for displayName) and otherwise repeats what the schema already communicates, so baseline 3 is appropriate.

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 uses a specific verb ('Update') and resource ('KQL database'), and narrows the scope to 'name or description'. This distinguishes it from the sibling kql_database_update_definition, which targets the underlying definition rather than simple metadata fields.

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

Usage Guidelines3/5

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

The description implies when to use it—when changing a KQL database's name or description—but gives no explicit guidance about alternatives or exclusions. With kql_database_update_definition as a nearby sibling, explicit routing would help, so this is minimally adequate.

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

kql_database_update_definitionA

Update a KQL database's definition (long-running). Accepts definition parts inline or a directory path.

ParametersJSON Schema
NameRequiredDescriptionDefault
partsNoArray of definition parts to upload
workspaceIdYesThe workspace ID
kqlDatabaseIdYesThe KQL database ID
partsDirectoryPathNoPath to a directory containing definition files

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already indicate this is a write operation and not read-only, so the description's main behavioral addition is 'long-running,' which is useful. However, it does not explain what the long-running behavior means for the caller, such as whether it returns an operation ID, how to poll for completion, or whether the update is atomic or incremental.

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 two short sentences with no filler. It front-loads the core operation and long-running nature, then immediately covers the two input modes. Every word contributes useful information.

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

Completeness3/5

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

Given the minimal annotations and lack of an output schema, the description adequately covers what the operation does and the main input options, but it is incomplete about operation outcomes and tracking. An agent still has to infer what a successful or in-progress update returns and how to handle the long-running aspect.

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. The description adds value by clarifying that 'parts' and 'partsDirectoryPath' are alternative input modes: definition parts can be supplied inline or via a directory path. This relationship is not explicit in the schema itself.

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 states a specific action and resource: it updates a KQL database's definition, which clearly separates it from general kql_database_update. The parenthetical 'long-running' adds an important distinguishing trait, and the mention of inline parts versus directory path is non-tautological and concrete.

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

Usage Guidelines3/5

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

The description implies it should be used for full-definition updates rather than simple database property changes, but it never explicitly names alternatives like kql_database_update or says when not to use it. The 'long-running' note gives some situational guidance, but no exclusion or sibling routing is provided.

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

lakehouse_createA

Create a new lakehouse in a workspace (long-running operation). Schemas are enabled by default (preview).

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoDescription of the lakehouse
displayNameYesDisplay name for the lakehouse
workspaceIdYesThe workspace ID
enableSchemasNoCreate a schema-enabled lakehouse (preview). Defaults to true. Set to false for a classic lakehouse without schema support.

TDQS

A3.9/5.0
Behavior4/5

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

The description adds useful behavioral context beyond the annotations by disclosing that this is a long-running operation and that schemas are enabled by default (preview). It does not explain how to track completion, but the annotations already indicate a mutating, non-destructive operation, and there is no contradiction.

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?

Two tightly written sentences with no wasted words. The core action and long-running caveat are front-loaded, followed by the important schema-default behavior.

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

Completeness3/5

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

The description adequately covers purpose, workspace scope, long-running behavior, and schema defaults. However, for a long-running operation with no output schema, it lacks guidance on what to do after invocation—such as operation tracking, polling, or how to confirm successful creation.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all four parameters. The description's mention of schemas being enabled by default echoes the enableSchemas parameter but adds no new semantic detail beyond what the schema provides. Baseline 3 is appropriate.

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?

Clearly states the verb 'Create', the resource ('new lakehouse'), and the scope ('in a workspace'). It also flags that this is a long-running operation, which helps distinguish it from lakehouse_get, lakehouse_update, lakehouse_delete, and lakehouse_create_shortcut without inspecting schemas.

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

Usage Guidelines3/5

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

Usage is implied: use this when creating a new lakehouse. However, there is no explicit guidance about when not to use it or how it compares to related alternatives like lakehouse_update or lakehouse_create_shortcut.

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

lakehouse_create_shortcutA

Create a OneLake shortcut in a lakehouse at any level (file, folder, table, or schema). For schema-enabled lakehouses (preview): set path='Tables' and name to the desired schema name to create a schema shortcut that imports all Delta tables from the target as a new schema. For table-level shortcuts within a schema: set path='Tables/'. Supports targets: OneLake, ADLS Gen2, Amazon S3, Google Cloud Storage, S3 Compatible, Dataverse, Azure Blob Storage, OneDrive/SharePoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the shortcut. For schema shortcuts, this becomes the schema name.
pathYesFull path where the shortcut is created. Must start with 'Files' or 'Tables'. Examples: 'Files' (file at root), 'Files/landingZone' (file in subfolder), 'Tables' (schema shortcut — name becomes the schema, target should be a schema or folder of Delta tables), 'Tables/dbo' (table shortcut within the dbo schema), 'Tables/mySchema' (table shortcut within a custom schema)
targetYesTarget datasource — specify exactly one: oneLake, adlsGen2, amazonS3, googleCloudStorage, s3Compatible, dataverse, azureBlobStorage, or oneDriveSharePoint
lakehouseIdYesThe lakehouse ID (item ID) where the shortcut will be created
workspaceIdYesThe workspace ID where the lakehouse resides
shortcutConflictPolicyNoAction when a shortcut with the same name and path already exists (default: Abort)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations (readOnlyHint=false, destructiveHint=false) are consistent with 'Create' — no contradiction. The description adds value beyond annotations by disclosing that schema shortcuts 'import all Delta tables from the target as a new schema' and flagging that schema-enabled lakehouses are in preview. It does not discuss conflict-overwrite side effects, but shortcutConflictPolicy in the schema covers that behavior.

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?

Four sentences with no filler; the core action is front-loaded, followed by the two key usage patterns and a target-type summary. The target enumeration slightly duplicates the schema's target object descriptions, but as a scannable quick reference it earns its place for a tool with an 8-variant nested target.

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

Completeness4/5

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

For a complex tool with 6 parameters, an 8-variant nested target object, and no output schema, the description covers the nuanced decision points (schema vs table shortcuts, path conventions, supported targets) and the schema fills in all parameter details at 100% coverage. Minor gap: no mention of what the operation returns on success, but nothing an agent needs to call it correctly is 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 description coverage is 100%, setting the baseline at 3. The description earns above baseline by explaining the semantic combination of path and name (path='Tables' + name makes a schema shortcut; path='Tables/<schemaName>' makes a table shortcut) and enumerating valid target types. It adds relational meaning the per-property schema descriptions do not fully convey on their own.

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 first sentence states a specific verb (create), resource (OneLake shortcut in a lakehouse), and scope (any level: file, folder, table, or schema). It clearly differentiates from sibling tools like lakehouse_create (creates a lakehouse itself) and lakehouse_list/get/delete_shortcut (read/delete operations), so an agent can select it unambiguously.

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?

Provides concrete scenario-based guidance: how to configure a schema shortcut (path='Tables' + name=schema name) versus a table-level shortcut (path='Tables/<schemaName>'), plus the full list of supported target types. It does not explicitly name excluded alternatives, but no sibling competes for this operation, and the scenario routing is actionable and precise.

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

lakehouse_deleteB
Destructive

Delete a lakehouse

ParametersJSON Schema
NameRequiredDescriptionDefault
lakehouseIdYesThe lakehouse ID
workspaceIdYesThe workspace ID

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, and the description simply restates the destructive action without adding context such as permanence, cascading effects, or permission requirements. It adds no behavioral information beyond the structured annotations.

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 a single, front-loaded sentence with no filler or repetition. Every word earns its place, making it appropriately concise for a simple delete operation.

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

Completeness3/5

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

For a low-complexity delete tool with complete schema coverage and a destructive annotation, the description is minimally adequate. However, it omits any mention of consequences or prerequisites, which would be useful for a destructive operation.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters already described as 'The lakehouse ID' and 'The workspace ID'. The description adds no additional parameter semantics, so the baseline of 3 applies.

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 states the specific verb 'Delete' and the resource 'lakehouse', clearly identifying the operation. This distinguishes it from sibling operations such as lakehouse_get, lakehouse_update, and lakehouse_delete_shortcut.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives, no prerequisites, and no mention of irreversibility or required ownership. An agent gets no information about when lakehouse_delete is appropriate beyond what the name implies.

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

lakehouse_delete_shortcutA
Destructive

Delete a OneLake shortcut from a lakehouse

ParametersJSON Schema
NameRequiredDescriptionDefault
lakehouseIdYesThe lakehouse ID
workspaceIdYesThe workspace ID
shortcutNameYesThe shortcut name
shortcutPathYesThe shortcut path (e.g., 'Tables' or 'Files/landingZone')

TDQS

A3.8/5.0
Behavior3/5

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

The description is consistent with annotations (destructiveHint=true), but it adds no behavioral detail beyond the annotation—no mention of permanence, permissions, or side effects. Since the annotations already signal destruction, this is acceptable but not enriched.

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?

One short sentence with no filler; the action and target resource are immediately clear. Every word earns its place.

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

Completeness4/5

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

For a simple delete operation, the description plus fully documented schema and destructive annotation give an agent enough to call it correctly. It stops short of explicitly noting irreversibility, but this is largely implied by the destructiveHint annotation.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters are already documented with descriptions and an example for shortcutPath. The tool description adds no additional parameter meaning beyond what the schema provides, so it meets the baseline.

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 uses a specific verb ('Delete') and names the exact resource ('OneLake shortcut from a lakehouse'), clearly distinguishing it from related sibling tools like lakehouse_delete, lakehouse_create_shortcut, and lakehouse_list_shortcuts.

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

Usage Guidelines3/5

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

The intended use is implied: call this when a OneLake shortcut needs to be removed. However, it does not explicitly state when not to use it or mention alternatives such as lakehouse_list_shortcuts for discovering shortcuts before deletion.

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

lakehouse_getB
Read-only

Get details of a specific lakehouse including SQL endpoint and OneLake paths

ParametersJSON Schema
NameRequiredDescriptionDefault
lakehouseIdYesThe lakehouse ID
workspaceIdYesThe workspace ID

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds value by naming the details returned (SQL endpoint and OneLake paths), but it does not disclose behavior on missing IDs, authentication needs, or response format.

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 a single front-loaded sentence with no filler. Every word contributes to identifying the operation and the key content of the result.

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

Completeness4/5

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

For a simple read-only operation with two fully documented parameters and no output schema, the description gives enough detail about the tool's purpose and the kind of data returned. It is slightly incomplete because it does not help an agent choose between this and the more specific lakehouse_get_sql_endpoint sibling.

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

Parameters3/5

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

The input schema describes both workspaceId and lakehouseId with 100% coverage, so the schema carries the parameter meaning. The description does not add any additional parameter semantics beyond calling it a specific lakehouse.

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?

The description clearly states the verb 'Get details' and the resource 'a specific lakehouse,' and it names key returned content (SQL endpoint and OneLake paths). It does not explicitly contrast with siblings like lakehouse_get_sql_endpoint, so differentiation is implicit rather than stated.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus lakehouse_get_sql_endpoint, lakehouse_get_definition, or other lakehouse retrieval tools. The description implies that it is for full details, but it does not state exclusions or alternatives.

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

lakehouse_get_definitionA
Read-only

Get the definition of a lakehouse (long-running). Writes definition files to the specified output directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
lakehouseIdYesThe lakehouse ID
workspaceIdYesThe workspace ID
outputDirectoryPathYesDirectory path where definition files will be written

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already signal readOnlyHint=true and destructiveHint=false. The description adds meaningful behavioral context beyond those annotations: the operation is long-running and it writes definition files to a user-supplied output directory, which is a useful side effect for the agent to expect.

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?

Two short, purposeful sentences. The primary action and long-running nature are front-loaded, and the file-writing behavior earns its place in the second sentence. No filler.

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

Completeness4/5

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

With all required parameters documented in the schema and annotations covering safety, the description is largely complete for invocation. It could be more explicit about return behavior or how completion is signaled, but the long-running note and output-file side effect cover the most important operational expectations.

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

Parameters3/5

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

The input schema already documents all three parameters with 100% coverage. The description only echoes outputDirectoryPath ('writes definition files to the specified output directory') and does not add new parameter-level detail such as format, default, or directory behavior.

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 uses a specific verb ('Get'), a clear resource ('the definition of a lakehouse'), and adds the behavioral qualifier 'long-running' plus the output side effect of writing definition files. This makes it easy to distinguish from sibling tools like lakehouse_get or lakehouse_update_definition even without opening the schema.

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

Usage Guidelines2/5

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

The description states what the tool does but gives no guidance on when to choose it over alternatives such as lakehouse_get for simple metadata or lakehouse_update_definition for modifying definitions. No prerequisites, exclusions, or alternative-selection conditions are mentioned.

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

lakehouse_get_shortcutB
Read-only

Get details of a specific OneLake shortcut in a lakehouse

ParametersJSON Schema
NameRequiredDescriptionDefault
lakehouseIdYesThe lakehouse ID
workspaceIdYesThe workspace ID
shortcutNameYesThe shortcut name
shortcutPathYesThe shortcut path (e.g., 'Tables' or 'Files/landingZone')

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description is consistent with that. However, it adds no behavioral context beyond the basic operation: it does not clarify what 'details' are returned, how shortcutPath and shortcutName combine, or what happens when the shortcut is not found.

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 a single front-loaded sentence with no filler. Every word contributes to the core purpose, and it is appropriately sized for a simple read-only getter.

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

Completeness3/5

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

For a simple read-only operation with fully documented parameters and safety annotations, the definition is workable. However, with no output schema, the word 'details' leaves return-value expectations vague, and there is no mention of the related list_shortcuts tool to guide selection.

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

Parameters3/5

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

The input schema fully describes all four required parameters, including an example for shortcutPath, so schema coverage is 100%. The description adds no parameter-level meaning beyond what the schema already provides, making the baseline score of 3 appropriate.

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 names the operation ('Get details') and the resource ('a specific OneLake shortcut in a lakehouse') with enough specificity to distinguish it from sibling tools like lakehouse_list_shortcuts, lakehouse_create_shortcut, and lakehouse_delete_shortcut.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There is no mention of preferring this for single-shortcut lookups or when lakehouse_list_shortcuts would be more appropriate, leaving selection entirely to inference.

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

lakehouse_get_sql_endpointC
Read-only

Get the SQL endpoint details for a lakehouse

ParametersJSON Schema
NameRequiredDescriptionDefault
lakehouseIdYesThe lakehouse ID
workspaceIdYesThe workspace ID

TDQS

C2.9/5.0
Behavior2/5

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

Annotations declare readOnlyHint=true and destructiveHint=false, and the description confirms a read-only 'Get' operation without contradicting them. However, the description adds no behavioral context beyond what the annotations already communicate, such as response shape, error behavior, or relationship to connection strings.

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 a single, front-loaded sentence with no filler. Every word contributes to identifying the operation and target resource.

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

Completeness2/5

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

There is no output schema, yet the description does not explain what 'SQL endpoint details' contains, how it differs from related endpoint tools, or whether it returns connection information. For a getter with no output schema, this level of ambiguity leaves an agent guessing about the return value and how to use it.

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

Parameters3/5

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

The input schema covers both required parameters (workspaceId and lakehouseId) with concise descriptions at 100% coverage. The description adds minimal semantic value beyond the schema, but no additional parameter meaning is necessary for this straightforward get-by-identifier operation.

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?

The description clearly states a specific verb ('Get'), resource ('SQL endpoint details'), and target ('a lakehouse'), so an agent knows the basic operation. However, it does not distinguish this from closely related siblings such as warehouse_get_sql_endpoint, eventhouse_get_sql_endpoint, or sql_endpoint_get, and 'details' is underspecified.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives like sql_endpoint_get, sql_endpoint_get_connection_string, or lakehouse_get. The usage context is only implied by the name and resource type, not explicitly stated.

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

lakehouse_listA
Read-only

List all lakehouses in a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety behavior is covered. The description adds the scope of the operation ('all lakehouses') but does not disclose details like pagination, result ordering, or the shape of the returned list.

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 a single, front-loaded sentence with no wasted words. It conveys the operation, resource, and scope efficiently.

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

Completeness4/5

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

For a simple list operation with one well-described parameter and read-only annotations, the description is nearly sufficient. It would be slightly more complete if it mentioned that the result is a list of lakehouse summaries or any pagination behavior, but these are not critical for this tool.

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

Parameters3/5

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

Schema description coverage is 100% and the only parameter, workspaceId, is already described as 'The workspace ID'. The description's phrase 'in a workspace' aligns with the parameter but adds no additional semantic detail beyond what the schema already provides.

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 uses a specific verb ('List'), a clear resource ('lakehouses'), and a scope ('in a workspace'). This clearly distinguishes it from sibling tools like lakehouse_get (single item) and lakehouse_list_tables (tables within a lakehouse).

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

Usage Guidelines3/5

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

The intended usage is implied: call this when you need to enumerate all lakehouses in a workspace. However, the description does not explicitly mention alternatives or state when not to use this tool, such as when listing tables inside a lakehouse.

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

lakehouse_list_shortcutsA
Read-only

List all OneLake shortcuts in a lakehouse

ParametersJSON Schema
NameRequiredDescriptionDefault
lakehouseIdYesThe lakehouse ID
workspaceIdYesThe workspace ID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds that the operation lists 'all' shortcuts, indicating an unfiltered scope, but does not disclose return format, pagination, or potential performance traits. No contradiction with annotations.

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 a single seven-word sentence: 'List all OneLake shortcuts in a lakehouse.' It is front-loaded with the verb, concise, and every word contributes to meaning.

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

Completeness4/5

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

For a simple, read-only, two-parameter list operation, the description provides enough context for selection and invocation. It does not describe return fields or pagination, but absent an output schema and given the straightforward nature of a list-all tool, this is a minor gap rather than a critical omission.

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

Parameters3/5

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

Schema description coverage is 100%: both workspaceId and lakehouseId have descriptions already. The description only reinforces that the listing occurs within a lakehouse, adding no new parameter-level meaning.

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 states a specific verb ('List'), a specific resource ('OneLake shortcuts'), and a scope ('in a lakehouse'). It clearly distinguishes itself from siblings like lakehouse_list_tables (tables) and lakehouse_get_shortcut (a single shortcut).

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

Usage Guidelines3/5

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

The verb and resource imply usage: an agent should select this tool when it needs to enumerate shortcuts in a lakehouse. However, it does not explicitly mention alternatives or when not to use it, leaving some inference required despite the suggestive sibling names.

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

lakehouse_list_tablesA
Read-only

List all tables in a lakehouse. For schema-enabled lakehouses, automatically falls back to querying INFORMATION_SCHEMA via the SQL endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
lakehouseIdYesThe lakehouse ID
workspaceIdYesThe workspace ID

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already mark this as read-only and non-destructive. The description adds valuable behavioral context by disclosing that schema-enabled lakehouses automatically fall back to querying INFORMATION_SCHEMA via the SQL endpoint, which informs the agent about potential implicit behavior and dependencies.

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?

Two sentences, front-loaded with the core action, followed by a relevant behavioral note. There is no redundant text or repetition of schema details.

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

Completeness4/5

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

For a simple read-only list tool with two required parameters and full schema documentation, the description provides sufficient context for correct invocation. It could elaborate on the exact return shape since there is no output schema, but 'list all tables' conveys the essential outcome.

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

Parameters3/5

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

Schema description coverage is 100%, with both workspaceId and lakehouseId already described in the schema. The tool description adds no additional parameter-level meaning, so the baseline of 3 applies.

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 states a specific verb and resource: 'List all tables in a lakehouse.' This is immediately distinguishable from sibling tools like lakehouse_list (lists lakehouses) and warehouse_list_tables (tables in a warehouse). The additional fallback detail reinforces the purpose without obscuring it.

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?

The description clearly implies when to use this tool—when you need the list of tables in a specific lakehouse. It does not explicitly name alternatives or exclusions, but the resource scope is clear enough that an agent can route correctly among the many sibling list tools.

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

lakehouse_load_tableA

Load data into a lakehouse table from a file path (long-running operation). Not supported for schema-enabled lakehouses — use sql_endpoint_execute_query with COPY INTO or notebooks instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoLoad mode (default: Overwrite)
pathTypeYesType of the source path
tableNameYesTarget table name
lakehouseIdYesThe lakehouse ID
workspaceIdYesThe workspace ID
relativePathYesRelative path to the source file in OneLake
formatOptionsNoFormat options for the source file

TDQS

A4.3/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses the call is long-running, which should set agent expectations for an async operation, and flags the schema-enabled lakehouse incompatibility as a hard constraint. However, it does not mention that the 'Overwrite' mode replaces existing table data — a destructive behavior worth surfacing given destructiveHint=false. No contradiction with the annotations.

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?

Two sentences with zero waste: purpose and the long-running warning are front-loaded, and the exclusion with alternative follows immediately in the second sentence. Every clause earns its place.

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

Completeness3/5

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

For a 7-parameter mutation tool with a nested formatOptions object and no output schema, the description covers the key non-obvious constraints (long-running behavior, schema-enabled incompatibility) and the schema documents all parameters. The notable gap is that a long-running load likely returns a job or operation identifier requiring status tracking, which is not mentioned so an agent won't know how to poll for completion.

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

Parameters3/5

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

Schema description coverage is 100%, with every property (mode, pathType, tableName, lakehouseId, workspaceId, relativePath, formatOptions) already documented in the schema. The description only adds marginal meaning by linking 'file path' to relativePath/pathType. Baseline 3 is appropriate since the schema does the heavy lifting.

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?

States a specific action (load data), target (lakehouse table), and source (file path), and immediately distinguishes the tool with a long-running caveat and an explicit exclusion for schema-enabled lakehouses. This differentiates it from siblings like lakehouse_list_tables, lakehouse_create_shortcut, and sql_endpoint_execute_query without opening their schemas.

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?

Provides explicit when-not-to-use guidance ('Not supported for schema-enabled lakehouses') and names concrete alternatives ('use sql_endpoint_execute_query with COPY INTO or notebooks instead'). The when-to-use case is clear from the purpose: loading a file-path source into a lakehouse table. Nothing is left to inference.

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

lakehouse_updateB

Update a lakehouse's name or description

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoNew description
displayNameNoNew display name
lakehouseIdYesThe lakehouse ID
workspaceIdYesThe workspace ID

TDQS

B3.3/5.0
Behavior3/5

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

The annotations already indicate this is a mutating but non-destructive operation, so the description does not need to restate that. However, it adds no further behavioral context such as whether both fields are optional, whether an empty update is valid, or how missing fields are treated.

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 a single, front-loaded sentence with no filler. Every word contributes to understanding what the tool does.

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

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple metadata-update tool with fully documented parameters and clear annotations, the description is mostly adequate. However, it omits clarification about whether at least one of displayName or description must be provided, and it does not distinguish itself from the sibling lakehouse_update_definition.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already well documented. The description adds minimal semantic value beyond identifying 'name' and 'description' as the updatable fields, which the schema already conveys.

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?

The description states the specific verb 'update' with the resource 'lakehouse' and the exact field scope ('name or description'), which makes the core purpose clear. It does not explicitly cross-reference the sibling lakehouse_update_definition, but the mention of name/description helps differentiate from a full definition update.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many sibling lakehouse and update_definition tools. It does not state when this should be preferred or what alternatives exist for updating other lakehouse properties.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lakehouse_update_definitionA

Update a lakehouse's definition (long-running). Accepts definition parts inline or a directory path.

ParametersJSON Schema
NameRequiredDescriptionDefault
partsNoArray of definition parts to upload
lakehouseIdYesThe lakehouse ID
workspaceIdYesThe workspace ID
partsDirectoryPathNoPath to a directory containing definition files

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses a key behavioral trait, 'long-running', which is not captured by the readOnlyHint/destructiveHint annotations. It also indicates two modes of input (inline parts or directory path), which helps the agent understand expected invocation shape. It does not contradict the annotations, and the safety profile (not read-only, not destructive) is consistent with an update operation.

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 two sentences with no filler. It front-loads the action and immediately gives the critical behavioral note ('long-running'), followed by the two input modes. Every phrase earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter tool with full schema coverage and annotations covering the safety profile, the description is reasonably complete: it states the action, the long-running nature, and the two supported input strategies. The only notable omission is what the caller receives after initiating the long-running operation, but the absence of an output schema makes this a moderate gap rather than a critical one.

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 description coverage is 100%, which already documents each parameter. The description adds meaning by explaining the relationship between 'parts' and 'partsDirectoryPath': these are two alternative ways to provide definition content. This goes beyond the schema's isolated property descriptions and helps the agent decide how to populate the optional fields.

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: 'Update a lakehouse's definition'. It clearly distinguishes this from sibling tools like lakehouse_get_definition (read vs. write), lakehouse_update (general update vs. definition-specific update), and other resource update_definition tools. The parenthetical '(long-running)' adds useful scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case: this tool is for updating a lakehouse's definition, especially when definition parts are provided inline or via a directory. However, it does not explicitly state when to prefer this over lakehouse_update, nor does it mention alternatives or exclusions. The guidance is present but only inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mirrored_database_createA

Create a new mirrored database in a workspace (long-running)

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoDescription of the mirrored database
displayNameYesDisplay name for the mirrored database
workspaceIdYesThe workspace ID

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a non-read, non-destructive mutation. The description adds the meaningful 'long-running' warning, which is behavioral context beyond the schema and annotations. However, it does not explain whether the call returns immediately, requires polling, or what an agent should do while waiting, so the behavioral picture remains incomplete.

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 a single compact, front-loaded sentence with zero filler. The parenthetical 'long-running' earns its place by adding actionable operational context. This is an ideal structure for an agent-facing tool description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description does not explain what the tool returns, whether it blocks until completion, or how an agent should interpret a long-running operation. The schema fully documents parameters, but an agent still lacks post-invocation context. This is a significant gap for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so workspaceId, displayName, and description are already documented in the schema. The description adds no parameter-level meaning, but none is needed because the schema carries the full burden. Baseline of 3 is appropriate.

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 states the exact action ('Create'), the resource ('mirrored database'), and the scope ('in a workspace'), so an agent can tell this from siblings like mirrored_database_update and mirrored_database_start_mirroring. The 'new' qualifier further disambiguates creation from management operations. No ambiguity remains about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: use this when you need to create a brand-new mirrored database inside a workspace. However, it gives no explicit guidance about when not to use it, does not name alternatives, and does not mention follow-up steps such as starting mirroring or checking status. The usage is inferable but not actively supported.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mirrored_database_deleteA
Destructive

Delete a mirrored database

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
mirroredDatabaseIdYesThe mirrored database ID

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description matches the annotations: destructiveHint=true and readOnlyHint=false. However, it adds no behavioral detail beyond what the annotations already convey, such as irreversibility, cascade effects, or what happens to the underlying mirroring data.

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 a single, front-loaded sentence with no wasted words. For a straightforward destructive operation, this level of conciseness is appropriate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is minimal but sufficient to identify the operation, and the schema covers the required parameters. However, for a destructive tool with no output schema, it lacks useful context about side effects, reversibility, or behavior if the database does not exist.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so both parameters are already documented by the input schema. The description adds no further parameter context, which is acceptable given the schema's completeness.

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 states the specific verb 'delete' and the exact resource 'mirrored database', making the tool's function immediately clear. This distinguishes it from sibling tools that operate on other resource types and from mirrored_database_get/update/start_mirroring operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives. It does not mention that stopping mirroring is a non-destructive alternative, nor does it clarify prerequisites or situations where deletion is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mirrored_database_getC
Read-only

Get details of a specific mirrored database

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
mirroredDatabaseIdYesThe mirrored database ID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and destructiveHint=false, but the description adds no behavioral context beyond restating that it gets details. It does not say whether it returns full metadata, whether any compute/resource must exist, or whether the call is expensive.

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?

Single sentence with no filler; front-loaded with the verb and resource. The sentence earns its place given the simple parameter set.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the cluster of mirrored_database get-style siblings and the absence of an output schema, the description is too thin. It does not clarify what 'details' includes (metadata vs definition vs mirroring status), so an agent cannot confidently select this tool over its siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both workspaceId and mirroredDatabaseId documented, so the baseline is 3. The description adds no further parameter meaning beyond 'specific', which is fine but not enhancing.

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?

Description names a clear verb ('Get') and resource ('specific mirrored database'), so an agent knows the operation. It does not distinguish this from sibling tools like mirrored_database_get_definition or mirrored_database_get_mirroring_status, so it stops at a 4 rather than a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to prefer this tool over mirrored_database_get_definition, mirrored_database_get_mirroring_status, or mirrored_database_get_tables_mirroring_status. The sibling list shows several get-style variants, but the description gives no selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mirrored_database_get_definitionA
Read-only

Get the definition of a mirrored database (long-running). Writes definition files to the specified output directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
mirroredDatabaseIdYesThe mirrored database ID
outputDirectoryPathYesDirectory path where definition files will be written

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the operation read-only and non-destructive, and the description adds meaningful context beyond that: the call is long-running and performs a write of definition files. This gives agents a clearer expectation of side effects and runtime profile, though it does not detail asynchronous completion behavior.

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?

Two short sentences deliver the core purpose, a runtime warning, and the main side effect with no filler. The key phrase 'get definition' leads, and 'long-running' is placed as an immediate caveat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter read-oriented operation with no output schema, the description covers the main points: resource, action, long-running nature, and file output. A minor gap is that it does not explain what the call returns or how an agent should treat the long-running operation, but this is not critical given the file-write behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all three parameters are already documented. The description's mention of writing to the output directory is consistent with the schema but adds little new semantic information beyond what outputDirectoryPath already states.

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 names the exact action (get definition) on a specific resource (mirrored database), and further clarifies the operation by noting it is long-running and writes files to an output directory. This clearly distinguishes the tool from mirrored_database_get and mirrored_database_update_definition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case: call this when you need a mirrored database's definition materialized as files. However, it never explicitly states when to choose this over alternatives such as mirrored_database_get or other get_definition tools, nor does it note any exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mirrored_database_get_mirroring_statusB
Read-only

Get the mirroring status of a mirrored database

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
mirroredDatabaseIdYesThe mirrored database ID

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. However, the description adds no behavioral context beyond the name: it does not mention that this returns database-level status rather than per-table status, nor does it describe any output characteristics. With no extra behavioral disclosure, the description contributes little beyond the annotations.

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 a single clean sentence that states the operation directly. There is no redundant wording, filler, or repetition of schema details that would bloat the definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter read operation, the description is mostly adequate, but it lacks an explicit distinction from mirrored_database_get_tables_mirroring_status and does not indicate what kind of status information is returned. Since there is no output schema to fill that gap, the agent may not know whether this tool returns overall database status or table-level details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for both parameters, and the parameter names (workspaceId, mirroredDatabaseId) are reasonably self-explanatory. The description does not add parameter-level detail, but the schema carries the semantic burden well enough for a baseline score.

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?

The description clearly states the verb 'Get' and the resource 'mirroring status of a mirrored database'. However, it does not explicitly distinguish itself from the sibling tool mirrored_database_get_tables_mirroring_status, so the resource scope is clear but the differentiation relies on the tool name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives such as mirrored_database_get_tables_mirroring_status, mirrored_database_start_mirroring, or mirrored_database_stop_mirroring. The agent is left to infer the appropriate context from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mirrored_database_get_tables_mirroring_statusA
Read-only

Get the mirroring status of individual tables in a mirrored database

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
mirroredDatabaseIdYesThe mirrored database ID

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds the per-table scoping detail but discloses nothing about return format, possible status values, or pagination. No contradiction with annotations exists.

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?

One sentence, front-loaded with the verb and resource, with zero wasted words. Every element earns its place, and the scoping qualifier 'individual tables' carries the discriminating information needed to distinguish it from related tools.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only two simple string parameters, a read-only annotation, and no nested objects, the tool is low in complexity. The description conveys scope and the schema covers all parameters, so an agent can invoke it correctly. The only gap is the lack of an output schema or any statement about the response shape, which is a minor issue for a status-read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both workspaceId and mirroredDatabaseId documented in the input schema. The description adds no parameter-level meaning beyond what the schema already provides, so the baseline of 3 applies.

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?

States a specific read verb ('Get') on a well-defined resource: the mirroring status of individual tables within a mirrored database. The qualifier 'individual tables' differentiates this from the sibling mirrored_database_get_mirroring_status, which targets database-level status. An agent can tell the two apart from the description alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'individual tables' implies per-table granularity, which distinguishes this from the database-level mirrored_database_get_mirroring_status sibling. However, the description never explicitly states when to prefer this tool over that alternative, nor does it mention any exclusions or prerequisites. Usage context is implied, not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mirrored_database_listA
Read-only

List all mirrored databases in a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish the operation is read-only and non-destructive, lowering the bar. The description adds workspace scoping and the 'all' enumeration behavior, but it does not disclose return format, pagination, or any additional behavioral traits.

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?

One short sentence carries the operation, resource, and scope with no filler. It is front-loaded and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only list operation, the description is mostly complete: it names the action, resource, and required scope, and list semantics imply a returned collection. It lacks only an explicit note about what each listed item contains, which would be useful without an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% coverage for the only parameter, workspaceId, so the description is not required to compensate. The phrase 'in a workspace' simply restates the parameter's purpose without adding format, constraints, or usage detail.

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 uses a precise verb ('List'), names the resource ('mirrored databases'), and scopes it to a workspace. The 'all' phrasing distinguishes it from single-item tools like mirrored_database_get and from list tools for other resource types such as kql_database_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The wording implies this is the correct tool when an agent needs to enumerate every mirrored database in a given workspace. However, it does not explicitly say when to prefer it over alternatives or mention the single-resource counterpart (mirrored_database_get).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mirrored_database_start_mirroringC

Start mirroring for a mirrored database

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
mirroredDatabaseIdYesThe mirrored database ID

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate the operation is not read-only and not destructive, but the description adds no behavioral context beyond that. It does not disclose whether mirroring starts asynchronously, whether the operation is idempotent, what prerequisites exist, or how to verify the result via a status tool.

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?

The description is a single short sentence with no filler and the action is front-loaded. It is structurally efficient, though its brevity comes at the cost of substantive information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a state-changing tool with no output schema, the description is too thin. It does not explain what starting mirroring entails, whether the call returns immediately, or that mirrored_database_get_mirroring_status should be used to track progress. The presence of related status/stop tools makes this omission more significant.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters ('workspaceId' and 'mirroredDatabaseId') documented at a basic level. The description itself adds no parameter meaning, but the schema already carries the burden adequately, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Start mirroring for a mirrored database' simply restates the tool name 'mirrored_database_start_mirroring' in natural language. It is a tautology and adds no clarifying detail about scope, behavior, or how it differs from related mirrored_database tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives such as mirrored_database_stop_mirroring or mirrored_database_get_mirroring_status. The agent must infer usage entirely from the tool name and sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mirrored_database_stop_mirroringB

Stop mirroring for a mirrored database

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
mirroredDatabaseIdYesThe mirrored database ID

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is a mutating but non-destructive operation (readOnlyHint false, destructiveHint false), and the description adds no behavioral context beyond restating the action. It does not disclose whether stopping is reversible, what state the database enters, or what impact it has on downstream mirroring consumers.

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 a single, direct sentence with no filler or redundancy. It states the action immediately and is appropriately sized for a simple two-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The schema and annotations cover the parameters and the safety profile reasonably well, and the operation is simple, so the description is minimally adequate. It still omits usage conditions, reversibility, and effects, but the absence of an output schema and nested objects keeps the burden relatively low.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with workspaceId and mirroredDatabaseId both having descriptions, so the schema carries the parameter meaning. The tool description adds no additional parameter context, which matches the baseline for high schema coverage.

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?

The description states a clear action (Stop mirroring) and a clear resource (a mirrored database), so an agent can tell what operation is being offered. However, it mostly restates the tool name and does not explicitly differentiate itself from related operations like mirrored_database_delete or mirrored_database_update, so it stops short of the strongest sibling-aware clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives such as mirrored_database_start_mirroring, mirrored_database_get_mirroring_status, or mirrored_database_delete. It also omits prerequisites like the database currently having mirroring enabled, leaving usage conditions entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mirrored_database_updateB

Update a mirrored database's name or description

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoNew description
displayNameNoNew display name
workspaceIdYesThe workspace ID
mirroredDatabaseIdYesThe mirrored database ID

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false, so the description adds little by saying 'Update'. It does not disclose effects on mirroring, idempotency, whether at least one field must be provided, or any side effects beyond the annotations.

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?

A single sentence that is concise, front-loaded with the verb and resource, and contains no filler. It communicates the essential scope without unnecessary explanation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple metadata-update tool, the description combined with the fully documented schema and annotations is mostly sufficient. It lacks a note distinguishing it from mirrored_database_update_definition and does not mention the return value, but these are minor given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already well documented. The description adds only a high-level mapping of 'name' to displayName and 'description' to description, but no extra constraints or format details.

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?

The description clearly identifies a specific action ('Update') and resource ('mirrored database'), and narrows the scope to name or description. It is not explicitly contrasted with the sibling mirrored_database_update_definition, so it doesn't fully distinguish itself from that likely alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: when you need to change a mirrored database's display name or description. However, it provides no explicit guidance about when not to use it or how it differs from mirrored_database_update_definition, leaving the selection partially to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mirrored_database_update_definitionA

Update a mirrored database's definition (long-running). Accepts definition parts inline or a directory path.

ParametersJSON Schema
NameRequiredDescriptionDefault
partsNoArray of definition parts to upload
workspaceIdYesThe workspace ID
mirroredDatabaseIdYesThe mirrored database ID
partsDirectoryPathNoPath to a directory containing definition files

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations establish that this is a read/write operation (readOnlyHint=false, destructiveHint=false). The description adds the significant long-running trait and the two input modes (inline parts vs directory path), which go beyond the annotations. It does not disclose whether the update replaces the entire definition or merges changes, but it provides meaningful behavioral context.

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?

Two short sentences with no filler. The first sentence front-loads the action and the long-running warning, and the second efficiently communicates the two accepted input modes. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a long-running mutation with no output schema, the description leaves gaps: it does not state whether `parts` and `partsDirectoryPath` are mutually exclusive, whether the definition is fully replaced, or how to check completion/status. The sibling status tools are about mirroring, not definition updates, so an agent may be uncertain about the call's result or follow-up.

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 description coverage is 100%, so the baseline is 3. The description adds value by framing `parts` and `partsDirectoryPath` as alternative input modes ('inline or a directory path'), clarifying the relationship between the two optional parameters beyond their individual schema descriptions.

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: updating a mirrored database's definition, and flags it as long-running. It is clear among the many sibling update_definition tools because it names the mirrored database resource, but it does not explicitly contrast with mirrored_database_update, so the distinction relies on the word 'definition' and the parameter names.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance is provided. The description does not mention alternatives such as mirrored_database_get_definition for reading or mirrored_database_update for non-definition updates, nor does it explain when to choose this tool over the many other resource-specific update_definition tools. Usage is only implied by the name and action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ml_experiment_createB

Create a new ML experiment in a workspace (long-running)

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoDescription of the ML experiment
displayNameYesDisplay name for the ML experiment
workspaceIdYesThe workspace ID

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint=false and destructiveHint=false, so the write-but-not-destructive profile is covered. The description adds the '(long-running)' behavioral flag, which is genuinely useful context beyond the annotations, but it does not explain operational implications such as whether the call blocks, returns an ID to poll, or how to check completion status.

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?

A single ten-word sentence with zero wasted words. The verb 'Create' is front-loaded, followed by the resource and scope, and the '(long-running)' caveat is appended efficiently without bloating the description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 3-parameter tool with 100% schema coverage, annotations, and no output schema, the description covers what, where, and a key behavioral trait. However, the 'long-running' flag raises an unanswered question: how does the agent determine when creation has completed or succeeded? No polling/status mechanism is suggested, which is a notable gap given the explicit latency warning.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are already documented in the schema. The description's phrase 'in a workspace' reinforces the role of workspaceId, but it adds no format details, constraints, or relationships between parameters beyond what the schema provides, so the baseline of 3 applies.

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?

The description states a specific verb ('Create'), resource ('ML experiment'), and scope ('in a workspace'), which clearly identifies the operation. It distinguishes itself from sibling tools like ml_experiment_list, ml_experiment_get, and ml_experiment_delete through the create verb and resource naming, though it relies on the resource name rather than explicit differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as ml_model_create, ml_experiment_update, or ml_experiment_list. There is no mention of prerequisites (e.g., the workspace must exist) or conditions that would make a different tool more appropriate, leaving selection entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ml_experiment_deleteA
Destructive

Delete an ML experiment

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
mlExperimentIdYesThe ML experiment ID

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=false and destructiveHint=true, so the agent knows this is a destructive operation. The description confirms the target resource but adds no further behavioral context such as irreversibility, cascading deletion of experiment data, or authorization requirements.

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 a single, front-loaded sentence with no filler, repetition, or unnecessary detail. It is appropriately sized for a simple two-parameter delete operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the fully documented two-parameter schema and destructive annotations, the description is minimally sufficient for an agent to select and invoke the tool. It is incomplete only in that it does not mention whether deletion is permanent, what side effects may occur, or what a successful result looks like, and there is no output schema to clarify this.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both required parameters have clear descriptions ('The workspace ID' and 'The ML experiment ID'). The tool description does not add parameter-level meaning, but the schema already provides adequate information.

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 states a specific verb ('Delete') and a clear resource ('an ML experiment'), making the operation unambiguous. It is readily distinguishable from sibling tools such as ml_experiment_create, ml_experiment_update, ml_experiment_get, and ml_experiment_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when deletion is appropriate, how to obtain the workspaceId or mlExperimentId, or what to do instead of deleting. The description only names the operation, leaving usage context to be inferred from the tool name and sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ml_experiment_getA
Read-only

Get details of a specific ML experiment

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
mlExperimentIdYesThe ML experiment ID

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description's 'Get' aligns with that. The description adds no additional behavioral context, such as what fields are returned, authentication requirements, or edge cases. It is consistent but does not go beyond the annotations.

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?

A single, front-loaded sentence with no filler. It directly states the operation and the resource, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is sufficient for basic invocation given the two documented parameters and safety annotations. However, with no output schema, the term 'details' is vague and does not clarify what the response will contain, and there is no mention of prerequisites like obtaining the experiment ID.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both workspaceId and mlExperimentId described in the schema. The description adds no extra meaning beyond the schema, so the baseline of 3 applies.

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 uses a specific verb ('Get') and a specific resource ('details of a specific ML experiment'). It clearly distinguishes itself from sibling tools like ml_experiment_list (which lists experiments) and ml_experiment_update/delete (which mutate experiments).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is given on when to use this tool versus ml_experiment_list, nor how to obtain the mlExperimentId (e.g., from a list call). The usage is implied by the name and description, but no alternatives or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ml_experiment_listA
Read-only

List all ML experiments in a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered and the description is consistent with it. The description adds that the operation returns all experiments scoped to a workspace, but does not disclose behavior such as pagination, result limits, or ordering. With annotations handling safety, this is adequate but not rich.

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?

A single, front-loaded sentence with zero filler. The verb, resource, and scope appear in the first six words, and there is no redundant restatement of the tool name or schema fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter list tool with read-only annotations and high schema coverage, the definition is nearly complete. An agent can call it correctly with the information provided. The only minor absence is behavioral detail like pagination or return format, which is low-stakes for a scoped read-only enumeration.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — workspaceId is already documented as 'The workspace ID'. The description reinforces the linkage by mentioning 'in a workspace', which maps directly to the parameter, but adds no syntax, format, or constraint details beyond the schema. Baseline 3 applies.

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 uses a specific verb ('List'), a distinct resource ('ML experiments'), and a clear scope ('in a workspace'). This cleanly distinguishes it from siblings such as ml_experiment_get (single-item retrieval), ml_model_list (different resource type), and the ml_experiment_create/update/delete mutation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'in a workspace' implies the tool is used to enumerate experiments within a workspace context, and the read-only nature is clear from the verb. However, the description does not explicitly state when to prefer this over alternatives like ml_experiment_get, nor does it name exclusions. Usage context is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ml_experiment_updateB

Update an ML experiment's name or description

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoNew description
displayNameNoNew display name
workspaceIdYesThe workspace ID
mlExperimentIdYesThe ML experiment ID

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the mutating-but-not-destructive nature is established. The description adds that only name and description are affected, which is useful, but it does not clarify patch semantics, idempotency, or behavior when only the required IDs are provided.

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 a single, front-loaded sentence with no filler. Every word earns its place, and it directly conveys the tool's core action and scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 4-parameter update tool with no output schema, the description is reasonably complete for identifying the action and target fields. However, it omits guidance about partial updates, the need to provide at least one mutable field, and what happens if invalid IDs are passed, leaving some ambiguity for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description loosely maps 'name' to the 'displayName' parameter and 'description' to the 'description' parameter, which adds some clarity, but it does not explain whether at least one optional field is required or whether both can be supplied together.

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?

The description states a specific verb ('Update'), resource ('ML experiment'), and target fields ('name or description'). It clearly separates this from sibling tools like ml_experiment_create, ml_experiment_get, ml_experiment_delete, and ml_experiment_list by indicating a mutation of existing experiment metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to use this tool versus alternatives, no prerequisites (e.g., that the experiment must exist), and no mention of when to prefer create/delete/list. Usage is only implicit from the word 'Update'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ml_model_createA

Create a new ML model in a workspace (long-running)

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoDescription of the ML model
displayNameYesDisplay name for the ML model
workspaceIdYesThe workspace ID

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, so the mutating nature is covered. The description adds the long-running behavior, which is a useful disclosure beyond annotations. However, it does not say what the operation returns, how to poll status, or whether creation can be retried on failure.

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?

A single sentence with no filler; the core action and distinguishing context are front-loaded. The long-running note is compact and informative. Nothing could be removed without losing value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a simple create with 3 fully documented parameters and no output schema, so the description only needs to cover operational behavior. The long-running warning is included, but the missing details about result retrieval or operation tracking leave an agent uncertain about next steps. Overall adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so workspaceId, displayName, and description are all documented in the schema. The description adds no additional parameter-level meaning, so the baseline of 3 applies.

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 begins with a specific verb 'Create' and names the resource 'ML model' with scope 'in a workspace'. This clearly differentiates it from sibling tools like ml_model_update, ml_model_delete, and ml_model_list. The parenthetical 'long-running' adds a defining behavioral trait that aids selection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives some context (workspace scoping, long-running) but provides no explicit when-to-use guidance or exclusions. It does not mention alternatives, such as ml_model_update for modifying an existing model or ml_experiment_create for experiments. The intended usage is implied by the name rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ml_model_deleteB
Destructive

Delete an ML model

ParametersJSON Schema
NameRequiredDescriptionDefault
mlModelIdYesThe ML model ID
workspaceIdYesThe workspace ID

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false, so the destructive nature is communicated at the structured level. The description does not add extra context about permanence, cascade effects, or required permissions, but it does not contradict the annotations either.

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 entire description is a single front-loaded sentence with no filler or redundant elaboration. Every word contributes to stating the operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter delete operation with a destructive annotation and full schema coverage, the description is largely sufficient. It does not explain whether deletion is reversible or whether the model must be unused, but the low complexity and annotations cover the main operational risks.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage and clearly explains mlModelId and workspaceId, so the description does not need to repeat them. The tool-level description adds no additional meaning about how the parameters relate to the deletion operation, which keeps this at the baseline.

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?

The description states a clear verb ('Delete') and resource ('ML model'), so an agent can tell it apart from ml_model_get, ml_model_update, and unrelated delete tools. It lacks scoping details like workspace-level specificity or a note that this differs from deleting an experiment, but the core purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool instead of alternatives such as ml_model_update or ml_model_delete-related operations, nor any mention of prerequisites like listing models to obtain mlModelId. The agent must infer usage entirely from the tool name and schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ml_model_getB
Read-only

Get details of a specific ML model

ParametersJSON Schema
NameRequiredDescriptionDefault
mlModelIdYesThe ML model ID
workspaceIdYesThe workspace ID

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds no behavioral disclosure beyond the tool name, such as what 'details' are returned, error handling, or whether the model must exist. Minimal additional value beyond the annotations.

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?

The description is a single concise sentence with no filler or redundancy. It front-loads the action and resource. It's efficient, though generic enough that it adds little beyond the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only get tool with annotations and a fully documented two-parameter schema, the description is minimally sufficient. However, there is no output schema and the description doesn't state what details are returned or any not-found behavior. An agent could invoke it, but would lack expected response context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both mlModelId and workspaceId, so the description doesn't need to re-explain them. It also doesn't add extra meaning about how the IDs relate or which is used for scoping. Baseline 3 is appropriate because the schema carries the parameter semantics.

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?

The description clearly states the action ('Get details') and the resource ('a specific ML model'), which distinguishes it from list-style siblings like ml_model_list. It doesn't explicitly say 'by ID', but the schema provides mlModelId. It's slightly generic but unambiguous enough.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'a specific ML model' implies this is for fetching a single existing model rather than listing them, but the description gives no explicit when-to-use or when-not-to-use guidance. It doesn't mention alternatives like ml_model_list or note any workspace context requirements. Usage is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ml_model_listB
Read-only

List all ML models in a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the workspace scoping context but does not disclose pagination, ordering, or whether the listing returns full model definitions or summaries. Given the annotations, this level of disclosure is adequate.

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 a single sentence with no wasted words. The action and resource are front-loaded, and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with one required parameter, the description covers the essential scope ('all ML models in a workspace'). The annotations declare safety, and the schema handles the parameter. The lack of return-format or pagination details is a minor gap given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, workspaceId, is fully documented in the schema ('The workspace ID'), and schema description coverage is 100%. The description reiterates 'in a workspace' but adds no new parameter semantics beyond the schema. Baseline 3 is appropriate.

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?

The description states a specific verb ('List') and resource ('all ML models in a workspace'), which clearly distinguishes it from operations like ml_model_get or ml_model_create. It does not explicitly name a sibling alternative, but the action and scope are unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives such as ml_model_get or other list operations. The agent must infer usage from naming conventions alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ml_model_updateA

Update an ML model's name or description

ParametersJSON Schema
NameRequiredDescriptionDefault
mlModelIdYesThe ML model ID
descriptionNoNew description
displayNameNoNew display name
workspaceIdYesThe workspace ID

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, and the description does not contradict them. It adds useful context that only the name and description fields are modified, which clarifies the mutation scope beyond what annotations provide.

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 a single, compact sentence with no filler. It front-loads the action and resource, then specifies the affected fields efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple update tool with fully documented parameters and consistent annotations, the description is sufficiently complete. The only minor omission is lack of return-value details, but that is not material given the straightforward nature of this operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the schema already documents each parameter. The description adds only a loose mapping from 'name or description' to the displayName and description parameters, which justifies the baseline score of 3.

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 states the specific verb 'Update', the resource 'ML model', and the affected fields 'name or description'. This clearly distinguishes it from siblings like ml_model_create, ml_model_delete, and ml_model_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit when-to-use guidance, exclusions, or alternatives. It does not mention that this tool is for updating only displayName/description, nor does it point to other ML model operations for different use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

notebook_attach_environmentA

Attach a Fabric Environment to a notebook so it uses that environment's compute/libraries. Mutates the notebook definition metadata (no local files involved).

ParametersJSON Schema
NameRequiredDescriptionDefault
notebookIdYesThe notebook ID
workspaceIdYesThe workspace ID where the notebook lives
environmentIdYesThe environment ID to attach
environmentWorkspaceIdNoWorkspace ID of the environment (defaults to the notebook's workspaceId)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only provide readOnlyHint=false and destructiveHint=false, which mark this as a mutating operation without gross destructiveness. The description adds genuinely useful context beyond those hints: it states precisely what is mutated ('notebook definition metadata'), what is not touched ('no local files involved'), and the downstream effect on runtime compute/libraries. It stops short of full disclosure (e.g., reversibility, permissions, impact on running sessions), but the metadata-scope clarification is valuable.

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?

Two tightly written sentences with zero filler. The primary action and effect are front-loaded in the first sentence, and the clarifying mutation-scope caveat follows immediately. Every phrase earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity operation with four fully documented parameters and no output schema, the description covers the essential ground: what the tool does, what effect it has, and what it does not touch. The main gaps are usage guidance and prerequisites, which are not critical for a straightforward metadata attach operation but would round out the definition.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each of the four parameters documented (notebookId, workspaceId, environmentId, and environmentWorkspaceId with its defaulting behavior). The description reinforces the core semantics by linking 'environment' to 'compute/libraries', but adds no parameter-level detail beyond what the schema already provides, so the baseline of 3 is appropriate.

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 uses a specific verb ('Attach') with a specific resource ('a Fabric Environment to a notebook') and states the operational effect ('so it uses that environment's compute/libraries'). The second sentence clarifies the scope of the operation ('Mutates the notebook definition metadata'), which differentiates it from file-level operations and from the sibling notebook_detach_environment by making the attachment direction explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The purpose statement implies when to use it (when a notebook should run on a given environment's compute/libraries), but there is no explicit guidance on prerequisites, such as the environment being published, or on alternatives, such as pointing to notebook_detach_environment for the reverse operation. The sibling list exists, but the description itself never says 'use this when...' or 'for X, use Y instead.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

notebook_cancel_runA
Destructive

Cancel a running notebook execution

ParametersJSON Schema
NameRequiredDescriptionDefault
notebookIdYesThe notebook ID
workspaceIdYesThe workspace ID
jobInstanceIdYesThe job instance ID to cancel

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description essentially restates the action reflected in the destructiveHint annotation and the tool name. It adds no context beyond that, such as whether cancellation is asynchronous, irreversible, or has side effects on already-computed results.

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 a single, front-loaded sentence with no filler or redundant phrasing. Every word contributes to conveying the action and target resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for a simple destructive cancellation tool, especially with annotations and fully documented parameters. However, it does not mention post-cancellation behavior or how to verify the run was successfully cancelled, and there is no output schema to fill that gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter having a clear description in the schema. The tool description does not add parameter-level meaning, which is acceptable given the schema already documents workspaceId, notebookId, and jobInstanceId.

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 uses a specific verb ('Cancel') with a clear resource ('a running notebook execution'), and the name 'notebook_cancel_run' matches. It is easily distinguishable from sibling tools like notebook_run and notebook_get_run_status, as well as pipeline_cancel_run and copy_job_cancel_run.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies its use case: cancel a notebook run that is currently executing. However, it does not explicitly state when not to use it or point to alternatives such as notebook_get_run_status for checking state or notebook_run for starting a run.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

notebook_createA

Create a new notebook in a workspace (long-running operation)

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoDescription of the notebook
displayNameYesDisplay name for the notebook
workspaceIdYesThe workspace ID

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The parenthetical 'long-running operation' is a valuable behavioral disclosure beyond the annotations, signaling that the call may not complete synchronously and may require polling or status checks. This adds meaningful context that the readOnlyHint and destructiveHint annotations do not provide.

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 a single, front-loaded sentence that states the core purpose and the key behavioral caveat. There is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a long-running create operation with no output schema, the description does not explain what the caller receives (e.g., an operation ID) or how to track completion. This is a meaningful gap, though the required parameters and purpose are clear enough to invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already well documented in the schema. The description adds no additional parameter-level meaning, but it does not need to because the schema carries the full load.

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 states a specific verb ('Create'), a clear resource ('notebook'), and a location ('in a workspace'), making it immediately obvious what the tool does. It is distinct from sibling operations like notebook_update, notebook_delete, and notebook_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives, nor prerequisites such as ensuring the workspace exists. The usage is only implied by the verb 'create' and the resource name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

notebook_deleteC
Destructive

Delete a notebook

ParametersJSON Schema
NameRequiredDescriptionDefault
notebookIdYesThe notebook ID
workspaceIdYesThe workspace ID

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=true, and the description merely repeats the destructive action ('Delete') without adding any context beyond the annotations: nothing about permanence/irreversibility, whether deletion cascades to definitions, permission requirements, or failure behavior. No contradiction, but zero added behavioral value.

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?

Three words, one sentence, zero wasted content, and the core action is immediate and front-loaded. It is appropriately compact for a simple delete primitive, though the brevity edges toward under-specification rather than deliberate conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-parameter tool with no output schema and annotations covering mutation/destruction, the essential calling information is present: parameters are documented in the schema and the safety profile is in the annotations. The gap is that for a destructive operation, an agent would benefit from knowing whether deletion is permanent/reversible or has cascading effects, which neither the description nor annotations disclose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with both required parameters (workspaceId, notebookId) documented, so the schema carries the parameter burden; the description adds nothing about parameter semantics. Per the high-coverage baseline, a 3 is appropriate, though the schema descriptions ('The notebook ID', 'The workspace ID') are themselves minimal restatements of the parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Delete a notebook" states a specific verb and resource, and the verb 'delete' distinguishes it from notebook_list/get/create/update/run siblings. However, it is essentially a word-order rearrangement of the tool name itself, adding no semantic detail beyond what the name already encodes, and it does not differentiate it from other *_delete sibling tools except by resource name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, no exclusions, and no prerequisites. Nothing indicates e.g. whether the notebook must not be running, whether a running notebook should be stopped first via notebook_cancel_run, or that notebook_get_definition should be called first if a copy is needed before deletion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

notebook_detach_environmentA
Destructive

Remove the attached environment from a notebook by deleting the environment binding from its definition metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
notebookIdYesThe notebook ID
workspaceIdYesThe workspace ID

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as destructive, but the description adds valuable context by specifying exactly what gets deleted: the environment binding in definition metadata, not the environment resource itself. This helps prevent confusion with environment_delete. It does not mention reversibility or side effects, but the core mutation is clearly scoped.

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?

A single sentence with no filler. The primary action is front-loaded, and the mechanism follows naturally. Every word contributes to understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter destructive operation, the description combined with annotations and schema coverage is largely complete. It explains what is mutated, what is not mutated, and all required parameters are documented. The only minor gap is the absence of any description of the return value or explicit usage prerequisites.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%: both notebookId and workspaceId have descriptions in the input schema. The tool description does not add parameter-specific detail, but none is necessary because the schema already documents the parameters adequately.

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: 'Remove the attached environment from a notebook.' It also clarifies the mechanism by stating that it deletes the environment binding from definition metadata, distinguishing it from notebook_delete and notebook_attach_environment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the operation itself: use this when you want to detach an environment from a notebook. However, the description does not explicitly name alternatives like notebook_attach_environment, nor does it state when not to use the tool, leaving the routing largely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

notebook_getB
Read-only

Get details of a specific notebook

ParametersJSON Schema
NameRequiredDescriptionDefault
notebookIdYesThe notebook ID
workspaceIdYesThe workspace ID

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered; the description's 'Get' matches this and introduces no contradiction. It adds no further behavioral context such as return format, errors, or permissions, but for a simple read-only getter this is acceptable with annotation coverage.

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?

At seven words, the description is appropriately minimal and front-loaded with the core verb and object. There is no redundant text or restatement of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is low-complexity with only two fully described parameters and read-only annotations, so the description is almost sufficient. However, with no output schema, 'details' is vague, and the presence of sibling notebook_get_definition creates ambiguity about whether this returns metadata or definition content.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with both notebookId and workspaceId described, so the schema already documents the parameters adequately. The description adds no parameter-level detail beyond implying the notebook is identified by its ID, which matches the baseline expectation.

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?

The description states a specific verb ('Get'), a resource ('notebook'), and scope ('specific'), clearly identifying this as a lookup operation rather than list/create/update/delete. However, it does not explicitly differentiate from the sibling notebook_get_definition; 'details' is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives such as notebook_list (to find notebooks) or notebook_get_definition (to fetch notebook content). The 'specific notebook' phrasing implies a target ID, but no explicit when/when-not or alternative routing is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

notebook_get_definitionA
Read-only

Get the content/definition of a notebook (long-running). Writes definition files to the specified output directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
notebookIdYesThe notebook ID
workspaceIdYesThe workspace ID
outputDirectoryPathYesDirectory path where notebook definition files will be written

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as read-only and non-destructive. The description adds two useful behavioral traits beyond annotations: the operation is long-running, and it writes definition files to an output directory. This helps set expectations for latency and side effects, with no contradiction.

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 a single compact sentence with no filler. It front-loads the core purpose and then adds the two most important operational details: long-running and file output.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only definition-export tool with three fully documented parameters and safety annotations, the description gives enough context: what is retrieved, that it is long-running, and where output goes. It does not explain completion semantics, but that is a minor gap for this simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already documented. The description reinforces that outputDirectoryPath is where definition files are written, but it does not add material meaning beyond 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?

The description states a clear action and resource: 'Get the content/definition of a notebook.' It also notes the operation is long-running and writes definition files, which adds scope. It does not explicitly compare against the sibling notebook_get, so differentiation relies on the name and the 'definition' + 'writes files' details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance about when to use this tool instead of notebook_get or notebook_get_definition variants for other resources. The 'long-running' note and output-directory behavior imply a use case, but no alternative is named and no selection criteria are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

notebook_get_run_statusA
Read-only

Get the status of a notebook run

ParametersJSON Schema
NameRequiredDescriptionDefault
notebookIdYesThe notebook ID
workspaceIdYesThe workspace ID
jobInstanceIdYesThe job instance ID from notebook_run

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the 'status' context but does not disclose additional behavioral details such as poll behavior, possible status values, or error conditions. This is acceptable given annotation coverage.

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?

A single, clear sentence with zero wasted words. The verb and resource are front-loaded, making the tool's purpose immediately visible.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only status getter, the description plus fully documented schema and annotations are sufficient for an agent to invoke it correctly. No output schema exists, but returning a status is implied by the tool's purpose; missing status enums or return details are minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each of the three required parameters already explained in the schema. The description adds no additional parameter-specific meaning, so the baseline of 3 applies.

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 uses a specific verb ('Get') and resource ('status of a notebook run'), clearly distinguishing it from notebook_run and notebook_cancel_run. The purpose is unambiguous and differentiates from sibling get_run_status tools like pipeline_get_run_status.

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?

The description provides clear context: this is a status lookup for a notebook run, implying use after notebook_run has been started. It does not explicitly mention alternatives or exclusions, but the naming and description make the use case obvious.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

notebook_listA
Read-only

List all notebooks in a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the workspace-scoped listing behavior but says nothing about pagination, ordering, or return format, though these are not essential for a simple read-only list.

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?

A single, front-loaded sentence with no filler. Every word is informative and the description is not bloated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only list operation with annotations covering safety, the description is largely complete. It could mention pagination or return fields, but the lack of an output schema and the simplicity of the tool make these omissions acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so workspaceId is already documented. The description reinforces that the parameter selects the workspace, but adds no extra semantics beyond the 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 uses a specific verb ('List'), a clear resource ('notebooks'), and an explicit scope ('in a workspace'), which distinguishes it from sibling tools like notebook_get (single notebook) and other resource listers. It states exactly what the tool does.

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?

The description makes the intended use obvious: retrieve all notebooks within a given workspace. It does not explicitly name alternatives or state when not to use it, but the scope and resource naming provide clear context without ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

notebook_runC

Run a notebook on demand

ParametersJSON Schema
NameRequiredDescriptionDefault
notebookIdYesThe notebook ID
parametersNoNotebook parameters as key-value pairs
workspaceIdYesThe workspace ID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false and destructiveHint=false, but the description adds almost no behavioral context beyond that. It does not disclose that running a notebook executes arbitrary code, may be asynchronous, produces a run ID, or that run status should be checked via notebook_get_run_status.

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?

The description is a single, front-loaded sentence with no filler. It is concise, though it sacrifices useful behavioral detail that could have been included without bloating the text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema and the description does not explain return values, run semantics, or follow-up actions like checking run status or canceling a run. For an execution tool with side effects and no output schema, this is an incomplete definition.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented: workspaceId, notebookId, and parameters as key-value pairs. The description adds no additional parameter detail, but the structured schema carries the burden, yielding the baseline score of 3.

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?

The description uses a specific verb and resource: 'Run a notebook on demand'. It clearly distinguishes the operation from notebook list/get/update/cancel siblings by indicating an execution action. It does not explicitly contrast with scheduled or asynchronous execution, but the core purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use notebook_run versus related tools like notebook_get_run_status, notebook_cancel_run, or pipeline_run. The phrase 'on demand' implies immediate execution, but no alternatives or exclusion conditions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

notebook_updateA

Update a notebook's name or description

ParametersJSON Schema
NameRequiredDescriptionDefault
notebookIdYesThe notebook ID
descriptionNoNew description
displayNameNoNew display name
workspaceIdYesThe workspace ID

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey readOnlyHint=false and destructiveHint=false. The description adds that only name and description are modified, which is helpful scoping, but it does not disclose other behavioral details such as whether a workspace relationship is required or any side effects beyond the update.

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 one short sentence with no filler. The verb and object are front-loaded, and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple metadata update with full schema descriptions and annotations covering mutability. The definition is sufficient for an agent to identify and invoke it, though it could be stronger with one sentence steering away from notebook_update_definition.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents workspaceId, notebookId, displayName, and description. The description restates the two mutable fields in natural language but adds little beyond the schema, except optionally mapping 'name' to displayName.

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 names a specific verb ('Update'), a specific resource ('a notebook'), and the exact mutable fields ('name or description'). This makes it easy to distinguish from related siblings like notebook_update_definition, which targets notebook content rather than metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the intended use — changing a notebook's name or description — but it does not explicitly state when to prefer this over notebook_update_definition or other notebook operations. There are no exclusions or alternative routing instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

notebook_update_definitionA

Update the content/definition of a notebook (long-running). Reads definition files from the specified directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
notebookIdYesThe notebook ID
workspaceIdYesThe workspace ID
definitionDirectoryPathYesPath to a directory containing notebook definition files

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds useful behavioral context beyond the annotations: the operation is long-running and it reads definition files from a specified directory rather than accepting inline content. There is no contradiction with the annotations.

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 two short sentences with no redundant wording. The primary action and the key caveat ('long-running') are front-loaded, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main intent and the long-running nature, but given there is no output schema, it leaves open questions about how the operation completes, how to check status, or what the return value represents. This is a moderate gap for a more complex update operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameters are already documented. The description adds mild context by indicating the definitionDirectoryPath is the source of the definition content, but it does not meaningfully enrich the parameter semantics beyond what the schema provides.

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?

The description clearly states the action ('Update the content/definition of a notebook') and identifies the resource and input source (definition files from a directory). It is distinguishable from notebook_get_definition by its update intent, though it does not explicitly contrast with notebook_update.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is used when updating a notebook from definition files on disk, and the 'long-running' note hints at expectations. However, it does not explain when to prefer this over notebook_update or mention any alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pipeline_cancel_runA
Destructive

Cancel a running pipeline execution

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineIdYesThe pipeline ID
workspaceIdYesThe workspace ID
jobInstanceIdYesThe job instance ID to cancel

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, and the description's 'Cancel' is consistent with that, so there is no contradiction. The description adds no further behavioral context such as irreversibility, idempotency, or effects on downstream steps, but the annotation covers the core destructive nature.

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 a single, front-loaded sentence with no filler words. Every word contributes the core action and target, so it is appropriately concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple three-parameter cancellation tool, the schema fully documents the inputs and annotations establish the destructive behavior. The description states what it does, which is enough for most invocation scenarios, though it omits details like handling of already-completed runs or whether cancellation is asynchronous.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100%, with each parameter described (e.g., 'The job instance ID to cancel'). The description itself adds no parameter-level meaning, so the baseline of 3 applies.

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 clearly states the specific verb 'Cancel' applied to a 'running pipeline execution', which is distinct from pipeline_run, pipeline_get_run_status, and pipeline_delete in the sibling list. The resource and action are unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied: cancel a running pipeline execution. However, the description gives no explicit guidance about alternatives (e.g., pipeline_delete for removing a pipeline definition, pipeline_get_run_status for checking status) or preconditions, leaving some inference required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pipeline_createB

Create a new data pipeline in a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoDescription of the pipeline
displayNameYesDisplay name for the pipeline
workspaceIdYesThe workspace ID

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as a non-read-only, non-destructive mutation, and the description adds essentially no behavioral context beyond restating the create action. It does not mention permissions, whether the pipeline is created empty, whether any definition is required, or what side effects might occur.

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?

A single sentence with zero redundant or filler words. The verb and object are front-loaded, making the core purpose immediately scannable. Nothing in the description wastes the agent's attention.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with only 3 documented parameters and no nested objects, and annotations cover the safety profile. However, there is no output schema and the description does not mention what is returned on success, whether a definition is needed, or workspace prerequisites, so some operational context is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters already have descriptive text. The tool description adds no parameter-level meaning beyond the schema, which aligns with the baseline score of 3 when the schema handles parameter documentation.

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 states a specific verb ('Create'), a clear resource ('a new data pipeline'), and a scope ('in a workspace'). This unambiguously distinguishes it from related sibling tools like pipeline_update, pipeline_delete, and pipeline_list, and leaves no doubt about the operation being performed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to use this tool instead of alternatives, nor any prerequisites such as requiring an existing workspace ID. No mention is made of related operations like pipeline_create_schedule, so usage context must be inferred entirely from the tool name and sibling tool list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pipeline_create_scheduleC

Create a schedule for a pipeline

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesSchedule type
timesNoTimes of day for the schedule (HH:mm format)
enabledNoWhether the schedule is enabled (default: true)
intervalNoInterval between runs
weekDaysNoDays of the week for weekly schedules
pipelineIdYesThe pipeline ID
endDateTimeNoSchedule end date/time (ISO 8601)
workspaceIdYesThe workspace ID
startDateTimeYesSchedule start date/time (ISO 8601)
localTimeZoneIdNoTime zone ID (e.g., 'Eastern Standard Time')

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a mutating but not destructive operation, and the description adds no behavioral context beyond 'create'. It does not disclose whether the schedule becomes active immediately, whether it is idempotent, what validations occur, or what side effects are triggered.

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?

The description is a single, front-loaded sentence with no filler or redundant wording. It is concise, though so terse that it does not carry additional guidance or context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex tool with 10 parameters, required identifiers, and schedule-type-dependent semantics, but the description gives no context about return values, activation behavior, or how schedule types interact with parameters. With no output schema and no usage guidance, the definition is not complete enough for an agent to confidently invoke it in edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 10 parameters are documented with types, formats, enums, and defaults in the input schema. The description itself adds no parameter-level meaning, so the baseline of 3 applies.

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?

The description uses a specific verb ('Create') and names the resource ('a schedule for a pipeline'), so the operation is clear. It does not explicitly contrast with sibling tools like pipeline_update_schedule or pipeline_delete_schedule, but the create/update/delete distinction is reasonably inferable from the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus pipeline_update_schedule, pipeline_delete_schedule, or pipeline_list_schedules. It does not mention prerequisites such as an existing pipeline or workspace, nor does it describe behavior when a schedule already exists.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pipeline_deleteC
Destructive

Delete a data pipeline

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineIdYesThe pipeline ID
workspaceIdYesThe workspace ID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, and the description merely restates the destructive action without adding context such as irreversibility, effects on associated schedules or runs, or required permissions. It adds no behavioral information beyond the annotation.

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?

The description is a single concise sentence with no filler, but it is extremely terse and provides no contextual structure. It earns high marks for brevity but not top marks for completeness of structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter destructive delete with no output schema, the annotation and schema cover the core mechanics. However, the description misses side effects and alternatives, leaving the agent to infer when this operation is appropriate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents workspaceId and pipelineId. The description adds no parameter-level meaning, leaving it at the baseline score for fully covered schemas.

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?

The description uses a specific verb ('Delete') and resource ('data pipeline'), making the tool's primary purpose unambiguous. It does not explicitly differentiate from closely related siblings such as pipeline_delete_schedule or deployment_pipeline_delete, so it misses the top score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when this tool should be used, prerequisites, or which alternatives should be chosen instead. The agent must infer usage entirely from the name and schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pipeline_delete_scheduleB
Destructive

Delete a pipeline schedule

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineIdYesThe pipeline ID
scheduleIdYesThe schedule ID to delete
workspaceIdYesThe workspace ID

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare destructiveHint=true and readOnlyHint=false, so the description's 'Delete' adds no behavioral information beyond the structured fields. It does not contradict the annotations, but it also does not disclose consequences, irreversibility, or effects on pipeline execution.

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 four words and clearly front-loaded with the action and object. There is no filler or redundant explanation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple delete operation with all three required parameters documented in the schema and destructive behavior already indicated by annotations, the description is largely sufficient. It could be enriched by noting that deletion permanently removes the schedule, but no critical invocation detail is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and each parameter has a clear description (pipeline ID, schedule ID, workspace ID). The tool description adds no parameter-level meaning, so the baseline score of 3 applies.

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 states a specific verb ('delete') and resource ('pipeline schedule'), making it immediately distinct from siblings like pipeline_delete, pipeline_create_schedule, and pipeline_update_schedule. It fully disambiguates the tool's function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidance is provided. The description does not mention when to use this tool versus alternatives, nor does it note prerequisites or side effects such as what happens to scheduled runs after deletion. The agent must infer distinctions from sibling tool names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pipeline_getC
Read-only

Get details of a specific data pipeline

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineIdYesThe pipeline ID
workspaceIdYesThe workspace ID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint=true and destructiveHint=false annotations already cover the safety profile, and the description does not contradict them. However, the description adds almost no behavioral context beyond 'Get details' — it does not describe what fields are returned, whether the tool can return errors, permission requirements, or how this differs from fetching a pipeline definition.

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 a single clear sentence with no filler. It is appropriately short for a simple read operation and front-loads the core action. Every word contributes to understanding the basic purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description should explain what 'details' means, but it does not. The ambiguity is significant because pipeline_get_definition exists as a sibling and likely returns a different kind of detail. The description is too thin for an agent to know what response to expect or when to prefer this tool over related getters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with pipelineId and workspaceId both described simply as IDs. The description does not add additional meaning about how these IDs relate, how to obtain them, or whether pipelineId is scoped by workspaceId. With full schema coverage, the baseline of 3 is appropriate.

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?

The description states a clear verb and resource: 'Get details of a specific data pipeline.' It is not a tautology and communicates the core operation. However, it does not distinguish itself from closely related siblings such as pipeline_get_definition or pipeline_get_run_status, and 'details' is somewhat vague about what is actually returned.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance is provided. The word 'specific' weakly implies this is for a single pipeline rather than a list, but the description never mentions alternatives like pipeline_list, pipeline_get_definition, or pipeline_get_run_status, so an agent gets no help choosing among them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pipeline_get_definitionA
Read-only

Get the definition of a data pipeline (long-running). Writes definition files to the specified output directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineIdYesThe pipeline ID
workspaceIdYesThe workspace ID
outputDirectoryPathYesDirectory path where definition files will be written

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds useful behavioral context beyond those annotations by warning that the operation is long-running and that it writes definition files to a directory, which is an important side effect for an agent to know before invoking.

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?

Two concise sentences with no filler. The primary purpose is front-loaded, and the side effect/long-running caveat is stated immediately afterward, making the definition easy to scan and act on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity, read-only tool with full parameter schema coverage and safety annotations, the description covers the essential behavioral context: long-running execution and file output. It does not explicitly describe return values, but the absence of an output schema is partially mitigated by the clear statement that files are written to a directory.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are already well documented. The description only restates that definition files are written to outputDirectoryPath, adding no meaningful semantics beyond what the schema provides. Baseline 3 is appropriate.

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 clearly identifies the verb and resource: get the definition of a data pipeline. It also adds a distinguishing side effect, writing definition files to an output directory, which separates it from metadata retrieval tools like pipeline_get and from mutation tools like pipeline_update_definition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what the tool does but provides no guidance on when to prefer it over alternatives such as pipeline_get, nor does it mention exclusions, prerequisites, or typical use cases. Usage is only implied by the tool name and the verb 'Get the definition'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pipeline_get_run_statusB
Read-only

Get the status of a pipeline run

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineIdYesThe pipeline ID
workspaceIdYesThe workspace ID
jobInstanceIdYesThe job instance ID from pipeline_run

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds no behavioral context beyond the annotations' readOnlyHint=true and destructiveHint=false; it does not explain what status values are returned, whether the call can be polled, or any error behavior. There is no contradiction with annotations, but also no additional transparency value.

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?

A single sentence that is front-loaded with the verb and resource, containing no filler or redundancy. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only getter with fully documented parameters and safety annotations, the description is minimally adequate. However, with no output schema, it does not disclose what the returned status looks like or how an agent should interpret it, leaving a minor completeness gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents workspaceId, pipelineId, and jobInstanceId. The description adds no parameter-level details beyond what the schema provides, so the baseline score of 3 is appropriate.

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 states a specific verb ('Get') and a precise resource ('status of a pipeline run'), which clearly distinguishes it from sibling run-status tools for other resources like notebook_get_run_status and copy_job_get_run_status. It is unambiguous and directly reflects the tool's function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives such as pipeline_list_runs or pipeline_cancel_run, and it does not mention that jobInstanceId should come from a prior pipeline_run call. The intended usage is only implied by the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pipeline_listA
Read-only

List all data pipelines in a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds no significant behavioral disclosure beyond the basic listing action, though the word 'all' does convey completeness of the returned set. It doesn't mention pagination, response shape, permissions, or rate limits, but it doesn't contradict the annotations either.

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 a single, front-loaded sentence with no redundant wording. Every word contributes directly to the tool's purpose, making it appropriately sized for a simple list operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list operation with one well-described parameter and safety annotations, the description is sufficient for an agent to invoke it correctly. The only minor gap is that the response format is not described—no output schema exists—though the tool name strongly implies a list is returned. A note about metadata fields or pagination would add value but isn't essential.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents workspaceId as 'The workspace ID' with 100% coverage, so the description doesn't need to repeat the parameter. The phrase 'in a workspace' loosely references the parameter but adds no extra meaning about format, constraints, or how to obtain the ID, meriting the baseline score.

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 uses a specific verb ('List'), names the resource ('data pipelines'), and scopes it to a workspace. This clearly distinguishes it from sibling tools like pipeline_get, pipeline_list_runs, and pipeline_list_schedules, as well as other *_list tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to choose this tool over alternatives (e.g., pipeline_get for a single pipeline, pipeline_list_runs for runs). The intended use is implied by the verb and resource, but there are no exclusions or references to sibling tools, so the agent must infer selection from the name and description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pipeline_list_runsA
Read-only

List all run instances for a pipeline

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineIdYesThe pipeline ID
workspaceIdYesThe workspace ID

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the scoping detail 'for a pipeline' and the breadth of 'all run instances', but it does not disclose pagination, ordering, or what fields are returned.

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 a single, focused sentence with no filler. It front-loads the action and resource, and every word contributes to meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity tool with two required, fully documented parameters and read-only annotations, the description is sufficient for an agent to select and invoke it correctly. The absence of an output schema is partially mitigated by the clear 'list all run instances' phrasing, though return format or pagination details would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both pipelineId and workspaceId already described in the input schema. The tool description adds no parameter-level information beyond that, so the baseline 3 applies.

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 uses the specific verb 'List' with the resource 'run instances' and the scope 'for a pipeline', making it immediately distinct from sibling tools like pipeline_list (which lists pipelines) and pipeline_get (which fetches a single pipeline). An agent can identify what this tool does without inspecting the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as pipeline_get_run_status, pipeline_list_schedules, or copy_job_list_runs. The intended use case is only implied by the name and phrasing, not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pipeline_list_schedulesA
Read-only

List all schedules for a pipeline

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineIdYesThe pipeline ID
workspaceIdYesThe workspace ID

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already communicate that this is a read-only, non-destructive operation. The description adds only the word 'all' to indicate no filtering, but does not disclose output shape, pagination, ordering, or error behavior beyond what annotations imply.

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 a single, front-loaded sentence with no wasted words. Every element ('List', 'all', 'schedules', 'for a pipeline') carries meaning and contributes to understanding the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only listing tool with two fully documented parameters and safe annotations, the description is nearly sufficient. It lacks explicit output or pagination details, but those are not critical for a basic list operation with no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers both required parameters with clear descriptions (workspaceId and pipelineId). The description adds no additional parameter-level meaning, so it meets the baseline but does not go beyond the 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 uses a specific verb ('List') and a specific resource ('schedules') scoped to 'a pipeline'. This clearly distinguishes the tool from sibling tools like pipeline_list_runs, pipeline_list, and schedule management tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or relationship to sibling tools such as pipeline_list_runs or pipeline_create_schedule, leaving usage context entirely implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pipeline_runC

Run a data pipeline on demand

ParametersJSON Schema
NameRequiredDescriptionDefault
parametersNoPipeline parameters as key-value pairs
pipelineIdYesThe pipeline ID
workspaceIdYesThe workspace ID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate the operation is neither read-only nor destructive (readOnlyHint=false, destructiveHint=false), and the description adds 'on demand' but little else. It does not disclose that pipeline runs are often asynchronous, that a run may be long-lived, that it may consume resources, or that the caller should subsequently use pipeline_get_run_status. For a tool that triggers execution, the behavioral description is thin.

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?

The description is extremely short and front-loaded, with no filler words. 'Run a data pipeline on demand' conveys the action and resource in one clause. It could arguably be considered under-specified, but unlike a pure tautology, every word contributes meaning, so it earns a solid conciseness score rather than a penalty for verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a run tool with no output schema, the description should explain what the caller gets back (e.g., an operation ID or run status) and how to track progress. It does neither. The sibling list heavily signals that pipeline_get_run_status and pipeline_cancel_run exist, but the description never routes the agent to them. Given that this is an initiating action with side effects and follow-up operations, the description is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents workspaceId, pipelineId, and parameters. The description adds no parameter-specific meaning beyond the schema, which is acceptable under the baseline rule: when the schema covers parameters, the description does not need to repeat them. It does not clarify what keys the parameters object should contain, but the schema's generic key-value definition covers that.

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?

The description uses a clear verb ('Run') and resource ('data pipeline'), and adds 'on demand' to signal manual triggering. It is not a tautology like 'Process', and the resource type distinguishes it from run tools for other resources (notebook_run, copy_job_run), though it does not explicitly differentiate from pipeline_get_run_status or pipeline_cancel_run.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus alternatives. The sibling list includes pipeline_get_run_status, pipeline_cancel_run, and pipeline_list_runs, and the description does not mention that this only starts a run, that there is a separate status-checking tool, or any prerequisites. Usage context is entirely implied by the name and one-line description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pipeline_updateA

Update a pipeline's name or description

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineIdYesThe pipeline ID
descriptionNoNew description
displayNameNoNew display name
workspaceIdYesThe workspace ID

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already communicate that this is a mutating but non-destructive operation. The description adds no further behavioral context, such as whether the update is partial, whether old values are replaced, or what permissions are needed. It does not contradict the annotations.

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?

A single, front-loaded sentence with no filler. Every word contributes to understanding the tool's purpose and scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple metadata-update tool with fully documented parameters and safety annotations, the description is nearly complete. It could mention the effect on existing values or the return behavior, but those are not critical for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description loosely maps 'name or description' to displayName and description, but adds no extra semantic detail beyond what is already present.

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 clearly identifies the verb ('Update'), the resource ('pipeline'), and the specific scope ('name or description'). This distinguishes it from sibling tools like pipeline_update_definition and pipeline_update_schedule, so an agent can confidently select it for metadata changes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states what the tool does but provides no guidance on when to use it versus alternatives. It does not mention that pipeline_update_definition should be used for definition changes or pipeline_update_schedule for schedule changes, leaving the agent to infer the appropriate context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pipeline_update_definitionB

Update a data pipeline's definition (long-running). Reads definition files from the specified directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineIdYesThe pipeline ID
workspaceIdYesThe workspace ID
definitionDirectoryPathYesPath to a directory containing pipeline definition files

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is not read-only and not destructive. The description adds the useful behavioral detail that the operation is long-running and reads definition files from a directory, but it does not disclose what happens to the existing definition, whether the operation is asynchronous, or how to track its completion.

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 a single concise sentence that front-loads the primary action and adds the key behavioral note about long-running execution. There is no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description does not explain what the caller receives, whether the operation is asynchronous, or how to monitor progress despite calling it 'long-running'. It also does not specify the expected format or contents of the definition files, leaving important invocation context unclear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all three parameters already documented. The description adds no additional format, constraint, or relationship information beyond what the schema provides, so it stays at the baseline.

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?

The description states a specific verb ('Update') and resource ('a data pipeline's definition'), and the phrase 'Reads definition files from the specified directory' clarifies the mechanism. It is distinguishable from related tools like pipeline_update or pipeline_get_definition, though it does not explicitly name a sibling for contrast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives such as pipeline_update, pipeline_get_definition, or other update_definition tools. It implies a file-based definition update but does not state conditions, exclusions, or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pipeline_update_scheduleB

Update an existing pipeline schedule

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledNoWhether the schedule is enabled
pipelineIdYesThe pipeline ID
scheduleIdYesThe schedule ID to update
workspaceIdYesThe workspace ID
configurationNoUpdated schedule configuration

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description merely restates the mutation and adds no behavioral detail beyond what the annotations already indicate (readOnlyHint=false, destructiveHint=false). It does not disclose whether the update is partial or full, how configuration is applied, whether enabling/disabling is immediate, or what preconditions exist.

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?

The single-sentence description is front-loaded and contains no filler, making it concise and easy to parse. However, the brevity comes at the cost of missing useful context about behavior and parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with a nested configuration object and no output schema, this description is too thin. It does not explain what fields a schedule update can affect, whether configuration is merged or replaced, how the scheduleId relates to the pipelineId, or what happens after a successful update. An agent could select the tool but would lack key context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3; the description adds no parameter-level meaning. The 'configuration' parameter remains opaque with only 'Updated schedule configuration' and additionalProperties: {}, so the description does not help clarify the expected structure of that nested object.

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?

The description states a clear verb ('Update') and resource ('existing pipeline schedule'), identifying this as a modification operation on a schedule. It distinguishes from pipeline_update (which would modify the pipeline itself) and from pipeline_create_schedule/pipeline_delete_schedule. However, it does not detail which schedule properties can be updated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'existing pipeline schedule' implies the schedule must already exist and that this is for modification rather than creation or deletion, but there is no explicit guidance on when to prefer this tool over pipeline_create_schedule or pipeline_delete_schedule. No alternatives, prerequisites, or exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reflex_createB

Create a new Reflex (Activator) item in a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoDescription of the reflex
displayNameYesDisplay name for the reflex
workspaceIdYesThe workspace ID

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and destructiveHint=false, but the description adds no further behavioral context such as idempotency, required permissions, side effects, or return behavior. The only added context is the workspace scope.

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 a single, front-loaded sentence with no filler or redundant information. It efficiently communicates the core action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple three-parameter create operation with no output schema, the description plus schema covers the basic inputs and action. However, it omits what the caller can expect as a return value and provides no additional usage context, leaving some gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameter details are fully documented in the input schema. The description does not add extra meaning beyond saying the item is created in a workspace, so the baseline score of 3 is appropriate.

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 states a specific verb ('Create'), a clear resource ('Reflex (Activator) item'), and a scope ('in a workspace'). This clearly distinguishes it from siblings like reflex_update, reflex_delete, and reflex_get.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives such as reflex_update or reflex_delete. The intended usage is only implied by the verb 'Create' and the tool name, with no mention of prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reflex_deleteB
Destructive

Delete a Reflex (Activator) item

ParametersJSON Schema
NameRequiredDescriptionDefault
reflexIdYesThe reflex/activator ID
workspaceIdYesThe workspace ID

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false, and the description simply restates the delete operation without adding behavioral detail. It does not contradict the annotations, but it also provides no additional context about irreversibility or side effects.

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 a single, compact sentence that immediately states the action and target. There is no unnecessary wording or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple delete operation with fully documented parameters and destructive annotations, this is minimally adequate. However, it lacks context about irreversibility, failure behavior, or any prerequisites, so it is not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters (reflexId and workspaceId) are fully described in the input schema, so the baseline is 3. The description adds no parameter-level meaning beyond what the schema already provides.

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 clearly specifies the action ('Delete') and the resource ('Reflex (Activator) item'), making it easy to distinguish from sibling delete tools such as notebook_delete or pipeline_delete. The parenthetical alias 'Activator' helps disambiguate domain terminology.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool, prerequisites, or consequences. It does not mention alternatives or conditions under which deletion should be avoided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reflex_getB
Read-only

Get details of a specific Reflex (Activator) item

ParametersJSON Schema
NameRequiredDescriptionDefault
reflexIdYesThe reflex/activator ID
workspaceIdYesThe workspace ID

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds no behavioral context beyond the basic read operation, such as what the returned 'details' include, so it earns the baseline rather than more.

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?

A single sentence with no filler. The key elements—action, resource, and 'specific'—are front-loaded and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter getter with full schema coverage and read-only annotations, the description is sufficient to call the tool correctly. The only notable gap is that it does not clarify the difference between these 'details' and reflex_get_definition, and it does not describe the response shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: both reflexId and workspaceId are described in the schema. The tool description adds no parameter-level information, so the baseline 3 applies.

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?

The description uses a clear verb ('Get') and a named resource ('Reflex (Activator) item'), and 'specific' signals retrieval by ID. It is mostly distinguishable from sibling tools, though 'details' is not explicitly contrasted with reflex_get_definition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to choose this tool over the closely related reflex_get_definition or reflex_list. The only signal is the word 'details', which is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reflex_get_definitionA
Read-only

Get the definition of a Reflex (Activator) item (long-running). Writes definition files to the specified output directory and returns the list of files written.

ParametersJSON Schema
NameRequiredDescriptionDefault
reflexIdYesThe reflex/activator ID
workspaceIdYesThe workspace ID
outputDirectoryPathYesDirectory path where Reflex definition files will be written

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already mark the operation as read-only and non-destructive, but the description adds valuable behavioral context beyond that: it is 'long-running' and it writes files to the output directory as a side effect, then returns the list of written files. This helps set expectations for an agent that might otherwise assume no side effects from a readOnlyHint.

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 a single, front-loaded sentence followed by one short, informative sentence about the side effect and return value. Every phrase is purposeful: the resource, the long-running nature, the file-writing behavior, and the return type are all communicated without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (three required scalar parameters, no output schema, clear annotations), the description covers the key operational details: what it retrieves, the side effect, the long-running warning, and what the return value is. It does not elaborate on prerequisites like directory existence or file formats, but for this complexity level the description is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters (workspaceId, reflexId, outputDirectoryPath) are already well-documented. The description only mentions the 'specified output directory' without adding any new semantic detail beyond the schema, so a baseline score of 3 is appropriate.

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?

The description states a specific verb and resource: 'Get the definition of a Reflex (Activator) item', and further clarifies the behavior by noting it writes definition files and returns the file list. This clearly distinguishes it from other Reflex tools like reflex_get or reflex_update_definition, though it does not name those alternatives explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: whenever the definition files of a Reflex item are needed. However, it does not explicitly state alternatives or when not to use it, such as pointing to reflex_get for lightweight metadata retrieval or reflex_update_definition for modifying definitions. Usage context is present but not fully spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reflex_listA
Read-only

List all Reflex (Activator) items in a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful scope context and the 'Activator' clarification, but it does not mention pagination, ordering, or response behavior, which would add further transparency beyond the annotations.

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?

A single, front-loaded sentence with no filler. It communicates the action, resource, and scope efficiently, and every word contributes to understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter list tool with annotations confirming it is read-only and non-destructive, the description is complete enough to support correct invocation. It could theoretically say more about the expected return payload, but the lack of an output schema is partially mitigated by the simple, familiar nature of a list operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with workspaceId described as 'The workspace ID'. The description's 'in a workspace' echoes the schema rather than adding new meaning or format details, so it meets the baseline without adding significant value.

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 states a specific verb ('List'), a specific resource ('Reflex (Activator) items'), and a clear scope ('in a workspace'). It is immediately distinguishable from sibling tools like reflex_get, reflex_create, and reflex_delete because it is the enumeration operation.

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?

The description clearly implies when to use the tool: when you need all Reflex items in a given workspace. It does not explicitly discuss alternatives or exclusions, but for a straightforward list operation the context is clear and no misleading guidance is present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reflex_updateA

Update a Reflex (Activator) item's name or description

ParametersJSON Schema
NameRequiredDescriptionDefault
reflexIdYesThe reflex/activator ID
descriptionNoNew description
displayNameNoNew display name
workspaceIdYesThe workspace ID

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, establishing this as a mutating but non-destructive operation, and the description's 'Update' wording is consistent with that. The description adds only field-scoping context and does not disclose further behavioral traits such as whether omitted fields are preserved (partial update), validation rules, or error behavior.

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?

A single front-loaded sentence that puts the verb first, the resource second, and the updatable fields last. The parenthetical '(Activator)' earns its place by mapping the product term 'Reflex' to its synonym, and no word is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity metadata update with annotations and full schema coverage, the basic calling contract is visible. The main gaps are the absence of partial-update semantics (whether providing only displayName leaves description unchanged) and the lack of routing to reflex_update_definition when a definition change is intended — both minor but relevant given the large sibling set.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with every parameter already documented ('New description', 'New display name', 'The reflex/activator ID', 'The workspace ID'). The tool description merely paraphrases the displayName and description parameters and adds no parameter-level meaning beyond what the schema already provides, so the baseline of 3 applies.

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?

The description names a specific verb ('Update'), a specific resource ('a Reflex (Activator) item'), and a precise field scope ('name or description'). This closed field set implicitly separates the tool from reflex_create, reflex_delete, and reflex_update_definition, but those siblings are never named, so differentiation is implicit rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The field scope implies the use case — modifying the displayName or description of an existing Reflex — but the description offers no explicit when-to-use guidance or exclusions. Given the sibling set contains both reflex_update and reflex_update_definition, the ambiguity over which updater to select for a given intent is real and unaddressed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reflex_update_definitionA

Update a Reflex (Activator) item's definition (long-running). Accepts definition parts inline or a directory path.

ParametersJSON Schema
NameRequiredDescriptionDefault
partsNoArray of definition parts to upload
reflexIdYesThe reflex/activator ID
workspaceIdYesThe workspace ID
partsDirectoryPathNoPath to a directory containing definition files

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds 'long-running' beyond the annotations, which is useful behavioral context. But it doesn't disclose whether the update replaces the entire definition, merges with existing parts, returns a job ID, or requires polling. For a mutating operation with readOnlyHint=false, more behavioral detail would help.

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 a single, front-loaded sentence that names the action, notes the important long-running trait, and summarizes the two accepted input modes. There is no filler or redundant restatement of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a long-running definition-update operation with no output schema, the description leaves significant gaps: it doesn't explain whether existing definition parts are preserved, what the operation returns, how completion is observed, or any prerequisites. This is too terse for safe invocation of a complex mutation.

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 schema already documents each parameter. The description adds value by clarifying the two mutually relevant input modes: 'definition parts inline' (parts) or 'a directory path' (partsDirectoryPath), which helps the agent choose the right parameter.

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?

The description states a specific verb and resource: 'Update a Reflex (Activator) item's definition' and marks it as 'long-running.' This is clear enough to distinguish it from simple reflex_update and reflex_get_definition, though it doesn't explicitly name those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied: update a Reflex definition when an agent needs to modify definition parts. However, it gives no explicit guidance about when to prefer this over reflex_update or how it relates to reflex_get_definition, and it offers no when-not-to-use conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_cloneC

Clone a report via the Power BI API

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName for the cloned report
reportIdYesThe report ID to clone
workspaceIdYesThe source workspace ID
targetModelIdNoTarget semantic model/dataset ID
targetWorkspaceIdNoTarget workspace ID (default: same workspace)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations only say the operation is not read-only and not destructive, leaving the description responsible for clarifying side effects. The description merely restates 'Clone a report' and does not disclose that a new report is created, that the source report remains unchanged, or any permission requirements.

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?

The description is a single front-loaded sentence that states the action directly. 'via the Power BI API' is mildly redundant but harmless; overall the text is concise, though its brevity leaves behavioral substance underexplained.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This clone tool has no output schema, so the description should clarify what the call returns and what side effects occur, especially when cloning across workspaces or models. It explains neither the postconditions nor the meaning of the optional parameters beyond what the schema already states, leaving an agent to guess at success behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, all five parameters are already documented in the input schema, including the default behavior for targetWorkspaceId. The description adds no parameter-level meaning, but the schema carries the burden adequately.

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?

The description uses the specific verb 'Clone' and identifies the resource as 'a report,' so the core action is clear. It is distinct from sibling report tools like report_get or report_rebind, though it does not explicitly differentiate itself from alternative clone-like workflows.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use report_clone versus report_get_definition plus report_create_definition or other report tools. It also omits any context about prerequisites, such as source workspace/report IDs, or when targetWorkspaceId and targetModelId should be supplied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_create_definitionA

Create a new report in a workspace (long-running operation). Reads PBIR definition files from the specified directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoDescription of the report
displayNameYesDisplay name for the report
workspaceIdYesThe workspace ID
definitionDirectoryPathYesPath to a directory containing report definition files (PBIR format)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is not read-only and not destructive. The description adds meaningful behavior beyond that: it is a 'long-running operation' and it reads local PBIR definition files. This is useful and not contradicted by the annotations.

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?

Two concise sentences with no wasted words. The primary purpose is front-loaded, and the long-running behavior is stated up front.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description labels the operation as long-running but does not say whether it returns immediately, provides an operation ID, or requires polling. Since there is no output schema, this missing completion/monitoring guidance leaves an agent uncertain how to invoke and track the call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and each parameter already has a clear description. The tool description only refers generally to 'the specified directory' and 'PBIR definition files', adding little beyond what the schema provides.

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 clearly states a specific action and resource: 'Create a new report in a workspace'. It also names the method ('Reads PBIR definition files from the specified directory'), which distinguishes this from report_get_definition, report_update_definition, and report_clone.

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?

The description gives clear context for when to use this tool: creating a new report from PBIR definition files. It does not explicitly discuss alternatives like report_clone, but the 'new report' and 'definition files' framing makes the intended usage reasonably unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_deleteB
Destructive

Delete a report

ParametersJSON Schema
NameRequiredDescriptionDefault
reportIdYesThe report ID
workspaceIdYesThe workspace ID

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description aligns with the annotations: readOnlyHint is false and destructiveHint is true, so the agent understands this is a mutating, destructive operation. However, the description adds no context beyond the annotation, such as whether deletion is permanent, requires specific permissions, or removes associated data. The annotation covers the basic safety profile, so this is adequate but not enriched.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and front-loaded, but it essentially restates the tool name without adding value. It is not bloated, yet it is too sparse to be considered well-structured for a destructive operation that could benefit from a brief consequence or usage note. It is concise but under-specified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter delete operation with annotations already marking it destructive and the schema fully describing the parameters, the description is nearly sufficient. However, it lacks any mention of side effects, irreversibility, or what happens after deletion, and there is no output schema to clarify the response. It is minimally complete for invocation but not richly contextual.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides descriptions for both parameters (workspaceId and reportId) with 100% coverage. The description adds no additional meaning about how the parameters relate, such as the report belonging to the workspace. Baseline 3 is appropriate because the schema carries the parameter documentation burden.

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?

The description states a clear verb and resource: it deletes a report. This distinguishes it from sibling delete tools for other resources and from report operations like report_get, report_update, or report_clone. It is slightly tautological with the tool name but remains unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool instead of alternatives such as report_update, report_clone, or report_export. It also does not mention prerequisites like listing reports first to obtain the reportId. The intended usage is implied by the name and description, but not explicitly supported.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_exportA

Export a report to a file format (PDF, PPTX, PNG, etc.) via the Power BI API. Returns an export ID to check status.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatYesExport format
reportIdYesThe report ID to export
workspaceIdYesThe workspace ID

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate the tool is not read-only and not destructive. The description adds that the operation is asynchronous by returning an export ID to check status, which is useful context. However, it does not mention how long exports may take, whether exports can be cancelled, or any other operational side effects beyond creating an export job.

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 two short sentences with no filler. It front-loads the action and target, then gives the key output behavior. Every sentence contributes meaningful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-required-parameter tool with a complete schema, the description is nearly sufficient: it identifies the action, the supported formats, and the return value. The main gap is that it does not explicitly name the status-checking endpoint or the response field name, but the 'returns an export ID to check status' phrasing makes the async workflow reasonably clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all three parameters described and the format parameter fully enumerated. The description's mention of formats mostly duplicates the enum and adds no extra semantic information about the parameters, so the schema carries the full weight as expected.

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 uses a specific verb and object: 'Export a report to a file format' and lists concrete formats (PDF, PPTX, PNG). It also clarifies the unique role of this tool by stating it returns an export ID to check status, distinguishing it from sibling tools like report_get_export_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the intended workflow: initiate an export, then use the returned ID to check status. However, it does not explicitly name the companion report_get_export_status tool or state when to use this tool versus alternatives. Usage guidance is present but only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_getC
Read-only

Get details of a specific report

ParametersJSON Schema
NameRequiredDescriptionDefault
reportIdYesThe report ID
workspaceIdYesThe workspace ID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds no behavioral detail beyond that, such as what 'details' means, what response to expect, or any permissions or side effects.

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?

The description is a single, front-loaded sentence with no filler words. It is appropriately concise, though the terseness limits the amount of useful context an agent receives.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with fully documented parameters and read-only annotations, the core intent is clear. However, with no output schema and no description of what 'details' include, an agent cannot anticipate the response shape or confidently distinguish this from other report-related getters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both reportId and workspaceId. The description adds no additional semantic meaning about the parameters beyond what the schema provides.

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?

The description clearly states a verb and resource: 'Get details of a specific report.' It also implies a single report rather than a list. However, it does not distinguish itself from sibling tools like report_get_definition, report_get_pages, or report_get_datasources, which also retrieve report-related information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as report_get_definition or report_list. The phrase 'specific report' weakly implies an ID-based fetch, but no explicit conditions, exclusions, or alternative routing are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_get_datasourcesA
Read-only

Get the data sources used by a report via the Power BI API

ParametersJSON Schema
NameRequiredDescriptionDefault
reportIdYesThe report ID
workspaceIdYesThe workspace ID

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true and destructiveHint=false. The description only restates the read operation with 'Get' and does not disclose additional behavioral traits such as authentication requirements, rate limits, or output structure. It adds no value beyond the annotations.

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 a single, front-loaded sentence with no filler. Every phrase contributes meaning, and the core action-object pair appears immediately.

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 simple read-only operation with two required parameters fully documented in the schema and read-only annotations provided, the description is sufficiently complete for correct invocation. The lack of an output schema is mitigated by the clear statement of what the tool returns: data sources used by a report.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both reportId and workspaceId. The description does not add parameter-level meaning beyond clarifying that these identify the report whose data sources are being fetched.

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 states a clear verb ('Get') and a specific resource ('data sources used by a report'), which distinguishes it from the sibling semantic_model_get_datasources tool. The 'via the Power BI API' qualifier adds useful context without being vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus semantic_model_get_datasources or other report-related tools. No prerequisites, exclusions, or alternative routing are mentioned, so an agent must infer usage from the tool name and description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_get_definitionA
Read-only

Get the full definition of a report (PBIR or PBIR-Legacy format). Writes all definition files (report.json, pages, visuals, etc.) to the specified output directory and returns the list of files written.

ParametersJSON Schema
NameRequiredDescriptionDefault
reportIdYesThe report ID
workspaceIdYesThe workspace ID
outputDirectoryPathYesDirectory path where report definition files will be written

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite readOnlyHint=true, the description transparently discloses that the tool writes all definition files to an output directory and returns the list of written files. This adds context beyond the annotations, though it does not mention details like whether existing files are overwritten or whether the directory must already exist.

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?

Two sentences with no filler: the first states the core purpose, and the second describes the side effect and return value. This is appropriately front-loaded and concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description names the output behavior, the return value, and the relevant formats, which is sufficient for a moderate-complexity tool. A small gap is that it does not specify whether the output directory is created automatically or must already exist.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents each parameter. The description adds a bit of clarity by explaining that outputDirectoryPath receives the written definition files, but it does not add deeper semantics for reportId or workspaceId beyond what the schema provides.

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 clearly states a specific verb and resource: 'Get the full definition of a report' in PBIR or PBIR-Legacy format. It also distinguishes itself from sibling tools like report_get by emphasizing that it writes the complete definition files and returns the list of files written.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'full definition' implies use cases involving export of the complete report definition, but the description does not explicitly contrast it with alternatives such as report_get, report_get_pages, or report_get_datasources. Usage context is implied rather than explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_get_export_statusB
Read-only

Get the status of a report export operation via the Power BI API

ParametersJSON Schema
NameRequiredDescriptionDefault
exportIdYesThe export ID from report_export
reportIdYesThe report ID
workspaceIdYesThe workspace ID

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds that this tool reports status rather than content, but it does not disclose async/polling behavior or what kinds of status values may be returned.

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?

The description is short and front-loaded with the action and resource. The phrase 'via the Power BI API' is somewhat redundant given the context, but it does not seriously harm clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only status getter with fully documented parameters, this is minimally workable. However, with no output schema, the description does not explain what the status response looks like, what statuses to expect, or that this is intended for polling after report_export.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so workspaceId, reportId, and exportId are already fully documented. The description adds no parameter-level detail, but none is needed given the schema's existing descriptions.

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 states a specific verb ('Get'), resource ('status of a report export operation'), and domain ('Power BI API'). It clearly distinguishes this from report_export and other report-related getters in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to call this tool, such as after report_export, for polling, or how it relates to report_export or other status tools. The only hint that exportId comes from report_export appears in the schema, not in the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_get_pagesA
Read-only

Get the list of pages in a report via the Power BI API

ParametersJSON Schema
NameRequiredDescriptionDefault
reportIdYesThe report ID
workspaceIdYesThe workspace ID

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds only 'via the Power BI API' as extra context, but it does not disclose return format, pagination, or ordering behavior. There is no contradiction with the annotations.

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 a single, front-loaded sentence that states the operation and object clearly. Every part contributes to the meaning, and there is no unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with two fully documented required parameters and no output schema, the description adequately conveys the purpose and expected result. It does not detail the page object shape or ordering, but those are not necessary for selecting and invoking the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters are required and have descriptions in the schema, giving 100% schema description coverage. The description does not add parameter-level detail, but none is needed because the schema already explains workspaceId and reportId sufficiently.

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 states a specific verb ('Get') and resource ('list of pages in a report'), which clearly identifies what the tool does. It also distinguishes itself from sibling report tools like report_get and report_list by targeting the pages within a specific report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended usage is implied: call this when you need the list of pages for a report identified by workspaceId and reportId. However, there is no explicit guidance about when to prefer this over alternatives like report_get or report_get_definition, and no exclusion conditions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_listA
Read-only

List all reports in a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds the workspace scoping constraint (workspaceId is required). It doesn't mention pagination, sorting, or that only report metadata is returned, but for a simple list operation with read-only annotations, the behavioral context is adequately covered.

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?

A single, clear sentence that zero waste. It front-loads the action and scope. Nothing more is needed for a simple list tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list operation with a single parameter, read-only annotations, and no output schema, the description is nearly complete. It could mention that results are limited to the given workspace or that the tool returns report metadata only, but the absence of that is a minor gap. The required workspaceId is clear from the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the only parameter workspaceId is documented in the schema as 'The workspace ID'. The description adds no further semantics about the workspaceId (e.g., format, where to find it). Baseline 3 is appropriate because the schema fully covers the single parameter.

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?

The description clearly states the action (list) and resource (reports) with a scope qualifier (in a workspace). It is distinguishable from report_get, which retrieves a single report, and from other list tools for different resource types. However, it doesn't explicitly differentiate from report_get_definition or note that it returns only metadata, not full report details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is for browsing/listing reports in a workspace, which is sufficient given the siblings are clearly named for specific resource types. But it doesn't explicitly state when to prefer report_list over report_get or report_get_definition, nor mention any filtering or pagination considerations. The context is clear but exclusions are absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_rebindA

Rebind a report to a different semantic model/dataset via the Power BI API

ParametersJSON Schema
NameRequiredDescriptionDefault
reportIdYesThe report ID
datasetIdYesThe target semantic model/dataset ID to rebind to
workspaceIdYesThe workspace ID

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is not a read-only operation, though they mark it as not destructive. The description adds the core behavior of changing the report's data binding, but it doesn't disclose potential side effects such as incompatibility between the report and the new dataset, or whether existing visuals/queries could be impacted.

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 a single, front-loaded sentence with no filler or redundant phrasing. Every word contributes to identifying the operation and its target.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, three-parameter mutation tool with annotations covering safety hints and full schema coverage, the description provides adequate context. It could be more complete by noting prerequisites or outcome details, but nothing essential to invoking the tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are already documented in the schema. The description adds no parametric details beyond what the schema provides, so the baseline score of 3 is appropriate.

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 uses a specific verb, 'Rebind', names both the resource ('a report') and the target ('a different semantic model/dataset'), and clarifies the API context. This clearly distinguishes it from sibling operations like report_update or report_get_datasources.

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?

The description clearly communicates when to use the tool: when a report needs to be pointed at a different semantic model/dataset. It doesn't explicitly name alternatives or exclusion conditions, but the operation is distinct enough that the intended use is clear without them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_updateB

Update a report's name or description

ParametersJSON Schema
NameRequiredDescriptionDefault
reportIdYesThe report ID
descriptionNoNew description
displayNameNoNew display name
workspaceIdYesThe workspace ID

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is covered and the description is consistent with them. The description adds the scope of mutation (name/description fields) beyond the annotations, but it does not disclose partial-update semantics, whether at least one mutable field is required, or validation behavior.

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?

A single seven-word sentence with no filler. The verb and resource are front-loaded, and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple — four flat parameters, full schema coverage, and annotations present — so the bar is not high. However, the description omits two operationally relevant points: it does not differentiate from report_update_definition, and it does not clarify whether a call with only the required parameters (workspaceId, reportId) is valid or a no-op given displayName and description are optional.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — all four parameters (workspaceId, reportId, displayName, description) are already documented in the schema. The description merely echoes the 'name or description' scope and adds no additional meaning about formats, constraints, or relationships between parameters, so the baseline of 3 applies.

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?

The description states a specific verb (update), resource (report), and the exact fields affected (name or description), so an agent can grasp the operation's scope at a glance. However, it does not explicitly distinguish this tool from the sibling report_update_definition, leaving ambiguity between updating report metadata versus the report definition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives. The sibling report_update_definition is very close in name and purpose, yet the description offers no differentiation, exclusions, or conditions to route an agent to the correct tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_update_definitionA

Update a report's full definition (PBIR or PBIR-Legacy). Reads definition files from the specified directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
reportIdYesThe report ID
workspaceIdYesThe workspace ID
definitionDirectoryPathYesPath to a directory containing report definition files (PBIR format)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds a useful behavioral detail beyond the annotations: it reads definition files from a specified directory and updates the full definition. It does not disclose whether the existing definition is overwritten, whether the operation is reversible, or what the response contains. Given the annotations only indicate that this is not read-only, fuller disclosure would be valuable.

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?

Two compact sentences with no filler. Both sentences carry distinct information: what is updated and where the input comes from. The structure is appropriately front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple three-parameter operation with full schema coverage, the description is minimally adequate. It is missing guidance on how this tool differs from sibling tools like report_update and report_create_definition, and it does not explain overwrite behavior or expected outcomes, but an agent can likely invoke it correctly once selected.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds some context by clarifying that definitionDirectoryPath is where definition files are read from and that PBIR-Legacy is supported, but it does not add meaningful semantics beyond what the schema already provides.

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?

The description uses a specific verb and resource ('Update a report's full definition') and names the formats (PBIR or PBIR-Legacy), which helps distinguish it from property-level updates like report_update. It does not explicitly contrast with report_create_definition, but 'update' versus 'create' is reasonably clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage context is implied: use this when a report's full definition needs to be replaced from local definition files. However, there is no explicit guidance on when to prefer this over report_update, report_create_definition, or report_get_definition, and no prerequisites or caveats are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semantic_model_create_bimA

Create a new semantic model with a BIM/JSON definition (long-running). Reads the model.bim JSON from the specified file path.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoDescription of the semantic model
displayNameYesDisplay name for the semantic model
workspaceIdYesThe workspace ID
definitionFilePathYesPath to a file containing the model.bim JSON

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses that the operation is long-running and that it reads input from a file path. No contradiction with annotations; it could add more about async tracking, but the key behavioral traits are present.

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?

Two focused sentences: the first names the operation and its key caveat, the second specifies the input source. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a create tool with fully documented parameters and a long-running note, the core invocation context is covered. The absence of an output schema means return/polling behavior is not described, but that is a minor gap given the tool's straightforward create semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters. The description adds no substantial meaning beyond reinforcing definitionFilePath as the BIM source, meeting the baseline without adding extra detail.

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 states a specific action ('Create'), a precise resource ('semantic model'), and the definition format ('BIM/JSON'), which distinguishes it from the sibling semantic_model_create_tmdl. The file-path detail further clarifies the input mechanism.

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?

The BIM/JSON qualifier clearly signals that this tool is for BIM-based definitions rather than TMDL, but it does not explicitly name alternatives such as semantic_model_create_tmdl or state exclusion conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semantic_model_create_tmdlA

Create a new semantic model with a TMDL definition (long-running). Reads .tmdl and .pbism files from the specified directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoDescription of the semantic model
displayNameYesDisplay name for the semantic model
workspaceIdYesThe workspace ID
filesDirectoryPathYesPath to a directory containing .tmdl and .pbism files

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only indicate that this is not read-only and not destructive, which aligns with a create operation. The description adds useful behavioral context by flagging the operation as 'long-running' and specifying that it reads local files. However, it does not disclose what the caller receives after invocation, whether there is an operation ID to poll, or what happens if the files are invalid or already used.

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 two sentences with no fluff. The main action and the long-running nature are front-loaded, and the second sentence provides the essential input mechanism. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool purpose, file types, and long-running nature, and the schema documents all parameters. However, with no output schema and no explanation of what a caller should do after triggering this long-running operation, an agent is left uncertain about how to retrieve the result or check status. This is a meaningful gap for a creation operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes all four parameters, including filesDirectoryPath as 'Path to a directory containing .tmdl and .pbism files.' The tool description largely restates this same information, so it adds no meaningful parameter-level meaning beyond what the schema provides. Baseline 3 is appropriate.

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 uses a specific verb and resource: 'Create a new semantic model with a TMDL definition.' It also clarifies the file-based input by mentioning '.tmdl and .pbism files,' which distinguishes this tool from the sibling semantic_model_create_bim without needing to inspect either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is appropriate when creating a semantic model from a directory of TMDL/PBISM files, but it never explicitly names semantic_model_create_bim as the alternative for BIM-based creation or states when not to use this tool. The usage context is reasonably clear, but the exclusion guidance is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semantic_model_deleteB
Destructive

Delete a semantic model

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
semanticModelIdYesThe semantic model ID

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description merely restates the destructive action already indicated by annotations (readOnlyHint=false, destructiveHint=true) without adding context. It does not mention that deletion is permanent, whether dependent reports or artifacts are affected, or whether any confirmation or permission is required. The description adds no behavioral information beyond the annotations and schema.

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?

The description is a single short sentence with no filler, front-loading the action immediately. However, it is so terse that it forgoes useful context such as permanence or prerequisites; this is still a conciseness strength rather than a verbosity problem. It would merit a 5 only if the brevity came with brief, high-value caveats.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive tool with no output schema, the description does not state what a successful delete returns, that the action is irreversible, or what preconditions exist. The two required IDs are fully covered by the schema and the destructive trait is in annotations, so the invocation itself is clear, but operational completeness is lacking. The one-line description leaves important decision-making context to the agent's assumptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: workspaceId and semanticModelId are each described as 'The workspace ID' and 'The semantic model ID', so an agent has the needed meaning. The description itself contributes no parameter detail, which is acceptable under the high-coverage baseline. No enum or nested structure adds complexity.

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 is a concise active statement — 'Delete a semantic model' — giving the exact verb and resource. Among the semantic_model_* siblings, no other operation performs deletion, so this cannot be confused with create, update, refresh, or read operations. It is minimal but unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no sentence about when to choose this tool, when not to use it, or which alternatives apply, such as using semantic_model_update_details to modify a model instead of deleting it. An agent discovers deletion only from the tool name and destructiveHint, not from any usage guidance. This leaves the 'when' entirely implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semantic_model_execute_daxA
Read-only

Execute a DAX query against a semantic model via the Power BI API

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe DAX query to execute (e.g., 'EVALUATE Sales')
workspaceIdYesThe workspace ID (Power BI group ID)
semanticModelIdYesThe semantic model/dataset ID

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds minimal behavioral context beyond the annotation ('via the Power BI API'), and does not disclose the response format, error behavior, or that DAX queries return tabular results. Since annotations carry the safety burden, a 3 is appropriate.

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?

A single 14-word sentence that front-loads the verb and resource. Every word earns its place, and the sentence is immediately scannable for an agent deciding whether to read further.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 fully documented parameters, no nested objects, and safety annotations, the description is nearly complete for invocation. The main gap is that no output schema exists and the description never hints at what the response contains, which an agent would need to consume the query results. All invocation-relevant information is otherwise present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter having a clear description. The query parameter even includes a helpful example ('EVALUATE Sales'), and workspaceId/semanticModelId clarify the Power BI identifiers. The description text itself adds nothing beyond the schema, so the baseline 3 applies.

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 uses a specific verb ('Execute') with a clear resource ('DAX query against a semantic model') and channel ('via the Power BI API'). This distinguishes it from sibling execute tools like sql_endpoint_execute_query, eventhouse_execute_kql, and graphql_api_execute_query, as well as from semantic model management tools like semantic_model_refresh and semantic_model_get_details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The sibling list contains several other query-execution tools (sql_endpoint_execute_query, eventhouse_execute_kql, graphql_api_execute_query), and this description does nothing to help an agent choose among them or note prerequisites such as required Power BI permissions or DAX language familiarity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semantic_model_get_bimA
Read-only

Get the full definition of a semantic model in TMSL/BIM JSON format (long-running). Writes the decoded model.bim to the specified output file path and returns the path.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
outputFilePathYesFile path where the model.bim JSON will be written
semanticModelIdYesThe semantic model ID

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false). The description adds genuine value beyond them: it flags the operation as long-running, discloses the side effect of writing model.bim to an output file path, and states the return value. The file write does not contradict readOnlyHint since the semantic model resource itself is not mutated.

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?

Two sentences with zero filler. The core purpose is front-loaded, followed by the behavioral caveat (long-running) and the side effect/return. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 3-parameter tool with full schema coverage and safety annotations, the description covers purpose, the file-write side effect, the long-running behavior, and — since there is no output schema — the return value. The only notable gap is explicit routing guidance to semantic_model_get_tmdl or get_details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are already documented. The description adds slight value by tying outputFilePath to the write behavior, but workspaceId and semanticModelId gain nothing beyond the schema. The baseline 3 applies when the schema carries the documentation load.

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 states a specific verb ('Get'), a specific resource ('semantic model'), and the output format ('TMSL/BIM JSON'), plus 'full definition'. This cleanly distinguishes it from semantic_model_get_tmdl (TMDL format), semantic_model_get_details (summary), and semantic_model_update_bim (mutation). An agent can identify the right tool without opening schemas.

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?

The format qualifier and 'full definition' imply when this tool is appropriate, and the '(long-running)' marker hints that lightweight alternatives like get_details may be preferable for quick reads. However, it never explicitly names sibling alternatives or states when not to use it, so routing is partly left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semantic_model_get_datasourcesB
Read-only

Get the data sources of a semantic model via the Power BI API

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID (Power BI group ID)
semanticModelIdYesThe semantic model/dataset ID

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true and destructiveHint=false, so the description is consistent with the safety profile. However, the description adds little beyond 'via the Power BI API' and does not disclose return shape, pagination, connection details, or failure behavior.

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?

The description is one short sentence with the core action front-loaded. 'via the Power BI API' is mild filler, but the overall structure is efficient and avoids unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with two fully documented parameters and clear safety annotations, invocation requirements are mostly covered. However, there is no output schema and the description does not clarify what the returned data source information contains or how this call relates to semantic_model_get_details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% description coverage for workspaceId and semanticModelId, so the description does not need to repeat parameter meanings. It also adds no extra parameter-level nuance beyond what the schema already conveys.

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 clearly states a specific verb ('Get'), a specific resource ('data sources of a semantic model'), and the API context. This is enough to distinguish it from related siblings like semantic_model_get_details and report_get_datasources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus related alternatives, no mention of prerequisites, and no exclusions. The description states what it does but not when it is the right choice in a workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semantic_model_get_detailsA
Read-only

Get details (name, ID, description, etc.) of a specific semantic model — does not return the definition

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
semanticModelIdYesThe semantic model ID

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds meaningful behavioral context by clarifying that only details such as name, ID, and description are returned, and explicitly excludes the definition. This helps set agent expectations beyond the annotation alone.

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?

A single, well-structured sentence communicates the action, the scope of the result, and an important exclusion. Every part is useful, and the key limitation is front-loaded for quick understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only getter with two clearly documented required parameters, the description provides enough context for correct invocation. It names the type of data returned and explicitly notes what is not returned. Without an output schema, slightly more detail about the return shape would be ideal, but the description is sufficient for a typical agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both parameters have straightforward descriptions in the schema. The tool description does not add parameter-level meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.

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 uses a specific verb ('Get') with a clear resource ('details ... of a specific semantic model'). It also explicitly distinguishes itself from definition-returning tools by stating 'does not return the definition', which separates it from siblings like semantic_model_get_bim and semantic_model_get_tmdl.

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?

The description conveys that this tool is for fetching metadata details, not the model definition. The negative statement implies that get_bim/get_tmdl should be used when the definition is needed, though it does not name those alternatives explicitly. Clear enough for basic routing among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semantic_model_get_refresh_historyA
Read-only

Get the refresh history of a semantic model via the Power BI API

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID (Power BI group ID)
semanticModelIdYesThe semantic model/dataset ID

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds only the context that this goes 'via the Power BI API' but does not disclose details such as pagination, history retention limits, or authentication requirements. It is consistent with annotations but adds limited behavioral value.

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?

One concise, front-loaded sentence with no filler. Every word adds information: the operation, the target resource, and the API context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only getter with two fully documented parameters and no optional inputs, the description is largely sufficient. The absence of an output schema means a bit more detail about the shape of the refresh history could help, but the tool's purpose and required IDs are clear enough for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters already have clear descriptions ('workspace ID (Power BI group ID)' and 'semantic model/dataset ID'). The description adds no extra parameter semantics, so the baseline of 3 applies.

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 uses a specific verb and resource ('Get ... refresh history of a semantic model') and clearly distinguishes this from sibling tools like semantic_model_get_details, semantic_model_get_datasources, and semantic_model_refresh. An agent can immediately tell what operation this performs without inspecting the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to call this tool instead of a sibling. It only implies use for inspecting past refreshes; there are no prerequisites, exclusion criteria, or pointers to alternatives such as semantic_model_get_details or dataflow_get_refresh_status.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semantic_model_get_tmdlA
Read-only

Get the definition of a semantic model in TMDL format (human-readable, LLM-friendly). Writes all TMDL files to the specified output directory preserving the folder structure and returns the list of files written.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
semanticModelIdYesThe semantic model ID
outputDirectoryPathYesDirectory path where TMDL files will be written

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint=true annotation, the description discloses a meaningful side effect: it writes all TMDL files to the output directory and preserves folder structure. This is important behavioral context that annotations alone do not provide, and it is consistent with the read-only nature of the source operation.

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?

Two sentences with no filler. The first sentence states the core purpose immediately, and the second explains the side effect and return value. Every phrase earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a moderate-complexity retrieval tool, the description covers the format, local file-writing behavior, folder preservation, and return value. It does not explain whether the output directory must exist or whether existing files are overwritten, but the annotations and full parameter schema cover the remaining essentials.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds general context about the output being a list of files written, but it does not add specific parameter-level meaning beyond what the schema already documents for workspaceId, semanticModelId, and outputDirectoryPath.

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 states a specific action ('Get the definition of a semantic model'), a specific resource (semantic model), and a specific format (TMDL). This clearly distinguishes it from related tools like semantic_model_get_bim and semantic_model_get_details, so an agent can select it without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The format and 'LLM-friendly' phrasing imply this tool is for retrieving a semantic model definition in TMDL form. However, the description does not explicitly say when not to use it or mention the alternative BIM/get-details tools, leaving the choice somewhat to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semantic_model_listA
Read-only

List all semantic models in a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool read-only and non-destructive, covering the safety profile. The description adds the workspace-scoped, all-models context but does not disclose additional behavioral traits such as pagination, permissions, or return-value shape; this is acceptable given the annotations but not especially rich.

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 one tightly written sentence with every word earning its place. It front-loads the action and scope and contains no filler, repetition, or irrelevant detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list operation with one required, schema-documented parameter, the description, schema, and annotations provide enough for an agent to select and invoke the tool correctly. A minor gap is the lack of any indication of what fields the returned list items contain, but the word 'list' makes the basic return behavior self-evident.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter workspaceId is fully documented in the input schema with 100% coverage. The description adds no further parameter detail, so it correctly relies on the schema; baseline 3 applies when the schema does the heavy lifting.

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 states a clear, specific operation: list all semantic models within a workspace. It distinguishes from semantic_model_get_details and the various semantic_model mutation/creation tools without requiring schema inspection.

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?

The description provides clear context for when to use this tool: when a full inventory of semantic models in a workspace is needed. It does not explicitly name an alternative for fetching individual model details, but the sibling tool set makes that distinction straightforward and no misleading guidance is present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semantic_model_refreshC

Trigger a refresh of a semantic model via the Power BI API

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID (Power BI group ID)
semanticModelIdYesThe semantic model/dataset ID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a non-read-only, non-destructive operation, but the description adds little beyond that. The word 'Trigger' hints that the refresh may be asynchronous, but the description does not disclose that the operation may be long-running, what side effects occur, or that semantic_model_get_refresh_history can be used to monitor progress.

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?

The description is a single, front-loaded sentence with no fluff. The phrase 'via the Power BI API' adds little value, but the overall structure is efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a triggering operation with no output schema, the description is too thin. It does not explain the asynchronous nature of the refresh, what a successful invocation looks like, or how to verify the refresh status, which are important for an agent to correctly handle the tool's result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both workspaceId and semanticModelId already documented. The description adds no parameter-level meaning, which is acceptable given the schema carries that burden.

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?

The description clearly states the action ('Trigger a refresh') and the resource ('semantic model'), so an agent can tell this is the refresh operation rather than a list, create, or delete sibling. However, it does not explicitly contrast itself with related tools such as semantic_model_get_refresh_history, so it stops short of the strongest sibling-differentiating clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus alternatives, prerequisites, or follow-up steps. The wording only implies 'if you need to refresh a semantic model, use this', but there is no explicit context or comparison with related semantic_model operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semantic_model_take_overC

Take over ownership of a semantic model via the Power BI API

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID (Power BI group ID)
semanticModelIdYesThe semantic model/dataset ID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that ownership changes but provides no behavioral detail about consequences, such as whether the previous owner loses access, whether permissions are altered, or whether the operation is reversible. Annotations only state non-read-only and non-destructive, which do not convey the full impact of a takeover.

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?

The description is a single, straightforward sentence with no wasted words. 'Via the Power BI API' is slightly redundant given the context, but overall it is concise and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a potentially impactful operation like taking over ownership, the description lacks essential context such as prerequisites, side effects, permission requirements, or behavior after execution. The simple schema and lack of output schema make the description the only source of behavioral guidance, and it is insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters are fully documented in the input schema with clear descriptions (workspaceId and semanticModelId). The tool description adds no additional parameter semantics, but since schema coverage is 100%, the baseline of 3 applies.

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?

The description states a specific verb ('take over ownership') and a clear resource ('semantic model'), which differentiates it from siblings like semantic_model_update_details or semantic_model_delete. However, it does not explain what 'take over' entails operationally, leaving some ambiguity for an agent unfamiliar with the Power BI ownership model.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when this tool should be used, what prerequisites exist, or when an alternative such as semantic_model_update_details would be more appropriate. The description simply states the action with no context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semantic_model_update_bimA

Update a semantic model's full definition from TMSL/BIM JSON (long-running). Reads the model.bim JSON from the specified file path.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
semanticModelIdYesThe semantic model ID
definitionFilePathYesPath to a file containing the model.bim JSON

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description usefully adds that the operation is long-running and that it reads model.bim from a file path, which goes beyond the annotations. However, it does not disclose what happens after the update, whether it is asynchronous, or what side effects replacing the full definition might have. The annotations are not contradicted: readOnlyHint=false aligns with a mutation, and destructiveHint=false is not directly challenged.

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 two tight sentences with no filler. The core action and format are front-loaded, and the file-reading detail is placed immediately after. Every word contributes to understanding the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for a simple update tool with three well-documented parameters, but the 'long-running' note is left unexplained. There is no output schema and no mention of expected response or how to track completion, which leaves an agent uncertain about asynchronous behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already well documented. The description reinforces that definitionFilePath points to a model.bim JSON file, but it adds no new semantic detail about workspaceId or semanticModelId beyond what the schema already provides.

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 clearly states a specific verb ('Update') and resource ('a semantic model's full definition'), and names the input format (TMSL/BIM JSON) and source (file path). This distinguishes it from sibling tools like semantic_model_update_tmdl and semantic_model_update_details, which target different formats or partial updates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool should be used when you need to replace a semantic model's full BIM definition from a file, but it does not explicitly state when to prefer this over alternatives like semantic_model_update_details or semantic_model_update_tmdl. The 'full definition' phrasing gives context, but no explicit exclusions or alternative routing are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semantic_model_update_detailsA

Update a semantic model's name or description — does not modify the definition

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoNew description
displayNameNoNew display name
workspaceIdYesThe workspace ID
semanticModelIdYesThe semantic model ID

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a non-read-only but non-destructive operation. The description adds useful behavioral context by scoping changes to name/description only and preserving the definition. It does not disclose return behavior, validation rules, or whether updates are partial/overwrite semantics.

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?

A single sentence front-loads the action and resource, then immediately states the critical exclusion. There is no filler or redundant detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with two required IDs and two optional metadata fields, the description plus schema and annotations is sufficient for correct selection and invocation. Minor gaps remain around partial-update behavior and what happens if no optional field is supplied, but these are not critical for this simple operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameters are already documented. The description adds the conceptual mapping that 'displayName' is the name field, but it does not provide additional constraints, optionality context, or interaction semantics beyond the 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 states a specific verb ('Update') and resource ('semantic model') and narrows the scope to 'name or description', explicitly excluding definition changes. This clearly distinguishes it from definition-focused siblings like semantic_model_update_bim and semantic_model_update_tmdl.

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?

The phrase 'does not modify the definition' communicates the main exclusion and implies this tool is for metadata-only updates, not definition changes. However, it does not explicitly name alternative tools or state when to prefer this one over semantic_model_update_bim/tmdl.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

semantic_model_update_tmdlA

Update a semantic model's definition from TMDL files (long-running). Reads .tmdl and .pbism files from the specified directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
semanticModelIdYesThe semantic model ID
filesDirectoryPathYesPath to a directory containing .tmdl and .pbism files

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false and destructiveHint=false, and the description adds useful context that this is a long-running operation and that it reads .tmdl and .pbism files. It does not disclose whether the operation overwrites the existing definition, whether prior content is lost, or how completion is reported, which would be valuable for a mutating long-running operation.

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 short and front-loaded with the action, then adds the key behavioral note about long-running execution and the specific file extensions. Every clause earns its place without excessive verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple three-parameter tool with clear schema coverage, the description is mostly adequate. However, because this is a long-running mutation with no output schema, some guidance about expected results, side effects, or how to check operation status would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are already documented. The description adds minimal extra meaning beyond noting that filesDirectoryPath contains .tmdl and .pbism files, which largely mirrors the schema. This matches the baseline of 3 for fully schema-documented parameters.

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 clearly states a specific action: updating a semantic model's definition from TMDL files. It distinguishes itself from related siblings like semantic_model_update_bim (BIM-based update) and semantic_model_create_tmdl (creation), by focusing on TMDL-file-driven updates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for updating an existing semantic model from local TMDL files, and touts that it is long-running. However, it does not explicitly state when to choose this over semantic_model_update_bim, semantic_model_create_tmdl, or semantic_model_update_details, leaving alternatives to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sql_endpoint_execute_queryA

Execute a T-SQL query against a lakehouse or warehouse SQL endpoint

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesT-SQL query to execute
itemIdYesThe lakehouse or warehouse ID
maxRowsNoMaximum rows to return (default: 1000)
databaseNoDatabase name (defaults to the item's display name)
itemTypeYesType of the item to query
workspaceIdYesThe workspace ID containing the resource

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations partially cover the safety profile (readOnlyHint=false signals the query may write; destructiveHint=false marks it non-destructive), but the description adds no behavioral context of its own: no warning that arbitrary T-SQL can mutate data, no mention of the 1000-row default cap, no note on permissions or result behavior. There is also an unresolved tension: arbitrary T-SQL can be destructive in practice while destructiveHint=false, though the description itself does not contradict the annotations.

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?

A single 13-word sentence that front-loads the verb and target with zero filler or repetition. It conveys the core purpose efficiently without duplicating the schema's parameter documentation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool that executes arbitrary T-SQL with no output schema, key expectations are missing: no statement of the return shape (rows/columns), no note that non-SELECT statements may mutate data, and no explanation of the 1000-row cap behavior. The fully documented schema and annotations keep it adequate for basic invocation, but an agent cannot predict response semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all six parameters are already documented with types, defaults (maxRows=1000, database defaults to item display name), and the itemType enum. The description's 'lakehouse or warehouse' wording merely echoes the itemType enum values and adds no further parameter-level meaning, so the baseline of 3 applies.

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 names a specific verb ('Execute'), a specific artifact ('a T-SQL query'), and a specific target ('a lakehouse or warehouse SQL endpoint'). The T-SQL qualifier and target scope distinguish it from execution siblings like graphql_api_execute_query (GraphQL) and eventhouse_execute_kql (KQL) without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the intended context clear — T-SQL against lakehouse or warehouse SQL endpoints — which implicitly routes the agent away from KQL/GraphQL/DAX execution tools. However, it never states explicit when-to-use conditions, nor does it name alternatives or exclusions, so routing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sql_endpoint_getB
Read-only

Get details of a specific SQL endpoint, including connection string

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
sqlEndpointIdYesThe SQL endpoint ID

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and destructiveHint=false, and the description aligns with that by describing a read operation. The description adds that the response includes the connection string, which is useful. It does not disclose error behavior, permissions, or response shape, but with the annotations covering the safety profile, this is acceptable.

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 a single concise sentence that is front-loaded with the core purpose and includes the most important return detail. There is no filler, redundancy, or unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read-only lookup, the description is mostly sufficient. However, the sibling sql_endpoint_get_connection_string makes it unclear whether an agent should call this tool or that one for connection-string-only needs. The description also does not mention the return structure, and with no output schema, that gap matters more.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both workspaceId and sqlEndpointId are already documented in the schema. The description does not add any parameter-specific semantics beyond identifying what the tool does. Baseline 3 is appropriate here since the schema carries the parameter load.

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?

The description clearly states the action and resource: 'Get details of a specific SQL endpoint, including connection string.' It communicates a specific lookup operation and distinguishes itself from list-style tools. However, it does not explicitly differentiate from the sibling sql_endpoint_get_connection_string, which creates some ambiguity about scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives. It does not mention sql_endpoint_list, sql_endpoint_get_connection_string, or the per-resource get_sql_endpoint variants. Usage context is only implied by the word 'specific,' with no exclusions or routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sql_endpoint_get_connection_stringA
Read-only

Get the TDS connection string for a SQL endpoint

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
sqlEndpointIdYesThe SQL endpoint ID

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond restating the operation itself—it does not mention whether the connection string contains credentials, whether it is cached, or any prerequisites. With annotations covering the safe read nature, the description contributes little behavioral insight.

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 a single, focused sentence with no filler. It front-loads the action and resource clearly, and every word earns its place. This is an example of efficient, minimal specification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple: two required parameters, no nested objects, and no output schema. The description sufficiently explains what the tool does so an agent can call it correctly. While it does not explicitly describe the return value format, the phrase 'Get the TDS connection string' strongly implies the output is the connection string itself. Given the low complexity, this is adequately complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both workspaceId and sqlEndpointId are already described in the input schema. The description does not add any additional meaning about the parameters or their relationship. Baseline 3 is appropriate since the schema fully carries the parameter documentation.

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 uses a specific verb ('Get') and names the exact resource ('TDS connection string for a SQL endpoint'). It clearly distinguishes from sibling tools like sql_endpoint_get, which retrieves endpoint metadata, and sql_endpoint_execute_query, which runs queries. An agent can understand exactly what this tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: whenever a TDS connection string for a SQL endpoint is needed. However, it does not explicitly state when not to use it or mention alternatives, such as lakehouse_get_sql_endpoint or warehouse_get_sql_endpoint, which might also return connection-related information. The guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sql_endpoint_listA
Read-only

List all SQL endpoints in a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds that the operation returns all endpoints within a workspace, but it does not disclose pagination, ordering, filtering, or permission requirements.

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?

A single, front-loaded sentence with no filler. Every word contributes to defining the action, resource, and scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only list operation, the description is sufficient for an agent to select and invoke it. It does not describe the return shape, but no output schema exists and the list semantics are self-evident from the tool name and description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole parameter workspaceId is already fully documented in the schema (100% coverage), so the description adds no new semantic detail. The phrase 'in a workspace' simply reinforces the parameter's role.

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?

The description clearly identifies the action ('List'), the resource ('SQL endpoints'), and the scope ('in a workspace'), so an agent can tell this from sql_endpoint_get or sql_endpoint_execute_query. It does not explicitly name an alternative, but the verb and resource make the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied: call this when you need to enumerate all SQL endpoints in a given workspace. There is no explicit statement of when to use it over other list tools or whether it is a prerequisite for sql_endpoint_get, and no exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

variable_library_createA

Create a new variable library in a workspace (long-running). Optionally provide a directory containing the definition files (variables.json, settings.json, valueSets/*.json).

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoDescription of the variable library (max 256 characters)
displayNameYesDisplay name for the variable library
workspaceIdYesThe workspace ID
definitionDirectoryPathNoPath to a directory containing definition files (variables.json, settings.json, valueSets/*.json, .platform)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations establish that this is a mutating operation (readOnlyHint: false) and not destructive (destructiveHint: false). The description adds the key behavioral trait that the call is 'long-running', which is not captured in the annotations or schema. However, it does not disclose what 'long-running' means in practice, such as whether an operation ID is returned or how the agent should monitor completion.

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 a single compact sentence that front-loads the action and resource, then adds the long-running caveat and optional input details in efficient order. There is no filler, repetition, or unnecessary restatement of sibling tool behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter create tool with no output schema, the description covers what is created, where, and the optional definition-file input, and it flags the long-running behavior. It stops short of explaining the return value or follow-up polling expectations, which is a minor gap given the explicit long-running note but does not prevent a correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented at the schema level. The description's parenthetical file list largely repeats the schema text for definitionDirectoryPath and omits the .platform entry, so it adds little semantic value beyond what the schema already provides.

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 states an explicit action ('Create'), a specific resource ('variable library'), and a location ('in a workspace'), making the tool's purpose immediately clear. It is easily distinguished from sibling tools like variable_library_list, variable_library_get, variable_library_update, and variable_library_delete without opening the schema.

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?

The description clearly identifies the creation use case and notes that providing a definition directory is optional, which helps the agent decide how to call the tool. It does not explicitly name alternatives for updating or deleting existing libraries, but the create semantics are unambiguous in this context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

variable_library_deleteB
Destructive

Delete a variable library

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
variableLibraryIdYesThe variable library ID

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false, and the description simply restates the destructive action without adding behavioral context. It does not mention consequences such as irreversibility, dependency failures, or whether associated data is also deleted.

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 a single sentence with no wasted words. It front-loads the action and resource, which is appropriate for a simple deletion tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity delete operation, the description combined with the annotations and fully documented two-parameter schema is nearly sufficient. The missing piece is any statement about permanence or consequences, though the destructiveHint annotation partially covers this.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add parameter-level meaning beyond the schema, but the two required IDs are clearly named and documented in the input 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 uses the specific verb 'Delete' with the resource 'variable library', making the tool's purpose immediately clear. It also distinguishes itself from sibling variable_library tools such as variable_library_list, variable_library_get, and variable_library_update, and from other delete tools by naming the resource type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus alternatives. The description gives no context such as 'use this to permanently remove' or 'instead of variable_library_update for modifications', so the agent must infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

variable_library_getA
Read-only

Get details of a specific variable library, including its active value set name

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
variableLibraryIdYesThe variable library ID

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so there is no safety contradiction. The description adds useful context beyond the annotations by revealing that the response includes the active value set name, though it does not describe error behavior or the full set of returned fields.

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 a single, front-loaded sentence. Every word contributes: it names the operation, scope, resource, and a key returned detail with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter, read-only getter with annotations covering safety, this description is nearly complete. It identifies the operation and a notable returned field; without an output schema it could be more exhaustive about return fields, but the simplicity of the tool makes this a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for both parameters (workspaceId and variableLibraryId), so the schema already explains what each parameter means. The description does not add additional parameter-level detail, matching the baseline of 3.

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 states a clear verb and resource: 'Get details of a specific variable library'. It also names a meaningful output component, 'including its active value set name', which helps distinguish this single-item getter from sibling operations like variable_library_list or variable_library_get_definition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word 'specific' implies this is the tool to use for one library by ID rather than for listing libraries. However, it does not explicitly state when not to use it or name alternatives such as variable_library_list or variable_library_get_definition, so the usage guidance is only implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

variable_library_get_definitionA
Read-only

Get the definition of a variable library (long-running). Writes all definition files (variables.json, settings.json, valueSets/*.json, .platform) to the specified output directory and returns the list of files written.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
variableLibraryIdYesThe variable library ID
outputDirectoryPathYesDirectory path where definition files will be written

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds useful behavioral context beyond the readOnlyHint/destructiveHint annotations by noting the operation is long-running, writes specific files to a local output directory, and returns a list of files written. The local write does not contradict readOnlyHint since it does not mutate the Fabric resource.

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 compact and front-loaded: it states the action and long-running nature first, then gives the concrete side effects and return value. Every sentence contributes useful information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with three simple parameters, no output schema, and read-only annotations, the description covers the essential behavior, output, and side effects well. It could be more complete by explaining how to handle the long-running aspect, such as polling or timeout expectations, but it is sufficient for correct selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all three parameters adequately. The description reinforces that outputDirectoryPath receives the definition files and lists the expected file names, but it adds little parameter meaning beyond what the schema provides.

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 states a specific action and resource: getting the definition of a variable library. It also explains the unique behavior of writing definition files to an output directory and returning the written file list, which clearly distinguishes it from variable_library_get and variable_library_update_definition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool: when a caller needs the full definition files exported to a directory. However, it does not explicitly say to use variable_library_get for simple metadata retrieval or update_definition for modifications, and it offers no exclusions or alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

variable_library_listA
Read-only

List all variable libraries in a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the workspace scoping and 'all' behavior, but it does not disclose pagination, ordering, or whether the results are summaries or full definitions.

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?

A single, front-loaded sentence states the action, resource, and scope with no filler. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-required-parameter, read-only list operation, the description is nearly complete: it states what is listed and the scope. It would be fully complete with an explicit note about the result shape, but the tool's low complexity and schema coverage make the current description sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and workspaceId is already documented as 'The workspace ID'. The description's 'in a workspace' aligns with this parameter but adds no new format, default, or edge-case semantics.

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 uses the specific verb 'List' with the resource 'variable libraries' and scopes it to 'a workspace', making the operation unambiguous. Among siblings like variable_library_get and variable_library_create, the plural 'all variable libraries' clearly identifies this as the enumeration tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when an agent needs to enumerate all variable libraries in a workspace, but it does not explicitly say when to prefer this over variable_library_get or mention any exclusions. No alternative tool is named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

variable_library_updateB

Update a variable library's name, description, or active value set

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoNew description (max 256 characters)
displayNameNoNew display name
workspaceIdYesThe workspace ID
variableLibraryIdYesThe variable library ID
activeValueSetNameNoName of the value set to make active

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a mutating, non-destructive operation, and the description adds the scoped set of updateable fields. However, it does not disclose whether the update is partial, whether changing the active value set has side effects, or any authorization requirements, though annotations lower the burden here.

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 a single concise sentence that is front-loaded and contains no filler. Every word contributes to understanding the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple flat update operation with full schema coverage and annotations, the description plus schema is sufficient for constructing a valid call. It does not mention return values or that at least one update field should be supplied, but these are minor given the simplicity of the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds little beyond the schema: it maps 'name' to displayName and echoes activeValueSetName, but provides no new parameter-level detail.

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?

The description clearly identifies the action (update), the resource (variable library), and the specific fields that can be changed (name, description, active value set). It does not explicitly differentiate this from the sibling variable_library_update_definition tool, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus variable_library_update_definition, or how it relates to variable_library_create/delete. The intended use is only implicit from the tool name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

variable_library_update_definitionB

Update a variable library's definition (long-running). Reads definition files (variables.json, settings.json, valueSets/*.json, .platform) from the specified directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID
variableLibraryIdYesThe variable library ID
definitionDirectoryPathYesPath to a directory containing definition files (variables.json, settings.json, valueSets/*.json, .platform)

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is not read-only and not destructive. The description adds the 'long-running' caveat and specifies the types of files read, which is useful behavioral context beyond the schema. It does not, however, describe side effects, merge/replace behavior, or operation-status handling.

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 a single, front-loaded sentence that communicates the core action, the long-running nature, and the source of definition files with no wasted words. It is appropriately compact while preserving essential details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter tool with fully documented inputs, this description is largely sufficient: it names the action, the key behavior, and the long-running nature. It could be more complete by noting what the operation returns or how to monitor completion, but the core invocation context is covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are already documented in the schema. The description adds only contextual value by naming the definition file types, but it does not meaningfully expand parameter semantics beyond what the schema provides.

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?

The description states a clear action ('Update a variable library's definition') and identifies the resource, plus the mechanism (reading definition files from a directory). It distinguishes itself from sibling tools like variable_library_get_definition by focusing on updating, though it does not explicitly contrast with variable_library_update.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through 'definition files' and 'long-running,' but it provides no explicit guidance on when to prefer this over variable_library_update or variable_library_get_definition. There are no stated exclusions, prerequisites, or alternative selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

warehouse_createA

Create a new warehouse in a workspace (long-running operation)

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoDescription of the warehouse
displayNameYesDisplay name for the warehouse
workspaceIdYesThe workspace ID

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds the useful behavioral note that this is a long-running operation, which the annotations do not convey. It does not explain what the response contains or whether it returns an operation handle, but the parenthetical provides meaningful additional context.

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 a single compact sentence that front-loads the operation, includes the workspace scope, and appends the relevant 'long-running operation' caveat. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, fully documented 3-parameter tool with no nested objects, the description is mostly sufficient. However, since there is no output schema, it leaves unclear what the tool returns after the long-running operation begins, such as an operation ID or status object.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and each parameter already has a basic explanation. The description adds no new parameter-level detail beyond clarifying that the warehouse lives in a workspace, which is already implied by workspaceId.

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 states a specific action ('Create') and resource ('a new warehouse'), and scopes it to a workspace. This clearly distinguishes it from sibling tools like warehouse_update, warehouse_delete, and workspace_create.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case: use this when you need to create a new warehouse in a workspace. However, it does not explicitly name alternatives or state when not to use it, nor does it mention prerequisites such as the workspace already existing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

warehouse_deleteB
Destructive

Delete a warehouse

ParametersJSON Schema
NameRequiredDescriptionDefault
warehouseIdYesThe warehouse ID
workspaceIdYesThe workspace ID

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare destructiveHint=true and readOnlyHint=false, so the description adds no behavioral information beyond what structured metadata provides. It does not mention whether the deletion is irreversible, whether it removes contained data/tables, or whether any dependencies block deletion—important context for a destructive tool.

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 a single short sentence with no filler or repetition. It is easy to parse quickly and contains no content that should be moved or removed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple delete operation with fully documented required parameters and a destructiveHint annotation, the description is minimally adequate. However, it omits any statement of consequences (permanence, cascading deletion), which would make the tool definition complete rather than merely adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already explains warehouseId and workspaceId. The description adds no parameter-level meaning beyond the schema, so it sits at the baseline for schema-documented parameters.

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?

The description states a specific action ('Delete') and resource ('a warehouse'), so an agent can tell this is the removal operation rather than list/get/create/update. It adds no differentiation beyond the verb+resource pair and essentially restates the tool name, which keeps it at a 4 rather than a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose warehouse_delete over other warehouse operations or over sibling delete tools for related resources. The agent must infer from the name and schema that this is the deletion entry point.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

warehouse_getA
Read-only

Get details of a specific warehouse including connection string and provisioning status

ParametersJSON Schema
NameRequiredDescriptionDefault
warehouseIdYesThe warehouse ID
workspaceIdYesThe workspace ID

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds useful context about the return contents (connection string and provisioning status), which is valuable since there is no output schema. It does not disclose any additional behavioral traits such as authorization requirements or potential errors, but the annotations lower the burden. No contradiction with annotations.

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 a single sentence that front-loads the action ('Get details') and the resource ('specific warehouse'), then specifies key return fields. Every word is essential and there is no redundancy or fluff. It is appropriately concise for a simple getter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only getter with two well-documented parameters and safety annotations, this description is nearly sufficient. It tells the agent what key details will be returned, which compensates somewhat for the missing output schema. However, it does not state the full set of returned properties (the word 'including' implies it is non-exhaustive) and does not point to sibling tools for more specific fetches, so it falls just short of fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — both warehouseId and workspaceId are already described in the schema as 'The warehouse ID' and 'The workspace ID'. The tool description adds no further meaning about the parameters. With high schema coverage, the baseline of 3 is appropriate.

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 uses a specific verb and resource: 'Get details of a specific warehouse'. It also names two distinguishing pieces of returned content (connection string and provisioning status), which sets it apart from related getters like warehouse_get_sql_endpoint and warehouse_get_definition. An agent can clearly understand what this tool does.

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?

The description clearly implies the usage context: when you need overall details of a specific warehouse. However, it does not explicitly exclude alternatives or name sibling tools (e.g., warehouse_get_sql_endpoint for the connection string only), so there is no explicit when-not-to-use guidance. This gives a clear context without exclusions, matching a 4.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

warehouse_get_definitionA
Read-only

Get the definition of a warehouse (long-running). Writes definition files to the specified output directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
warehouseIdYesThe warehouse ID
workspaceIdYesThe workspace ID
outputDirectoryPathYesDirectory path where definition files will be written

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context: the operation is long-running and it writes files to the provided output directory, which is not visible in the annotations or schema. It does not discuss overwrite behavior or permissions, but given the annotations, this is acceptable.

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 two short sentences with zero filler. The core purpose, the long-running nature, and the file-writing side effect are all front-loaded and each sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given three simple required parameters, full schema coverage, and read-only annotations, the description is largely complete. It explains the important non-obvious behavior: long-running execution and file output. It could mention whether the operation is asynchronous or how to handle existing files, but those are not critical for selecting and invoking the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented in the input schema. The description adds no new parameter-level detail beyond referencing the output directory, which matches the existing schema description. A baseline score of 3 is appropriate because the schema does the heavy lifting.

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 clearly states the action: get the definition of a warehouse, and adds the key behavior that it writes definition files to an output directory. This distinguishes it from metadata retrieval tools like warehouse_get or warehouse_get_sql_endpoint. The 'long-running' qualifier further sharpens expectations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: when you need a warehouse definition exported as files to a directory, and it warns that the operation is long-running. However, it does not explicitly contrast it with alternatives such as warehouse_get or warehouse_update_definition, nor state when not to use it. The guidance is present but mostly implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

warehouse_get_sql_endpointB
Read-only

Get the SQL connection details for a warehouse

ParametersJSON Schema
NameRequiredDescriptionDefault
warehouseIdYesThe warehouse ID
workspaceIdYesThe workspace ID

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description is consistent with those. However, the description adds no behavioral context beyond that: it does not mention whether credentials are returned, whether authentication is required, or what form the SQL connection details take.

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 a single, front-loaded sentence with no filler. It conveys the core operation and resource type immediately and efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, the parameters are fully documented by the schema, and the annotations cover the read-only safety profile. However, since there is no output schema, the description leaves the exact contents of 'SQL connection details' ambiguous, which an agent may need to know to use the result confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters warehouseId and workspaceId are already documented by the schema. The description adds no additional parameter-level meaning, so the baseline of 3 is appropriate.

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?

The description states a specific verb ('Get') and resource ('SQL connection details for a warehouse'), which separates it from the broader warehouse_get by clarifying it is about connection details. It does not explicitly distinguish itself from sibling tools like lakehouse_get_sql_endpoint or sql_endpoint_get_connection_string, but the warehouse context in both name and description provides adequate direction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives. The sibling set contains several similar get_sql_endpoint tools for other resource types, but the description offers no routing or exclusionary context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

warehouse_listA
Read-only

List all warehouses in a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond that; it doesn't mention pagination, return shape, or potential caveats. Since the annotations carry the safety burden, this is acceptable but not enriched.

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 one short sentence with no filler. It front-loads the key information (action, resource, scope) and every word earns its place.

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?

This is a low-complexity tool: one required parameter, no nested objects, no output schema, and read-only annotations. The description fully states what the tool does and where it operates. An agent has enough information to select and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: workspaceId is documented as 'The workspace ID'. The description's phrase 'in a workspace' confirms the relationship but adds no new semantic detail. The schema already does the work, so the baseline of 3 applies.

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 is precise: 'List all warehouses in a workspace' names a specific verb (List), a concrete resource (warehouses), and the scope (workspace). It clearly differentiates from sibling tools like warehouse_get, warehouse_create, and warehouse_delete without needing to open their schemas.

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?

There is no explicit exclusion or named alternative, but the context is obvious: use this tool when you need to enumerate warehouses within a workspace, as opposed to retrieving a single warehouse with warehouse_get or modifying/deleting one. It lacks explicit when-not-to-use guidance, so it doesn't earn a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

warehouse_list_tablesA
Read-only

List all tables in a warehouse

ParametersJSON Schema
NameRequiredDescriptionDefault
warehouseIdYesThe warehouse ID
workspaceIdYesThe workspace ID

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description confirms a listing operation but adds little beyond that; it does not mention pagination, permissions, or response behavior.

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 a single, front-loaded sentence with no filler or repetition. Every word is meaningful and directly states the operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool, the description is adequate, but it lacks details such as output shape, pagination behavior, or any caveats about scope. Since there is no output schema, a bit more context about what the response contains would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with warehouseId and workspaceId both described as IDs in the schema. The description adds no additional parameter semantics beyond what the schema already provides.

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 states a specific verb and resource: 'List all tables in a warehouse'. This clearly distinguishes it from sibling tools like warehouse_list (which lists warehouses) and lakehouse_list_tables (which lists tables in a lakehouse).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use case is implied by the description—use this when you need to enumerate tables within a warehouse—but there is no explicit guidance about when not to use it or which sibling alternative to prefer, such as lakehouse_list_tables.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

warehouse_updateB

Update a warehouse's name or description

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoNew description
displayNameNoNew display name
warehouseIdYesThe warehouse ID
workspaceIdYesThe workspace ID

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already establish that the operation is mutating (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds useful scope by clarifying that the mutation is limited to the name/description rather than the full warehouse definition, but it does not disclose whether omitted fields are left unchanged or whether additional permissions are required.

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?

A single, front-loaded sentence with no filler. Every word contributes to stating the operation and its scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple metadata update, the schema and annotations cover the essential invocation details, and there is no output schema that needs explanation. However, the description omits guidance on choosing between warehouse_update and warehouse_update_definition and does not clarify whether both fields can be updated together, leaving some ambiguity for a selecting agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents displayName and description, so the description's mention of 'name or description' adds little beyond the structured data. It does help map 'name' to the displayName property, but it does not clarify valid values or update semantics.

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?

The description uses a specific verb and resource ('Update a warehouse') and names the mutable fields ('name or description'), which distinguishes it from definition-level updates like warehouse_update_definition. It is slightly imprecise because 'or' could imply only one field can be changed at a time when both displayName and description are independently optional.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool rather than warehouse_update_definition or when a simple metadata update is appropriate. The agent must infer usage from the tool name and the schema, with no explicit context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

warehouse_update_definitionA

Update a warehouse's definition (long-running). Accepts definition parts inline or a directory path.

ParametersJSON Schema
NameRequiredDescriptionDefault
partsNoArray of definition parts to upload
warehouseIdYesThe warehouse ID
workspaceIdYesThe workspace ID
partsDirectoryPathNoPath to a directory containing definition files

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only show readOnlyHint=false and destructiveHint=false, so the description carries the burden of explaining operational behavior. It adds the 'long-running' trait, which is useful, but does not disclose whether this is asynchronous, whether it replaces the full definition, how to track completion, or what side effects occur. This is adequate but thin.

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 two short sentences with no filler. It front-loads the key purpose and long-running caveat, then efficiently summarizes the two input modes. Every clause adds information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutating, long-running operation with no output schema, the description should say more about what happens after the call, how to poll or verify success, and whether the update is additive or replaces the entire definition. It is sufficient for a basic invocation but incomplete for an agent that needs to reason about the resulting state.

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?

The input schema already documents all parameters, but the description adds meaningful semantic content by stating that definition parts can be supplied inline or via a directory path. This clarifies the relationship between parts and partsDirectoryPath, which the schema does not express.

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 clearly states the action (update), the resource (a warehouse's definition), and the execution characteristic (long-running). It distinguishes this tool from warehouse_update by focusing on the definition, and the sibling set confirms a distinct definition-management pattern (warehouse_get_definition, warehouse_update_definition).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is for updating warehouse definitions and offers two input modes, but it does not explicitly state when to use this tool versus warehouse_update or warehouse_get_definition. The distinction is inferable from the name and sibling pattern, but no clear exclusions or alternative routing are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workspace_createA

Create a new Fabric workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
capacityIdNoCapacity ID to assign
descriptionNoDescription of the workspace
displayNameYesDisplay name for the workspace

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description only states that the tool creates a workspace, which is already implied by the annotations (readOnlyHint=false, destructiveHint=false). It adds no additional behavioral context such as whether creation requires an existing capacity, whether it is synchronous, what side effects occur, or what the response contains.

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 a single, focused sentence with no filler. The action and resource are front-loaded, and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple create operation with one required parameter and full schema coverage, the description is largely complete for selecting and invoking the tool. The main gap is that it does not mention the return value or whether creation is synchronous, but this is minor for a straightforward create call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three parameters (displayName, capacityId, description) are fully described in the input schema, so the description adds no extra parameter-level meaning. With 100% schema description coverage, the baseline score of 3 is appropriate.

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 'Create a new Fabric workspace' uses a specific verb and resource, making the operation immediately clear. It is distinct from sibling workspace tools like workspace_get, workspace_update, and workspace_delete because it is the create operation. The resource type is explicit, so there is no ambiguity among the many create_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied by the name and description: use this when a new Fabric workspace needs to be created. However, the description provides no explicit guidance about when not to use it, prerequisites, or alternatives such as workspace_update for modifying an existing workspace.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workspace_deleteB
Destructive

Delete a workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description simply restates the delete action and adds no behavioral context beyond what the annotations already indicate. It does not mention irreversibility, cascading effects, permissions, or any other operational nuance.

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 a single, front-loaded, unambiguous sentence with no filler. For a simple single-parameter delete operation, this is appropriately concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity, one required parameter, and destructiveHint annotation, the description covers the core action and the schema covers the parameter. Explicitly stating irreversibility would improve it, but the annotation mitigates that omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the only parameter workspaceId already documented as 'The workspace ID'. The description adds no further meaning to the parameter, so the baseline schema-driven score applies.

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?

The description clearly states the action and resource: 'Delete a workspace'. It is not vague, but it does not add any detail that distinguishes it from the other workspace tools beyond the delete action itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus alternatives. The description provides no context around prerequisites, consequences, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workspace_getB
Read-only

Get details of a specific workspace

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdYesThe workspace ID

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only safety profile is covered. The description adds a 'specific workspace' scope but does not disclose additional behavioral traits such as returned fields, error behavior, or permissions. This is acceptable for a simple read operation but adds minimal value beyond the annotations.

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 a single, front-loaded sentence with no filler. It communicates the action, resource type, and scope efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only getter, this is mostly complete. The schema covers the only parameter and the annotations establish safety. However, since there is no output schema, saying 'details' is somewhat vague about what the agent can expect in the response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully documents the sole parameter workspaceId with the description 'The workspace ID', so schema description coverage is 100%. The tool description adds no additional parameter-level semantics, so the baseline score of 3 is appropriate.

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?

The description uses a specific verb ('Get') and a clear resource scope ('a specific workspace'), which distinguishes it from sibling tools like workspace_list (which enumerates workspaces) and workspace_list_items (which lists items inside a workspace). It does not specify what 'details' includes, so it falls just short of a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance about when to use this tool versus alternatives such as workspace_list or workspace_list_items. There is no explicit when-to-use or when-not-to-use context, so the agent must infer the intended use from the tool name and sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workspace_listA
Read-only

List all accessible Fabric workspaces

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is a read-only, non-destructive operation. The description adds the 'accessible' scope, indicating the result is limited to workspaces the agent can see. It does not disclose response format or pagination, but this is acceptable given the annotations and simplicity.

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 a single, front-loaded sentence with no filler. Every word contributes to understanding the tool's purpose and scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only list operation, the description is functionally complete. It names the resource and the access scope clearly. Minor gaps are the lack of explicit sibling differentiation and any hints about the response shape, but these are not critical at this complexity.

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?

The tool has zero parameters and the schema coverage is 100%, so there is nothing for the description to explain. This matches the baseline for no-parameter tools.

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?

The description states a specific verb and resource: 'List all accessible Fabric workspaces'. It clearly identifies the tool's core action, but it does not explicitly differentiate it from sibling tools like workspace_list_items or workspace_get, which have different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool should be used to enumerate workspaces accessible to the agent, but it provides no explicit when-to-use versus when-not-to-use guidance and does not mention alternatives such as workspace_list_items or workspace_get.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workspace_list_itemsA
Read-only

List all items in a workspace, optionally filtered by type

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by item type (e.g., Lakehouse, Notebook, Pipeline)
workspaceIdYesThe workspace ID

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the useful scope of 'all items' and optional type filtering, but it does not disclose pagination behavior, return format, or how to handle large workspaces. This is acceptable given the annotations, but not rich.

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 a single clear sentence with no filler or redundancy. The main action and scope are front-loaded, and the optional filter is presented after the core purpose, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only enumeration tool with fully documented parameters and clear annotations, the description is largely sufficient. It is slightly incomplete because it does not describe what exactly an 'item' is, what fields are returned, or whether pagination applies, but these are minor gaps given the low tool complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% description coverage for both parameters: workspaceId and type. The description merely restates the optional type filter with examples already present in the schema, so it adds little semantic value beyond the structured definitions.

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 uses a specific verb ('List') and resource ('all items in a workspace') and clearly distinguishes itself from workspace_list, which would list workspaces themselves. The optional type filter is also stated directly, making the tool's purpose immediately understandable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the core use case, but it gives no explicit guidance about when to use this tool versus the many per-item-type list tools such as lakehouse_list, notebook_list, or pipeline_list. There is no mention of alternatives or exclusions, leaving the agent to infer routing from sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workspace_updateB

Update a workspace's name or description

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoNew description
displayNameNoNew display name
workspaceIdYesThe workspace ID

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is clear. The description adds that the update affects only the workspace's name and description, but it does not disclose partial-update behavior or return value semantics.

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 a single sentence that is front-loaded with the operation and its target fields. There is no filler or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple mutation tool with full schema coverage and annotations, the description is mostly adequate. However, it does not state that at least one of displayName or description should be provided, nor does it describe the return behavior, leaving minor but real gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all three parameters are already documented. The description adds limited value by stating that only name and description are updatable, though it uses 'name' while the schema refers to 'displayName', a minor mismatch.

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?

The description clearly identifies the verb 'Update', the resource 'workspace', and the specific fields affected ('name or description'). It is distinct from siblings like workspace_create and workspace_delete, though it does not explicitly name or contrast those alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives. Usage is only implied by the word 'Update' and by the presence of sibling workspace tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 219 tool updatesv2.8.0
    • First observedauth_clear_token_cache
    • First observedauth_get_current_account
    • First observedauth_list_available_accounts
    • First observedauth_switch_tenant
    • First observedcopy_job_cancel_run
    • First observedcopy_job_create
    • First observedcopy_job_delete
    • First observedcopy_job_get
    • First observedcopy_job_get_definition
    • First observedcopy_job_get_run_status
    • First observedcopy_job_list
    • First observedcopy_job_list_runs
    • First observedcopy_job_run
    • First observedcopy_job_update
    • First observedcopy_job_update_definition
    • First observeddataflow_create
    • First observeddataflow_delete
    • First observeddataflow_get
    • First observeddataflow_get_definition
    • First observeddataflow_get_refresh_status
    • First observeddataflow_list
    • First observeddataflow_refresh
    • First observeddataflow_update
    • First observeddeployment_pipeline_assign_workspace
    • First observeddeployment_pipeline_create
    • First observeddeployment_pipeline_delete
    • First observeddeployment_pipeline_deploy
    • First observeddeployment_pipeline_get
    • First observeddeployment_pipeline_get_operation
    • First observeddeployment_pipeline_list
    • First observeddeployment_pipeline_list_operations
    • First observeddeployment_pipeline_list_stage_items
    • First observeddeployment_pipeline_list_stages
    • First observeddeployment_pipeline_unassign_workspace
    • First observeddeployment_pipeline_update
    • First observedenvironment_cancel_publish
    • First observedenvironment_create
    • First observedenvironment_delete
    • First observedenvironment_delete_staging_custom_library
    • First observedenvironment_export_published_external_libraries
    • First observedenvironment_export_staging_external_libraries
    • First observedenvironment_get
    • First observedenvironment_get_definition
    • First observedenvironment_get_published_spark_compute
    • First observedenvironment_get_staging_spark_compute
    • First observedenvironment_import_staging_external_libraries
    • First observedenvironment_list
    • First observedenvironment_list_published_libraries
    • First observedenvironment_list_staging_libraries
    • First observedenvironment_publish
    • First observedenvironment_remove_staging_external_library
    • First observedenvironment_update
    • First observedenvironment_update_definition
    • First observedenvironment_update_staging_spark_compute
    • First observedenvironment_upload_staging_custom_library
    • First observedeventhouse_create
    • First observedeventhouse_delete
    • First observedeventhouse_execute_kql
    • First observedeventhouse_get
    • First observedeventhouse_get_sql_endpoint
    • First observedeventhouse_list
    • First observedeventhouse_update
    • First observedeventstream_create
    • First observedeventstream_delete
    • First observedeventstream_get
    • First observedeventstream_get_definition
    • First observedeventstream_list
    • First observedeventstream_update
    • First observedeventstream_update_definition
    • First observedexternal_data_share_create
    • First observedexternal_data_share_get
    • First observedexternal_data_share_list
    • First observedexternal_data_share_revoke
    • First observedgit_commit_to_git
    • First observedgit_connect
    • First observedgit_disconnect
    • First observedgit_get_connection
    • First observedgit_get_credentials
    • First observedgit_get_status
    • First observedgit_initialize_connection
    • First observedgit_update_credentials
    • First observedgit_update_from_git
    • First observedgraphql_api_create
    • First observedgraphql_api_delete
    • First observedgraphql_api_execute_query
    • First observedgraphql_api_get
    • First observedgraphql_api_get_definition
    • First observedgraphql_api_list
    • First observedgraphql_api_update
    • First observedkql_database_create
    • First observedkql_database_delete
    • First observedkql_database_get
    • First observedkql_database_get_definition
    • First observedkql_database_list
    • First observedkql_database_update
    • First observedkql_database_update_definition
    • First observedlakehouse_create
    • First observedlakehouse_create_shortcut
    • First observedlakehouse_delete
    • First observedlakehouse_delete_shortcut
    • First observedlakehouse_get
    • First observedlakehouse_get_definition
    • First observedlakehouse_get_shortcut
    • First observedlakehouse_get_sql_endpoint
    • First observedlakehouse_list
    • First observedlakehouse_list_shortcuts
    • First observedlakehouse_list_tables
    • First observedlakehouse_load_table
    • First observedlakehouse_update
    • First observedlakehouse_update_definition
    • First observedmirrored_database_create
    • First observedmirrored_database_delete
    • First observedmirrored_database_get
    • First observedmirrored_database_get_definition
    • First observedmirrored_database_get_mirroring_status
    • First observedmirrored_database_get_tables_mirroring_status
    • First observedmirrored_database_list
    • First observedmirrored_database_start_mirroring
    • First observedmirrored_database_stop_mirroring
    • First observedmirrored_database_update
    • First observedmirrored_database_update_definition
    • First observedml_experiment_create
    • First observedml_experiment_delete
    • First observedml_experiment_get
    • First observedml_experiment_list
    • First observedml_experiment_update
    • First observedml_model_create
    • First observedml_model_delete
    • First observedml_model_get
    • First observedml_model_list
    • First observedml_model_update
    • First observednotebook_attach_environment
    • First observednotebook_cancel_run
    • First observednotebook_create
    • First observednotebook_delete
    • First observednotebook_detach_environment
    • First observednotebook_get
    • First observednotebook_get_definition
    • First observednotebook_get_run_status
    • First observednotebook_list
    • First observednotebook_run
    • First observednotebook_update
    • First observednotebook_update_definition
    • First observedpipeline_cancel_run
    • First observedpipeline_create
    • First observedpipeline_create_schedule
    • First observedpipeline_delete
    • First observedpipeline_delete_schedule
    • First observedpipeline_get
    • First observedpipeline_get_definition
    • First observedpipeline_get_run_status
    • First observedpipeline_list
    • First observedpipeline_list_runs
    • First observedpipeline_list_schedules
    • First observedpipeline_run
    • First observedpipeline_update
    • First observedpipeline_update_definition
    • First observedpipeline_update_schedule
    • First observedreflex_create
    • First observedreflex_delete
    • First observedreflex_get
    • First observedreflex_get_definition
    • First observedreflex_list
    • First observedreflex_update
    • First observedreflex_update_definition
    • First observedreport_clone
    • First observedreport_create_definition
    • First observedreport_delete
    • First observedreport_export
    • First observedreport_get
    • First observedreport_get_datasources
    • First observedreport_get_definition
    • First observedreport_get_export_status
    • First observedreport_get_pages
    • First observedreport_list
    • First observedreport_rebind
    • First observedreport_update
    • First observedreport_update_definition
    • First observedsemantic_model_create_bim
    • First observedsemantic_model_create_tmdl
    • First observedsemantic_model_delete
    • First observedsemantic_model_execute_dax
    • First observedsemantic_model_get_bim
    • First observedsemantic_model_get_datasources
    • First observedsemantic_model_get_details
    • First observedsemantic_model_get_refresh_history
    • First observedsemantic_model_get_tmdl
    • First observedsemantic_model_list
    • First observedsemantic_model_refresh
    • First observedsemantic_model_take_over
    • First observedsemantic_model_update_bim
    • First observedsemantic_model_update_details
    • First observedsemantic_model_update_tmdl
    • First observedsql_endpoint_execute_query
    • First observedsql_endpoint_get
    • First observedsql_endpoint_get_connection_string
    • First observedsql_endpoint_list
    • First observedvariable_library_create
    • First observedvariable_library_delete
    • First observedvariable_library_get
    • First observedvariable_library_get_definition
    • First observedvariable_library_list
    • First observedvariable_library_update
    • First observedvariable_library_update_definition
    • First observedwarehouse_create
    • First observedwarehouse_delete
    • First observedwarehouse_get
    • First observedwarehouse_get_definition
    • First observedwarehouse_get_sql_endpoint
    • First observedwarehouse_list
    • First observedwarehouse_list_tables
    • First observedwarehouse_update
    • First observedwarehouse_update_definition
    • First observedworkspace_create
    • First observedworkspace_delete
    • First observedworkspace_get
    • First observedworkspace_list
    • First observedworkspace_list_items
    • First observedworkspace_update

TDQS

B3.2/5.0

Scored across 219 tools

Disambiguation4/5

Most tools are clearly distinguished by a resource prefix and action verb, making the majority of the 219 tools easy to tell apart. Some ambiguity exists around SQL endpoint access (sql_endpoint_get vs lakehouse_get_sql_endpoint vs warehouse_get_sql_endpoint) and semantic model definition format variants (get_bim vs get_tmdl vs get_details), but the descriptions largely resolve these cases.

Naming Consistency5/5

The naming convention is highly consistent throughout: resource_action in snake_case, with predictable verbs like list, get, create, update, delete, run, and cancel. Even format-specific variants like semantic_model_create_bim vs semantic_model_create_tmdl follow the same structural pattern. This makes the tool surface very predictable despite its size.

Tool Count1/5

219 tools is an extreme count that far exceeds the 3-15 tool range considered well-scoped and exceeds the 50+ threshold for extreme mismatch. Even for a broad Microsoft Fabric API, this single server creates severe context bloat, high selection overhead, and poor agent usability. The surface should be split into multiple focused MCP servers or dramatically consolidated.

Completeness4/5

The tool set covers a very broad Fabric domain: CRUD for nearly every item type, definition management, run/status/cancel operations, git integration, deployment pipelines, environment management, and auth. Minor gaps exist, such as missing dataflow_update_definition and graphql_api_update_definition, but these can be worked around with recreate or direct API usage. No critical dead ends block common workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A Python-based MCP server that enables interaction with Microsoft Fabric APIs for managing workspaces, lakehouses, warehouses, and tables through natural language.
    17
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    The Fabric-Analytics-MCP server enables AI agents to interact directly with Microsoft Fabric using natural language. It transforms complex data engineering tasks—such as workspace management, data exploration, and job execution—into intuitive, conversational workflows for LLMs like Claude or GitHub
    7 npm
    110
    MIT
  • F
    license
    C
    quality
    D
    maintenance
    A Python MCP server that lets you manage Microsoft Fabric through natural language in Claude Code or Claude Desktop, with 77+ tools covering workspaces, lakehouses, warehouses, SQL, DAX, semantic models, notebooks, pipelines, OneLake, and Microsoft Graph.
    83
    -