Skip to main content
Glama

❄️ mcp-server-snowflake

CI GHCR GitHub Release License: Apache-2.0 Coverage CodeRabbit Reviews

Supercharge AI Agents with Native Snowflake Data Cloud & Cortex AI Superpowers! ⚡
An enterprise-grade Model Context Protocol (MCP) server providing 140 tools across 19 domain modules, dynamic profile switching, zero-config connection resolution, safe SQL execution, virtual warehouse management, object inspection, Horizon data lineage, and Cortex AI integrations straight to your favorite AI assistant.


🏛️ System Architecture

flowchart TD
    subgraph Clients["AI Clients & Hosts"]
        Claude["Claude Desktop / Claude Code"]
        Antigravity["Antigravity / Gemini CLI"]
        CortexClient["Snowflake Cortex Agent"]
        Cursor["Cursor / VS Code"]
    end

    subgraph Protocol["MCP Protocol Boundary (Spec 2026-07-28)"]
        STDIO["stdio Transport"]
        HTTP["Streamable HTTP Transport"]
    end

    subgraph Server["snowflake-mcp (FastMCP 4)"]
        CLI["CLI & Arg Parser (Allowed Hosts & DNS Rebinding Protection)"]
        Auth["Multi-Auth & Profile Resolver (~/.snowflake/connections.toml / Key-Pair / PAT / SSO)"]
        Registry["Tool Registry (140 Tools across 19 Modules)"]
        Safety["Safety Gates (confirm=True, Read-Only Guard, Row Limits)"]
    end

    subgraph Cloud["Snowflake Data Cloud"]
        SQL["SQL & Transaction Engine"]
        Warehouses["Virtual Warehouses & Scaling"]
        Horizon["Horizon Lineage, Tags & Policies"]
        Cortex["Cortex AI (Search, Complete, Analyst)"]
        SPCS["SPCS Compute Pools & Services"]
        Storage["Stages, Pipes, Streams & Iceberg"]
    end

    Clients --> STDIO & HTTP
    STDIO & HTTP --> CLI
    CLI --> Auth
    Auth --> Registry
    Registry --> Safety
    Safety --> SQL & Warehouses & Horizon & Cortex & SPCS & Storage

Related MCP server: Snowflake MCP Server

🛡️ Enterprise Disclaimers & Safety

IMPORTANT

Community Project Disclaimer
mcp-server-snowflake is an independent open-source project licensed under Apache 2.0. It is not affiliated with, sponsored by, endorsed by, or supported by Snowflake Inc. "Snowflake" and "Cortex" are trademarks of Snowflake Inc.

WARNING

Safety Guardrails

  • Read-Only Safety Mode: Set SNOWFLAKE_MCP_READONLY=1, pass --readonly, or pass --profile readonly to block mutating tools. The profile sets the same read-only flag the gate reads. On each new session, read-only mode runs USE SECONDARY ROLES NONE before any tool SQL and closes the connection if that pin fails. Write mode does not run that statement. Objects readable only through a secondary role's grants are not visible under --readonly until the read-only primary role is granted SELECT on them directly. Set DEFAULT_SECONDARY_ROLES = () on the read-only user, or use a dedicated user that holds only that role. Prefer a programmatic access token with ROLE_RESTRICTION set to the read-only role so Snowflake evaluates privileges under that role (programmatic access tokens). ROLE_RESTRICTION does not replace the session pin. See FAQ / Troubleshooting.

  • Caller SQL: queries_query, queries_get_query_plan, and the query arguments of recipes_warehouse_scale_and_execute and recipes_export_query_to_stage refuse anything that is not one read-only statement, whether or not read-only mode is on. Allowed forms are one SELECT (no INTO), SHOW, DESCRIBE/DESC, or EXPLAIN SELECT. SYSTEM$ calls are refused except SYSTEM$TYPEOF and SYSTEM$CLUSTERING_INFORMATION. IDENTIFIER(...) in call position and TABLE(IDENTIFIER(...)) are refused. User-defined functions inside SELECT are not inspected.

  • Destructive Safety Gates: Dropping databases, schemas, or tables requires explicit confirm=True.

  • Object names follow Snowflake's identifier rules: unquoted names resolve to uppercase (mydb.public.orders is MYDB.PUBLIC.ORDERS), and a double-quoted part keeps its exact case and may contain . ("My.Db".PUBLIC."Orders"; write a literal " as ""). Pass an object created with a lowercase or mixed-case quoted name in double quotes. Every object row a SHOW-based list tool returns also carries quoted_name, its name already in double quotes with any " doubled (my_table gives "my_table"), ready to pass back as an object name argument; a row that has a database_name and a schema_name also carries quoted_qualified_name, the full "database"."schema"."name", which names the object from any session database and schema. An unterminated quote, an empty part, or a stray " in an unquoted part is refused before any SQL runs.

  • Name lookups through SHOW ... LIKE: warehouses_describe_warehouse, governance_describe_role and tags_describe_tag find their object with SHOW ... LIKE, which matches case-insensitively and treats _ and % as wildcards, with no documented escape (SHOW WAREHOUSES). A name in double quotes, such as a list row's quoted_name (or the tag part of quoted_qualified_name), is unquoted, sent to LIKE as is, and only the row whose name matches it exactly, case-sensitively, is returned; with no exact match the call fails with the usual not-found error rather than returning a near match. An unquoted name keeps the case-insensitive lookup. The SHOW WAREHOUSES LIKE fallback of warehouses_get_warehouse_load_history matches a quoted name the same way, and fails with the not-found error when no warehouse is left. Row cap: because _ and % widen the match, look-alike names count against the limits, in that fallback too, since it matches names the same way (a quoted name exactly and case-sensitively, an unquoted one case-insensitively): only the first SNOWFLAKE_MAX_ROWS rows (1,000 by default) are read, and SHOW returns at most 10,000 rows (SHOW WAREHOUSES; SHOW TAGS fails instead when there are more), so with enough look-alikes the target can be cut off and reported as not found. When no database resolves and the rows reach the row cap, a match in another database can be cut off too, so tags_describe_tag fails with the ambiguity error instead of returning the first row, even if every row it read comes from one database.

  • Query Limits: Default execution limits prevent context window overflow (SNOWFLAKE_MAX_ROWS=1000, SNOWFLAKE_QUERY_TIMEOUT=120).


❓ FAQ / Troubleshooting

Read-only secondary-roles pin

In read-only mode (--readonly, --profile readonly, or SNOWFLAKE_MCP_READONLY=1), each new session runs USE SECONDARY ROLES NONE before any tool SQL. If that pin fails, the server fails closed: the connection is closed and not served. Write mode does not run the statement.

Objects readable only through a secondary role's grants need SELECT granted on the primary role (the read-only role) directly. Set DEFAULT_SECONDARY_ROLES = () on the read-only user, or use a dedicated user that holds only that role.

Empty success vs a rejected missing object

Some describe and lineage tools return an empty success for a missing name. That result is the tool behavior. The live harness records it as expect: success. An empty success here is not a harness bug:

  • warehouses_describe_warehouse

  • governance_describe_role

  • horizon_get_object_lineage

warehouses_describe_warehouse and governance_describe_role run SHOW ... LIKE and return status: success with empty details when an unquoted name matches nothing; a quoted name with no exact match is the not-found error. tags_describe_tag never returns an empty success: a tag with no match, quoted or not, is the not-found error. When no database resolves (for example schema.tag, or a bare tag with no database), SHOW TAGS LIKE runs with IN ACCOUNT — an explicit account scope, since without an IN clause the scope depends on the session: in a database context "Objects with the same name are only displayed once if no IN clause is used", and with no database in use it has "the same effect as specifying IN ACCOUNT" (SHOW TAGS) — and rows are filtered to the resolved schema client-side; with no database resolved it fails with an ambiguity error, asking for database.schema.tag, when the tag is found in more than one database or when SHOW TAGS returns as many rows as the row limit. horizon_get_object_lineage returns status: success when its OBJECT_DEPENDENCIES query succeeds, with empty upstream and downstream lists when the named object is absent.

horizon_get_column_lineage returns status: success when its SNOWFLAKE.ACCOUNT_USAGE.ACCESS_HISTORY query succeeds. That query does not filter on the supplied table or column name, so the payload can still contain recent access-history rows when that name is missing. The live harness still uses expect: success because the call succeeds. That is harness policy, not an empty-payload claim.

Most other missing-object describe tools still reject: the call is a tool error result (isError: true) whose text is the {"status": "error", "error": ...} JSON, and the live harness records expect: rejected. The fixture table and marker lists are in TESTING.md under Live e2e expect policy.

Programmatic access tokens and ROLE_RESTRICTION

Prefer ROLE_RESTRICTION on a programmatic access token set to the read-only role, so Snowflake evaluates privileges under that role (programmatic access tokens).

ROLE_RESTRICTION does not replace the session pin. Read-only mode still runs USE SECONDARY ROLES NONE on every new session. Live checks showed an unrestricted programmatic access token can still surface secondary roles until that statement runs.


🔌 Connection & Multi-Auth Resolution

mcp-server-snowflake automatically resolves credentials across all enterprise Snowflake configurations:

  1. Snowflake CLI Inheritance (~/.snowflake/connections.toml): Zero-configuration connection. If you have configured connections via snow, the server automatically connects to your default or specified profile (-c <conn_name>).

  2. Dynamic Profile Switching: Switch active connection profiles on the fly via governance_use_connection(connection_name) and inspect available profiles with governance_list_connections.

  3. Programmatic Access Tokens (PAT) / OAuth: Set token in connections profile or SNOWFLAKE_TOKEN.

  4. RSA Key-Pair JWT Authentication: Set SNOWFLAKE_PRIVATE_KEY_PATH (and optional SNOWFLAKE_PRIVATE_KEY_PASSPHRASE).

  5. SSO / Browser Authentication: Set SNOWFLAKE_AUTHENTICATOR=externalbrowser.

  6. Environment Variables: Standard SNOWFLAKE_ACCOUNT, SNOWFLAKE_USER, SNOWFLAKE_PASSWORD, SNOWFLAKE_WAREHOUSE, SNOWFLAKE_DATABASE, SNOWFLAKE_SCHEMA, SNOWFLAKE_ROLE.


📦 Installation & Quickstart

# PyPI publication is pending dispute #11989.
# Install from GitHub
uvx --from git+https://github.com/christianclaudio/mcp-server-snowflake snowflake-mcp

# Or run the GHCR image
docker run -i --rm ghcr.io/christianclaudio/mcp-server-snowflake

# Interactive setup wizard
snowflake-mcp --init

# Run with a specific Snowflake CLI connection profile
snowflake-mcp -c my_connection

# Run in read-only mode (every tool stays registered; handlers reject mutations)
snowflake-mcp -c my_connection --readonly

# List one domain, or only read-only tools
snowflake-mcp --profile cortex
snowflake-mcp --profile readonly
# `--profile readonly` hides mutating tools, sets the read-only flag, and pins USE SECONDARY ROLES NONE on each session.
# Set DEFAULT_SECONDARY_ROLES = () on that user, or use a dedicated user that holds only the read-only role.

# Opt in to regex tool search instead of the flat 140-tool tools/list
snowflake-mcp --enable-tool-search

# Build a local image (the published image is ghcr.io/christianclaudio/mcp-server-snowflake)
docker build -t mcp-server-snowflake .
docker run -i --rm mcp-server-snowflake

🛠️ Complete Tool Suite (140 Enterprise Tools)

Domain Suite

Count

Key Tools

1. SQL Queries & Transactions

9

queries_query, queries_execute_dml, queries_cancel_query, queries_get_query_history, queries_get_query_plan, queries_get_query_operator_stats, queries_begin_transaction, queries_commit_transaction, queries_rollback_transaction

2. Databases & Clones

7

databases_list_databases, databases_describe_database, databases_create_database, databases_drop_database, databases_clone_database, databases_undrop_database, databases_get_database_ddl

3. Schemas & Clones

6

schemas_list_schemas, schemas_describe_schema, schemas_create_schema, schemas_drop_schema, schemas_clone_schema, schemas_undrop_schema

4. Tables, Views & Partitions

10

tables_list_tables, tables_list_views, tables_describe_table, tables_get_table_ddl, tables_sample_table, tables_create_table, tables_drop_table, tables_undrop_table, tables_truncate_table, tables_clone_table

5. Virtual Warehouses & Scaling

8

warehouses_list_warehouses, warehouses_describe_warehouse, warehouses_create_warehouse, warehouses_drop_warehouse, warehouses_resume_warehouse, warehouses_suspend_warehouse, warehouses_resize_warehouse, warehouses_get_warehouse_load_history

6. Stages & File Operations

6

stages_list_stages, stages_describe_stage, stages_create_stage, stages_drop_stage, stages_list_stage_files, stages_remove_stage_file

7. Tasks & DAG Pipelines

7

tasks_list_tasks, tasks_describe_task, tasks_create_task, tasks_drop_task, tasks_resume_task, tasks_suspend_task, tasks_execute_task

8. Streams & Change Data Capture

5

streams_list_streams, streams_describe_stream, streams_create_stream, streams_drop_stream, streams_read_stream_changes

9. Dynamic & Iceberg Tables

9

dynamic_tables_list_dynamic_tables, dynamic_tables_describe_dynamic_table, dynamic_tables_refresh_dynamic_table, dynamic_tables_resume_dynamic_table, dynamic_tables_suspend_dynamic_table, dynamic_tables_list_iceberg_tables, dynamic_tables_describe_iceberg_table, dynamic_tables_list_external_volumes, dynamic_tables_list_catalog_integrations

10. Snowpipe & Ingestion

5

pipes_list_pipes, pipes_describe_pipe, pipes_create_pipe, pipes_drop_pipe, pipes_get_pipe_status

11. Alerts & Notifications

6

alerts_list_alerts, alerts_describe_alert, alerts_create_alert, alerts_drop_alert, alerts_resume_alert, alerts_suspend_alert

12. Governance, RBAC & Users

12

governance_get_current_context, governance_list_connections, governance_use_connection, governance_list_roles, governance_describe_role, governance_create_role, governance_drop_role, governance_list_users, governance_describe_user, governance_create_user, governance_list_grants_to_role, governance_list_grants_to_user

13. Network & Password Policies

6

network_list_network_policies, network_describe_network_policy, network_list_network_rules, network_describe_network_rule, network_list_password_policies, network_describe_password_policy

14. SPCS Compute Pools & Streamlit

8

compute_services_list_streamlits, compute_services_describe_streamlit, compute_services_list_compute_pools, compute_services_describe_compute_pool, compute_services_resume_compute_pool, compute_services_suspend_compute_pool, compute_services_list_services, compute_services_list_image_repositories

15. Object Tags & Classifications

4

tags_list_tags, tags_describe_tag, tags_get_object_tag_references, tags_set_object_tag

16. Horizon Lineage & Governance

6

horizon_get_object_lineage, horizon_get_column_lineage, horizon_list_masking_policies, horizon_describe_masking_policy, horizon_list_row_access_policies, horizon_describe_row_access_policy

17. Programmability, UDFs & Secrets

10

programmability_list_procedures, programmability_describe_procedure, programmability_list_functions, programmability_describe_function, programmability_list_secrets, programmability_describe_secret, programmability_list_sequences, programmability_list_integrations, programmability_list_event_tables, programmability_list_notification_integrations

18. Cortex AI & NLP Extensions

8

cortex_complete, cortex_summarize, cortex_sentiment, cortex_extract_answer, cortex_translate, cortex_search, cortex_embed_text_768, cortex_analyst_query

19. Composite Agent Workflows

8

recipes_health_check, recipes_inspect_table_with_sample, recipes_profile_table, recipes_warehouse_scale_and_execute, recipes_clone_table_recipe, recipes_export_query_to_stage, recipes_account_usage_summary, recipes_discover_schema_lineage


🔌 Integration Guides for AI Assistants & IDEs

mcp-server-snowflake works seamlessly with all major AI assistants, IDEs, and CLI tools via standard stdio or streamable-http.

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "snowflake": {
      "command": "snowflake-mcp",
      "args": ["-c", "my_connection"],
      "env": {
        "SNOWFLAKE_DEFAULT_CONNECTION_NAME": "my_connection"
      }
    }
  }
}

For Claude Code CLI:

claude mcp add snowflake -- snowflake-mcp -c my_connection

Add to .agents/mcp_config.json (or global ~/.gemini/config/mcp_config.json):

{
  "mcpServers": {
    "snowflake": {
      "command": "snowflake-mcp",
      "args": ["-c", "my_connection"],
      "env": {
        "SNOWFLAKE_DEFAULT_CONNECTION_NAME": "my_connection"
      }
    }
  }
}

Add to ~/.snowflake/cortex/mcp.json:

{
  "mcpServers": {
    "snowflake": {
      "command": "snowflake-mcp",
      "args": ["-c", "my_connection"]
    }
  }
}

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "snowflake": {
      "command": "snowflake-mcp",
      "args": ["-c", "my_connection"]
    }
  }
}

Add to cline_mcp_settings.json:

{
  "mcpServers": {
    "snowflake": {
      "command": "snowflake-mcp",
      "args": ["-c", "my_connection"]
    }
  }
}

Launch snowflake-mcp as a long-running Streamable HTTP service:

snowflake-mcp --transport streamable-http --host 127.0.0.1 --port 8000

Connect your HTTP client or proxy to endpoint http://127.0.0.1:8000/mcp.

HTTP authentication. Set SNOWFLAKE_MCP_AUTH_TOKEN to require Authorization: Bearer <token> on every HTTP request; a missing or wrong token gets 401. The token is stripped, and a blank value counts as unset. It is attached when the server is built, so snowflake-mcp, fastmcp run and an ASGI host mounting mcp.http_app() all enforce it when it is set. stdio never uses it.

With no token, snowflake-mcp still starts an HTTP bind to 127.0.0.1, ::1 or localhost, unauthenticated, and logs a warning. A tokenless bind to any other host exits with code 2. Set the token, bind to localhost, or set SNOWFLAKE_MCP_ALLOW_UNAUTHENTICATED_BIND to 1, true, yes or on to accept an unauthenticated public bind (any other value refuses). Other entry points get the token but not the localhost check: fastmcp run and http_app() do not go through snowflake-mcp's main(), so a bind to 0.0.0.0 with no token there is not refused and serves without authentication. The host or its process manager owns the bind address, so set SNOWFLAKE_MCP_AUTH_TOKEN there.

To serve the image over HTTP, pass credentials and the token from your environment or an env file, never on the command line:

# export SNOWFLAKE_ACCOUNT, SNOWFLAKE_USER, SNOWFLAKE_TOKEN and SNOWFLAKE_MCP_AUTH_TOKEN first, or use --env-file .env
docker run --rm -p 8000:8000 \
  -e SNOWFLAKE_ACCOUNT -e SNOWFLAKE_USER -e SNOWFLAKE_TOKEN -e SNOWFLAKE_MCP_AUTH_TOKEN \
  ghcr.io/christianclaudio/mcp-server-snowflake \
  --transport streamable-http --host 0.0.0.0 --allowed-host mcp.example.com

Replace mcp.example.com with the host name clients use to reach the server.

Known limits.

  • Only snowflake-mcp refuses a tokenless public bind (exit code 2). fastmcp run and mcp.http_app() enforce the token when it is set but do not refuse a tokenless public bind.

  • A token changed after the server is built is not picked up; restart the server.

  • In the default (stateful) HTTP mode, a session idle for 30 minutes expires: its next request gets HTTP 404 and the client must start a new session. Change this with FastMCP's session_idle_timeout (on http_app()) or FASTMCP_HTTP_SESSION_IDLE_TIMEOUT (seconds, or none to never expire); see the FastMCP 4.1.0 release and #5229.


🧪 Verification Runbook

All changes are strictly verified with automated safety and contract gates before release:

# 1. Format and lint checks
uv run ruff check .
uv run ruff format --check .

# 2. Strict static typing
uv run mypy src/

# 3. Unit and mocked test suite
uv run pytest

# 4. Tool contract verification (builds the server; 140 tools)
uv run python scripts/check_tool_contract.py

# 5. MCP protocol conformance suite (Spec 2026-07-28)
./scripts/check_conformance.sh

# 6. Release notes preview since the last tag (needs full history and tags)
python3 scripts/release_notes.py

📜 License

Apache 2.0. Copyright (c) 2026 Christian Claudio.

Available Tools

140 tools
alerts_create_alertAlerts Create AlertB

Create an alert with schedule, condition SQL, and action SQL. Destructive actions require confirm=True.

NameRequiredDescriptionDefault
commentNo
confirmNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
scheduleYes
action_sqlYes
alert_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.
condition_sqlYes
warehouse_nameYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

The description usefully surfaces that destructive actions are gated behind confirm=True, which is context beyond the bare confirm:boolean parameter. However, it doesn't resolve the tension with destructiveHint=false (the destructiveness comes from action_sql, not the tool) and says nothing about the alert's initial state after creation or required privileges. Annotations already carry the read/write and idempotency profile, so this is a modest add.

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?

Two compact sentences with zero filler, and the core purpose is front-loaded ahead of the safety note. Brevity is appropriate for the size, though it comes at the cost of the missing semantics rather than through efficient compression.

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?

Placeholder.

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

Parameters2/5

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

Schema coverage is only 44%, so the description must compensate, and it doesn't. It names schedule/condition_sql/action_sql but never explains that condition_sql is the evaluated query and action_sql the payload that runs, nor what comment, database, schema_name, or warehouse_name mean in context. 'Destructive actions require confirm=True' gives partial meaning to one of the nine 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?

States a specific verb and resource ('Create an alert') plus the three defining components (schedule, condition SQL, action SQL), which clearly separates it from siblings like alerts_describe_alert, alerts_list_alerts, and alerts_drop_alert. It doesn't explicitly name those siblings, 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 on when to create vs. use an existing alert, no prerequisites (warehouse running, schema/database context, role privileges), and no mention of what state the new alert lands in. The only procedural note is the confirm=True gate for destructive actions.

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

alerts_describe_alertAlerts Describe AlertB
Read-onlyIdempotent

Describe alert condition SQL, action SQL, schedule, and warehouse.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
alert_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

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, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds only a list of returned attributes, which duplicates what the output schema already provides, and says nothing about behavior on a missing alert or cross-database resolution.

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 or redundancy. It is efficient but so terse that the enumeration of return fields is the only content, leaving no room for routing or prerequisite 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 read-only describe tool with an output schema, full schema coverage, and complete annotations, the definition is minimally sufficient. It does not cover name resolution across database/schema or failure modes, which an agent would need for the optional qualification parameters.

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 database, schema_name, and alert_name carrying quoting/casing guidance, so the baseline is 3. The description contributes no additional parameter meaning (e.g., whether alert_name alone is sufficient or must be qualified).

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 ("Describe") plus the resource (alert) and enumerates exactly what is retrieved: condition SQL, action SQL, schedule, and warehouse. That clearly separates it from alerts_list_alerts and the mutation siblings (create/drop/resume/suspend), though it never names 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?

There is no statement of when to call this versus alerts_list_alerts or how to obtain a valid alert name first. Usage is only inferable from the verb "Describe"; no exclusions or prerequisites are given.

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

alerts_drop_alertAlerts Drop AlertA
Destructive

Drop an alert in Snowflake. Requires confirmation.

NameRequiredDescriptionDefault
confirmNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
alert_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is covered. The description adds the useful behavioral requirement that confirmation is needed, but does not say whether the drop is irreversible, whether confirm=false causes an error or a no-op, or what dependent objects (schedules/notifications) are removed.

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, front-loaded with the action and scope, with the confirmation requirement immediately following. 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?

An output schema and rich annotations (destructive/not-idempotent) carry most of the load, and the description signals confirmation. But for a destructive DDL operation it omits the confirmation mechanics (does confirm=false fail or skip?) and irreversible consequences, which an agent needs before invoking.

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 75%; the schema documents database, alert_name, and schema_name quoting behavior. The only undocumented parameter is confirm, which the description gestures at ('Requires confirmation') without stating that it must be true to succeed, so the description adds limited value over the schema.

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

Purpose4/5

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

States a specific verb and resource ('Drop an alert in Snowflake'), which unambiguously distinguishes it from siblings like alerts_list_alerts, alerts_describe_alert, and alerts_create_alert. It does not explicitly name a sibling, but the drop/delete intent is unmistakable from the name and text.

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?

'Requires confirmation' implies the tool should be called with confirm set, which is a usage hint. However, it never states when to prefer dropping over suspending the alert (alerts_suspend_alert exists as a non-destructive alternative) or what prerequisites exist, leaving the agent to infer.

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

alerts_list_alertsAlerts List AlertsB
Read-onlyIdempotent

List configured alerts with condition queries, schedules, and state. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered structurally. The description adds that returned rows include condition queries, schedules, and state, but says nothing about pagination, result limits, or filter interaction—modest 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.

Conciseness3/5

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

The first sentence is efficient and front-loaded. The second sentence spends its length describing quoted_name and quoted_qualified_name, which are return-value details already covered by the existing output schema—space that would have been better used on the undocumented 'pattern' parameter.

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?

Because an output schema exists, the row-shape explanation is largely redundant, and the description omits the things the schema cannot convey: how 'pattern' matches, whether filters combine with AND, and any paging behavior. Adequate for a simple read tool 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 67%: database and schema_name carry descriptions (about quoting), while the 'pattern' parameter is documented nowhere. The description does not compensate—it never mentions filtering by name pattern at all, so the most consequential parameter remains ambiguous.

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 ('List configured alerts') and enumerates what each row carries (condition queries, schedules, state), so an agent knows this is the read-side counterpart to alerts_describe_alert. It does not explicitly name a sibling or exclusion, which keeps it at 4 rather than 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 use this versus alerts_describe_alert, no note that all three parameters are optional filters, and no statement of what happens when no filters are supplied. The agent must infer usage entirely from the verb.

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

alerts_resume_alertAlerts Resume AlertC
Idempotent

Resume a suspended alert.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
alert_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare a non-read-only, idempotent, non-destructive, open-world mutation. The description adds nothing beyond that: no statement about what resuming does to the alert's schedule/state, what permissions are needed, or whether it errors on an already-active alert.

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?

One short sentence with no waste, but it is underspecified rather than efficiently complete – nothing is front-loaded beyond the basic operation.

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 that acts on a specific alert within an optional database/schema, an agent would want to know the precondition (alert suspended) and effect. Output schema and annotations exist, but the description leaves the behavioral contract essentially empty.

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 (alert_name, database, schema_name) are documented in the schema, and the baseline applies. The description does not add naming/quoting or scoping semantics beyond what the schema already says.

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 ('Resume ... alert'), which is unambiguous about the operation. It does not differentiate from the complementary sibling alerts_suspend_alert or explain how resuming relates to alert state.

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 versus alternatives, no indication that the alert must currently be suspended, and no mention of any prerequisite or follow-up step.

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

alerts_suspend_alertAlerts Suspend AlertB
Idempotent

Suspend an active alert.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
alert_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare that this is a non-read-only, idempotent, non-destructive operation with open-world behavior. The description adds the precondition that the alert must be active, which is useful context, but does not explain effects on alert scheduling, reversibility, 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.

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 efficient, though its brevity borders on under-specification for a mutation 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?

With an output schema and rich annotations, the description does not need to explain return values or safety. However, it leaves gaps around behavioral effects and alternatives that would help an agent use the tool correctly in 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%, so all three parameters (database, alert_name, schema_name) are fully documented in the schema. The description provides no additional parameter details, which is acceptable given the high coverage but does not add value.

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 ('Suspend') and resource ('an active alert'), making the operation clear. It does not explicitly distinguish itself from siblings like alerts_resume_alert or alerts_drop_alert, though the verb itself helps.

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 resuming or dropping an alert, nor any prerequisites beyond the implied 'active' state. 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.

compute_services_describe_compute_poolCompute Services Describe Compute PoolB
Read-onlyIdempotent

Describe compute pool instance family, min/max nodes, active nodes, and state.

NameRequiredDescriptionDefault
pool_nameYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare this as a read-only, idempotent, non-destructive, open-world operation. The description adds a summary of the returned attributes, but does not disclose errors, permissions, or other behavioral details beyond the annotated safety profile.

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 states the action and the information returned.

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 single-resource describe tool with rich annotations, a complete input schema, and an output schema, the description is nearly complete. Its main gap is the lack of explicit routing guidance relative to list_compute_pools.

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 documents the pool_name quoting requirement. The description adds no parameter meaning beyond what the schema already provides, so it meets 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 specific verb and resource: describe a compute pool. It also lists the fields revealed, which makes the purpose clear, but it does not explicitly distinguish this from list_compute_pools or describe siblings.

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 list_compute_pools or other compute-service tools. The purpose implies usage, but no conditions, alternatives, or prerequisites are stated.

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

compute_services_describe_streamlitCompute Services Describe StreamlitA
Read-onlyIdempotent

Describe Streamlit application root location, stage, and query warehouse.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.
streamlit_nameYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so the safety profile is covered. The description usefully enumerates the returned attributes, but adds nothing about permissions needed, error behavior for missing Streamlit objects, or visibility scoping.

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 tight sentence that front-loads the verb and the key return attributes with zero filler. Nothing wasted and nothing ambiguous in structure.

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?

An output schema exists and annotations cover the safety profile, so the description needn't explain return formatting. It names the three described attributes, which is sufficient for this simple read tool; minor gaps (error/not-found behavior) keep it from a 5.

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%, including the anyOf/default handling for database and schema_name, so the baseline of 3 applies. The description does not mention the parameters at all, adding no meaning beyond the schema's naming and quoting guidance.

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 (describe) and resource (Streamlit application) plus the exact fields returned: root location, stage, and query warehouse. It is clear what the tool does, though it does not explicitly contrast itself with siblings like compute_services_list_streamlits.

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 'describe' naming and the list/describe pair in siblings, but the description never states when to use this versus compute_services_list_streamlits or what prerequisites exist. Adequate but leaves selection to inference.

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

compute_services_list_compute_poolsCompute Services List Compute PoolsB
Read-onlyIdempotent

List Snowpark Container Services (SPCS) compute pools. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, and non-destructive, so the safety profile is fully covered. The description adds that each row carries quoted_name and quoted_qualified_name, but this duplicates what the output schema presumably documents, so the extra value is modest.

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?

Two short sentences with no filler, and the core purpose is front-loaded. The second sentence is slightly misplaced since it describes return fields already covered by the output 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?

With an output schema present, the description needn't explain return values, so its second sentence is redundant. The critical gap is the unexplained 'pattern' parameter, which is documented nowhere else.

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

Parameters2/5

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

The single parameter 'pattern' has 0% schema description coverage, so the description must carry its meaning — yet it never mentions pattern at all. An agent cannot tell whether it is a SQL LIKE pattern, a regex, or a name filter.

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: lists SPCS compute pools. The scope is clear, though sibling differentiation (e.g., vs. compute_services_describe_compute_pool) is only implied by the 'list' verb and not stated explicitly.

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 versus compute_services_describe_compute_pool or how to filter results. The agent must infer that this is the enumeration call and that describe is for details.

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

compute_services_list_image_repositoriesCompute Services List Image RepositoriesB
Read-onlyIdempotent

List OCI image repositories in Snowflake. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds a note about output columns (quoted_name, quoted_qualified_name) and quoting rules, which is helpful context. However, because an output schema exists, this note largely repeats return-value information, and the description still omits scope, pagination, and ordering 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 two short sentences with no filler, and the core purpose is front-loaded. The second sentence about quoted names is somewhat awkwardly spliced on with "also has," but it stays brief.

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 list tool with rich annotations and an output schema, the essential gaps are filter semantics and result scope. The description addresses the return-value shape but leaves unclear whether the tool lists account-wide or within the current database/schema, and whether results are limited or paginated.

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

Parameters2/5

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

The description never mentions the pattern, database, or schema_name parameters. Schema coverage is 67%, so the schema covers two parameters, but their descriptions only explain quoting and not what the parameters filter. With no compensating detail in the description, an agent cannot tell how the filters combine or what pattern matching means.

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 gives a specific verb and resource: "List OCI image repositories in Snowflake." This clearly distinguishes it from nearby siblings such as compute_services_list_services, compute_services_list_streamlits, and compute_services_list_compute_pools. However, it never explicitly says which sibling to choose for a related need.

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 about when to use this tool instead of a related tool. It also does not explain how the optional pattern/database/schema_name filters narrow the listing, or whether results are account-wide or context-scoped. An 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.

compute_services_list_servicesCompute Services List ServicesB
Read-onlyIdempotent

List container services running on SPCS compute pools. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered without the description. The text adds the useful detail that each row carries quoted_name and conditionally quoted_qualified_name, but says nothing about permissions, pagination, or result limits.

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?

Two sentences, purpose front-loaded, no filler. The second sentence is slightly awkwardly phrased but does carry real information about returned columns.

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?

An output schema exists, so explaining return columns is optional rather than required, and the safety profile is annotation-covered. The missing pieces are the unexplained `pattern` filter and any guidance on narrowing results by database/schema, which matter for a list tool with three optional parameters.

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

Parameters2/5

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

Schema coverage is 67%, and the description adds no filtering semantics at all. The most important gap is `pattern`, which has no description in the schema and is never mentioned in the text, leaving its matching behavior (regex? glob? LIKE?) completely unknown.

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 — listing container services on SPCS compute pools — which separates it from compute_services_list_compute_pools and compute_services_list_streamlits. It stops short of naming the alternative it is not, so it lands at 4 rather than 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 statement of when to use this versus a sibling list tool, no mention of prerequisites, and no indication of how the optional pattern/database/schema_name filters change the result set. The reader must infer all of this from the schema alone.

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

compute_services_list_streamlitsCompute Services List StreamlitsB
Read-onlyIdempotent

List Streamlit applications hosted in Snowflake. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnly=true, idempotent=true, destructive=false, openWorld=true, so the safety profile is covered. The description adds information about row contents (quoted_name, quoted_qualified_name), but that overlaps with the output schema rather than disclosing behavior such as filtering, pagination, or cross-database scope.

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?

Two sentences with the purpose front-loaded and no wasted preamble. The second sentence is a narrow implementation detail about quoted column names, which is marginal but not bloated.

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?

An output schema and annotations are present, so return values and safety need not be re-explained. However, for a list tool with three optional filters, the description leaves the filtering behavior and the meaning of 'pattern' entirely unexplained, which an agent needs to call it correctly.

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

Parameters2/5

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

Schema coverage is 67%: database and schema_name carry descriptions about quoting, but 'pattern' is completely undocumented in both schema and description. The description says nothing about any of the three filters, so it does not compensate for the gap on pattern.

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 Streamlit applications hosted in Snowflake.' That clearly separates it from compute_services_describe_streamlit, but it does not explicitly name the sibling or state the listing scope (account-wide vs database-scoped).

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 when-to-use guidance, no mention of when to prefer describe_streamlit over this tool, and no indication of how the optional pattern/database/schema_name filters are meant to be applied. The agent is left to infer that this lists everything unless filters are supplied.

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

compute_services_resume_compute_poolCompute Services Resume Compute PoolA
Idempotent

Resume an idle or suspended SPCS compute pool.

NameRequiredDescriptionDefault
pool_nameYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare idempotentHint=true, destructiveHint=false, and readOnlyHint=false, so the safety profile is well covered. The description adds the precondition that the pool must be idle or suspended, but does not disclose asynchronous behavior, required permissions, or expected post-resume state 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?

A single front-loaded sentence with zero wasted words. The operation and its precondition state are stated immediately.

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 tool's simplicity (one required parameter), an output schema, and strong annotations, the description is nearly sufficient. A minor gap is that it does not mention error behavior when the pool is not idle/suspended, but overall it is complete 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%, and the single parameter pool_name already has quoting guidance in the schema. The description adds no parameter detail beyond the schema, 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?

States a specific verb (Resume) and resource (SPCS compute pool) with the qualifying state (idle or suspended), making the operation clear. It does not explicitly name sibling tools or differentiate from alternatives such as suspend/describe, but the 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 Guidelines3/5

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

The phrase 'idle or suspended' implies a precondition for use, which is helpful. However, there is no explicit guidance on when to choose this over siblings (e.g., suspend_compute_pool, describe_compute_pool) or what happens if the pool is in another state.

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

compute_services_suspend_compute_poolCompute Services Suspend Compute PoolA
Idempotent

Suspend an active SPCS compute pool to stop node provisioning costs.

NameRequiredDescriptionDefault
pool_nameYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already cover the safety profile: not read-only, idempotent, non-destructive, and open-world. The description adds the active-pool precondition and cost motivation, but it does not describe what happens to running services or workloads tied to the pool.

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 text. It communicates action, scope, and rationale 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?

Given the simple one-parameter schema, complete parameter documentation, annotations, and an output schema, the description is largely complete. A minor gap is that it does not explain the impact on workloads running in the compute pool.

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 includes a specific quoting instruction for pool_name. The description adds no parameter-level detail 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 states a specific verb and resource: suspend an active SPCS compute pool. It also adds the operational motivation, stopping node provisioning costs, and clearly distinguishes the action from the sibling resume_compute_pool.

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 usage context by specifying an active SPCS compute pool and the cost-saving purpose. It does not explicitly name resume_compute_pool as the alternative or state when not to use it, but the intended scenario is easy to infer.

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

cortex_analyst_queryCortex Analyst QueryC
Read-onlyIdempotent

Ask a natural language analytical question using Cortex Analyst semantic models.

NameRequiredDescriptionDefault
questionYes
semantic_model_pathNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds that queries run over semantic models via natural language, but does not disclose latency, model resolution, or what happens when semantic_model_path is absent.

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. It is efficient, though the brevity comes at the cost of the missing detail noted elsewhere rather than being genuinely complete.

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?

An output schema exists so return values needn't be explained, but with 0% parameter coverage, no usage guidance, and an undefined optional parameter, the description is too thin for an agent to invoke this correctly in one shot.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the full burden. It only loosely implies the 'question' parameter and says nothing about semantic_model_path, its optional default, format, or what the model path should point to.

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 ('Ask') and resource ('natural language analytical question') and ties it to Cortex Analyst semantic models. This distinguishes it from raw-SQL siblings like queries_query, though it never explicitly names an alternative such as cortex_complete or queries_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 phrase 'natural language analytical question' implies the context but is not framed as explicit guidance. There is no when-to-use vs when-not-to-use, no mention of alternatives like queries_query for SQL, and no prerequisites such as needing a semantic model.

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

cortex_completeCortex CompleteC
Read-onlyIdempotent

Run LLM completion using Snowflake Cortex AI (e.g., 'llama3.3-70b', 'mistral-large2', 'snowflake-arctic').

NameRequiredDescriptionDefault
modelNollama3.3-70b
promptYes
max_tokensNo
temperatureNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, covering the safety profile. The description adds nothing beyond that – no mention of cost/latency, model availability, token limits, or that temperature drives nondeterminism despite the idempotent claim. It repeats the tool name rather than disclosing 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?

A single front-loaded sentence with no filler; the action is stated first and examples follow. It is terse rather than bloated, though it is arguably too short to do its job.

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?

An output schema exists so return values need not be described, but with 4 parameters at 0% schema coverage, no usage guidance, and no behavioral notes, the definition leaves an agent guessing about tuning parameters and appropriate invocation conditions.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry all four parameters. It only implicitly documents the 'model' parameter by listing valid model names (useful given no enum), while prompt, max_tokens, and temperature are left completely unexplained.

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 and resource ('Run LLM completion using Snowflake Cortex AI') and grounds it with concrete model examples. It is clearly distinguishable from task-specific siblings like cortex_summarize or cortex_sentiment, though it never says so explicitly.

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, no conditions, and no mention of alternatives. An agent must infer on its own when to pick general completion over the specialized cortex_summarize/translate/extract_answer tools.

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

cortex_embed_text_768Cortex Embed Text 768B
Read-onlyIdempotent

Generate 768-dimensional dense vector embeddings for text using Snowflake Cortex AI.

NameRequiredDescriptionDefault
textYes
modelNosnowflake-arctic-embed-m

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so safety and repeatability are covered structurally. The description adds only the fixed output dimensionality; it says nothing about cost, latency, model determinism, or whether the same text always yields the same vector beyond what idempotentHint implies.

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; the key fact (768-dimensional embeddings) appears immediately. Nothing is redundant with the title.

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?

An output schema exists, so return values need no explanation, and the tool surface is small. However, the unexplained 'model' parameter and total absence of usage context leave an agent unable to decide when this tool is the right choice over cortex_search or cortex_complete.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the full burden, yet it never mentions the 'text' input or explains the 'model' parameter (its default snowflake-arctic-embed-m, or what alternative models imply for dimensionality). With two undocumented parameters the description should compensate and does not.

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 ('Generate') plus a precise resource ('768-dimensional dense vector embeddings for text') and names the underlying service (Snowflake Cortex AI). The output dimensionality and modality are specific enough to separate it from siblings like cortex_complete, cortex_summarize, and cortex_search 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 Guidelines2/5

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

The description never says when to use embeddings versus the other Cortex tools (e.g., search for retrieval, complete for generation), nor any prerequisites such as an active warehouse or Cortex entitlement. It describes what the tool is, not when to reach for it.

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

cortex_extract_answerCortex Extract AnswerB
Read-onlyIdempotent

Extract direct answer to a question from unstructured source document/text.

NameRequiredDescriptionDefault
questionYes
source_textYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=true, so the safety and determinism profile is covered by structured data. The description adds only the 'direct answer' framing (extraction vs. generation), but says nothing about model behavior, grounding, latency, or input size limits. With annotations carrying the main burden, 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.

Conciseness4/5

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

A single front-loaded sentence with no filler or redundancy. It is efficient, though arguably too terse for a tool with zero schema 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?

An output schema exists, so return values need not be explained. But for an open-world Cortex AI function with no schema descriptions and no usage routing against its many Cortex siblings, the description leaves real gaps 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 0%, so the schema itself documents nothing. The description partially compensates by naming both concepts — 'question' and 'unstructured source document/text' — which map onto the two required parameters. It still omits format details such as whether source_text is raw text or a document reference and any size constraints.

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+resource: extract a direct answer to a question from unstructured source text. This is clearly distinguishable from mutation siblings like queries_execute_dml. However, it does not distinguish itself from the closest Cortex AI siblings (cortex_complete, cortex_search), 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?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as cortex_search or cortex_complete for related NLP tasks. The agent must infer from the name alone when this tool is the right pick.

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

cortex_sentimentCortex SentimentB
Read-onlyIdempotent

Analyze sentiment of text returning score from -1.0 (most negative) to 1.0 (most positive).

NameRequiredDescriptionDefault
textYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds the output polarity range (-1.0 to 1.0), which is useful behavioral context, but says nothing about language support, input length limits, model latency/cost, or handling of mixed/neutral text.

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, zero filler, with the operation and the return-value scale both front-loaded. Nothing could be removed without losing 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 single-parameter, read-only tool with an output schema that already documents the return shape, this is nearly sufficient. The remaining gap is input-side detail (length limits, language coverage), which the description does not address.

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 0% for the sole required 'text' parameter, so the description carries the burden but only names the input implicitly. It adds no constraints such as maximum length, supported languages, or whether multiple strings are accepted, leaving the parameter under-documented.

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 ('Analyze sentiment of text') plus the output scale, so the agent immediately knows this is a sentiment classifier rather than a generator or search. It never explicitly positions itself against the other cortex_* text tools, but the purpose is inherently distinct from cortex_complete/summarize/translate.

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 given. The description does not say when to prefer this over cortex_complete (which could also be prompted to judge sentiment) or whether it handles a single text or a batch. The agent must infer applicability 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.

cortex_summarizeCortex SummarizeB
Read-onlyIdempotent

Summarize English text using Snowflake Cortex AI.

NameRequiredDescriptionDefault
textYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. However, the description adds nothing beyond the annotations: no input-size limits, no cost/latency note, no mention of the English-only constraint's implications.

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 tight sentence that is front-loaded with the verb and resource, with zero waste.

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?

An output schema exists, so return values need not be explained, and annotations cover safety. But for an AI-backed summarization tool with openWorldHint, the description omits input constraints (length, language limitations) that an agent would need 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?

Only one parameter (text) with 0% schema description coverage, so the description must compensate. It states the input is 'English text', giving minimal format/type guidance, but adds no length, encoding, or content constraints beyond what the schema implies.

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 (Summarize) and resource (English text) and names the underlying engine (Snowflake Cortex AI), distinguishing it from cortex_complete, cortex_sentiment, and cortex_translate. It's clear what it does, though it does not explicitly contrast with 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 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 cortex_complete or cortex_extract_answer, nor any constraints on input (e.g., length limits, language). Usage is only implied.

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

cortex_translateCortex TranslateC
Read-onlyIdempotent

Translate text from a source language to a target language using Snowflake Cortex AI.

NameRequiredDescriptionDefault
textYes
source_languageYes
target_languageYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds essentially nothing beyond that: no note on supported language identifiers, model behavior, rate limits, or failure modes from Cortex.

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, well-formed sentence with the core action front-loaded and no filler. It is efficient, though its brevity comes at the cost of the missing semantics noted elsewhere.

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?

An output schema exists, so return values need not be explained. However, for a 3-required-parameter tool with zero schema descriptions, the language-code format and any constraints on the text input are left entirely unspecified, leaving an agent guessing on the fields most likely to cause an incorrect call.

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

Parameters2/5

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

Schema description coverage is 0% across all three required parameters, so the description carries the burden. It restates the field names conceptually but never specifies the expected language format (e.g. ISO/BCP-47 codes like 'en' vs 'English') or how empty/unsupported language values behave.

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 (translate) and resource (text), plus the scoping detail that it runs on Snowflake Cortex AI. It is clearly distinguishable from siblings like cortex_summarize or cortex_sentiment, 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?

There is no when-to-use guidance, no mention of prerequisites, and no routing to sibling tools. An agent can infer the purpose but gets no help deciding between this and, say, cortex_complete for a translation-style task.

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

databases_clone_databaseDatabases Clone DatabaseB

Create a zero-copy clone of a database in Snowflake.

NameRequiredDescriptionDefault
source_databaseYesQuote names that aren't all uppercase, exactly as list tools return them.
target_databaseYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

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=false, destructiveHint=false, openWorldHint=true, and non-idempotency. The description's 'zero-copy' adds real value by explaining that no data is physically copied at creation and the target diverges only on later writes — a trait not captured in annotations. It still omits the failure mode of an existing target and required privileges.

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 key qualifier ('zero-copy') comes early. Nothing is redundant or buried.

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?

An output schema exists, so return values needn't be described, and the params are fully documented by the schema. However, for a non-idempotent mutation tool the description should mention that the target database must not already exist and that the clone requires source privileges — omissions that affect whether a call succeeds.

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 are required strings with quoting guidance already in the schema. The description adds nothing beyond what the schema states, 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?

States a specific verb and resource ('Create a zero-copy clone of a database'), and 'zero-copy' signals the Snowflake-specific semantics that separate this from databases_create_database. It doesn't name the sibling it substitutes for, but the operation 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 when-to-use guidance at all: nothing about when to clone vs. create, whether the target must be empty/nonexistent, or what privileges (CREATE DATABASE on the source) are needed. The agent must infer all preconditions.

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

databases_create_databaseDatabases Create DatabaseC

Create a new database in Snowflake.

NameRequiredDescriptionDefault
nameYesQuote names that aren't all uppercase, exactly as list tools return them.
commentNo
if_not_existsNo
data_retention_time_in_daysNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that: it does not say what happens if the database already exists (even though if_not_exists defaults to true), what permissions are required, or how long the operation takes.

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?

A single short sentence with zero waste and the core purpose front-loaded, but the brevity is achieved by omitting information rather than by efficient phrasing. It is minimally viable rather than well-structured.

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?

An output schema exists so return values need no explanation, but for a create tool with three undocumented parameters and no notes on privilege requirements or the if_not_exists default, the description leaves significant gaps an agent would need in order to call it correctly.

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

Parameters2/5

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

Schema description coverage is only 25% — only 'name' is documented, while 'comment', 'if_not_exists', and 'data_retention_time_in_days' have no descriptions anywhere. The description does not compensate by explaining the semantics of these parameters, particularly the default-true if_not_exists behavior which materially changes outcomes.

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 ('Create a new database') with the platform named, so an agent knows exactly what operation is performed. It does not distinguish itself from the close sibling databases_clone_database, which is also a database-creating operation, so sibling differentiation comes only 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 on when to use this versus databases_clone_database or schemas_create_schema, and no mention of prerequisites such as the CREATE DATABASE privilege or an active connection. The agent must infer all selection 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.

databases_describe_databaseDatabases Describe DatabaseB
Read-onlyIdempotent

Describe properties, owner, retention time, and comment of a database.

NameRequiredDescriptionDefault
database_nameYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is fully covered. The description's only added behavioral signal is the set of properties returned, which is redundant with the output schema; it says nothing about permissions or failure modes.

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?

One compact sentence, front-loaded with the verb and resource, with no filler. It is slightly under-specified rather than over-long.

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 with a full annotation set and an output schema, the description is sufficient: the agent knows what is described and what metadata comes back. The only missing piece is routing guidance against the DDL and list 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?

With a single parameter at 100% schema coverage, the schema already carries the meaningful guidance (quoting non-uppercase names exactly as list tools return them). The description adds no parameter semantics beyond what the schema provides, 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 ('Describe') plus the resource ('database') and enumerates the returned facets (properties, owner, retention time, comment), so an agent knows exactly what metadata it yields. It does not explicitly distinguish itself from databases_get_database_ddl or databases_list_databases, which keeps it from 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 when-to-use statement, no prerequisites, and no mention of the sibling alternatives (get_database_ddl for DDL, list_databases for enumeration). The agent must infer that this is the metadata-inspection call from context alone.

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

databases_drop_databaseDatabases Drop DatabaseA
Destructive

Drop a database in Snowflake. Requires confirmation flag.

NameRequiredDescriptionDefault
nameYesQuote names that aren't all uppercase, exactly as list tools return them.
confirmNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, idempotentHint=false, so the safety profile is known without the text. The description adds one genuinely new behavioral fact — that the call is gated behind a confirmation flag — but does not state irreversibility, what dependent objects are lost, or that recovery via undrop is possible.

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?

Two short sentences, front-loaded with the action and immediately followed by the guard condition; no filler. It is efficient, though the brevity edges toward under-specification for a destructive 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?

An output schema exists and annotations carry the destructive profile, so return-value explanation is not needed. However, for a permanent, irreversible Snowflake drop, the description omits the consequences (cascading loss of schemas/tables) and the undrop recovery path, which an agent should know before calling.

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 50%: the 'name' parameter is well documented including quoting rules, but 'confirm' has no schema description beyond a default of false. The sentence 'Requires confirmation flag' fills exactly that gap by conveying the flag must be set to true, adding real meaning beyond the structured 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 names a specific verb and resource — 'Drop a database in Snowflake' — which is unambiguous. It does not differentiate from the closely related siblings databases_undrop_database or databases_create_database, so an agent must infer the distinction from the names 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?

'Requires confirmation flag' establishes a precondition for invocation, which is the strongest usage signal present. There is no guidance on when to prefer this over alternatives (e.g., undrop for recovery) or when not to use it, leaving usage largely implied.

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

databases_get_database_ddlDatabases Get Database DdlB
Read-onlyIdempotent

Retrieve the exact CREATE DATABASE DDL definition.

NameRequiredDescriptionDefault
database_nameYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, openWorld, so the safety profile is fully covered. The description adds only the qualifier 'exact', signaling the output is a verbatim server-side definition rather than a reconstructed one; it says nothing about failure modes for missing databases.

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?

One front-loaded sentence with zero filler. It is efficient but arguably under-specified rather than over-long, which is not penalized here.

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?

An output schema exists, so return values need not be explained, and the read-only annotations cover behavior. The remaining gap is routing: nothing in the description helps an agent decide between this and databases_describe_database in 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 coverage is 100% and the single parameter's description already explains the quoting/case requirement for non-uppercase names. The description adds no parameter meaning beyond that, so the 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?

Names a specific verb (Retrieve) and a specific artifact (CREATE DATABASE DDL definition), which is distinct from describe_database's metadata view. It never explicitly contrasts the two, so the agent must infer the difference from the word 'DDL' 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 on when to choose this over databases_describe_database, which is the nearest sibling and returns overlapping information. No 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.

databases_list_databasesDatabases List DatabasesC
Read-onlyIdempotent

List all available databases accessible to the current role. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description usefully adds that results are limited to the current role's accessible databases and explains the naming semantics of quoted_name/quoted_qualified_name, but it says nothing about whether the `pattern` parameter filters results or how large result sets behave.

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 purpose sentence is front-loaded and efficient, but the second sentence is a rambling aside about output columns that omits the only input parameter. Content priority is misallocated rather than merely 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?

An output schema exists, so return values need not be explained, and the read-only annotations carry the safety story. However, for a filtered-list tool with one undocumented parameter, the description leaves the agent unsure what `pattern` does and whether it is required for scoped listing.

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

Parameters2/5

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

Schema description coverage is 0% and the single `pattern` parameter is an undescribed nullable string, so the description is the only place its meaning could be supplied — yet it is never mentioned. Instead, the description spends its only extra sentence on output column names, which does not compensate for the parameter gap.

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 (list all available databases) plus a scope qualifier (accessible to the current role), so an agent can distinguish it from mutation siblings like databases_create_database or databases_drop_database. It does not explicitly contrast with databases_describe_database or schemas_list_schemas, but the list-vs-detail distinction is implicit in 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?

The description never says when to choose this tool versus databases_describe_database, schemas_list_schemas, or governance_list_roles. The role-scoping phrase hints at the result set but offers no usage context, alternatives, or preconditions.

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

databases_undrop_databaseDatabases Undrop DatabaseA

Restore a recently dropped database using Time Travel.

NameRequiredDescriptionDefault
nameYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare destructiveHint=false, readOnlyHint=false, and idempotentHint=false, so safety is largely covered. The description adds only "using Time Travel," leaving the retention window, permission requirements, and behavior when the name is re-taken or the window has expired unstated.

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 action and resource, with zero filler. Nothing could be removed without losing 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?

An output schema exists, so return-value explanation is unnecessary, and the annotations cover the safety profile. The remaining gap is the Time Travel retention caveat, which materially affects whether the call can succeed, but overall the definition is serviceable for a one-parameter restore.

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 the single `name` parameter is carefully documented in the schema (quoting non-uppercase names exactly as list tools return them). The description adds no additional meaning beyond that, so 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 (restore) and resource (recently dropped database) plus the underlying mechanism (Time Travel), so the operation is unambiguous. It does not name siblings such as databases_drop_database or databases_create_database to differentiate, but the name and wording make the inverse-of-drop relationship obvious.

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?

"Recently dropped" hints at a Time Travel retention constraint but never states it, and there is no guidance on what to do if the retention window has expired or whether create_database/clone_database is the fallback. Usage is implied rather than directed.

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

dynamic_tables_describe_dynamic_tableDynamic Tables Describe Dynamic TableA
Read-onlyIdempotent

Describe dynamic table definition, target lag, warehouse, and query text.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
table_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

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, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful context by listing the attributes returned (target lag, warehouse, query text), but says nothing about error behavior or the openWorldHint implications (cross-database resolution).

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?

One front-loaded sentence with no filler, and the enumerated fields come immediately after the verb. It is efficient, though the terseness leaves no room for routing or caveats.

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?

An output schema exists so return structure needn't be described, and the annotations plus full schema coverage handle safety and parameters. For a simple single-object describe tool the description covers the essentials, with only usage routing left implicit.

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 across all three parameters, the schema already explains the quoting/uppercase convention. The description adds no further parameter meaning, which is the expected baseline when the schema does the work.

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?

Specific verb 'describe' with the resource 'dynamic table' and an enumeration of what is returned (definition, target lag, warehouse, query text). It is clearly distinct from dynamic_tables_list_dynamic_tables or refresh/suspend siblings, though it never names 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 Guidelines3/5

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

Usage is only implied: an agent can infer this is the tool for inspecting one dynamic table's configuration. There is no statement of when to prefer it over list_dynamic_tables, no prerequisites, and no mention of what happens when the table doesn't exist.

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

dynamic_tables_describe_iceberg_tableDynamic Tables Describe Iceberg TableB
Read-onlyIdempotent

Describe schema, catalog integration, and external volume of an Iceberg table.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
table_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

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, idempotentHint=true, destructiveHint=false, so safety is covered by structured data. The description adds only which metadata facets are returned, which partly duplicates the output schema; it gives no information about authorization requirements, behavior for malformed or missing tables, or latency.

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. It is efficient, though it is arguably too thin for a tool whose name is triply redundant with its title and whose sibling set is large.

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?

An output schema exists and annotations cover safety, so the description doesn't need to explain return values. However, for a tool sitting among several describe-style siblings in a Snowflake-like catalog, the lack of any routing or prerequisite information leaves a real gap 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% and each of the three parameters carries the quoting guidance, so the schema does the heavy lifting. The description contributes nothing about database/schema_name defaults or nullability semantics; 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 (Describe) and a precise resource (Iceberg table) plus the facets returned: schema, catalog integration, external volume. This distinguishes it from generic table describers by naming the Iceberg-specific content, though it never explicitly contrasts with tables_describe_table or dynamic_tables_describe_dynamic_table.

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 only implied: call this to inspect an Iceberg table's structure and storage wiring. There is no statement of when to prefer it over tables_describe_table, dynamic_tables_describe_dynamic_table, or the list_iceberg_tables sibling, and no prerequisites (e.g., catalog integration must already exist).

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

dynamic_tables_list_catalog_integrationsDynamic Tables List Catalog IntegrationsA
Read-onlyIdempotent

List catalog integrations (Polaris, AWS Glue, Object Storage) configured in Snowflake. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

The description adds valuable context regarding the returned data structure. It informs the agent about specific output fields like 'quoted_name' and 'quoted_qualified_name,' which is behavioral information beyond the standard safety annotations like 'readOnlyHint'.

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 two sentences are necessary: the first defines the resource, and the second defines the data format of the result. Both sentences are concise and efficiently convey unique 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?

The description is reasonably complete regarding the resource content and naming conventions. However, the lack of input parameter semantics (specifically for the 'pattern' parameter) prevents a higher score, as a functional piece of information is missing.

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

Parameters1/5

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

Schema description coverage is 0%, yet the description offers no guidance on the input parameter 'pattern.' It does not explain if 'pattern' requires a regex, a partial string match, or an exact value, making the input semantics impossible to determine from the text.

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 highly specific, listing exactly what is being listed (catalog integrations) and which platforms are included (Polaris, AWS Glue, Object Storage). This leaves no ambiguity about the resource.

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 implicitly defines the usage: use this tool when you need a list of integrations. While it does not explicitly state when NOT to use it (e.g., comparing it to a 'describe' tool), the purpose is highly clear within its domain.

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

dynamic_tables_list_dynamic_tablesDynamic Tables List Dynamic TablesC
Read-onlyIdempotent

List dynamic tables with lag targets, refresh mode, and last refresh status. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered structurally. The description adds useful row-level context (quoted_name and when quoted_qualified_name is populated), but says nothing about result volume, pagination, or ordering — the practical concerns for an openWorld list call.

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?

Two sentences, front-loaded with the core list operation and the fields returned. The second sentence is a bit dense around quoting, but it is relevant to consuming the output and contains no filler.

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?

An output schema exists so return values needn't be explained, yet the description still spends its second sentence on output naming while leaving all three input parameters — including the undocumented `pattern` filter — unexplained. For a list tool whose main use is scoped discovery, the filtering story is missing.

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

Parameters2/5

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

The `pattern` parameter is undocumented in both schema and description, so the agent cannot know it is a name-matching filter. The database/schema_name schema descriptions discuss name quoting rather than the filtering semantics, and the description does not clarify them either, leaving gaps at 67% 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?

States a specific verb and resource ("List dynamic tables") plus the attributes exposed on each row (lag targets, refresh mode, last refresh status). An agent can tell it is a listing tool distinct from dynamic_tables_describe_dynamic_table, though it does not name that sibling explicitly.

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 this over dynamic_tables_describe_dynamic_table or the other dynamic_tables list variants (list_iceberg_tables, list_external_volumes). Nothing says whether results are account-wide or scoped, or that filters are optional.

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

dynamic_tables_list_external_volumesDynamic Tables List External VolumesB
Read-onlyIdempotent

List external cloud storage volumes configured for Apache Iceberg tables. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds that rows carry quoted_name and quoted_qualified_name, but that is return-shape detail rather than behavioral context; it says nothing about scope, filtering behavior, or whether all volumes are returned regardless of catalog.

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?

Two compact sentences, with the core purpose front-loaded. The second sentence about quoted column names is somewhat expendable given an output schema exists, but it is short and not harmful.

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?

Because an output schema exists, the description needn't explain return values, and annotations cover safety. However, the unexplained pattern parameter and the absence of any when-to-use context leave real gaps for a tool whose siblings include several similar list operations.

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

Parameters2/5

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

The sole parameter 'pattern' has 0% schema description coverage and is never mentioned in the description, so an agent gets no hint that it is a name filter or what syntax it accepts. With one undocumented parameter, the description fails to compensate for the schema gap.

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: list external cloud storage volumes for Apache Iceberg tables. That clearly separates it from dynamic_tables_list_iceberg_tables and the other dynamic-table siblings. It stops short of explicitly naming an alternative, but the 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 call this versus dynamic_tables_list_iceberg_tables or dynamic_tables_list_catalog_integrations, and no mention of what the optional pattern argument filters. The agent must infer the use case entirely.

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

dynamic_tables_list_iceberg_tablesDynamic Tables List Iceberg TablesB
Read-onlyIdempotent

List Apache Iceberg tables in the account, database, or schema. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds only a note about quoted_name and quoted_qualified_name output fields and does not discuss permissions, pagination, or other operational 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?

Two tight sentences with the purpose front-loaded and no filler. The second sentence is useful but partially redundant with the available output 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 description covers the listing scope and output-field quirks, and annotations plus the output schema carry much of the remaining burden. However, it leaves the pattern parameter unexplained and gives no selection guidance against sibling listing tools.

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

Parameters2/5

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

Schema description coverage is only 67%, and the description says nothing about any of the three parameters, including the undocumented pattern parameter. It therefore does not compensate for the coverage gap.

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 Apache Iceberg tables) and scopes it to account, database, or schema. This distinguishes it from generic table-listing siblings by resource type, though it does not explicitly call out dynamic-table 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?

Usage is implied by the resource scope, but there is no explicit when-to-use guidance, no when-not-to-use conditions, and no named alternatives such as tables_list_tables or dynamic_tables_list_dynamic_tables.

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

dynamic_tables_refresh_dynamic_tableDynamic Tables Refresh Dynamic TableB
Idempotent

Trigger an immediate manual refresh of a dynamic table.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
table_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

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, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description only adds that the refresh is immediate and manual, saying nothing about whether the call blocks, costs compute, or fails on a suspended table.

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, action front-loaded, no filler. It is under-specified rather than verbose, which is penalized elsewhere.

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?

Output schema and annotations cover returns and safety, and params are fully described, but an agent still lacks essentials for a mutation trigger: sync vs async behavior, prerequisite state, and compute cost implications.

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 quoting guidance is already in every parameter description, so the schema carries the burden. The description adds no naming or qualification 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.

Purpose4/5

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

Specific verb (trigger refresh) plus resource (dynamic table), and 'immediate manual' distinguishes it from the scheduled automatic refresh behavior. It is clearly separable from siblings like dynamic_tables_resume_dynamic_table or describe, though it doesn't explicitly name 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?

No statement of when to use this versus resume/suspend or letting the schedule handle it, no preconditions (e.g., table must be resumed/active before refresh). The agent must infer call conditions.

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

dynamic_tables_resume_dynamic_tableDynamic Tables Resume Dynamic TableC
Idempotent

Resume scheduling and lag monitoring for a dynamic table.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
table_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

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, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that: it does not state the required prior state, permission needs, side effects on refresh history, or what 'lag monitoring' entails, which matters for a state-changing operation.

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. It is efficient, though its brevity is partly the source of the ambiguity noted elsewhere rather than a stylistic strength.

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?

An output schema exists, so return values need not be explained, and the parameter set is fully documented. However, for a state-changing lifecycle operation, the description omits the preconditions and effects an agent would want before invoking it, leaving it only minimally 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 description coverage is 100%, so database, table_name and schema_name are already documented with quoting guidance. The description adds no further meaning about how these identify the table, 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 names a specific verb ('Resume') and resource ('a dynamic table'), so it is clearly distinguishable from the sibling dynamic_tables_suspend_dynamic_table. The phrase 'scheduling and lag monitoring' adds a hint of what resuming restores, though it is slightly ambiguous as to whether the tool resumes the table or merely reports lag.

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 prerequisite such as the table needing to be in a suspended state. The obvious alternative (dynamic_tables_suspend_dynamic_table) is never mentioned, leaving the agent to infer the suspend/resume pairing.

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

dynamic_tables_suspend_dynamic_tableDynamic Tables Suspend Dynamic TableB
Idempotent

Suspend automated refresh and lag evaluation for a dynamic table.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
table_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

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, idempotentHint=true, and destructiveHint=false, so the safety profile is largely covered. The description adds useful scope detail — that both automated refresh and lag evaluation stop — but says nothing about reversibility (resume), permission requirements, or billing/state 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?

A single front-loaded sentence with no filler. It is efficient but arguably under-sized for a mutation tool, which is penalized under contextual completeness rather than here.

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?

An output schema exists, so return values need not be explained, and annotations cover the safety profile. However, for a state-changing operation the description omits prerequisites, confirmability of the suspended state, and the natural pairing with resume_dynamic_table.

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 all three parameters (database, schema_name, table_name) are documented in the schema with quoting guidance. The description contributes no additional parameter meaning, 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?

States a specific verb ('Suspend') and resource ('a dynamic table') plus what is being suspended (automated refresh and lag evaluation). An agent can distinguish it from dynamic_tables_resume_dynamic_table by name inference, but the description never names the counterpart 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?

Usage is implied by the verb: suspend when you want to pause refresh and lag evaluation. There is no explicit guidance on prerequisites (table must be active), what happens to downstream consumers, or when to prefer refresh_dynamic_table or resume_dynamic_table instead.

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

governance_create_roleGovernance Create RoleC

Create a new role in Snowflake.

NameRequiredDescriptionDefault
commentNo
role_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
if_not_existsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false, so the safety profile is covered structurally. The description adds nothing beyond that — it doesn't mention required privileges, account-level effects, or the role-naming convention the schema hints at.

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?

A single short sentence with no padding, but its brevity comes at the cost of under-specification rather than tightness. It is front-loaded correctly but earns little.

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?

An output schema exists so return values needn't be explained, but for a write tool with three parameters and 33% coverage, the description omits the if_not_exists default, naming/quoting rules, and permission requirements an agent needs to call it safely.

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

Parameters2/5

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

Schema coverage is only 33%: role_name is documented, but comment and if_not_exists (which defaults to true, meaning silent no-op on conflict) are unexplained in both schema and description. Given low coverage, the description should compensate but does not, leaving the default-idempotency behavior invisible.

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) and resource (role) scoped to Snowflake, which is more than a tautology of the name. It does not, however, distinguish itself from governance_describe_role or governance_drop_role, nor mention any role-listing side effects.

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 statement of when to use this versus governance_list_roles or governance_describe_role, no prerequisites (privileges needed to create roles), and no note on what to do if the role already exists. Usage is only implied by the verb.

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

governance_create_userGovernance Create UserC

Create a new Snowflake user with default role and warehouse.

NameRequiredDescriptionDefault
commentNo
passwordNo
user_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
default_roleNoQuote names that aren't all uppercase, exactly as list tools return them.
if_not_existsNo
default_warehouseNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already declare this is a non-read-only, non-destructive, non-idempotent, open-world mutation, so the safety profile is covered. The description adds nothing about required privileges, whether a password is mandatory, or what happens on name collision (relevant given if_not_exists defaults to true), which is exactly the context a caller of a mutation tool needs.

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, so nothing is wasted. It is efficient but arguably too terse for a mutation tool with six 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?

An output schema exists, so return values need not be explained, but for a user-creation mutation with an optional password and a silently-defaulted if_not_exists flag the description leaves out the operational facts an agent needs to invoke it safely.

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

Parameters2/5

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

Schema description coverage is only 50%: only user_name, default_role, and default_warehouse carry descriptions (all the same quoting note). The description names 'default role and warehouse' but says nothing about password, comment, or the if_not_exists default of true, so it fails to compensate for the uncovered 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?

States a specific verb and resource (create a new Snowflake user) plus the key configuration it applies, which separates it from governance_list_users / governance_describe_user / governance_create_role. It does not explicitly name a sibling, 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?

There is no statement of when to use this instead of governance_create_role or governance_list_users, no prerequisites (e.g., USERADMIN/ACCOUNTADMIN privileges), and no note on what to do if the user already exists. The agent must infer all of that.

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

governance_describe_roleGovernance Describe RoleA
Read-onlyIdempotent

Describe role properties and assigned grants. A name in double quotes, such as a list row's quoted_name, must match exactly.

NameRequiredDescriptionDefault
role_nameYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

The description adds a crucial implementation detail: the input role name must match exactly, even if quoted, specifically referencing 'a list row's quoted_name'. This behavioral constraint adds significant value beyond the general read-only hint provided in 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 brief and directly addresses the functional constraints ('A name in double quotes... must match exactly'). Every sentence serves to clarify the behavior of the input parameter.

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 that the tool is read-only, idempotent, and idempotent, and its function is clear, it is largely complete. The description successfully clarifies the specific input formatting requirement which is the only major behavioral gap left to fill.

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

Parameters5/5

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

Schema description coverage is 0%, meaning the description must carry all weight. It specifies that the input 'role_name' is case/format sensitive by requiring an exact match with potential quoting, which is a critical semantic detail not conveyed by the type definition.

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 explicitly states the function: 'Describe role properties and assigned grants.' This is highly specific (verb + resource + detail) and easily distinguishable from sibling tools like `governance_list_roles` or `governance_list_grants_to_user`.

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 tool provides some contextual guidance regarding the naming convention (quotes must match exactly), but it doesn't specify functional usage constraints, success criteria, or explicitly state when it should be preferred over alternatives like `governance_list_grants_to_role`.

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

governance_describe_userGovernance Describe UserA
Read-onlyIdempotent

Describe user properties, email, disabled status, and default warehouse/role.

NameRequiredDescriptionDefault
user_nameYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

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, idempotent operation. The description adds value by naming the returned fields (email, disabled status, default warehouse/role), but does not mention permissions required or behavior when the user does not 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?

A single sentence that front-loads the verb and resource with zero wasted words. Every clause adds useful detail about what is returned.

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 an output schema present, the description need not explain return structure. The enumerated fields provide helpful context beyond what annotations and schema alone convey. Minor gap: no mention of error behavior for missing users.

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 the single parameter is fully documented in the schema itself, including the quoting rule. 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.

Purpose4/5

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

States a specific verb ('Describe') and resource ('user'), and enumerates the properties returned. It is clearly distinct from governance_list_users by virtue of singular description, though no sibling is named 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?

Implied usage is clear: fetch detailed properties for a single user. However, there is no explicit guidance on when to use this versus governance_list_users, nor any mention of prerequisites or error conditions.

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

governance_drop_roleGovernance Drop RoleB
Destructive

Drop a role in Snowflake. Requires confirmation.

NameRequiredDescriptionDefault
confirmNo
role_nameYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false and idempotentHint=false, so the safety profile is covered. The description adds a confirmation gate, but does not disclose the real consequences an agent needs: what happens to grants held by the role, whether owned objects block the drop, or that the operation is irreversible (unlike databases/schemas/tables, there is no governance_undrop_role).

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, action first, prerequisite second, with zero filler. Nothing needs to be trimmed.

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?

An output schema exists so return values need not be described, but for an irreversible destructive operation the definition is thin: confirmation mechanics are implied rather than specified, and side effects on grants/dependents are unaddressed. Minimum viable 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 coverage is 50%: role_name is well documented in the schema (quoting rules), while confirm has no schema description. The description's 'Requires confirmation' partially compensates by signalling that confirm matters, but it does not state the expected value or behaviour on default false.

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 ('Drop a role in Snowflake'), which cleanly distinguishes it from governance_create_role, governance_list_roles and governance_describe_role. It does not explicitly name the sibling alternatives, but the destructive verb makes the intent 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?

'Requires confirmation' hints that a confirm flag must be set, but never says which parameter, what value, or what happens if it is omitted (the schema default is false). There is no guidance on prerequisites such as revoking grants or transferring ownership before dropping, and no mention that no undrop sibling exists for roles.

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

governance_get_current_contextGovernance Get Current ContextA
Read-onlyIdempotent

Retrieve current active session context (current user, role, warehouse, database, schema, and account).

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, openWorld, and an output schema exists. The description confirms it reads session state but adds no behavioral context beyond the annotations, such as whether it requires a live session or reflects server-side defaults.

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-formed sentence that front-loads the verb and resource and lists the returned fields 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 zero-param read tool with full annotations and an output schema, the definition covers what is needed. The only minor gap is the absence of any note on when in a workflow to call it versus sibling listing tools.

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?

Zero parameters, so baseline is 4. Schema coverage is 100% with an empty object, leaving nothing for the description to clarify.

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 ('Retrieve') and resource ('current active session context'), then enumerates the exact fields returned (user, role, warehouse, database, schema, account). An agent can immediately distinguish this from schema/role listing tools like governance_list_roles or governance_describe_user.

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 'current' implies this is a session-state read used before acting on the active context, but no explicit when-to-use or when-not-to-use guidance or named alternative is given. 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.

governance_list_connectionsGovernance List ConnectionsA
Read-onlyIdempotent

List available connection profiles configured in ~/.snowflake/connections.toml and show active profile.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds real context beyond that: the data source is a local config file path, and the output includes the active profile indicator.

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; the what (list profiles) and the where (config path) come first, with the active-profile behavior as a brief clause.

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 tool with an output schema, the description supplies essentially everything an agent needs (resource, source location, active-profile detail). The only omission is explicit routing guidance to governance_use_connection as the follow-on 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?

The tool takes zero parameters, so the schema is trivially complete and the description has no parameter semantics to carry. Baseline of 4 applies for a no-argument tool.

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 (list) plus the exact resource (connection profiles in ~/.snowflake/connections.toml) and adds the side effect of surfacing the active profile. It is clearly distinguishable from governance_use_connection (which switches) but never names that sibling explicitly, so a small differentiation gap remains.

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: an agent can infer this is the discovery step before calling governance_use_connection, but the description contains no explicit when-to-use or when-not-to-use guidance and no named alternative.

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

governance_list_grants_to_roleGovernance List Grants To RoleA
Read-onlyIdempotent

List privileges granted to a specific role.

NameRequiredDescriptionDefault
role_nameYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

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, idempotentHint=true, destructiveHint=false, so the safety profile is fully covered. The description adds nothing beyond 'list' — no note on whether results include inherited role grants, pagination, or scope. With annotations carrying the 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.

Conciseness4/5

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

A single efficient sentence with no waste and the resource front-loaded. Slightly thin rather than padded, but perfectly 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?

Output schema exists so return values need no explanation, annotations cover safety, and the sole parameter is documented. Adequate for a simple read-only lister, though noting the relationship to list_grants_to_user would complete 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 coverage is 100% and the role_name parameter is well documented including the quoting rule, so the schema does the heavy lifting. The description adds no parameter detail beyond what is in the schema, making baseline 3 correct.

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?

Clear specific verb 'List' plus resource 'privileges granted to a specific role'. Distinct from siblings like governance_list_roles and governance_list_grants_to_user by resource, though it never explicitly contrasts with the closest sibling (list_grants_to_user).

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 name and description, but there is no explicit when-to-use guidance, no mention of when to prefer governance_list_grants_to_user, and no stated prerequisites such as privileges needed to inspect grants.

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

governance_list_grants_to_userGovernance List Grants To UserB
Read-onlyIdempotent

List roles granted to a specific user.

NameRequiredDescriptionDefault
user_nameYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare read-only, idempotent, open-world, and non-destructive behavior, so the safety profile is covered. The description adds no scope detail such as whether inherited grants are included, but it does not contradict annotations and the output schema covers return values.

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, front-loaded with the verb and resource. There is no filler, and the length is appropriate for a simple read 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 one-parameter read tool with full schema coverage, rich annotations, and an output schema, the description is sufficient. A slightly richer statement about direct versus inherited grants would close the remaining 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 coverage is 100%, and the single parameter is documented in the schema with quoting guidance. The description mentions the user target but adds no syntax beyond the schema, 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?

States a specific verb and resource ('List roles granted') scoped to a specific user, which implicitly distinguishes it from governance_list_grants_to_role. It does not explicitly name the sibling or explain the difference, 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 gives no when-to-use guidance, prerequisites, or alternatives. An agent can infer the basic use case, but it is not told when to choose this over governance_list_grants_to_role or governance_list_roles.

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

governance_list_rolesGovernance List RolesC
Read-onlyIdempotent

List roles available in the Snowflake account. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds that each row carries quoted_name and quoted_qualified_name, which is minor output-shape context rather than behavioral disclosure; it says nothing about result volume, pagination, or pattern matching semantics.

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?

Two sentences, front-loaded with the purpose, which is good. But the second sentence is a dense, comma-heavy clause about output column names that duplicates information already present in the output schema, while the one input parameter goes undocumented.

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?

An output schema exists, so return values need not be explained, and this is otherwise a simple one-parameter read tool with full annotation coverage. The one real gap is the unexplained 'pattern' filter — the description is nearly complete but misses the only thing an agent must decide before calling.

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

Parameters1/5

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

The single parameter 'pattern' has 0% schema description coverage, so the description carries the full burden — yet it never mentions the parameter at all. An agent cannot tell whether pattern is a SQL LIKE pattern, a regex, a case-sensitive prefix, or how it affects the listing.

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 gives a specific verb and resource — listing roles in the Snowflake account — which is unambiguous. It does not differentiate from the near-name-colliding siblings (governance_describe_role, governance_list_grants_to_role), leaving the agent to infer which role-related tool fits when.

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 when-to-use guidance, no mention of alternatives such as governance_describe_role for details or governance_list_grants_to_role for grants, and no statement about when the pattern argument should be supplied. 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.

governance_list_usersGovernance List UsersB
Read-onlyIdempotent

List users in the Snowflake account with login status and default roles. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive and openWorld, so the safety profile is covered. The description adds the shape of returned fields (quoted_name, conditional quoted_qualified_name), but says nothing about scope, result size, pagination, or filtering — and an output schema already exists, so the return-field detail is partly duplicative.

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?

Two compact sentences, front-loaded with the core purpose. The second sentence spends disproportionate space on quoted_name formatting nuances rather than on the undocumented filter parameter.

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?

Purpose and returned data are adequately described. The main gap is filter semantics, but with annotations and an output schema in place, the description covers what the agent needs to call it correctly for its core listing use case.

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

Parameters2/5

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

One parameter ('pattern') exists with 0% schema description coverage, and the description never mentions it. An agent cannot tell whether it is a regex, a SQL LIKE pattern, a substring match, or what happens when it is null. This is the definition's largest functional gap.

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 ('List users in the Snowflake account') plus the notable fields returned (login status, default roles), so an agent can tell this apart from governance_list_roles or databases_list_databases. It stops short of explicitly contrasting with the closest sibling, governance_describe_user.

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 versus governance_describe_user (single user detail) or governance_list_grants_to_user. The use case is only implied by the tool name; no prerequisites, exclusions, or alternatives are named.

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

governance_use_connectionGovernance Use ConnectionB
Idempotent

Dynamically switch the active Snowflake session to a different connection profile from ~/.snowflake/connections.toml.

NameRequiredDescriptionDefault
connection_nameYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety and side-effect profile is covered. The description usefully adds where profile names come from (~/.snowflake/connections.toml), but says nothing about session state impact, whether in-flight work is affected, or what happens when the named profile is absent.

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 front-loaded sentence with no filler; the action and the value source are both stated compactly. Nothing could be removed without losing 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?

An output schema exists, so return values need not be described. However, for a session-mutating tool the definition omits prerequisites (does the profile need to exist? is the switch persistent across subsequent calls?) that an agent needs in order to invoke it correctly, leaving it only minimally 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?

The single parameter has no schema description (0% coverage), so the description carries the burden. It partially compensates by revealing that connection_name refers to a profile in ~/.snowflake/connections.toml, which tells the agent where valid values come from, but it adds no format, case-sensitivity, or failure 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 names a specific verb ('switch'), the resource (the active Snowflake session / connection profile), and the source of the profiles ('~/.snowflake/connections.toml'), so an agent can tell this apart from read-only siblings like governance_list_connections or governance_get_current_context by the mutation implied. It stops short of explicitly naming an alternative sibling, which is what would push it to 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 when-to-use or when-not-to-use guidance and no mention of alternatives. The description states what the tool does, not the situation that should select it over governance_list_connections or governance_get_current_context; usage is only weakly implied by the word 'switch'.

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

horizon_describe_masking_policyHorizon Describe Masking PolicyB
Read-onlyIdempotent

Describe signature, return type, and body of a masking policy.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
policy_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

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, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds the specific outputs (signature, return type, body), which is useful context, but says nothing about privileges required or behavior on non-existent policies.

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 short sentence with no waste and the key information front-loaded. It is arguably terse given the tool's simplicity, but nothing is padded or off-topic.

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?

With an output schema covering return values, full annotation coverage, and 100% parameter documentation, the definition is minimally sufficient. It stops short of explaining qualification requirements (database/schema defaults) or error behavior, which would help an agent call it correctly the first time.

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 three well-documented parameters, including quoting guidance, so the schema carries the load. The description adds no parameter-level meaning beyond what the schema already provides. 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 (describe) and resource (masking policy), and names exactly what is returned: signature, return type, and body. This distinguishes it from the sibling horizon_list_masking_policies, though the differentiation is implied by 'describe' vs 'list' rather than stated explicitly.

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 horizon_list_masking_policies or horizon_describe_row_access_policy. It does not mention that a policy must be found via list first, or what happens if database/schema are omitted.

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

horizon_describe_row_access_policyHorizon Describe Row Access PolicyB
Read-onlyIdempotent

Describe signature, filter expression, and comment of a row access policy.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
policy_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

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, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds only the shape of the returned metadata, which the output schema already supplies; it says nothing about required privileges or what happens if the policy is absent.

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; the returned fields are listed efficiently. It is terse to the point of underspecification on usage, but nothing 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?

With full schema descriptions, an output schema, and read-only annotations, the essentials are covered. Missing is any note on privileges, failure behavior, or how to resolve the required policy_name via the list sibling, which matters for an openWorld 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 coverage is 100% and each of the three parameters carries the quoting guidance, so the description correctly defers to the schema. It adds no extra meaning about how database/schema_name qualify policy_name, but the 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.

Purpose4/5

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

States a specific verb (Describe) plus the resource (a row access policy) and enumerates the fields returned (signature, filter expression, comment). The describe-vs-list distinction against horizon_list_row_access_policies is inferable from the naming, but the description never says it explicitly.

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 statement, no prerequisites, and no mention of the sibling horizon_list_row_access_policies as the way to discover policy names first. 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.

horizon_get_column_lineageHorizon Get Column LineageB
Read-onlyIdempotent

Trace origin and transformation lineage for a column using Snowflake Horizon Access History.

NameRequiredDescriptionDefault
daysNo
limitNo
databaseNo
table_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
column_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, open-world), so the description's added value is naming the data source: Snowflake Horizon Access History. That usefully implies lineage is derived from observed access rather than catalog metadata, but the description never states that consequence (possible incompleteness/observation-window dependency) or any scope limits.

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 and the key concept (column lineage) first. It is efficient but arguably under-specified rather than maximal for the tool's complexity.

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?

An output schema exists so return values need not be described, but with six parameters, only a third documented, and no scoping/permission context for an open-world tool, an agent still cannot tell how to control window size, result limits, or qualification scope from the description alone.

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

Parameters2/5

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

Schema coverage is only 33%: the two documented parameters describe quoting conventions, while days, limit, database and schema_name are undocumented in both schema and description. The description explains none of them — notably it never says days is a lookback window or what limit caps — so it fails to compensate for the coverage gap.

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 ("Trace origin and transformation lineage for a column"), which clearly separates it from the coarser sibling horizon_get_object_lineage by naming the unit of analysis (column). It does not explicitly route the agent between the two lineage tools, 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?

There is no when-to-use / when-not-to-use guidance, no prerequisite (e.g., that the table/column must be in the current connection's account), and no mention of the sibling horizon_get_object_lineage for table-level lineage. Usage is only implied by the verb 'trace'.

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

horizon_get_object_lineageHorizon Get Object LineageB
Read-onlyIdempotent

Retrieve upstream source and downstream dependent object lineage from Snowflake Horizon.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
directionNoboth
object_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds that results span both upstream and downstream dependents, which is useful, but says nothing about behavior when the object doesn't exist, cross-database/account coverage (openWorld), or result volume.

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. It is efficient but so terse that there is no room for the qualification rules the agent actually needs.

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?

An output schema exists, so return values needn't be described. However, for a lineage tool with four parameters and an unenumerated 'direction' argument, the description leaves the agent guessing about valid values and object qualification.

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 75%, so baseline is 3. The description's 'upstream source and downstream dependent' is the only hint at what the undocumented 'direction' parameter accepts, but it never states the allowed values (upstream/downstream/both) or that 'both' is the default.

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 ('Retrieve ... object lineage') with explicit scope ('upstream source and downstream dependent'). The word 'object' implicitly separates it from the sibling horizon_get_column_lineage, though that sibling is never named.

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 choose this over horizon_get_column_lineage (column-level lineage) or recipes_discover_schema_lineage. No prerequisites stated, and the default 'both' direction is never framed as a choice the agent must consider.

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

horizon_list_masking_policiesHorizon List Masking PoliciesB
Read-onlyIdempotent

List column masking policies in the account, database, or schema. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, so the safety profile is fully covered. The description adds the scoping levels, but the quoted_name/quoted_qualified_name sentence largely restates return fields that the output schema already provides.

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?

Two sentences, front-loaded with the verb and scope, no filler. The second sentence spends its length on return-value details that the output schema already carries, which is the only wasted effort.

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?

An output schema exists, so return values need not be explained, and annotations cover safety. What remains missing is behavior for the `pattern` filter and any guidance on choosing scope levels — the parts an agent actually needs to call this correctly.

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

Parameters2/5

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

Schema description coverage is 67%, and the uncovered parameter is `pattern` — the most ambiguous one. The description says nothing about what pattern matches (regex? glob? prefix?) or its default behavior. The quoting remark for database/schema_name only repeats a hint already in the schema.

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

Purpose4/5

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

States a specific verb and resource ('List column masking policies') plus the scope levels (account, database, schema). It does not name or differentiate from the obvious sibling choices (horizon_describe_masking_policy, horizon_list_row_access_policies), so an agent must infer the boundary 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?

No explicit when-to-use or when-not-to-use guidance. The three scopes are mentioned but it never says how to choose between them, nor when to prefer horizon_describe_masking_policy over this list call.

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

horizon_list_row_access_policiesHorizon List Row Access PoliciesA
Read-onlyIdempotent

List row access policies defined in the account, database, or schema. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

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, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds some output-field context (quoted_name, quoted_qualified_name), but does not explain permissions, default scope, or whether results are paginated. With annotations present, this is a modest but not rich behavioral addition.

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 two sentences and front-loads the core purpose. The second sentence about quoted_name and quoted_qualified_name is useful for identifier interpretation but is somewhat redundant with the existing output schema, so it is efficient but not perfectly tight.

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 list tool with annotations and an output schema, the description is largely complete: it states what is listed and the possible scopes. It leaves gaps around pattern matching behavior and the default scope when no database or schema is supplied.

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 67%: database and schema_name have descriptions about quoting non-uppercase names, while pattern is undocumented in both schema and description. The description's phrase 'account, database, or schema' weakly implies the optional scoping hierarchy, but it does not compensate for the undocumented pattern 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 uses a specific verb and resource: 'List row access policies defined in the account, database, or schema.' It is clearly distinguishable from the sibling horizon_describe_row_access_policy by being a listing operation, but it does not explicitly name alternatives or clarify why one would use this versus horizon_list_masking_policies.

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 mention of 'account, database, or schema' implies scope-based filtering, but there is no explicit guidance on when to use this tool versus the describe or masking-policy list siblings. Usage is only implied through the scope wording.

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

network_describe_network_policyNetwork Describe Network PolicyB
Read-onlyIdempotent

Describe allowed IP lists, blocked IP lists, and comments for a network policy.

NameRequiredDescriptionDefault
policy_nameYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld, so the safety profile is fully covered. The description adds only the content shape (IP allow/block lists and comments), which is a modest contribution and largely duplicated by the 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.

Conciseness5/5

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

One short sentence, front-loaded with the verb and resource and with zero filler. Nothing here could be removed without losing 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?

With an output schema, complete annotations, and a fully documented single parameter, the description only needs to establish intent and scope, which it does. The one remaining gap is the absence of any routing hint toward sibling list/describe tools.

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?

Single parameter with 100% schema description coverage, including the useful warning to quote non-uppercase names exactly as list tools return them. The description adds nothing about the policy_name argument, so baseline 3 applies since the schema carries the 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?

States a specific verb (describe) and resource (network policy) and even enumerates what is covered: allowed IP lists, blocked IP lists, comments. It doesn't explicitly contrast with network_list_network_policies or network_describe_network_rule, but the naming and content make the read-detail intent 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?

There is no statement of when to use this instead of network_list_network_policies (browse) or network_describe_network_rule (rule-level detail). The 'describe' convention implies fetch-details-for-a-known-policy, but nothing in the text confirms that or states prerequisites.

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

network_describe_network_ruleNetwork Describe Network RuleB
Read-onlyIdempotent

Describe mode (INGRESS, INTERNAL_STAGE, EGRESS), type (IPV4, AWSVPCEID, HOST_PORT), and value list of a network rule.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
rule_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

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, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully structured. The description contributes the returned attribute shape but doesn't mention output structure formatting, name-resolution caveats, or errors for missing rules.

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 efficient sentence that front-loads the verb and immediately names the returned fields. It is tight, though perhaps over-terse for a describe tool that could have used one more sentence on 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?

With an output schema present and full schema coverage on all three parameters, plus rich annotations, the description covers the essential purpose and return shape. Only minor gaps remain, such as qualification of the rule by database/schema and behavior on an unknown rule name.

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 parameters documented (database, schema_name, rule_name, all with quoting guidance). The description adds no parameter-level detail (e.g., how the optional database/schema qualify rule_name), 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 ("Describe") and resource ("a network rule") and enumerates the returned attributes: mode, type, and value list. It implicitly distinguishes itself from list-style siblings such as network_list_network_rules because it targets a single named rule, but it never names that 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?

There is no explicit guidance about when to call this instead of network_list_network_rules or the sibling network_describe_network_policy, nor any prerequisites or scope notes. Usage is only inferable from the verb "Describe" and the required rule_name.

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

network_describe_password_policyNetwork Describe Password PolicyB
Read-onlyIdempotent

Describe password policy constraints (min length, lockout time, history, age).

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
policy_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare the tool as read-only, idempotent, non-destructive, and open-world, so the main safety profile is covered. The description adds the categories of policy fields returned but does not disclose additional behavioral context such as permissions, scoping, 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 efficient sentence that front-loads the action and resource with zero wasted text.

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 full schema coverage, an output schema, and rich annotations, the description is mostly complete for a simple describe tool. It could be slightly stronger with routing guidance relative to the list sibling or explicit scoping 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 description coverage is 100%, so the schema already documents all three parameters. The description adds no parameter-specific meaning beyond what the schema provides, making the baseline of 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?

States a specific verb and resource (describe password policy) and enumerates the kinds of constraints returned. It is clear what the tool does, but it does not explicitly distinguish itself from the close sibling network_list_password_policies.

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, prerequisites, or alternatives. Usage is only implied by the verb 'Describe' and the existence of a list sibling.

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

network_list_network_policiesNetwork List Network PoliciesB
Read-onlyIdempotent

List network policies configured in the account. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered elsewhere. The description adds that each row carries quoted_name and conditionally quoted_qualified_name, which is useful output context, but says nothing about pagination, filtering behavior, or result volume for an openWorldHint=true listing.

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 first sentence is front-loaded and efficient, but the second sentence spends most of its length describing return columns that a dedicated output schema already conveys. It is short, but not every sentence 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?

The agent has a strong structured foundation: full annotations, a formal output schema, and a single optional string parameter. The description supplies the quoted_name and quoted_qualified_name behavior and names the returned resource. The main open gap is pattern semantics, but with a public output schema and only one optional parameter, the overall package is complete for a low-complexity list tool.

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

Parameters2/5

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

The single optional parameter 'pattern' has 0% schema description coverage, and the description does not mention it at all. Whether it is an exact match, a SQL LIKE pattern, or a regex is left entirely undocumented, forcing the agent to guess or trial-and-error.

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 network policies configured in the account.' An agent can distinguish this from network_describe_network_policy by the 'list' verb, though the description never names the sibling to draw that contrast explicitly.

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 indication of when to use this tool versus network_describe_network_policy or network_list_network_rules, and no mention of prerequisites or scope constraints. 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.

network_list_network_rulesNetwork List Network RulesB
Read-onlyIdempotent

List network rules defined in a database or schema. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. Beyond that the description only describes row output fields (quoted_name, quoted_qualified_name), which duplicates the output schema, and says nothing about scoping behavior, result limits, or pagination for an open-world listing 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?

Two short sentences, front-loaded with the core purpose, with no filler. The second sentence on quoted names is somewhat redundant given the tool has an output schema, slightly diluting the focus.

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 output schema exists, so return values needn't be explained, yet the description spends its second sentence there while leaving the 'pattern' parameter and the all-null-parameters case unaddressed. For a three-parameter open-world listing tool, that is adequate but with clear gaps.

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

Parameters2/5

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

Schema coverage is 67%: database and schema_name carry quoting guidance, but 'pattern' is completely undocumented in both schema and description. The description never mentions pattern or explains its matching semantics (wildcards? case sensitivity?), so it fails to compensate for the coverage gap.

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 network rules') plus a scope ('defined in a database or schema'), which clearly separates it from network_describe_network_rule and network_list_network_policies. It stops short of explicitly naming those siblings as alternatives, but the resource noun alone is distinctive enough for correct 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?

Usage is only implied: the word 'List' plus the database/schema scope hints that you can narrow results, but nothing states when to prefer this over network_describe_network_rule or network_list_network_policies. There is also no guidance on what happens when all three optional parameters are omitted (list everything, or error?).

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

network_list_password_policiesNetwork List Password PoliciesB
Read-onlyIdempotent

List password security policies defined in the account or database. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description's only added behavior is the quoting convention for returned names, and it says nothing about result size, pagination, or ordering for a list over an open-world account.

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?

Two sentences with the core purpose front-loaded and no filler. The second sentence is partly redundant with the output schema, which already defines quoted_name and quoted_qualified_name, so it doesn't fully earn 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?

With an output schema present, return-field detail is not required, and annotations cover safety, so the description is serviceable. But it leaves the primary filter (`pattern`) and any result-limiting behavior undocumented, which is a real gap for a list tool over an open-world account.

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

Parameters2/5

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

At 67% coverage the description should compensate, but the most important filter, `pattern`, is never explained in either the description or the schema. The phrase 'in the account or database' only loosely hints at the `database` scope, and the schema text attached to `database`/`schema_name` describes quoting behavior rather than what those parameters filter.

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 (List) and resource (password security policies) plus the scope (account or database), which is enough to separate it from network_describe_password_policy by the list/describe convention. It never names the sibling explicitly, so differentiation relies on convention rather than statement.

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 when-to-use guidance and no mention of the alternative network_describe_password_policy for single-policy details. An agent must infer that this is the discovery step and that describe_* is the follow-up.

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

pipes_create_pipePipes Create PipeC

Create a Snowpipe for continuous ingestion.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
pipe_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
auto_ingestNo
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.
if_not_existsNo
copy_statementYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, so safety is covered. The description adds nothing beyond that – it doesn't say what auto_ingest changes about behavior (event notifications vs. scheduled ingestion), what happens when the pipe already exists, or that creation has side effects on the account.

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?

One clean, front-loaded sentence with zero waste, but the brevity comes at the cost of substance; for a six-parameter mutation tool this is under-specified rather than efficiently concise.

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?

An output schema and annotations exist, so return values and safety needn't be restated. However, given six parameters (two required), a bare copy_statement, and undefined booleans, an agent cannot confidently construct a valid call from this definition alone.

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

Parameters2/5

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

Schema description coverage is only 50%, and the description compensates for none of it. copy_statement (a required parameter) has no description at all, and auto_ingest and if_not_exists – both behaviorally significant flags – are never explained in either the schema or the description.

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 ('Create a Snowpipe') and adds the reason ('for continuous ingestion'), which distinguishes it from read-only siblings like pipes_describe_pipe or pipes_get_pipe_status. It stops short of explicitly naming those siblings, so it is clear but not fully differentiated.

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 this over alternatives, no prerequisites mentioned (e.g., that a stage and file format must already exist, or that auto_ingest requires a notification integration), and no note about the default if_not_exists=true meaning the call is effectively silent on duplicates.

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

pipes_describe_pipePipes Describe PipeC
Read-onlyIdempotent

Describe pipe definition and COPY statement.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
pipe_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, covering the safety profile. The description adds no behavioral context beyond restating the object of inspection, so it does not disclose traits beyond 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. It is perhaps overly terse for a tool with several sibling alternatives, but nothing 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?

The description plus annotations, full schema coverage, and an output schema make the tool callable. However, it does not explain what a pipe is or how this differs from pipes_get_pipe_status, leaving a knowledgeable agent to infer the distinction.

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 documented in the schema. The description adds no parameter semantics, which is acceptable at the baseline 3 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 verb 'Describe' and resource 'pipe definition and COPY statement' make the operation clear. It implicitly distinguishes from pipes_list_pipes and pipes_get_pipe_status by naming the returned artifacts, though it does not explicitly say when to use it over 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 Guidelines2/5

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

No when-to-use guidance, prerequisites, or alternative tools are mentioned. The only clue is the word 'Describe', which implies inspection but does not say when to choose this over pipes_get_pipe_status or pipes_list_pipes.

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

pipes_drop_pipePipes Drop PipeB
Destructive

Drop a Snowpipe. Requires confirmation.

NameRequiredDescriptionDefault
confirmNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
pipe_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and non-idempotency, so the safety profile is covered. The description adds only 'Requires confirmation'; it does not disclose irreversibility (Snowflake pipes have no undrop in this toolset), that load history/pending files may be lost, or that privileges are needed — meaningful gaps for a drop operation.

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?

Two short sentences, front-loaded with the action, with no filler. Brevity is appropriate, though it comes at the cost of the prerequisites an agent needs for a destructive call.

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?

An output schema exists, so return values needn't be explained, but for a destructive, non-idempotent, open-world tool the description is thin: it omits whether the pipe must be suspended, whether the drop is recoverable, and how the confirm flag interacts with defaults. The 75% schema coverage leaves the confirm parameter effectively undocumented in both places.

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 75%, with pipe_name/database/schema_name documented by the schema itself. The phrase 'Requires confirmation' gives the only semantic hint for the undocumented confirm parameter, but it never names the parameter or explains that default false likely refuses the drop — so the added value is suggestive rather than explicit.

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 ('Drop a Snowpipe'), which cleanly separates it from the other pipes_* siblings (list, describe, create, get_status). It does not name what it is *not* or clarify scope (e.g., whether cascade/dependency handling occurs), but the operation itself 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 Guidelines3/5

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

'Requires confirmation' is the only usage signal, and it usefully implies the confirm flag must be supplied with intent to act. There is no explicit guidance on prerequisites such as ownership, suspending the pipe first, or what happens to already-staged files, which an agent would need before calling a destructive drop.

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

pipes_get_pipe_statusPipes Get Pipe StatusA
Read-onlyIdempotent

Get execution and health status of a Snowpipe (pending file count, last ingested timestamp).

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
pipe_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds only what 'status' comprises; it says nothing about freshness of the data, required privileges, or behavior when the pipe does not exist. Useful but modest value on top of 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 the resource and returned facets stated immediately and 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 read-only status tool with full schema documentation, complete safety annotations and an output schema, the description is sufficient to select and call it. The only gap is the unstated relationship to pipes_describe_pipe, which an agent must guess at.

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 database, schema_name and pipe_name are already documented in the schema (including the uppercase-quoting rule). The description adds no parameter-level meaning, which is acceptable at this coverage level but warrants only 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?

States a specific verb ('Get') and resource ('Snowpipe') plus the concrete facets returned (pending file count, last ingested timestamp). It does not explicitly distinguish itself from the adjacent pipes_describe_pipe, leaving the status-vs-configuration split to inference, 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 Guidelines3/5

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

The word 'status' implies a monitoring/health-check use case, but there is no explicit when-to-use, when-not-to-use, or named alternative (e.g. pipes_describe_pipe for configuration, pipes_list_pipes for discovery). Usage is inferable rather than stated.

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

pipes_list_pipesPipes List PipesB
Read-onlyIdempotent

List Snowpipes configured in a database or schema. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare the safety profile: read-only, idempotent, non-destructive, and open-world. The description adds return-shape context about quoted_name and quoted_qualified_name, but does not explain pattern matching behavior, permissions, or pagination.

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 primary action and scope. The second sentence adds useful row-name context, though part of it may overlap with the output 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?

Because an output schema exists, the description need not fully explain return values, but it still leaves the pattern parameter and filtering behavior unspecified. It is adequate for a simple list tool but 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?

Schema description coverage is 67%, and the schema already documents the quoting requirement for database and schema_name. The description reinforces database/schema scoping but does not explain the pattern parameter or its filtering 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 states a specific verb and resource: listing Snowpipes, scoped to a database or schema. It is clearly distinguishable from sibling tools such as pipes_describe_pipe and pipes_create_pipe, though it does not explicitly name 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 Guidelines3/5

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

The scope 'in a database or schema' implies when the tool is useful, but there is no explicit guidance on when to use it versus pipes_describe_pipe or pipes_get_pipe_status, nor 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.

programmability_describe_functionProgrammability Describe FunctionB
Read-onlyIdempotent

Describe UDF function signature, return type, language, and body.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.
function_signatureYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

The annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is clear. The description adds that it returns signature, return type, language, and body, which is useful context beyond the annotations, but it does not discuss permissions, errors, or rate limits.

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 could be slightly more informative, but it is efficiently structured.

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?

An output schema exists, annotations cover safety, and the schema documents all parameters. The description states what information is returned, which is sufficient for an agent to call the tool correctly, though it could clarify sibling distinctions.

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 documents all three parameters. The description adds no further parameter details beyond what the schema provides, which is the baseline expectation when coverage is full.

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 (Describe) and resource (UDF function) and enumerates what is returned: signature, return type, language, and body. This clearly distinguishes it from list_functions, though it does not explicitly mention the sibling describe_procedure.

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 programmability_list_functions or programmability_describe_procedure. The implied usage is to retrieve details about a known function, but no 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.

programmability_describe_procedureProgrammability Describe ProcedureA
Read-onlyIdempotent

Describe procedure signature, return type, language, and definition body.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.
procedure_signatureYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

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, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context by naming what data is returned, but with an output schema also present, this is a modest behavioral addition rather than essential disclosure.

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 immediately names the operation and lists the key returned fields, making it efficient and easy to scan.

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 and read-only, annotations cover safety, the schema is fully described, and an output schema exists. The description indicates the returned information, so it is complete enough for correct invocation, though it lacks explicit sibling routing guidance.

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 all three parameters, including quoting guidance. The description adds no parameter-specific meaning beyond what the schema already provides, making the baseline score 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 ('Describe') and resource ('procedure'), and enumerates the fields returned: signature, return type, language, and definition body. This clearly separates it from listing tools such as programmability_list_procedures, though it does not explicitly contrast with programmability_describe_function.

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 name and description: use this to inspect details of a procedure. However, there is no explicit guidance on when to choose this over programmability_list_procedures or programmability_describe_function, and no stated prerequisites or exclusions.

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

programmability_describe_secretProgrammability Describe SecretA
Read-onlyIdempotent

Describe secret metadata, type (GENERIC_STRING, OAUTH2), and owner without exposing secret value.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.
secret_nameYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, idempotent, non-destructive), so the description earns credit for adding a meaningful guarantee: secret values are never exposed. It does not cover error behavior for nonexistent secrets or required privileges, which keeps it from a 5.

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, and every clause carries information (returned fields, type enum, value non-exposure). Zero waste.

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?

An output schema exists, so return-value explanation is unnecessary, and annotations cover safety. Purpose, scope, and the no-value guarantee are all present; only failure modes and permission requirements are unaddressed, which is minor for a read-only describe 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 three parameters (database, schema_name, secret_name) are documented with quoting guidance in the schema itself. The description adds no parameter-level meaning 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.

Purpose4/5

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

States a specific verb (describe) and resource (secret), and enumerates the key returned attributes: metadata, type with concrete enum values (GENERIC_STRING, OAUTH2), and owner. An agent can distinguish it from programmability_list_secrets, but the description does not name that sibling explicitly.

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 or when-not-to-use guidance, and no named alternative to prefer for listing secrets. The purpose is inferable from the verb, but the agent gets no routing help.

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

programmability_list_event_tablesProgrammability List Event TablesB
Read-onlyIdempotent

List event tables used for application logging, tracing, and SPCS telemetry. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=true, so the safety profile is covered. The description adds only return-shape context and says nothing about account-level scope (relevant given openWorldHint), result limits, or ordering.

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?

Two tight, front-loaded sentences; the core purpose leads. The second sentence spends space on return fields that an output schema already provides, so it isn't fully waste-free.

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?

With an output schema present, the return-field explanation is redundant rather than helpful. What an agent actually needs — how the filters combine, default scope when database/schema are omitted, and result size — is absent.

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

Parameters2/5

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

Schema coverage is a middling 67%, and the description adds no parameter guidance at all — notably the 'pattern' filter is undocumented in both places, and it never says that 'database'/'schema_name' restrict the listing. The schema's own descriptions instead talk about quoting conventions, which the description does not clarify.

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?

Names a specific verb and resource ("List event tables") and narrows the scope by explaining what event tables are for (logging, tracing, SPCS telemetry), which separates it from the general tables_list_tables sibling. It stops short of explicitly contrasting itself with that 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?

Usage is only implied: an agent can infer this is the right tool when it wants event/logging tables rather than ordinary tables. There is no explicit when-to-use, when-not-to-use, or named alternative (e.g., tables_list_tables) despite many overlapping siblings.

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

programmability_list_functionsProgrammability List FunctionsB
Read-onlyIdempotent

List user-defined functions (UDFs) in a database or schema. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnly=true, idempotent=true, destructive=false, so the safety profile is fully covered and the description does not contradict it. The added sentence about quoted_name/quoted_qualified_name is return-value detail that is largely redundant given an output schema exists. Nothing is said about pattern-matching semantics, result limits, or pagination.

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?

Two sentences, front-loaded with purpose. The second sentence is a bit tangled ('and, when the row has a database and schema, quoted_qualified_name') but still short and readable. Minor redundancy with the output 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 basics for a read-only list tool are present, and return values are covered by the output schema. Gaps remain around 'pattern' semantics and default listing scope, which are the pieces an agent actually needs to call this correctly.

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

Parameters2/5

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

Schema coverage is 67%, and the one undocumented parameter is 'pattern', whose filtering semantics (SQL LIKE? substring? case sensitivity?) are explained nowhere — neither in the schema nor in the description. The description adds no parameter meaning beyond what the schema already states for database and schema_name.

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 gives a specific verb and resource ('List user-defined functions (UDFs)') and states the scoping options (database or schema). It does not, however, distinguish itself from close siblings such as programmability_list_procedures or programmability_describe_function, so an agent must infer the boundary from the name 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?

'in a database or schema' hints that scope is optional, which is the main usage decision. There is no explicit guidance on when to reach for describe_function instead, or on what happens when both database and schema_name are omitted (presumably account-wide listing).

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

programmability_list_integrationsProgrammability List IntegrationsB
Read-onlyIdempotent

List external integrations (API, Storage, Notification, Security integrations). Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo
integration_typeNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds only limited extra context about returned row fields and does not add deeper behavioral details such as filtering behavior or external-integration implications.

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 in the first sentence. The second sentence about quoted_name is somewhat output-specific but not excessively 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 list tool with rich annotations and an output schema, so much of the context is already structured. However, the description leaves the two optional filtering parameters undocumented, which is a meaningful gap for correct invocation.

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

Parameters2/5

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

Both parameters have 0% schema description coverage. The description never mentions the pattern parameter and only indirectly hints at integration_type by listing integration categories; it does not explain filtering, matching, or expected values.

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 external integrations," and enumerates the integration categories. It is clear what the tool does, but it does not distinguish itself from the dedicated sibling programmability_list_notification_integrations or dynamic_tables_list_catalog_integrations.

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 when to prefer the notification-specific integration list. Usage is only implied by the word "List," and no filtering or prerequisite context is given.

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

programmability_list_notification_integrationsProgrammability List Notification IntegrationsC
Read-onlyIdempotent

List notification integrations configured for alerts, tasks, and cloud messaging (SNS, PubSub, Webhooks). Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, covering the safety profile. The description adds only return-field trivia (quoted_name, quoted_qualified_name), which is redundant given an output schema exists, and says nothing about filtering, pagination or scope behavior.

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?

Purpose is front-loaded in the first sentence, which is good, but the second sentence spends space explaining return columns already declared in the output schema while the single input parameter goes unexplained.

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 an output schema present, the description should focus on scope, siblings and the undocumented 'pattern' parameter, but it instead duplicates return-value detail. It leaves the one input parameter and the sibling disambiguation entirely unaddressed.

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

Parameters1/5

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

There is one parameter ('pattern') with 0% schema description coverage, and the description never mentions it, so an agent gets no indication of what a pattern filters on (name? qualified name? wildcard syntax?). This is the one place the description needed to compensate and it does not.

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 ('List notification integrations') and enumerates the kinds of integrations covered (alerts, tasks, cloud messaging, SNS/PubSub/Webhooks). However it never distinguishes itself from the closely-named sibling 'programmability_list_integrations', so an agent could confuse the two.

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 rather than 'programmability_list_integrations' or other list tools, and no mention that the pattern parameter can be used to filter. Usage is only implied by the name and description.

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

programmability_list_proceduresProgrammability List ProceduresC
Read-onlyIdempotent

List stored procedures in a database or schema. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the quoting-related column context, but spends it on return values that an output schema already documents, and discloses nothing about result size, pagination, or default scoping.

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 purpose is front-loaded in a short first sentence, which is good. The second sentence is a long dangling clause about return columns that duplicates the output schema and distracts from the missing parameter guidance.

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 an output schema present, the return-column sentence is largely redundant, and the description omits what an agent actually needs: how `pattern` filters, and whether an unscoped call enumerates every database/schema. The core purpose is clear but the call-shaping details are absent.

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

Parameters2/5

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

Schema coverage is 67% and the uncovered parameter is `pattern`, which the description never mentions. The description adds no filtering semantics (is pattern a LIKE/regex? case-sensitive?) and nothing about the consequences of leaving database or schema_name null.

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 with scope ("List stored procedures in a database or schema"), which distinguishes it from siblings like programmability_describe_procedure and programmability_list_functions. It does not explicitly name those siblings or contrast with them, 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?

There is no guidance on when to use this versus programmability_describe_procedure or programmability_list_functions, and no explanation of what happens when database/schema_name are omitted (all databases? current context?). "in a database or schema" weakly implies optional scoping but leaves the agent to infer it.

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

programmability_list_secretsProgrammability List SecretsB
Read-onlyIdempotent

List security secrets (API keys, OAuth credentials) stored in Snowflake. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds return-value context (quoted_name and quoted_qualified_name, including the conditional nature of the latter), which is useful but partly redundant given an output schema exists.

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?

Two sentences, front-loaded with the core purpose and with zero filler. The second sentence is dense but relevant and does not pad.

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?

Annotations and an output schema cover safety and return shape, but the undocumented `pattern` parameter leaves a real gap for an agent trying to filter results, and no sibling routing guidance is given in a namespace where describe_secret exists.

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

Parameters2/5

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

The description says nothing about the three parameters. Schema coverage is 67%: database and schema_name carry quoting guidance, but the `pattern` parameter — likely the primary filter — has no description in either the schema or the description, so the gap is not compensated.

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 ('List security secrets') and even enumerates what counts as a secret (API keys, OAuth credentials). It is clear what the tool does, though it does not explicitly differentiate itself from the sibling programmability_describe_secret.

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 versus programmability_describe_secret, or how to scope the listing. The list-vs-describe convention is only inferable from the tool names, not stated in the description.

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

programmability_list_sequencesProgrammability List SequencesB
Read-onlyIdempotent

List auto-increment sequences in a database or schema. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds that rows include quoted_name and quoted_qualified_name, but this is output detail rather than behavioral context such as permissions, pagination, or filtering 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 two sentences and front-loads the core purpose. The second sentence is somewhat dense and partly redundant with the output schema, but overall it remains compact.

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 has annotations and an output schema, which reduce the description's burden. However, it does not explain the pattern parameter or give usage guidance, so it is only minimally complete for a filtered list tool with three optional parameters.

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

Parameters2/5

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

Schema coverage is 67%, but the pattern parameter has no description in either the schema or the tool description. The database and schema_name parameter descriptions talk about quoting names rather than explaining their filtering meaning, and the tool description does not compensate for the undocumented pattern 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 gives a specific verb and resource: list auto-increment sequences, scoped to a database or schema. It is clear what the tool retrieves, though it does not explicitly differentiate itself from sibling list tools such as programmability_list_functions or tables_list_tables.

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 the listing scope but gives no explicit when-to-use guidance, no alternatives, and no conditions such as when to prefer database versus schema filtering. The agent must infer usage 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.

queries_begin_transactionQueries Begin TransactionA
Idempotent

Begin an explicit transaction on the active session.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already disclose readOnly=false, destructive=false, idempotent=true, and openWorld=true. The description adds only 'explicit' and 'active session' scope; it does not explain transaction lifecycle, locking, or what happens if a transaction is already active. With annotations covering the safety profile, this is minimal but acceptable 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?

A single front-loaded sentence with no wasted words. It communicates the operation and session scope immediately.

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 tool with an output schema and safety/idempotence annotations, the description states the essential session scoping and is sufficient for selection. Transaction lifecycle details, such as needing commit or rollback, are inferable from sibling tool names and the output schema, though they are not restated.

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 zero parameters, so the baseline is 4. The description adds no parameter meaning because none is needed, and the empty schema is complete.

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 ('Begin'), resource ('transaction'), and scope ('active session'). It distinguishes itself from commit/rollback siblings by the verb 'begin', but does not explicitly name or contrast them, so it falls short of the sibling-differentiation bar for 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 Guidelines3/5

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

Usage is implied: call this when an explicit transaction is needed on the active session. There is no guidance on when not to use it, prerequisites, or alternatives to an explicit transaction, leaving the agent to infer the workflow from sibling tools.

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

queries_cancel_queryQueries Cancel QueryA
Destructive

Cancel an active running Snowflake query by its Query ID. Requires confirmation.

NameRequiredDescriptionDefault
confirmNo
query_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and non-idempotency, so the safety profile is known. The description adds the confirmation requirement, which is genuinely useful context, but it leaves the mechanics ambiguous (does confirm=false fail the call or silently no-op?) and says nothing about irreversibility or partial cancellation.

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 zero filler; the action and target are front-loaded and the operational caveat follows 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?

An output schema exists, so return values need not be described, and annotations carry the destructiveness signal. For a destructive mutation with an undefined confirm parameter, though, the description should clarify the confirmation flow and whether cancellation is immediate or graceful.

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

Parameters2/5

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

Schema description coverage is 0% across two parameters. The description only covers query_id ('by its Query ID') and gestures at confirm with 'Requires confirmation' without stating that confirm must be set to true or what happens if it is left at the default false.

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 (Cancel), resource (an active running Snowflake query), and identifier (Query ID). This clearly distinguishes it from read-oriented siblings such as queries_query and queries_get_query_history.

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 'active running query' implies the usage context (cancelling in-flight work), but there is no explicit guidance on when to prefer this over alternatives, no prerequisites, and no statement of 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.

queries_commit_transactionQueries Commit TransactionA
Idempotent

Commit the current active transaction on the session.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already carry the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=true, openWorldHint=true), lowering the burden. The description adds nothing about the effect of committing — that it ends the transaction, persists changes, releases locks, or errors when no transaction is open — so it 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?

A single front-loaded sentence with zero filler; the action and its scope are stated immediately and nothing 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?

An output schema exists, so return values needn't be explained, and annotations cover safety. However, for a transaction-terminating tool the description omits relevant context such as error behavior when no transaction is active and confirmation that the transaction is closed — a minor but real gap.

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?

Parameter count is 0 with 100% schema coverage, so the baseline is 4. There are no parameters for the description to clarify, and it correctly implies the only implicit input is the session's active transaction.

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 (Commit) and resource (the current active transaction on the session), which is a clear, distinct operation from sibling tools like queries_begin_transaction and queries_rollback_transaction. It doesn't explicitly name or contrast those siblings, but the semantics are self-differentiating.

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 phrase 'current active transaction' — the agent can infer a transaction must already be open, but the description never states when to commit versus roll back, or what to do if no transaction is active. No alternatives or exclusions are given.

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

queries_execute_dmlQueries Execute DmlB
Destructive

Execute a data modification SQL statement (INSERT, UPDATE, DELETE, MERGE, CREATE). Requires confirmation.

NameRequiredDescriptionDefault
confirmNo
statementYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, idempotentHint=false, and openWorldHint=true, so the safety profile is covered structurally. The description adds only 'Requires confirmation', but never explains what confirmation means operationally (e.g. that confirm must be set true, or whether a dry-run occurs).

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 tight sentence with no filler; the destructive scope and the confirmation requirement are both 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?

An output schema exists, so return values need no prose. However, for a destructive, non-idempotent DML tool with 0% parameter documentation, the description leaves the confirm workflow and statement constraints unaddressed, which is a meaningful gap.

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

Parameters2/5

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

Schema description coverage is 0% and neither parameter is documented in the schema. The description alludes to the 'statement' parameter conceptually but never clarifies its format, and the 'confirm' boolean — critical for this destructive tool — is entirely unexplained.

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 (Execute) and resource (data modification SQL statement) and enumerates the statement classes (INSERT, UPDATE, DELETE, MERGE, CREATE). This clearly separates it from the read-oriented sibling queries_query, though it never names that sibling 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?

'Requires confirmation' hints at a prerequisite, but the description gives no explicit when-to-use vs when-not, and does not route the agent to queries_query for SELECT-type reads or to the transaction tools (begin/commit/rollback). Usage is only implied.

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

queries_get_query_historyQueries Get Query HistoryB
Read-onlyIdempotent

Retrieve recent query execution history for the current account/user.

NameRequiredDescriptionDefault
limitNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, openWorld, so the safety profile is covered and the bar is lower. The description adds the useful scoping fact that results are limited to the current account/user and are 'recent', but it discloses nothing about the retention window, result count behavior, or pagination, so the addition is modest rather than rich.

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?

One short, front-loaded sentence with no filler and the resource stated immediately. It is efficiently sized, though the brevity borders on under-specification rather than tightness.

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?

An output schema exists, so return values need not be explained, but for a history tool the description should still pin down what 'recent' means (retention window) and how 'limit' interacts with it. As written it is minimally viable but leaves real gaps an agent must guess at.

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

Parameters2/5

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

The single parameter 'limit' has 0% schema description coverage, and the description never mentions it, its default of 20, or any upper bound. With an undocumented parameter, the description fails to compensate for the schema gap; only the implied 'recent' framing hints at result sizing.

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 (Retrieve) and resource (query execution history) with a clear scope qualifier ('recent', 'current account/user'). However, it never distinguishes itself from adjacent read siblings such as queries_query or warehouses_get_warehouse_load_history, so an agent cannot route between them 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 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, no prerequisites, and no named alternative. 'Recent' implies some freshness window but the description never says when to reach for this versus running a query or pulling warehouse load history, leaving usage entirely to inference.

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

queries_get_query_operator_statsQueries Get Query Operator StatsB
Read-onlyIdempotent

Retrieve operator-level execution statistics and profiling data for a past Query ID.

NameRequiredDescriptionDefault
query_idYes

Output Schema

NameRequiredDescription

No output parameters

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, idempotentHint=true and destructiveHint=false, so the safety profile is covered without the description. The description does add that results are operator-level profiling data tied to a historical query, but it omits whether profiling must be enabled on the query or how long stats are retained — real behavioral gaps for a stats-retrieval 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?

A single front-loaded sentence with no filler; the action, the data returned, and the input scope are all present and nothing 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?

An output schema exists, so return values need not be described, and annotations cover the safety profile. What remains missing is eligibility context — how to obtain a valid Query ID and any conditions under which operator stats are unavailable — leaving the definition minimally adequate rather than 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 0%, so the description carries the burden for the single query_id parameter. It clarifies that the ID must refer to a past (already-executed) query, which adds genuine meaning beyond the bare string type, but no format or sourcing guidance (e.g., where to obtain the ID) is given.

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 (Retrieve) and a specific resource (operator-level execution statistics and profiling data), scoped to a past Query ID. It is clearly distinguishable from sibling read tools like queries_get_query_plan or queries_get_query_history, though it does not explicitly contrast itself 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 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 reach for this tool versus queries_get_query_plan or queries_get_query_history, nor any stated prerequisite (e.g., the query must have finished, profiling may need to be enabled). The phrase 'for a past Query ID' loosely implies a completed query but stops short of an instruction.

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

queries_get_query_planQueries Get Query PlanA
Read-onlyIdempotent

Generate the EXPLAIN execution plan for a SQL query without executing it.

NameRequiredDescriptionDefault
queryYes

Output Schema

NameRequiredDescription

No output parameters

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, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the valuable non-execution guarantee, but says nothing about permissions/context needed, whether arbitrary statement types are accepted, or failure behavior for invalid SQL.

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 action and resource, with the critical non-execution caveat appended. Zero 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 single-parameter read-only tool with rich annotations and an output schema, the description is nearly sufficient — return values need not be explained. Minor gaps remain around statement-type restrictions and error behavior, but nothing essential 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 0% for the single 'query' parameter, but the name is self-evident and the description makes clear it is a SQL query. No additional semantic detail (e.g., dialect limits, placeholder handling, multi-statement support) is provided.

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 ('Generate the EXPLAIN execution plan for a SQL query') with a clear constraint ('without executing it') that implicitly separates it from queries_query and queries_execute_dml. It does not name a sibling explicitly, so it falls just short of the top tier.

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 'without executing it' implies the usage scenario (inspecting a plan safely rather than running the query), but there is no explicit when-to-use, when-not-to-use, or named alternative such as queries_query. Usage is inferable rather than stated.

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

queries_queryQueries QueryB
Read-onlyIdempotent

Execute a SQL SELECT or read-only query on Snowflake and return structured rows with metadata.

NameRequiredDescriptionDefault
queryYes
max_rowsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds the SELECT/read-only restriction and that rows come back 'with metadata', but says nothing about permissions, result limits, or pagination behavior beyond what annotations and the output schema provide.

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 well-formed sentence that front-loads the verb and resource with no filler. It is appropriately sized, though it is terse enough to leave the parameter behavior unexplained.

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?

An output schema exists, so return values need no prose, and annotations cover the safety profile. However, with 0% parameter coverage and no mention of the max_rows cap or read-only enforcement, the description is not complete enough for an agent to invoke it confidently against the many DML/transaction siblings.

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

Parameters2/5

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

Schema description coverage is 0% for two parameters, and the description supplies no meaning for either. It never explains that `query` must be a single read-only SQL statement or what `max_rows` (default 100) controls, so the parameter gap is left entirely unaddressed.

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 (execute a SQL read-only query on Snowflake) and defines the scope as SELECT-only, which implicitly sets it apart from the sibling queries_execute_dml. It stops short of naming that sibling explicitly, so it is clear but not fully sibling-differentiated.

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: 'read-only' hints that writes belong to queries_execute_dml, but the description never states when to choose this tool over the DML, transaction (begin/commit/rollback), or query-history siblings. No exclusions or context are given.

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

queries_rollback_transactionQueries Rollback TransactionA
Destructive

Rollback the current active transaction on the session. Requires confirmation.

NameRequiredDescriptionDefault
confirmNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true, so the safety profile is largely covered. The description usefully adds the confirmation prerequisite (context the annotations do not carry), but says nothing about irreversibility or error behavior when no transaction is open.

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, and the core action is front-loaded ahead of the prerequisite.

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?

An output schema exists, so return values need no explanation, and the annotations cover the mutation risk. However, for a destructive transaction-control tool with an undocumented 'confirm' parameter, the description is thinner than it should be.

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?

One parameter with 0% schema description coverage, so the schema does nothing to explain 'confirm'. The sentence 'Requires confirmation' gestures at that parameter's purpose but never names it, states its boolean/default-false nature, or clarifies that confirm=true is what actually authorizes the rollback.

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 ('Rollback') and resource ('the current active transaction on the session'), so the operation is unambiguous. It does not differentiate itself from siblings such as queries_commit_transaction, which an agent might confuse it with.

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?

'Requires confirmation' gives a prerequisite for invocation, but the description never states when to use rollback versus commit_transaction or begin_transaction, nor what happens if no transaction is active.

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

recipes_account_usage_summaryRecipes Account Usage SummaryA
Read-onlyIdempotent

Composite recipe: Summary of warehouse compute credits and storage consumption over the past 7 days.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is covered structurally. The description adds one genuine behavioral fact beyond them: the window is fixed at the past 7 days, so no other range is queryable. It says nothing about what the composite recipe actually aggregates or any caveats, so a 3 is right.

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 padding. The resource and the time scope are front-loaded, and the 'Composite recipe' label signals the tool's nature immediately.

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 an output schema present, return values need not be described, and there are no parameters to document. The description supplies the two things an agent actually needs (what is summarized and the fixed window). It could go further by noting that this is a pre-baked multi-widget recipe with no user filters, but nothing essential 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?

The tool takes zero parameters, so the schema-neutral baseline of 4 applies. There is nothing for the description to clarify or compensate for on this dimension.

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 concrete resource and scope: warehouse compute credits and storage consumption over a fixed 7-day window. That resource is unique among the siblings, so an agent can tell it apart without opening a schema. It stops short of naming or contrasting a sibling, so it sits at a clear-but-not-differentiating 4.

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, no stated prerequisites, and no mention of alternatives. An agent must infer that it is the tool for a cost/usage overview. That inference is easy, but the description provides no routing help.

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

recipes_clone_table_recipeRecipes Clone Table RecipeA

Composite recipe: Clone table with Time Travel timestamp or statement ID in 1 call.

NameRequiredDescriptionDefault
at_or_beforeNo
source_tableYesQuote names that aren't all uppercase, exactly as list tools return them.
target_tableYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already disclose that this is a non-read-only, non-destructive, non-idempotent, open-world operation. The description adds that this is a composite recipe that accepts Time Travel timestamp or statement ID and performs the clone in one call, but it does not mention permissions, target-table existence requirements, 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.

Conciseness5/5

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

The description is a single front-loaded sentence with no wasted text. It communicates the core operation and distinguishing Time Travel capability 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?

An output schema exists, so return values need not be described, and annotations cover the mutation safety profile. However, for a clone operation the description omits operationally important context such as whether the target table must not already exist or what permissions are needed.

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 schema documents source_table and target_table quoting rules, while leaving at_or_before undocumented. The description compensates by explaining that at_or_before can be a Time Travel timestamp or statement ID, though it does not specify accepted formats or optionality.

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: 'Clone table' with Time Travel timestamp or statement ID in 1 call. It is distinguishable from generic cloning, but it does not explicitly name or compare against sibling tools such as tables_clone_table.

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 'with Time Travel timestamp or statement ID in 1 call', suggesting it is appropriate when a time-travel clone is needed and a single-call composite is preferred. However, there is no explicit when-to-use guidance, no exclusions, and no named alternative.

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

recipes_discover_schema_lineageRecipes Discover Schema LineageB
Read-onlyIdempotent

Composite recipe: Discover all tables and views in a schema along with their column definitions.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive and open-world, so the safety profile is covered. The description adds one useful behavioral fact — that this is a 'composite recipe' aggregating multiple lookups — but says nothing about scope when database/schema are omitted or about output volume for large schemas.

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, and the 'Composite recipe' prefix signals the aggregation nature immediately. It is arguably too terse for the ambiguity it leaves, but nothing in it 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?

An output schema exists, so return values need no explanation, and the safety profile is annotation-covered. What is missing is disambiguation from the numerous sibling listing/describe tools and from the horizon lineage tools, which matters given the name mismatch.

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 carry full schema descriptions (100% coverage), including the quoting rule, so the schema does the heavy lifting. The description contributes nothing beyond that baseline — e.g., it never explains that both parameters default to null and therefore fall back to the current session context.

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 (discover) and resources (all tables and views plus their column definitions) scoped to a schema, so the agent can tell roughly what it returns. It does not reconcile the name's 'lineage' framing with the actual metadata-listing behavior, nor distinguish itself from schemas_describe_schema or tables_list_tables.

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 composite over the granular siblings (schemas_list_schemas, tables_list_tables, tables_describe_table) or over the horizon lineage tools. The agent must infer that this is a convenience aggregation, and nothing states that both parameters are optional or what defaults apply.

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

recipes_export_query_to_stageRecipes Export Query To StageC

Composite recipe: Unload query results to a stage as Parquet or CSV files.

NameRequiredDescriptionDefault
queryYes
headerNo
file_formatNoTYPE = PARQUET
stage_locationYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already supply readOnlyHint=false, openWorldHint=true, idempotentHint=false and destructiveHint=false, so the safety profile is covered. The description confirms a write-to-stage operation but adds no context on overwrite behavior, required permissions, or execution prerequisites — the areas annotations do not clarify.

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, so it is efficient. It is terse to the point of under-specification, but the sentence itself wastes nothing.

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 composite, four-parameter write tool the one-sentence description is thin: no prerequisites, no destination/overwrite semantics, no parameter meaning. An output schema exists, so return values need not be explained, but the input-side gaps remain large.

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

Parameters2/5

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

Schema description coverage is 0% across four parameters. The description only hints at file_format ('Parquet or CSV') and does not explain query, stage_location, or header semantics, so the undocumented parameters remain opaque.

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: it unloads query results to a stage, and names the output formats (Parquet/CSV). The 'Composite recipe' prefix signals it is a multi-step orchestration, distinguishing it from the raw queries_* siblings, though no sibling is named directly.

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 when-to-use vs alternatives, no prerequisites (e.g., an active warehouse, an existing stage), and no exclusions. An agent cannot tell from the text when this recipe is preferable to running queries_query plus a manual unload.

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

recipes_health_checkRecipes Health CheckA
Read-onlyIdempotent

Composite recipe: Run health check on connection, active session, warehouse state, and credit consumption.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

The annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so the safety profile is covered. The description adds that this is a composite covering four distinct areas, which is useful scoping context, but nothing about return shape, cost, or execution 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 names the tool type and the four covered areas with zero filler. Nothing is wasted.

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 an output schema present (so return values need no explanation) and no parameters, the description supplies the essential scoping—what the health check spans. It is largely complete, only missing guidance on when to prefer it over sibling diagnostics.

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 takes zero parameters, so per the rubric the baseline is 4. There is nothing for the description to clarify beyond the absence of inputs.

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 (run a health check) and enumerates the four resources it covers: connection, active session, warehouse state, and credit consumption. An agent can tell this is a broad diagnostic/composite tool, though it doesn't sharply differentiate itself from other 'recipes_' siblings.

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 when-to-use guidance or alternatives are named. The word 'Composite recipe' implies it bundles several checks, but the description never says when an agent should reach for this versus narrower diagnostics like warehouses_list_warehouses or governance_get_current_context.

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

recipes_inspect_table_with_sampleRecipes Inspect Table With SampleB
Read-onlyIdempotent

Composite recipe: Describe table schema, row count, column types, and preview sample rows in 1 call.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
table_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
sample_rowsNo
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

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, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds the useful fact that this is a composite operation returning schema plus sample data. It doesn't state auth requirements, result size limits, or that the call may read actual row data from a live table, which matters for a tool with openWorldHint=true.

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 that names the composite operation before the details. No filler, though 'Composite recipe:' is slightly internal jargon that a first-time agent must parse. Efficient overall.

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?

An output schema exists and annotations cover safety, so the description needn't explain return values or read-only behavior. However, for a multi-parameter composite it leaves out parameter semantics (sample_rows count) and sibling differentiation, both of which an agent needs to choose and invoke it correctly.

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

Parameters2/5

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

Schema coverage is 75%, below the high threshold, so the description should compensate but says nothing about parameters. 'Preview sample rows' only hints at sample_rows, and neither the default count (5) nor the meaning of the count is clarified. The database/schema_name qualification described in the schema is not echoed or expanded in the description.

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 ('describe', 'preview') and resource ('table'), and enumerates what comes back: schema, row count, column types, sample rows. The 'Composite recipe ... in 1 call' framing signals it bundles two operations. It never names the siblings it replaces (tables_describe_table + tables_sample_table, or recipes_profile_table), so an agent must infer the distinction.

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 1 call' implies the tool is for when you want both schema and a sample together, but there is no explicit when-to-use, when-not-to-use, or named alternative. Nothing tells the agent whether to prefer this over calling tables_describe_table and tables_sample_table separately, or over recipes_profile_table.

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

recipes_profile_tableRecipes Profile TableB
Read-onlyIdempotent

Composite recipe: Profile table metadata, row count, and column inventory.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
table_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

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, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. 'Composite recipe' hints that this fans out into multiple queries, which is useful but not elaborated — no mention of whether it is more expensive than a single describe call, or what happens on a missing table. Adequate, 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.

Conciseness4/5

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

A single clause, front-loaded with the verb, with no filler. It is efficient, though the leading 'Composite recipe:' label spends words on internal taxonomy rather than agent-facing 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?

An output schema exists, so return values need not be explained, and annotations cover safety. What is missing is the distinction from the many profiling-adjacent siblings, which is the main thing an agent needs in this crowded namespace. Adequate but with a clear 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 itself documents all three parameters and the quoting convention. The description adds nothing about how database and schema_name default when null, which is the one genuinely ambiguous part. Baseline 3 applies when the schema carries the 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 names a specific verb (profile) and resource (table) and enumerates the outputs: metadata, row count, and column inventory. It is clear what the tool does, but it offers no differentiation from close siblings like tables_describe_table or recipes_inspect_table_with_sample. The term 'Composite recipe' is jargon an agent may not parse.

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 statement of when to use this versus tables_describe_table, tables_sample_table, or recipes_inspect_table_with_sample, all of which sit in the sibling list. No prerequisites, no exclusions, no cost or expense guidance. The agent must infer selection 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.

recipes_warehouse_scale_and_executeRecipes Warehouse Scale And ExecuteB
Destructive

Composite recipe: Safely scale up a warehouse, run a heavy query, and optionally restore previous size. Requires confirmation.

NameRequiredDescriptionDefault
queryYes
confirmNo
target_sizeYes
warehouse_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
restore_previous_sizeNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already flag destructiveHint=true and non-idempotent, and the description adds useful context: a temporary scale-up with optional restore of the previous size and a confirmation gate. It still doesn't explain why the operation is destructive (e.g., the query may contain DML), nor what confirm=false actually does — abort, dry-run, or proceed.

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 tight sentence with the operation sequence front-loaded and no filler. It is arguably too terse for a destructive five-parameter composite, but nothing in it is wasted.

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?

An output schema exists, so return values needn't be described. But for a destructive composite with five parameters at 20% schema coverage, missing detail on valid target sizes, query restrictions, and the semantics of confirm=false leaves an agent unable to invoke it confidently.

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

Parameters2/5

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

Schema coverage is only 20% (just warehouse_name), so the description must carry the rest. It hints at the meaning of restore_previous_size ('optionally restore previous size') and confirm ('requires confirmation'), but leaves target_size (valid size values) and query (statement type, multi-statement support) completely undefined.

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 concrete composite operation — scale a warehouse, run a heavy query, optionally restore size — which clearly separates it from single-purpose siblings like warehouses_resize_warehouse or queries_query. It does not name those siblings explicitly, but the 'composite recipe' framing makes the distinction obvious.

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 scenario (heavy query that needs a bigger warehouse) is implied by 'run a heavy query' plus 'scale up', and the prerequisite 'Requires confirmation' is stated. However, it never says when to prefer this over calling warehouses_resize_warehouse and queries_query separately, nor what happens if the query fails mid-composite.

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

schemas_clone_schemaSchemas Clone SchemaB

Create a zero-copy clone of a schema.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
source_schemaYesQuote names that aren't all uppercase, exactly as list tools return them.
target_schemaYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

With annotations already declaring readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, the bar is lower, and 'zero-copy' does add real value by signaling a metadata-only operation with no data duplication. However, the description says nothing about failure when the target already exists (consistent with the non-idempotent hint), permission requirements, or what storage the clone inherits.

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 wasted words. It is efficient, though its terseness borders on under-specification for a mutating 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?

The rich structured data (full schema coverage, an output schema, and four annotations) carries most of the load, so the thin description is not fatal. Still, for a schema-mutating clone the description omits when to use it, the target-must-not-exist precondition, and cross-database 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 schema already documents database, source_schema and target_schema including the quoting convention, which sets the baseline at 3. The description adds no further detail on what a target_schema name means for the clone or whether the database parameter scopes both source and target.

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') with a specific resource ('a zero-copy clone of a schema'), which clearly separates it from schemas_create_schema, schemas_drop_schema, and the sibling clone tools like tables_clone_table. It does not explicitly name a sibling to differentiate, but the operation 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 versus schemas_create_schema (fresh empty schema) or databases_clone_database, and no prerequisites such as whether the target schema must be absent. The agent must infer the usage context entirely.

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

schemas_create_schemaSchemas Create SchemaC

Create a new schema inside a specified database.

NameRequiredDescriptionDefault
nameYesQuote names that aren't all uppercase, exactly as list tools return them.
commentNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
if_not_existsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already declare the write/idempotency/open-world profile, so the description only needs to add context — but it adds none. Notably it never explains that if_not_exists defaults to true, meaning the call silently no-ops on an existing schema, which is a behavior an agent must know before invoking a creation tool.

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?

One short, front-loaded sentence with no waste — but it is minimal rather than efficient, carrying no information that the name and title don't already convey.

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 mutating creation tool with 4 parameters, 50% schema coverage, and an undocumented existence-check default, the description is too thin. An output schema exists so return values needn't be described, but the behavioral and parameter gaps remain.

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

Parameters2/5

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

Schema coverage is only 50%: 'comment' and 'if_not_exists' are undocumented in both schema and description. The description's 'inside a specified database' weakly maps to the database param but gives no naming/quoting rules, no default for if_not_exists, and no mention of the comment field, so it does not compensate for the coverage gap.

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 ('Create a new schema') plus scope ('inside a specified database'), which distinguishes it from schemas_drop_schema, schemas_clone_schema, and databases_create_database. It stops short of naming a sibling or stating a differentiator explicitly.

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, no prerequisites (e.g., required privileges on the parent database), and no pointer to alternatives such as schemas_clone_schema when copying an existing schema. Only an implied 'call this to create' reading is available.

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

schemas_describe_schemaSchemas Describe SchemaA
Read-onlyIdempotent

Describe schema properties, owner, and retention settings.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

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, idempotentHint=true and destructiveHint=false, so safety is covered. The description adds a hint at the returned content (owner, retention settings), but with an output schema present that duplicates structured data rather than adding behavior such as error handling 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.

Conciseness4/5

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

A single front-loaded sentence with no filler; the resource and the salient returned fields come first. It is short enough that nothing is wasted, though it stops just short of the routing information that would make the brevity fully efficient.

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 two-parameter describe tool with full schema coverage and an output schema, the essentials are present: what is described and what the response broadly contains. Only cross-tool routing and failure behavior are absent, which is 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%, and both parameters already carry the quoting guidance ('Quote names that aren't all uppercase'). The description contributes nothing about database vs schema_name or default behavior, 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 pairs the specific verb 'Describe' with the resource 'schema' and even enumerates the payload (properties, owner, retention settings), which separates it from schemas_list_schemas. It does not explicitly name sibling describe tools (databases_describe_database, tables_describe_table), so differentiation comes from the 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 Guidelines3/5

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

Usage is only implied by the 'describe' verb: an agent infers it should be called when per-schema detail is needed. There is no statement about when to prefer this over schemas_list_schemas or databases_describe_database, and no note that schema_name must come from a list call first.

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

schemas_drop_schemaSchemas Drop SchemaB
Destructive

Drop a schema in Snowflake. Requires confirmation flag.

NameRequiredDescriptionDefault
nameYesQuote names that aren't all uppercase, exactly as list tools return them.
confirmNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true, so the safety profile is carried. The description adds one genuinely useful behavioral fact — that a confirmation flag is needed to proceed — but omits whether the drop is CASCADE (destroying contained tables) and whether it is recoverable via schemas_undrop_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?

Two short sentences with the action front-loaded and no filler. The confirmation sentence is terse to the point of ambiguity (required? defaulted?), slightly under- rather than over-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?

Output schema and annotations cover the return shape and the destructive nature, so the description needn't repeat those. However, for an irreversible-seeming destructive operation with a sibling undrop tool, the missing note on cascade behavior and recoverability leaves an agent without information it needs before calling.

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 67%; name and database are documented in the schema, while confirm has no schema description. The description partially compensates by signaling that confirmation is mandatory, but doesn't state the behavior when confirm is false (error vs. dry-run) or why database is optional (current connection context).

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 (drop a schema) scoped to Snowflake, which is clear on its own. It does not distinguish itself from the relevant siblings such as schemas_undrop_schema (recovery) or databases_drop_database (parent scope), nor does it say what happens to contained tables/views.

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?

'Requires confirmation flag' implies a precondition but never states when to use this versus undrop, or that it should be used only after verifying the schema contents. There is no explicit when-to-use or when-not-to-use guidance.

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

schemas_list_schemasSchemas List SchemasB
Read-onlyIdempotent

List all schemas within a specific database or the current active database. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

The annotations already establish that this is a safe, read-only, idempotent, open-world listing operation. The description adds the scope behavior and some return-field details, but it does not describe pagination, permissions, limits, or other operational behavior 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.

Conciseness4/5

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

The description is two short sentences and front-loads the main purpose. The second sentence about quoted_name and quoted_qualified_name is useful but somewhat redundant given the output schema, so it is not perfectly economical.

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?

With annotations and an output schema present, much of the behavioral and return-value detail is already structured elsewhere. The main remaining gap is that 'pattern' is entirely unexplained in both schema and description, which is a meaningful omission for a two-parameter listing tool.

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

Parameters2/5

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

Schema coverage is only 50%, and the description does not explain the 'pattern' parameter at all. It does add meaning for 'database' by saying it can be omitted to use the current active database, but this does not fully compensate for the undocumented pattern filter.

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 gives a clear verb and resource: listing schemas, scoped to a database or the current active database. It does not explicitly distinguish itself from nearby siblings such as databases_list_databases or schemas_describe_schema, but the operation is otherwise 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?

It clarifies that the database argument is optional and defaults to the current active database, which is useful usage context. However, it does not say when to use this versus schemas_describe_schema or databases_list_databases, and it gives no exclusions.

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

schemas_undrop_schemaSchemas Undrop SchemaB

Restore a recently dropped schema using Time Travel.

NameRequiredDescriptionDefault
nameYesQuote names that aren't all uppercase, exactly as list tools return them.
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already disclose that this is a non-read-only, non-destructive, non-idempotent, open-world operation. The description adds the important behavioral detail that restoration uses Time Travel, but omits retention windows, permissions, and what happens to conflicting objects; with annotations covering the safety profile, 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.

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 efficient, though its extreme brevity leaves no room for additional structural guidance.

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 output schema and annotations carry return-shape and safety information, so those need not be repeated. However, for a restore operation the description should do more to explain Time Travel retention limits, required permissions, and effects on existing schemas; as written it is minimally 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 the required 'name' and optional 'database' parameters are already documented in the schema. The description adds no additional parameter meaning, which is acceptable at baseline given the high 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 gives a specific verb ('Restore') and resource ('schema') plus the mechanism ('Time Travel'). It clearly distinguishes itself from schemas_drop_schema and schemas_create_schema, though it does not explicitly contrast with databases_undrop_database or tables_undrop_table.

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 'recently dropped' implies the condition under which the tool applies, but no explicit alternatives or exclusions are given. An agent can infer this is for reversing a recent drop, but it is not told when to prefer it over creating a new schema or how 'recently' is bounded.

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

stages_create_stageStages Create StageC

Create an internal named stage in Snowflake.

NameRequiredDescriptionDefault
commentNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
stage_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.
if_not_existsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the agent knows this is a non-destructive, non-idempotent mutation. The description adds the meaningful qualifier 'internal' (Snowflake-internal storage, not an external stage), but it omits required privileges, the effect of if_not_exists defaulting to true, and what happens on name collision. Modest added value over annotations.

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?

A single front-loaded sentence with no filler, so it is efficient. But it is under-specified rather than concise — the brevity comes at the cost of content an agent needs for a multi-parameter create operation.

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?

An output schema exists, so return values need not be described. However, for a creation tool with a hierarchical target (database/schema/stage_name), a defaulted if_not_exists flag, and only 60% schema coverage, the description omits where the stage is created, what 'internal' excludes, and the idempotency implications. Significant gaps remain for the operation's complexity.

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

Parameters2/5

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

Schema description coverage is only 60%, so the description must compensate, yet it mentions no parameters at all — not if_not_exists (defaulting to true, which materially changes behavior), not comment, not database/schema scoping. The only semantic hint, 'internal', does not map to any parameter and leaves the 40% undocumented gap entirely unaddressed.

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) and resource (internal named stage in Snowflake), which cleanly separates it from stages_list_stages, stages_describe_stage, and stages_drop_stage in the sibling list. It does not explicitly name or contrast against those siblings, but the verb+resource pair 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 versus stages_list_stages/stages_describe_stage, no preconditions (e.g., target database/schema must exist, privileges required), and no mention of external stages as an alternative concept. The agent must infer all of this.

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

stages_describe_stageStages Describe StageB
Read-onlyIdempotent

Describe stage location URL, storage integration, and file format properties.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
stage_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

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, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds that it surfaces location URL, storage integration, and file format properties, but says nothing about permissions needed or whether describe fails on non-existent stages. With annotations carrying the behavioral burden, 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.

Conciseness4/5

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

A single, front-loaded sentence that names the operation and the properties it exposes, with no filler. It is arguably under-specified rather than bloated.

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?

An output schema exists, so return-value detail is not required, and the parameter schema is fully documented. What is missing is the contextual 'when' — how this differs from sibling list/describe tools for stages — which leaves the definition minimally viable rather than 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 all three parameters (database, schema_name, stage_name) are documented in the schema itself, including the uppercase-quoting convention. The description adds no extra parameter meaning beyond that 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?

Specific verb ('Describe') plus resource ('stage'), and it enumerates the returned properties (location URL, storage integration, file format), which is more than a tautology. It does not explicitly contrast with stages_list_stages or stages_list_stage_files, so an agent must infer the 'detail vs list' distinction from the verb 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?

There is no when-to-use guidance, no prerequisite for the fully-qualified name (database/schema), and no mention of when to call stages_list_stages or stages_list_stage_files instead. Usage is only inferable from the word 'Describe'.

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

stages_drop_stageStages Drop StageA
Destructive

Drop a stage in Snowflake. Requires confirmation.

NameRequiredDescriptionDefault
confirmNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
stage_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false and idempotentHint=false, so the safety profile is known. The description adds one genuinely new behavioral fact — that a confirmation flag must be supplied — but says nothing about irreversibility, what happens to files still in the stage, or required ownership.

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, zero waste, with the operation front-loaded and the precondition second. Nothing redundant with the title or 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?

An output schema exists, so return values need not be explained, and annotations carry the destructive flag. For a destructive DDL operation on an object that can hold data files, the description is still thin: it does not state irreversibility or what is lost along with the stage.

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 75% and the three name parameters are documented with the quoting rule. The lone undocumented parameter, confirm, is only obliquely covered by "Requires confirmation" — the description never states that it must be set to true or what happens when it is false. 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?

States a specific verb and resource ("Drop a stage in Snowflake"), which unambiguously separates it from stages_list_stages, stages_describe_stage and stages_create_stage. It does not, however, explicitly contrast itself with any sibling or note that no undrop counterpart exists.

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?

"Requires confirmation" gives an implied precondition for invoking it, which is useful. But there is no guidance on prerequisites (ownership/privileges), when not to drop, or what to do instead if the stage must be preserved.

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

stages_list_stage_filesStages List Stage FilesB
Read-onlyIdempotent

List files inside a Snowflake stage location (e.g. '@MY_STAGE/path/').

NameRequiredDescriptionDefault
patternNo
stage_locationYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations fully declare the safety profile (readOnly, idempotent, non-destructive, openWorld), so the description only needs to add context. It contributes the '@MY_STAGE/path/' syntax hint but discloses nothing about pagination, result limits, permission requirements, or how patterns affect results.

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 and a useful inline example. It is efficient, though arguably too terse for a tool with an undocumented second parameter.

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?

An output schema exists, so return values need not be explained, and the required parameter is illustrated. However, with 0% schema coverage the undocumented 'pattern' parameter and the absence of any usage routing leave a meaningful gap for a two-parameter tool.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry parameter meaning. It clarifies the format of stage_location with an example but says nothing about the 'pattern' parameter — not its syntax (glob vs regex), behavior, or default — leaving half the interface undocumented.

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 gives a specific verb and resource ('List files inside a Snowflake stage location') and includes a concrete path example, making it immediately distinguishable from stages_list_stages and stages_remove_stage_file. It stops short of explicitly naming a sibling to avoid, so it lands at 4 rather than 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 use this tool versus stages_list_stages (list stages) or stages_remove_stage_file (delete a file), nor any stated prerequisites such as required privileges or an active session/connection. Usage must be inferred 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.

stages_list_stagesStages List StagesB
Read-onlyIdempotent

List internal and external stages available in the active database or schema. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already establish this as a read-only, idempotent, non-destructive listing, so the description carries a lighter burden. It adds the useful detail that rows include quoted_name and quoted_qualified_name, but since an output schema exists this is partly redundant, and it omits filtering/pagination 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?

Two sentences, front-loaded with the core purpose, with no filler. The second sentence about quoted columns is slightly tangential given an output schema already exists, keeping it from a 5.

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 zero-required-parameter listing tool with annotations and an output schema, the essentials are present. The gaps are the unexplained 'pattern' parameter and any statement of how filtering or scope resolution works, which matter for correct invocation.

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

Parameters2/5

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

The description says nothing about any of the three parameters, and the undocumented 'pattern' parameter (the one with no schema description) is exactly where explanation is needed. With only 67% schema coverage and a cryptic note on database/schema_name, the description fails to compensate.

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 gives a specific verb and resource ('List internal and external stages') plus a scope ('active database or schema'), which clearly separates it from siblings like stages_list_stage_files and stages_describe_stage. It stops short of naming an alternative directly, so it lands at 4 rather than 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 explicit guidance on when to use this versus stages_describe_stage or stages_list_stage_files; the 'active database or schema' phrasing only weakly implies context. An agent must infer the selection criteria from sibling names alone.

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

stages_remove_stage_fileStages Remove Stage FileB
Destructive

Remove a file from a stage location. Requires confirmation.

NameRequiredDescriptionDefault
confirmNo
stage_file_pathYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true, so the destructiveness is covered. The description adds 'Requires confirmation', which is genuinely useful context not present in annotations or schema, but it is vague about whether confirm must be set to true and what happens otherwise.

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?

Two short, front-loaded sentences with no filler. The terseness is appropriate, though the second sentence sacrifices precision for 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 destructive, non-idempotent file-removal tool, the confirmation gate is flagged and annotations plus an output schema cover much of the rest. However, the confirmation mechanics and path format remain unspecified, which are exactly the details an agent needs before calling this destructive operation.

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

Parameters2/5

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

Schema coverage is 0%, so the description must carry parameter meaning. It hints at the 'confirm' parameter via 'Requires confirmation' but never explains stage_file_path syntax (e.g., stage-qualified path format) or the exact semantics of confirm, leaving half the parameters undocumented.

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 ('Remove a file from a stage location'), which is clear and distinct from sibling tools like stages_drop_stage (drops the stage itself) and stages_list_stage_files. It stops short of explicitly naming those siblings, but the operation 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?

'Requires confirmation' gestures at a precondition but gives no guidance on when to choose this tool over stages_drop_stage or other stage operations, and no context on how the confirmation requirement should be satisfied.

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

streams_create_streamStreams Create StreamC

Create a CDC stream on a table or view.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
on_tableYesQuote names that aren't all uppercase, exactly as list tools return them.
append_onlyNo
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.
stream_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
if_not_existsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, but the description adds nothing beyond that: it doesn't explain that append_only changes semantics, that if_not_exists defaults to true (so creation may silently no-op), or what openWorld behavior means for an external object. For a write tool with zero added context, this 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.

Conciseness3/5

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

One sentence with zero waste and the verb front-loaded, but it is under-specified rather than efficient — the brevity comes from omission, not from tight editing of useful content.

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?

An output schema exists so return values needn't be described, but for a 6-parameter creation tool the description omits identifier quoting rules, the meaning of append_only, and the if_not_exists default behavior. An agent would have to infer these from the schema alone.

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

Parameters2/5

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

Schema coverage is 67%, and the two undocumented parameters (append_only, if_not_exists) are exactly the ones with non-obvious behavioral impact. The description does not mention any parameter, quote/identifier semantics, or the append-only choice, so it fails to compensate for the coverage gap.

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 CDC stream") and names the target object types (table or view), so an agent can see this is the creation counterpart to streams_list_streams, streams_describe_stream and streams_drop_stream. It does not explicitly call out those siblings, but the resource 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 create a stream versus using dynamic tables, no prerequisites (table must exist, privileges required), and no mention of the sibling stream tools. Only the resource name implies usage.

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

streams_describe_streamStreams Describe StreamA
Read-onlyIdempotent

Describe stream metadata, source table, and stale status.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.
stream_nameYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

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, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered without the description. The mention of stale status adds a bit of domain context, but nothing is said about permissions, behavior when the stream doesn't exist, or that omitted database/schema fall back to the current context. With a full output schema present, return content did not need restating.

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. Nothing is padded and the operational content comes first.

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?

Complexity is low, annotations cover the safety profile, the schema fully documents parameters, and an output schema exists, so the description does not need to explain return values. What's missing is only the surrounding workflow context — that the stream must exist and how names are discovered — which is a minor gap for a simple describe 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 three parameters (including the quoting/uppercase convention) are already documented in the schema. The description adds no parameter meaning 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.

Purpose4/5

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

The description uses a specific verb (Describe) with a specific resource (a stream) and enumerates the returned facets: metadata, source table, and stale status. An agent can distinguish it from streams_list_streams or streams_drop_stream by the verb alone, though no sibling is named 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?

There is no explicit when-to-use or when-not-to-use guidance, and no alternatives are named (e.g., 'call streams_list_streams first to find the name' or 'use streams_read_stream_changes to consume data'). Usage is only implied by the describe-vs-list naming convention.

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

streams_drop_streamStreams Drop StreamB
Destructive

Drop a stream. Requires confirmation.

NameRequiredDescriptionDefault
confirmNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.
stream_nameYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, idempotentHint=false, and openWorldHint=true, so the safety profile is largely carried by structured data. The description's 'Requires confirmation' adds real value by signaling a two-step gate the agent must satisfy. However, it omits the important behaviors: whether drop is permanent, what happens to downstream consumers, and whether the operation can be recovered.

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?

Two short sentences, front-loaded with the action, with no filler. It is minimal but not padded, and the confirmation constraint is placed where it will be read.

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 destructive, non-idempotent operation on a 4-parameter tool, and the description does not address irreversibility, cascade effects, or the confirm-flag mechanics, even though an output schema exists so return values need no explanation. For a drop tool, that leaves meaningful behavioral 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 75%, with quoting guidance already provided for database, schema_name, and stream_name. The one undocumented parameter is 'confirm' (boolean, default false), and 'Requires confirmation' only loosely implies that confirm=true must be passed. Baseline 3 applies since the schema does most of the work.

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 ('Drop a stream'), which is unambiguous and clearly distinguishable from siblings streams_create_stream, streams_list_streams, streams_describe_stream, and streams_read_stream_changes. It does not explicitly name an alternative or scope, but the purpose is not in doubt.

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?

Only 'Requires confirmation' is offered as guidance, which hints at the confirm flag rather than explaining when to use this tool. There is no mention of preconditions (e.g., checking the stream exists), no warning that the operation is irreversible, and no pointer to a safe alternative such as streams_describe_stream before dropping.

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

streams_list_streamsStreams List StreamsB
Read-onlyIdempotent

List table/view streams in a database or schema. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is fully covered. The description adds row-shape detail (quoted_name, quoted_qualified_name), which is mild value but largely redundant with the existing output schema, and it says nothing about permissions, result limits, or cross-database behavior for an openWorldHint 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?

Two sentences, front-loaded with purpose, with no filler. The second sentence spends space on return-field detail that the output schema already carries, which is the only 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?

With annotations covering safety and an output schema covering return values, the description is adequate for a simple list tool. However, it leaves the 'pattern' parameter unexplained and gives no hint about result volume or how to move from listing to describing, which an agent would need for correct sequencing.

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?

Coverage is 67%, so the baseline is 3. The description echoes the database/schema scoping that the schema already documents, and never explains the 'pattern' parameter, which is undocumented in both places. No additional semantics are contributed 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 first sentence gives a specific verb and resource ('List table/view streams') plus scope ('in a database or schema'), which clearly separates it from streams_describe_stream and streams_read_stream_changes. It stops just short of naming a sibling or stating how it differs from streams_create_stream/drop_stream, but the resource 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 Guidelines3/5

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

Optional scoping by database or schema is implied by the phrasing and by the all-optional parameters, but there is no explicit when-to-use guidance, no exclusions, and no pointer to streams_describe_stream for details or streams_read_stream_changes for consuming change data. Usage is inferable but not stated.

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

streams_read_stream_changesStreams Read Stream ChangesB
Read-onlyIdempotent

Query unconsumed CDC changes recorded in a stream (default 10 rows).

NameRequiredDescriptionDefault
limitNo
stream_nameYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

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, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is covered. The description adds the default row cap, which is useful. However, the single most important behavior for a CDC stream reader — whether and when reading marks changes as consumed (transaction/commit semantics) — is left entirely implicit, which is a meaningful omission for a tool whose whole purpose is consuming change rows.

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 resource and the default row count both arrive before any qualifier. Nothing in it is redundant to the point of waste.

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?

An output schema exists, so return values need not be described, and the annotations carry the read-only/idempotency story. What is missing is the consumption model — whether rows are re-readable, whether a transaction must commit for changes to be consumed, and how this pairs with streams_describe_stream — which matters for correctly sequencing calls.

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 50%: stream_name is documented in the schema, but limit is not, so the description's '(default 10 rows)' partially compensates for that gap. It still doesn't say whether limit is a hard cap, a maximum the server honors, or whether it can be raised, so the compensation is incomplete.

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 (query) and a specific resource (unconsumed CDC changes in a stream), and names the default row cap, so an agent knows this reads change data rather than metadata. It is distinguishable from streams_describe_stream and streams_list_streams by the word 'changes', though it never names those siblings to reinforce the 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?

There is no explicit statement of when to call this versus streams_describe_stream or streams_list_streams, and no preconditions (privileges, whether a stream must be created first). The word 'unconsumed' implies the use case but the agent must infer it.

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

tables_clone_tableTables Clone TableB

Create a zero-copy clone of an existing table.

NameRequiredDescriptionDefault
source_tableYesQuote names that aren't all uppercase, exactly as list tools return them.
target_tableYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, so the safety profile is largely covered. The description adds the meaningful behavioral fact that the clone is zero-copy (no data duplication at creation), but omits what happens on target-name collision, whether the clone is independently writable, and that repeated calls will not be idempotent.

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; the key distinguishing property appears immediately. It is arguably too terse rather than padded, so conciseness itself is strong.

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?

Output schema exists and both parameters are fully documented, so the description need not explain return values. However, for a create-style operation the description leaves out preconditions (target must not exist), source-vs-clone dependency semantics, and failure modes—context an agent needs 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%, and the schema itself documents the quoting convention for both source_table and target_table. The description adds nothing about parameters, but with full schema coverage 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?

Specific verb plus resource ("Create a zero-copy clone of an existing table") that clearly identifies the object type and the distinguishing characteristic (zero-copy) versus a plain table creation. It does not, however, differentiate itself from nearby siblings such as tables_create_table, recipes_clone_table_recipe, or the analogous schemas_clone_schema / databases_clone_database.

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 pick this over tables_create_table or recipes_clone_table_recipe, and no prerequisites are stated—e.g. that the target must not already exist, whether the source must be accessible, or any edition/privilege requirements. The agent must infer all selection logic 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.

tables_create_tableTables Create TableC

Create a table in Snowflake with specified column definitions SQL.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
table_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
columns_sqlYes
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.
if_not_existsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

The description merely states the action. Since the annotations already specify the mutation nature (readOnlyHint: false, destructiveHint: false), the description adds minimal unique behavioral context beyond restating the name.

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 highly concise, consisting of a single sentence that front-loads the primary action and target resource efficiently.

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?

As a high-privilege mutation tool for creating infrastructure objects, the description is incomplete. It does not warn about potential risks of duplicate names, or constraints on the required SQL syntax, despite annotations providing basic safety hints.

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 mentions 'specified column definitions SQL,' which provides context for the columns_sql parameter. However, given that schema description coverage is only 60%, the description does not do enough to compensate for the missing definitions of the other 40% of 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?

Thedescription clearly identifies the action ('Create a table') and the environment ('Snowflake'). It is specific and directly relates to 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 Guidelines1/5

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

The description offers absolutely no guidance on when to use this tool versus alternatives (e.g., tables_clone_table or tables_describe_table). It lacks any contextual exclusions or prerequisites.

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

tables_describe_tableTables Describe TableB
Read-onlyIdempotent

Describe column definitions, data types, nullability, and primary keys for a table or view.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
table_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

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, idempotentHint=true and destructiveHint=false, so the safety profile is covered and the description only needs to add context. The enumeration of returned metadata (types, nullability, keys) adds some value, but since an output schema exists it is largely redundant, and nothing is said about permissions, visibility of objects the user cannot access, or cost/latency of the lookup.

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 verb and the resource and lists the return payload in a compact clause. There is no filler or repetition.

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 an output schema covering return values and annotations covering safety, the description is nearly complete for a simple metadata-read tool. The remaining gap is qualification semantics (how database, schema_name and table_name combine) and the boundary against DDL/sample alternatives, but nothing essential to correct invocation 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 of database/table_name/schema_name already carries the quoting guidance, so the baseline is 3. The description adds nothing about parameter semantics — in particular it does not explain the database/schema qualification relationship or whether schema_name defaults to the session schema.

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

Purpose4/5

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

States a specific verb ('describe') and resource ('table or view') and enumerates exactly what metadata is returned: column definitions, data types, nullability, primary keys. An agent can immediately tell it is a metadata-read tool, though it does not distinguish itself from nearby siblings such as tables_get_table_ddl or recipes_inspect_table_with_sample, which plausibly surface overlapping 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 explicit when-to-use or when-not-to-use guidance and no alternative named. The phrase 'for a table or view' only weakly implies scope (it covers views as well as tables), leaving the agent to infer why it would pick this over tables_get_table_ddl or databases_get_database_ddl.

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

tables_drop_tableTables Drop TableB
Destructive

Drop a table in Snowflake. Requires confirmation flag.

NameRequiredDescriptionDefault
confirmNo
table_nameYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

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, openWorldHint=true, and non-idempotent behavior, so the safety profile is covered structurally. The description adds the confirm-flag requirement, which is valuable, but omits whether the drop is recoverable via undrop, whether dependent objects cascade, and what permissions are needed.

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?

Two short sentences with no filler, and the core action is front-loaded. The second sentence is a compressed prerequisite rather than wasted space.

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?

An output schema exists so return values need no explanation, but for a destructive, non-idempotent mutation the description leaves out consequence details an agent would want (recoverability, cascade behavior, permission requirements). Minimum viable rather than 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?

At 50% schema coverage, the schema documents table_name quoting but leaves the confirm boolean undocumented. The description partially compensates by stating confirmation is required, though it doesn't say a false/default value causes failure versus a no-op.

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 ('Drop a table in Snowflake'), which is clearly distinct from siblings like tables_truncate_table, tables_undrop_table, and tables_create_table. It does not explicitly name the adjacent alternatives, 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 Guidelines3/5

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

'Requires confirmation flag' gives one concrete prerequisite for invoking it, which is real guidance. However, there is no statement of when to prefer truncate vs drop, no mention of the undrop recovery path, and no conditions for when dropping is inappropriate.

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

tables_get_table_ddlTables Get Table DdlB
Read-onlyIdempotent

Retrieve the exact CREATE OR REPLACE TABLE/VIEW DDL definition for an object.

NameRequiredDescriptionDefault
object_nameYes
object_typeNoTABLE

Output Schema

NameRequiredDescription

No output parameters

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, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that the returned content is an exact CREATE OR REPLACE statement, which is useful, but says nothing about permissions needed, whether the object must exist, or error behavior for missing objects.

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 action and the return artifact with no filler. Nothing can be trimmed without losing 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?

An output schema exists, so return-value structure need not be explained. However, for a tool with 0% parameter description coverage and a broad sibling set, the description leaves naming conventions, object_type semantics, and prerequisites unstated.

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 0%, so the description carries the burden. It partially compensates by implying the object_type values (TABLE/VIEW) and that a single object is targeted, but gives no guidance on object_name format (e.g., fully qualified database.schema.name) or the default of object_type.

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 (Retrieve) and resource (the exact CREATE OR REPLACE TABLE/VIEW DDL definition) for an object. It is distinguishable from tables_describe_table and databases_get_database_ddl by returning DDL rather than column metadata or database-level DDL, though it does not name those siblings explicitly.

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 statement of when to use this tool versus alternatives such as tables_describe_table, tables_list_tables, or databases_get_database_ddl. The use case (reconstructing an object's definition) must be inferred entirely from the verb.

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

tables_list_tablesTables List TablesB
Read-onlyIdempotent

List tables in a database schema with row counts and bytes. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds useful detail about row counts, bytes, and quoted name fields, but does not discuss permissions, large-result behavior, or how to control scope beyond the schema parameters.

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 two front-loaded sentences with little waste. The second sentence spends space on output-field details that may duplicate the output schema, but it is still concise.

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 list tool with annotations and an output schema, the description covers the basic purpose and some returned fields. However, it omits pattern behavior, sibling differentiation, and any usage context needed to choose this tool over alternatives like tables_list_views.

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

Parameters2/5

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

Schema description coverage is 67%, and the 'pattern' parameter is undocumented in both schema and description. The description does not explain pattern matching, optional database/schema filtering, or defaults, so it does not compensate for the remaining parameter ambiguity.

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: 'List tables in a database schema with row counts and bytes.' It also states extra returned fields. It does not explicitly distinguish itself from siblings such as tables_list_views or tables_describe_table, 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 implies a listing use case but provides no explicit when-to-use guidance, no prerequisites, and no alternatives to choose between. Sibling tools like tables_list_views and tables_describe_table are not mentioned.

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

tables_list_viewsTables List ViewsB
Read-onlyIdempotent

List views in a database schema. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, and openWorld behavior, so the safety profile is fully covered by structured data. The description adds useful return-shape detail (quoted_name, quoted_qualified_name with quoting conditions), but because an output schema exists this is partly redundant and it says nothing about filtering or pagination 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?

Two sentences, front-loaded with the core purpose, with no padding. The second sentence is somewhat redundant given the output schema, but it is compact and delivers a practical quoting tip.

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?

With annotations and an output schema present, the description needs mainly to cover usage and the undocumented pattern parameter. It is adequate but leaves optional filtering semantics unexplained, which matters for a 3-parameter list tool with no required arguments.

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

Parameters2/5

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

Schema coverage is 67%; database and schema_name have describing text while pattern is undocumented. The description adds nothing about what pattern matches or how database/schema_name affect results, so it does not compensate for the gap on the pattern 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 ('List') and resource ('views in a database schema'), which lets an agent distinguish this from the many other list tools. However, it never contrasts itself with the obvious sibling tables_list_tables (views vs tables), so the 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 Guidelines2/5

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

The description offers no when-to-use guidance, no prerequisites, and no mention of alternatives such as tables_list_tables or schemas_describe_schema. An agent must infer from context alone that this is the tool for enumerating views rather than tables.

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

tables_sample_tableTables Sample TableC
Read-onlyIdempotent

Preview sample rows from a table (default 10 rows).

NameRequiredDescriptionDefault
table_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
sample_sizeNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so the safety profile is fully covered. The only added detail is 'default 10 rows', which merely restates the schema default; nothing is said about sampling method, ordering, cost on very large tables, or whether a sample call can be expensive.

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, and the key qualifier (default row count) is in parentheses where it belongs. It is efficient but borders on under-specified given the large tool surface around it.

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?

An output schema exists, so return shape need not be described. Still, for a sampling tool the description omits determinism of the sample, ordering, behavior on tables with fewer rows than sample_size, and how it relates to the sibling profiling/inspection recipes.

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 50%: table_name carries a precise quoting rule while sample_size has only a default. The description restates that default (10 rows) but adds no guidance on acceptable ranges, upper bounds, or what happens for small tables; the naming/quoting semantics live entirely in the schema.

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

Purpose4/5

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

States a specific verb and resource ('Preview sample rows from a table') plus the default row count, so the operation is unambiguous. It does not distinguish it from near-siblings like tables_describe_table or recipes_inspect_table_with_sample, leaving the agent to infer the difference.

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 word 'Preview' implies a light exploratory use, but there is no explicit when-to-use, no exclusions, and no named alternative among the many sibling tools that also read table data. An agent must guess whether to sample, describe, get DDL, or profile.

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

tables_truncate_tableTables Truncate TableA
Destructive

Truncate all data rows from a table while preserving schema. Requires confirmation.

NameRequiredDescriptionDefault
confirmNo
table_nameYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and openWorldHint=true, so the safety profile is covered structurally. The description adds the one piece annotations cannot convey: what survives the operation (the schema), plus the confirmation requirement. It omits whether the operation is reversible, which matters given undrop_table exists for the drop path.

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, with the effect and the preserved object front-loaded before the confirmation prerequisite.

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 irreversible destructive mutation with an output schema and annotations present, the description covers effect and prerequisite but says nothing about recoverability or blast radius (irreversible vs. undrop-able). Adequate to invoke correctly, thin on consequences.

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 50% and the uncovered parameter is 'confirm' (default false). The description's 'Requires confirmation' is the only signal that confirm must actually be set true rather than left at its default — meaningful added semantics 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?

States a specific verb (truncate) and resource (table) and scopes the effect precisely: all data rows removed, schema preserved. That phrasing implicitly separates it from drop_table, though it never names the sibling, so the agent must infer the boundary.

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?

'Requires confirmation' hints at a prerequisite, but there is no explicit when-to-use guidance or comparison against drop_table, undrop_table, or DML-based deletion. 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.

tables_undrop_tableTables Undrop TableA

Restore a recently dropped table using Time Travel.

NameRequiredDescriptionDefault
table_nameYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

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, destructiveHint=false, and idempotentHint=false, so the safety profile is largely covered. The description adds the meaningful behavioral detail that recovery is Time Travel-based, but omits retention limits, privilege requirements, and what happens when no recoverable version exists — the main failure mode for this 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?

A single front-loaded sentence with zero filler; the key scope qualifier ("recently dropped") appears where it is most useful.

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 output schema means return values need no explanation, and annotations cover the safety profile. Still, for an open-world restore operation the description says nothing about retention boundaries, required privileges, or whether the table returns under its original name and schema — gaps an agent would want covered 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?

With a single parameter and 100% schema description coverage, the schema already explains the quoting/casing convention for table_name. The description adds no extra meaning about how the name should be qualified (database.schema.table) or resolved, 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?

States a specific verb (Restore) and resource (recently dropped table) plus the mechanism (Time Travel), so the operation is unambiguous. It does not name the counterpart tools (tables_drop_table, schemas_undrop_schema) to differentiate, but the name/description pair leaves little doubt about intent.

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?

"Recently dropped" implicitly conveys the usage window (recovery must happen within the Time Travel retention period) and rules out arbitrarily old drops. However, it never states prerequisites such as required privileges, nor does it mention alternatives or what to do if the table is beyond retention.

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

tags_describe_tagTags Describe TagA
Read-onlyIdempotent

Describe tag properties, allowed values, and comment. A name in double quotes, such as a list row's quoted_name, must match exactly.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
tag_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive semantics, so the bar is lower. The description adds real behavioral context beyond that: lookup requires exact name matching, and non-uppercase names must be double-quoted as returned by list tools — a genuine source of call 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?

Two short sentences with no filler. The core purpose leads and the matching constraint follows immediately, so the critical gotcha is front-loaded.

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?

An output schema exists, so return values need no explanation, and annotations cover the safety profile. The remaining gap is scope resolution — whether database/schema_name default to the session context — which affects correct invocation of a 3-parameter 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 baseline is 3. The description reinforces the exact-match quoting rule for tag_name but does not clarify what database/schema_name do or what happens when they are omitted, so it adds little 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?

States a specific verb and resource ('Describe tag') and enumerates what is returned: properties, allowed values, and comment. It is clear against tags_list_tags in spirit, but never names a sibling, so discrimination relies on the agent inferring list-vs-describe.

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: the reference to 'a list row's quoted_name' suggests calling this after tags_list_tags, and by omission it signals this is not for setting tags or fetching object references. There is no explicit when-to-use or when-not-to-use statement.

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

tags_get_object_tag_referencesTags Get Object Tag ReferencesB
Read-onlyIdempotent

Get tag key/value assignments on a specific database object.

NameRequiredDescriptionDefault
object_nameYes
object_domainNoTABLE

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds that it's scoped to a specific database object, which is useful but modest context beyond 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?

Single efficient sentence with no waste, purpose front-loaded. Appropriately sized for 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?

An output schema exists, so return values needn't be explained, and annotations cover safety. However, with 0% schema description coverage and no parameter details in the description, it is incomplete on the parameter side.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should compensate but does not. It doesn't explain object_name or object_domain (including the default TABLE), leaving parameter meaning undocumented in both schema and description.

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 (Get) and resource (tag key/value assignments on a database object). Clear purpose but does not differentiate from siblings like tags_list_tags or tags_set_object_tag beyond the object-specific 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?

No guidance on when to use this versus alternatives such as tags_list_tags. No mention of prerequisites or 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.

tags_list_tagsTags List TagsB
Read-onlyIdempotent

List object tags defined in a database or schema. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already establish this as a read-only, idempotent, non-destructive, open-world listing operation. The description adds some return-shape context by mentioning quoted_name and quoted_qualified_name, but it does not disclose permissions, pagination, or other behavior beyond what annotations and the output schema provide.

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 front-loaded with the core action and remains short across two sentences. The second sentence is somewhat redundant with the output schema, but the definition is still efficient overall.

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 listing tool with an output schema and strong annotations, the description covers the basic operation. However, it omits parameter behavior and does not distinguish this listing tool from the other tag-related siblings, leaving meaningful context gaps.

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

Parameters2/5

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

The description never mentions the pattern, database, or schema_name parameters or explains how they interact. With only 67% schema description coverage and no parameter detail in the description, an agent gets little help beyond the schema itself.

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 and resource: listing object tags, scoped to a database or schema. That is clear enough to distinguish it from general query or table-listing siblings, though it does not explicitly differentiate itself from tags_describe_tag or tags_get_object_tag_references.

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 'defined in a database or schema' implies the intended usage context, but there is no explicit guidance on when to choose this over tags_describe_tag or tags_get_object_tag_references. Usage is only indirectly implied.

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

tags_set_object_tagTags Set Object TagC
Idempotent

Set or assign a tag value on a Snowflake object (TABLE, SCHEMA, DATABASE, etc.).

NameRequiredDescriptionDefault
tag_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
tag_valueYes
object_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
object_domainNoTABLE

Output Schema

NameRequiredDescription

No output parameters

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, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that: it does not say whether an existing tag value is silently overwritten, whether an error occurs if the tag is undefined, or what privileges are required for a cross-object assignment.

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; the action and the affected resource come first. It is tight, though the brevity leaves room for one or two clarifying clauses at no structural cost.

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?

An output schema exists so return values needn't be explained, and annotations cover the safety profile, which lowers the burden. However, for a mutation tool that assigns metadata across object types, the description omits the essentials an agent needs to call it correctly – whether the tag must pre-exist, whether assignment replaces an existing value, and permission requirements.

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 only 50% – tag_value and object_domain carry no schema description, and tag_name/object_name only document the quoting convention. The description partially compensates by listing the valid object domains (TABLE, SCHEMA, DATABASE), which corresponds to the object_domain parameter's default. The required tag_value parameter and its accepted format remain entirely undocumented.

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 concrete verb and resource ('Set or assign a tag value on a Snowflake object') and enumerates the object types it covers. It is clearly distinguishable from sibling read tools like tags_list_tags and tags_describe_tag, though it never names them. The write action 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?

The description gives no conditions for use: nothing about when to prefer this over tags_list_tags/tags_describe_tag (to verify a tag exists) or tags_get_object_tag_references (to inspect current assignments). It also omits prerequisites such as needing the tag to already exist or holding APPLY TAG privileges, leaving the agent to infer the workflow.

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

tasks_create_taskTasks Create TaskC

Create a scheduled or serverless task in Snowflake.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
scheduleNo
task_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
warehouseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.
if_not_existsNo
sql_statementYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, so the safety profile is covered. The description adds the genuinely useful 'scheduled or serverless' distinction, which hints that a task may run without a warehouse, but it omits what if_not_exists=true (the default) actually does on collision and says nothing about 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?

One short, front-loaded sentence with no filler. Its brevity is efficient rather than padded, though the same terseness leaves the gaps noted elsewhere.

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 7-parameter creation tool, the description omits the scheduled-vs-serverless warehouse rule, the meaning of the defaulted if_not_exists, required privileges, and any note on what the output schema returns. Output schema coverage helps, but the behavioral and parameter story is materially incomplete.

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

Parameters2/5

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

Schema coverage is 57%; four name-ish params carry only a repeated quoting hint, while schedule, sql_statement and if_not_exists have no schema description at all. The description contributes zero parameter meaning, so it does not compensate for the gap on the three most consequential fields (cron syntax, task body, collision 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?

States a specific verb (Create) and resource (task) with a meaningful qualifier: 'scheduled or serverless' distinguishes the two Snowflake task modes. It is clearly separable from siblings like tasks_drop_task, tasks_execute_task, tasks_suspend_task and tasks_describe_task by verb alone, though it never names 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?

No when-to-use guidance, no prerequisites (CREATE TASK privilege, EXECUTE TASK on the warehouse), and no statement about how it relates to tasks_resume_task or tasks_execute_task. The agent must infer everything from the single verb.

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

tasks_describe_taskTasks Describe TaskA
Read-onlyIdempotent

Describe task definition, schedule, warehouse, and definition SQL.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
task_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

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, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that it returns specific task details, but does not disclose any additional behavioral traits like permissions, error conditions, or rate limits. With annotations doing the heavy lifting, 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?

The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the tool's scope and the key fields it describes.

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?

The tool has an output schema, fully described parameters, and clear annotations, so the description does not need to explain return values or safety. It provides enough context for an agent to know this is a read-only task introspection 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 three parameters are documented in the input schema. The description adds no parameter-specific meaning beyond what the schema already provides. Baseline 3 is correct when the schema is fully documented.

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 ('Describe') and resource ('task') and lists the concrete fields covered: definition, schedule, warehouse, and definition SQL. It is clearly distinct from mutation siblings like tasks_create_task or tasks_drop_task, though it does not explicitly distinguish itself from tasks_list_tasks.

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 such as tasks_list_tasks or other describe tools. It implies usage by virtue of being a describe operation but offers 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.

tasks_drop_taskTasks Drop TaskA
Destructive

Drop a task in Snowflake. Requires confirmation.

NameRequiredDescriptionDefault
confirmNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
task_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety bar is lower. The description adds one genuine behavioral detail, that a confirmation is required, but it omits what happens if confirm is false, that the drop is irreversible, and that no undrop_task sibling exists to recover from 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?

Two short sentences with zero filler, and the destructive action is front-loaded ahead of the precondition. Nothing could be removed without losing 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?

With a rich annotation set and an output schema, the description needn't explain returns. But for a destructive tool with a confirm gate and no undrop counterpart among the tasks_* siblings, an agent would benefit from knowing the drop is permanent and how to recover or recreate the task.

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 75%; the database, task_name, and schema_name params carry quoting guidance in the schema, but confirm has no schema description at all. "Requires confirmation" explains confirm's purpose, which is real added value, though it doesn't state the semantics of confirm=false versus confirm=true.

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?

"Drop a task in Snowflake" is a specific verb+resource that unambiguously separates it from tasks_suspend_task, tasks_resume_task, and tasks_execute_task. It stops short of naming any sibling or scope qualifiers, so it does not fully earn 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 Guidelines3/5

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

"Requires confirmation" implies a precondition for invocation, which is actionable guidance for the confirm parameter. However, it gives no explicit when-to-use vs. alternatives guidance, and it doesn't tell the agent whether to first call tasks_describe_task to verify it's targeting the right object.

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

tasks_execute_taskTasks Execute TaskB
Destructive

Trigger an immediate one-time execution of a task. Requires confirmation.

NameRequiredDescriptionDefault
confirmNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
task_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the risk profile is covered. The description adds a genuinely useful behavioral fact — that a confirmation step is required — but leaves the consequences vague: it doesn't say whether the run can fail on a suspended task, what side effects occur, or how confirmation is actually supplied.

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?

Two short sentences with the core action front-loaded and zero filler. The second sentence earns its place but is too terse to resolve the confirmation mechanics, so it is efficient rather than exemplary.

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, non-idempotent, open-world mutation, the description omits prerequisites, task-state requirements, and — most importantly — how 'requires confirmation' is satisfied operationally. An output schema exists so return values need not be explained, but the confirmation gap leaves an agent unable to call this correctly without guessing.

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 75%, so the schema documents task_name, database, and schema_name (mostly quoting rules). The critical 'confirm' parameter has no schema description, and the description's 'Requires confirmation' hints at it without stating that confirm must be set to true — a notable ambiguity, but not enough to drop below 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?

States a specific verb and resource ('Trigger an immediate one-time execution of a task'), and the phrase 'immediate one-time' distinguishes it from scheduling behavior and from the resume/suspend siblings. It does not explicitly name which sibling to use instead, 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 Guidelines3/5

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

Usage is only implied: the agent can infer this is for running a task now rather than resuming/suspending it, but the description never says when to prefer this over tasks_resume_task or how it relates to a task's schedule. No prerequisites (task existence, state, privileges) are given.

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

tasks_list_tasksTasks List TasksB
Read-onlyIdempotent

List tasks in a database or schema with schedule, state, and predecessor info. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, so the safety profile is covered. The description adds real value by disclosing what the rows contain (schedule, state, predecessor info, quoted_name, quoted_qualified_name), but says nothing about result size, limits, or pagination behavior for what could be a large listing.

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?

Two sentences, front-loaded with the operation and scope, with no preamble. The second sentence is more detailed than necessary but is not 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?

Rich annotations and an output schema carry much of the burden, and the listing scope is clear. However, the most consequential gap — what `pattern` does and how it matches — is left unaddressed in both schema and description, leaving an agent unable to use the tool's main filter correctly.

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

Parameters2/5

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

Schema coverage is 67%, and the sole undescribed parameter, `pattern`, is not explained anywhere in the description either — an agent cannot tell it is a name filter or what syntax it accepts. The description instead spends its second sentence on return-field quoting rules that duplicate schema/output information rather than clarifying inputs.

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 ("List tasks") plus the scope (database or schema) and the notable output fields (schedule, state, predecessor info). An agent can tell this is the enumeration tool rather than tasks_describe_task, though the distinction is implied 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 Guidelines3/5

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

The description implies the usage context (listing within a database or schema) but never says when to use this versus tasks_describe_task or tasks_execute_task, and gives no prerequisites or exclusions. Baseline implied-usage only.

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

tasks_resume_taskTasks Resume TaskC
Idempotent

Resume a suspended task.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
task_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare this as a non-destructive, idempotent, open-world mutation. The description adds the useful state constraint that the task is 'suspended,' but it does not explain what happens if the task is running, what permissions are needed, or what side effects occur.

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?

It is a single front-loaded sentence with no filler or repetition. It is efficient, though the terseness leaves important context unstated.

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 and has annotations plus an output schema, so the description does not need to explain return values. However, it omits state prerequisites and behavioral details that would help an agent call 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?

The input schema has 100% description coverage and documents all three parameters, so the schema carries the parameter semantics. The description adds no additional detail about task_name, database, or schema_name beyond what the schema already provides.

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?

The description states a specific verb and resource: 'Resume a suspended task.' This is clearer than the bare tool name, but it largely restates the title and does not distinguish the tool from nearby siblings like tasks_suspend_task or tasks_execute_task.

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, no prerequisites, and no named alternatives. The only implied usage is that the task should already be suspended, which the agent must infer from the word 'suspended'.

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

tasks_suspend_taskTasks Suspend TaskB
Idempotent

Suspend an active scheduled task.

NameRequiredDescriptionDefault
databaseNoQuote names that aren't all uppercase, exactly as list tools return them.
task_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
schema_nameNoQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare readOnly=false, idempotent=true, destructive=false, and openWorld=true, so the safety profile is covered. The description adds only the 'active' scoping hint and does not disclose what happens if the task is already suspended, what suspension does to in-flight runs, or required privileges.

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 waste. It is efficient but arguably under-specified rather than optimally concise.

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 state-change tool with rich annotations and an output schema, the description is minimally sufficient. It leaves gaps around idempotent behavior on already-suspended tasks and any side effects, but the structured fields cover safety and 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?

Schema coverage is 100%, so the schema already documents all three parameters including the naming/quoting convention. The description adds no parameter detail, which is acceptable at baseline when the schema fully carries the 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 specific verb and resource ('Suspend ... scheduled task') and the 'active' qualifier narrows the scope. It implicitly distinguishes from the sibling tasks_resume_task by naming the opposite operation, though it doesn't explicitly reference it.

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 'active' implies the tool applies to active (running) tasks, giving partial usage context. However, there is no explicit when-to-use guidance, no mention of alternatives like tasks_resume_task, and no prerequisite information.

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

warehouses_create_warehouseWarehouses Create WarehouseC

Create a new virtual warehouse in Snowflake.

NameRequiredDescriptionDefault
commentNo
auto_resumeNo
auto_suspendNo
if_not_existsNo
warehouse_nameYesQuote names that aren't all uppercase, exactly as list tools return them.
warehouse_sizeNoXSMALL

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare non-read-only, open-world, non-idempotent, and non-destructive behavior. The description adds almost no behavioral context beyond the resource type: it does not explain permission needs, default auto-suspend/resume implications, cost impact, or what happens when if_not_exists is true.

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 a single front-loaded sentence with no wasted words. However, for a tool with six parameters and low schema coverage, this brevity becomes under-specification rather than effective 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?

Although an output schema exists, the description does not cover key creation semantics: default warehouse size, idempotency via if_not_exists, or auto-suspend/auto-resume behavior. With six parameters and 17% schema coverage, the definition is incomplete for safe invocation.

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

Parameters1/5

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

Schema description coverage is only 17%, and the description mentions none of the six parameters. It does not compensate for undocumented parameters such as auto_resume, auto_suspend, if_not_exists, warehouse_size, or comment.

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: 'Create a new virtual warehouse in Snowflake.' It clearly identifies the operation, though it does not distinguish this tool from siblings such as warehouses_drop_warehouse or warehouses_resize_warehouse.

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 prerequisites such as required privileges or the effect of if_not_exists. The implied action is creation, but the agent must infer context from the tool name and schema alone.

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

warehouses_describe_warehouseWarehouses Describe WarehouseA
Read-onlyIdempotent

Describe details and running state of a specific virtual warehouse. A name in double quotes, such as a list row's quoted_name, must match exactly.

NameRequiredDescriptionDefault
warehouse_nameYes

Output Schema

NameRequiredDescription

No output parameters

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, idempotentHint=true, destructiveHint=false, so the safety profile is fully covered elsewhere. The description adds only that the call reports 'running state' and that names must match exactly; it says nothing about behavior on an unknown name (error vs. empty) beyond what annotations carry.

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?

Two short sentences with the purpose front-loaded and the naming constraint second. Slightly cryptic phrasing ('quoted_name') but no wasted text.

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 describe tool with an output schema and one required parameter, the definition covers purpose, the returned aspect (running state), and the exact-name requirement. Error behavior on a bad name is the only notable gap.

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 0%, so the description carries the burden for the single parameter and does so: warehouse_name must be an exact match and must be supplied in double quotes, with the source being a list row's quoted_name. That is real meaning beyond a bare 'string' in the schema.

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

Purpose4/5

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

States a specific verb ('Describe') and resource ('a specific virtual warehouse') plus what is returned ('details and running state'), which clearly separates it from warehouses_list_warehouses, warehouses_create_warehouse, and warehouses_drop_warehouse. It never names a sibling explicitly, so differentiation is by implication rather than instruction.

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 mention of a 'list row's quoted_name' implies you obtain the name from warehouses_list_warehouses first, which is a useful usage cue. However, it gives no explicit when-to-use/when-not guidance and says nothing about alternatives such as warehouses_get_warehouse_load_history or warehouses_resize_warehouse.

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

warehouses_drop_warehouseWarehouses Drop WarehouseB
Destructive

Drop a virtual warehouse. Requires confirmation.

NameRequiredDescriptionDefault
confirmNo
warehouse_nameYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/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 covered structurally. The description adds the confirmation requirement, which is genuine behavioral context not in the annotations, but it omits irreversibility and what happens to dependent objects. With rich annotations, 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?

Two short sentences, action front-loaded, zero filler. It is efficient, though the terseness leaves the confirmation mechanics (e.g., confirm=false default) implicit.

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?

An output schema and rich annotations cover the safety profile, so the description needn't explain returns. But for a destructive, non-idempotent tool, it should note irreversibility and dependency impact; the current text is minimally adequate, not complete.

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 50%: warehouse_name is documented in the schema but 'confirm' is not. The sentence 'Requires confirmation' supplies the missing meaning for the confirm parameter, telling the agent a confirmation flag exists and must be set. This meaningfully compensates for the schema gap.

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: 'Drop a virtual warehouse.' The action is unambiguous and matches the name. However, it does not distinguish itself from the closely related sibling warehouses_suspend_warehouse, which an agent could confuse with a drop.

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 only usage signal is 'Requires confirmation.' There is no guidance on when to drop versus suspend (a non-destructive alternative present in the sibling list), no prerequisites, and no exclusions. An agent must infer that suspend is the reversible option.

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

warehouses_get_warehouse_load_historyWarehouses Get Warehouse Load HistoryC
Read-onlyIdempotent

Get execution load, queuing, and provisioning history for a warehouse.

NameRequiredDescriptionDefault
warehouse_nameYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered structurally. The description adds nothing behavioral beyond that — no note on latency, history retention window, volume of data returned, or whether the warehouse must exist/be active.

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 tight sentence with the resource and the three history categories front-loaded. No filler, though it is arguably too terse given the documentation gaps elsewhere.

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?

An output schema exists so return values need not be explained, and annotations cover the safety profile. However, with 0% parameter coverage and no usage context, the description is only minimally sufficient for an agent to call it correctly.

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

Parameters2/5

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

Schema description coverage is 0%, so the single parameter warehouse_name is documented nowhere except its name. The description's phrase 'for a warehouse' only obliquely implies the identifier, adding essentially no semantics (e.g. name vs. ID, case sensitivity, whether suspended warehouses are valid).

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 (warehouse load history) and enumerates the scope: execution load, queuing, and provisioning history. It is clearly distinct from siblings like warehouses_describe_warehouse or warehouses_list_warehouses, though it never names those siblings to sharpen the distinction.

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 reach for this tool versus warehouses_describe_warehouse, recipes_warehouse_scale_and_execute, or the query-history tools. No prerequisites, time-range expectations, or exclusions are given, leaving the agent to infer usage entirely.

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

warehouses_list_warehousesWarehouses List WarehousesB
Read-onlyIdempotent

List virtual warehouses in the account with size, state, and auto-suspend configurations. Each row also has quoted_name, the name in double quotes, and, when the row has a database and schema, quoted_qualified_name.

NameRequiredDescriptionDefault
patternNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is clear. The description adds useful scope and output-column context (quoted_name, quoted_qualified_name), but does not explain filtering behavior, pagination, or other operational 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 two tightly written sentences with the core purpose front-loaded. The second sentence adds useful output-column context without unnecessary length.

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?

Because annotations cover safety and an output schema exists, the description need not explain return values in full. However, the undocumented pattern parameter and lack of routing guidance to sibling warehouse tools leave meaningful gaps for an agent deciding how to call it correctly.

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

Parameters2/5

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

There is one optional parameter, pattern, with 0% schema description coverage. The description never mentions pattern or explains what matching behavior it controls, so it does not compensate for the schema gap.

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: it lists virtual warehouses in the account and names the fields returned (size, state, auto-suspend configurations). It is clearly a listing operation rather than a describe/mutate operation, but it does not explicitly distinguish itself from sibling tools such as warehouses_describe_warehouse.

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 use it versus alternatives such as warehouses_describe_warehouse or warehouses_get_warehouse_load_history. It also does not explain when the optional pattern parameter should be used.

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

warehouses_resize_warehouseWarehouses Resize WarehouseB

Change warehouse compute size (XSMALL, SMALL, MEDIUM, LARGE, XLARGE, 2XLARGE, etc.).

NameRequiredDescriptionDefault
sizeYes
warehouse_nameYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare this is a non-read-only, non-destructive, non-idempotent, open-world mutation, so the safety profile is covered. The description adds the size vocabulary but omits operationally important behavior: whether the resize applies immediately or after in-flight queries finish, and the cost implication of sizing up. Some added value, clear gaps.

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 preamble — appropriately sized. The trailing 'etc.' is the one weak element, weakly hedging where a definitive list or a pointer to a canonical source would be better.

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?

An output schema exists so return values needn't be described, and there are only two required parameters. What's missing is contextual: the effect on currently running queries and the cost/latency consequence of a resize, which matter for an agent deciding whether to invoke this at all.

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 only 50%: warehouse_name is documented inline (quote non-uppercase names), while size has no schema description. The description partially compensates by listing valid size values, but the trailing 'etc.' leaves the accepted set ambiguous and nothing explains whether a string like 'MEDIUM' versus 'medium' is accepted.

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 ('Change warehouse compute size') and enumerates valid sizes, which distinguishes it from resume/suspend/create/drop siblings sharing the warehouse prefix. It stops short of naming those siblings explicitly, but the action 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 resize versus suspending, resuming, or recreating a warehouse, and no prerequisites are mentioned. An agent must already know the Snowflake warehouse model to pick this tool confidently.

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

warehouses_resume_warehouseWarehouses Resume WarehouseB
Idempotent

Resume a suspended virtual warehouse.

NameRequiredDescriptionDefault
warehouse_nameYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare idempotentHint=true, destructiveHint=false, and readOnlyHint=false, so safety/idempotency is covered structurally. The description adds only the suspended-state precondition; it omits meaningful behavioral context such as the compute credits that begin accruing on resume or permission requirements, which would be valuable for a state-changing, potentially cost-incurring operation.

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 zero filler, appropriately sized for a simple one-parameter action. It is efficient but borderline under-specified rather than maximally informative.

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?

Output schema and annotations relieve the description of return-value and safety explanation, and the parameter is well documented in the schema. However, for a costly state transition (starting a warehouse), the absence of any cost/authorization note leaves a gap an agent would benefit from filling.

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 a single parameter at 100% schema coverage, the schema already fully documents warehouse_name including the quoting rule for non-uppercase names. The description contributes nothing beyond the schema, so 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 (resume) and resource (virtual warehouse) with a precondition (suspended), so the agent knows exactly what operation occurs. It doesn't differentiate itself from siblings like warehouses_suspend_warehouse or warehouses_resize_warehouse, but the action itself 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 Guidelines3/5

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

'Resume a suspended virtual warehouse' implies the usage condition (the warehouse is currently suspended), but there is no explicit guidance on when to use this versus recreate/resize, and no note about alternatives or prerequisites.

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

warehouses_suspend_warehouseWarehouses Suspend WarehouseA
Idempotent

Suspend an active virtual warehouse to save compute costs.

NameRequiredDescriptionDefault
warehouse_nameYesQuote names that aren't all uppercase, exactly as list tools return them.

Output Schema

NameRequiredDescription

No output parameters

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, idempotentHint=true, and destructiveHint=false, so the safety profile is partly covered. The description adds the cost-saving intent but says nothing about the operationally important behavior for a warehouse: whether in-flight queries are killed, whether the warehouse must be idle, or how long the state transition takes.

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 the action and the reason; there is 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?

An output schema covers return values and annotations cover the mutation profile, but for a state-changing warehouse operation the missing piece is the effect on running work and on later resume; the description is adequate but not 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 single parameter has 100% schema description coverage, including the non-obvious quoting rule for lowercase names. The description adds nothing beyond that, so the schema-driven 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?

States a specific verb (suspend) and resource (active virtual warehouse) plus the rationale of saving compute costs. It is clear on its face, but it does not explicitly distinguish itself from the sibling resume_warehouse or from compute_services_suspend_compute_pool, leaving that differentiation to 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 Guidelines3/5

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

The word 'active' and the cost-saving rationale imply when to use it, but there is no explicit guidance on when not to call it (e.g., a warehouse running queries) and no reference to the resume_warehouse counterpart that would reverse it.

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. 100 tool updatesv3.0.0
    • Changedalerts_create_alert4 fields changed
      • addedInput schema / properties / alert_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / warehouse_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedalerts_describe_alert3 fields changed
      • addedInput schema / properties / alert_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedalerts_drop_alert3 fields changed
      • addedInput schema / properties / alert_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedalerts_list_alerts2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedalerts_resume_alert3 fields changed
      • addedInput schema / properties / alert_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedalerts_suspend_alert3 fields changed
      • addedInput schema / properties / alert_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedcompute_services_describe_compute_pool1 field changed
      • addedInput schema / properties / pool_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedcompute_services_describe_streamlit3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / streamlit_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedcompute_services_list_image_repositories2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedcompute_services_list_services2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedcompute_services_list_streamlits2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedcompute_services_resume_compute_pool1 field changed
      • addedInput schema / properties / pool_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedcompute_services_suspend_compute_pool1 field changed
      • addedInput schema / properties / pool_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changeddatabases_clone_database2 fields changed
      • addedInput schema / properties / source_database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / target_database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changeddatabases_create_database1 field changed
      • addedInput schema / properties / name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changeddatabases_describe_database1 field changed
      • addedInput schema / properties / database_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changeddatabases_drop_database1 field changed
      • addedInput schema / properties / name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changeddatabases_get_database_ddl1 field changed
      • addedInput schema / properties / database_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changeddatabases_undrop_database1 field changed
      • addedInput schema / properties / name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changeddynamic_tables_describe_dynamic_table3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / table_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changeddynamic_tables_describe_iceberg_table3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / table_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changeddynamic_tables_list_dynamic_tables2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changeddynamic_tables_list_iceberg_tables2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changeddynamic_tables_refresh_dynamic_table3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / table_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changeddynamic_tables_resume_dynamic_table3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / table_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changeddynamic_tables_suspend_dynamic_table3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / table_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedgovernance_create_role1 field changed
      • addedInput schema / properties / role_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedgovernance_create_user3 fields changed
      • addedInput schema / properties / default_role / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / default_warehouse / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / user_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedgovernance_describe_user1 field changed
      • addedInput schema / properties / user_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedgovernance_drop_role1 field changed
      • addedInput schema / properties / role_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedgovernance_list_grants_to_role1 field changed
      • addedInput schema / properties / role_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedgovernance_list_grants_to_user1 field changed
      • addedInput schema / properties / user_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedhorizon_describe_masking_policy3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / policy_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedhorizon_describe_row_access_policy3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / policy_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedhorizon_get_column_lineage2 fields changed
      • addedInput schema / properties / column_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / table_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedhorizon_get_object_lineage3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / object_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedhorizon_list_masking_policies2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedhorizon_list_row_access_policies2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changednetwork_describe_network_policy1 field changed
      • addedInput schema / properties / policy_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changednetwork_describe_network_rule3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / rule_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changednetwork_describe_password_policy3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / policy_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changednetwork_list_network_rules2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changednetwork_list_password_policies2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedpipes_create_pipe3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / pipe_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedpipes_describe_pipe3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / pipe_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedpipes_drop_pipe3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / pipe_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedpipes_get_pipe_status3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / pipe_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedpipes_list_pipes2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedprogrammability_describe_function3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / function_signature / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedprogrammability_describe_procedure3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / procedure_signature / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedprogrammability_describe_secret3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / secret_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedprogrammability_list_event_tables2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedprogrammability_list_functions2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedprogrammability_list_procedures2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedprogrammability_list_secrets2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedprogrammability_list_sequences2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedrecipes_clone_table_recipe2 fields changed
      • addedInput schema / properties / source_table / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / target_table / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedrecipes_discover_schema_lineage2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedrecipes_inspect_table_with_sample3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / table_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedrecipes_profile_table3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / table_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedrecipes_warehouse_scale_and_execute1 field changed
      • addedInput schema / properties / warehouse_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedschemas_clone_schema3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / source_schema / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / target_schema / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedschemas_create_schema2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedschemas_describe_schema2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedschemas_drop_schema2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedschemas_list_schemas1 field changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedschemas_undrop_schema2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedstages_create_stage3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / stage_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedstages_describe_stage3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / stage_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedstages_drop_stage3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / stage_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedstages_list_stages2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedstreams_create_stream4 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / on_table / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / stream_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedstreams_describe_stream3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / stream_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedstreams_drop_stream3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / stream_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedstreams_list_streams2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedstreams_read_stream_changes1 field changed
      • addedInput schema / properties / stream_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedtables_clone_table2 fields changed
      • addedInput schema / properties / source_table / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / target_table / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedtables_create_table3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / table_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedtables_describe_table3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / table_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedtables_drop_table1 field changed
      • addedInput schema / properties / table_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedtables_list_tables2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedtables_list_views2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedtables_sample_table1 field changed
      • addedInput schema / properties / table_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedtables_truncate_table1 field changed
      • addedInput schema / properties / table_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedtables_undrop_table1 field changed
      • addedInput schema / properties / table_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedtags_describe_tag3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / tag_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedtags_list_tags2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedtags_set_object_tag2 fields changed
      • addedInput schema / properties / object_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / tag_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedtasks_create_task4 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / task_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / warehouse / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedtasks_describe_task3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / task_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedtasks_drop_task3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / task_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedtasks_execute_task3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / task_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedtasks_list_tasks2 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedtasks_resume_task3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / task_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedtasks_suspend_task3 fields changed
      • addedInput schema / properties / database / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / schema_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
      • addedInput schema / properties / task_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedwarehouses_create_warehouse1 field changed
      • addedInput schema / properties / warehouse_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedwarehouses_drop_warehouse1 field changed
      • addedInput schema / properties / warehouse_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedwarehouses_resize_warehouse1 field changed
      • addedInput schema / properties / warehouse_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedwarehouses_resume_warehouse1 field changed
      • addedInput schema / properties / warehouse_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
    • Changedwarehouses_suspend_warehouse1 field changed
      • addedInput schema / properties / warehouse_name / description
        Added value: +"Quote names that aren't all uppercase, exactly as list tools return them."
  2. 280 tool updatesv2.0.4
    • Addedalerts_create_alert
    • Addedalerts_describe_alert
    • Addedalerts_drop_alert
    • Addedalerts_list_alerts
    • Addedalerts_resume_alert
    • Addedalerts_suspend_alert
    • Addedcompute_services_describe_compute_pool
    • Addedcompute_services_describe_streamlit
    • Addedcompute_services_list_compute_pools
    • Addedcompute_services_list_image_repositories
    • Addedcompute_services_list_services
    • Addedcompute_services_list_streamlits
    • Addedcompute_services_resume_compute_pool
    • Addedcompute_services_suspend_compute_pool
    • Addedcortex_analyst_query
    • Addedcortex_complete
    • Addedcortex_embed_text_768
    • Addedcortex_extract_answer
    • Addedcortex_search
    • Addedcortex_sentiment
    • Addedcortex_summarize
    • Addedcortex_translate
    • Addeddatabases_clone_database
    • Addeddatabases_create_database
    • Addeddatabases_describe_database
    • Addeddatabases_drop_database
    • Addeddatabases_get_database_ddl
    • Addeddatabases_list_databases
    • Addeddatabases_undrop_database
    • Addeddynamic_tables_describe_dynamic_table
    • Addeddynamic_tables_describe_iceberg_table
    • Addeddynamic_tables_list_catalog_integrations
    • Addeddynamic_tables_list_dynamic_tables
    • Addeddynamic_tables_list_external_volumes
    • Addeddynamic_tables_list_iceberg_tables
    • Addeddynamic_tables_refresh_dynamic_table
    • Addeddynamic_tables_resume_dynamic_table
    • Addeddynamic_tables_suspend_dynamic_table
    • Addedgovernance_create_role
    • Addedgovernance_create_user
    • Addedgovernance_describe_role
    • Addedgovernance_describe_user
    • Addedgovernance_drop_role
    • Addedgovernance_get_current_context
    • Addedgovernance_list_connections
    • Addedgovernance_list_grants_to_role
    • Addedgovernance_list_grants_to_user
    • Addedgovernance_list_roles
    • Addedgovernance_list_users
    • Addedgovernance_use_connection
    • Addedhorizon_describe_masking_policy
    • Addedhorizon_describe_row_access_policy
    • Addedhorizon_get_column_lineage
    • Addedhorizon_get_object_lineage
    • Addedhorizon_list_masking_policies
    • Addedhorizon_list_row_access_policies
    • Addednetwork_describe_network_policy
    • Addednetwork_describe_network_rule
    • Addednetwork_describe_password_policy
    • Addednetwork_list_network_policies
    • Addednetwork_list_network_rules
    • Addednetwork_list_password_policies
    • Addedpipes_create_pipe
    • Addedpipes_describe_pipe
    • Addedpipes_drop_pipe
    • Addedpipes_get_pipe_status
    • Addedpipes_list_pipes
    • Addedprogrammability_describe_function
    • Addedprogrammability_describe_procedure
    • Addedprogrammability_describe_secret
    • Addedprogrammability_list_event_tables
    • Addedprogrammability_list_functions
    • Addedprogrammability_list_integrations
    • Addedprogrammability_list_notification_integrations
    • Addedprogrammability_list_procedures
    • Addedprogrammability_list_secrets
    • Addedprogrammability_list_sequences
    • Addedqueries_begin_transaction
    • Addedqueries_cancel_query
    • Addedqueries_commit_transaction
    • Addedqueries_execute_dml
    • Addedqueries_get_query_history
    • Addedqueries_get_query_operator_stats
    • Addedqueries_get_query_plan
    • Addedqueries_query
    • Addedqueries_rollback_transaction
    • Addedrecipes_account_usage_summary
    • Addedrecipes_clone_table_recipe
    • Addedrecipes_discover_schema_lineage
    • Addedrecipes_export_query_to_stage
    • Addedrecipes_health_check
    • Addedrecipes_inspect_table_with_sample
    • Addedrecipes_profile_table
    • Addedrecipes_warehouse_scale_and_execute
    • Addedschemas_clone_schema
    • Addedschemas_create_schema
    • Addedschemas_describe_schema
    • Addedschemas_drop_schema
    • Addedschemas_list_schemas
    • Addedschemas_undrop_schema
    • Removedsnowflake_account_usage_summary
    • Removedsnowflake_begin_transaction
    • Removedsnowflake_cancel_query
    • Removedsnowflake_clone_database
    • Removedsnowflake_clone_schema
    • Removedsnowflake_clone_table
    • Removedsnowflake_clone_table_recipe
    • Removedsnowflake_commit_transaction
    • Removedsnowflake_cortex_analyst_query
    • Removedsnowflake_cortex_complete
    • Removedsnowflake_cortex_embed_text_768
    • Removedsnowflake_cortex_extract_answer
    • Removedsnowflake_cortex_search
    • Removedsnowflake_cortex_sentiment
    • Removedsnowflake_cortex_summarize
    • Removedsnowflake_cortex_translate
    • Removedsnowflake_create_alert
    • Removedsnowflake_create_database
    • Removedsnowflake_create_pipe
    • Removedsnowflake_create_role
    • Removedsnowflake_create_schema
    • Removedsnowflake_create_stage
    • Removedsnowflake_create_stream
    • Removedsnowflake_create_table
    • Removedsnowflake_create_task
    • Removedsnowflake_create_user
    • Removedsnowflake_create_warehouse
    • Removedsnowflake_describe_alert
    • Removedsnowflake_describe_compute_pool
    • Removedsnowflake_describe_database
    • Removedsnowflake_describe_dynamic_table
    • Removedsnowflake_describe_function
    • Removedsnowflake_describe_iceberg_table
    • Removedsnowflake_describe_masking_policy
    • Removedsnowflake_describe_network_policy
    • Removedsnowflake_describe_network_rule
    • Removedsnowflake_describe_password_policy
    • Removedsnowflake_describe_pipe
    • Removedsnowflake_describe_procedure
    • Removedsnowflake_describe_role
    • Removedsnowflake_describe_row_access_policy
    • Removedsnowflake_describe_schema
    • Removedsnowflake_describe_secret
    • Removedsnowflake_describe_stage
    • Removedsnowflake_describe_stream
    • Removedsnowflake_describe_streamlit
    • Removedsnowflake_describe_table
    • Removedsnowflake_describe_tag
    • Removedsnowflake_describe_task
    • Removedsnowflake_describe_user
    • Removedsnowflake_describe_warehouse
    • Removedsnowflake_discover_schema_lineage
    • Removedsnowflake_drop_alert
    • Removedsnowflake_drop_database
    • Removedsnowflake_drop_pipe
    • Removedsnowflake_drop_role
    • Removedsnowflake_drop_schema
    • Removedsnowflake_drop_stage
    • Removedsnowflake_drop_stream
    • Removedsnowflake_drop_table
    • Removedsnowflake_drop_task
    • Removedsnowflake_drop_warehouse
    • Removedsnowflake_execute_dml
    • Removedsnowflake_execute_task
    • Removedsnowflake_export_query_to_stage
    • Removedsnowflake_get_column_lineage
    • Removedsnowflake_get_current_context
    • Removedsnowflake_get_database_ddl
    • Removedsnowflake_get_object_lineage
    • Removedsnowflake_get_object_tag_references
    • Removedsnowflake_get_pipe_status
    • Removedsnowflake_get_query_history
    • Removedsnowflake_get_query_operator_stats
    • Removedsnowflake_get_query_plan
    • Removedsnowflake_get_table_ddl
    • Removedsnowflake_get_warehouse_load_history
    • Removedsnowflake_health_check
    • Removedsnowflake_inspect_table_with_sample
    • Removedsnowflake_list_alerts
    • Removedsnowflake_list_catalog_integrations
    • Removedsnowflake_list_compute_pools
    • Removedsnowflake_list_connections
    • Removedsnowflake_list_databases
    • Removedsnowflake_list_dynamic_tables
    • Removedsnowflake_list_event_tables
    • Removedsnowflake_list_external_volumes
    • Removedsnowflake_list_functions
    • Removedsnowflake_list_grants_to_role
    • Removedsnowflake_list_grants_to_user
    • Removedsnowflake_list_iceberg_tables
    • Removedsnowflake_list_image_repositories
    • Removedsnowflake_list_integrations
    • Removedsnowflake_list_masking_policies
    • Removedsnowflake_list_network_policies
    • Removedsnowflake_list_network_rules
    • Removedsnowflake_list_notification_integrations
    • Removedsnowflake_list_password_policies
    • Removedsnowflake_list_pipes
    • Removedsnowflake_list_procedures
    • Removedsnowflake_list_roles
    • Removedsnowflake_list_row_access_policies
    • Removedsnowflake_list_schemas
    • Removedsnowflake_list_secrets
    • Removedsnowflake_list_sequences
    • Removedsnowflake_list_services
    • Removedsnowflake_list_stage_files
    • Removedsnowflake_list_stages
    • Removedsnowflake_list_streamlits
    • Removedsnowflake_list_streams
    • Removedsnowflake_list_tables
    • Removedsnowflake_list_tags
    • Removedsnowflake_list_tasks
    • Removedsnowflake_list_users
    • Removedsnowflake_list_views
    • Removedsnowflake_list_warehouses
    • Removedsnowflake_profile_table
    • Removedsnowflake_query
    • Removedsnowflake_read_stream_changes
    • Removedsnowflake_refresh_dynamic_table
    • Removedsnowflake_remove_stage_file
    • Removedsnowflake_resize_warehouse
    • Removedsnowflake_resume_alert
    • Removedsnowflake_resume_compute_pool
    • Removedsnowflake_resume_dynamic_table
    • Removedsnowflake_resume_task
    • Removedsnowflake_resume_warehouse
    • Removedsnowflake_rollback_transaction
    • Removedsnowflake_sample_table
    • Removedsnowflake_set_object_tag
    • Removedsnowflake_suspend_alert
    • Removedsnowflake_suspend_compute_pool
    • Removedsnowflake_suspend_dynamic_table
    • Removedsnowflake_suspend_task
    • Removedsnowflake_suspend_warehouse
    • Removedsnowflake_truncate_table
    • Removedsnowflake_undrop_database
    • Removedsnowflake_undrop_schema
    • Removedsnowflake_undrop_table
    • Removedsnowflake_use_connection
    • Removedsnowflake_warehouse_scale_and_execute
    • Addedstages_create_stage
    • Addedstages_describe_stage
    • Addedstages_drop_stage
    • Addedstages_list_stage_files
    • Addedstages_list_stages
    • Addedstages_remove_stage_file
    • Addedstreams_create_stream
    • Addedstreams_describe_stream
    • Addedstreams_drop_stream
    • Addedstreams_list_streams
    • Addedstreams_read_stream_changes
    • Addedtables_clone_table
    • Addedtables_create_table
    • Addedtables_describe_table
    • Addedtables_drop_table
    • Addedtables_get_table_ddl
    • Addedtables_list_tables
    • Addedtables_list_views
    • Addedtables_sample_table
    • Addedtables_truncate_table
    • Addedtables_undrop_table
    • Addedtags_describe_tag
    • Addedtags_get_object_tag_references
    • Addedtags_list_tags
    • Addedtags_set_object_tag
    • Addedtasks_create_task
    • Addedtasks_describe_task
    • Addedtasks_drop_task
    • Addedtasks_execute_task
    • Addedtasks_list_tasks
    • Addedtasks_resume_task
    • Addedtasks_suspend_task
    • Addedwarehouses_create_warehouse
    • Addedwarehouses_describe_warehouse
    • Addedwarehouses_drop_warehouse
    • Addedwarehouses_get_warehouse_load_history
    • Addedwarehouses_list_warehouses
    • Addedwarehouses_resize_warehouse
    • Addedwarehouses_resume_warehouse
    • Addedwarehouses_suspend_warehouse
  3. 140 tool updatesv1.2.0
    • Changedsnowflake_account_usage_summary3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / title
        Removed value: -"snowflake_account_usage_summaryArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_account_usage_summaryDictOutput"
    • Changedsnowflake_begin_transaction3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / title
        Removed value: -"snowflake_begin_transactionArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_begin_transactionDictOutput"
    • Changedsnowflake_cancel_query4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / query_id / title
        Removed value: -"Query Id"
      • removedInput schema / title
        Removed value: -"snowflake_cancel_queryArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_cancel_queryDictOutput"
    • Changedsnowflake_clone_database5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / source_database / title
        Removed value: -"Source Database"
      • removedInput schema / properties / target_database / title
        Removed value: -"Target Database"
      • removedInput schema / title
        Removed value: -"snowflake_clone_databaseArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_clone_databaseDictOutput"
    • Changedsnowflake_clone_schema6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / source_schema / title
        Removed value: -"Source Schema"
      • removedInput schema / properties / target_schema / title
        Removed value: -"Target Schema"
      • removedInput schema / title
        Removed value: -"snowflake_clone_schemaArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_clone_schemaDictOutput"
    • Changedsnowflake_clone_table5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / source_table / title
        Removed value: -"Source Table"
      • removedInput schema / properties / target_table / title
        Removed value: -"Target Table"
      • removedInput schema / title
        Removed value: -"snowflake_clone_tableArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_clone_tableDictOutput"
    • Changedsnowflake_clone_table_recipe6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / at_or_before / title
        Removed value: -"At Or Before"
      • removedInput schema / properties / source_table / title
        Removed value: -"Source Table"
      • removedInput schema / properties / target_table / title
        Removed value: -"Target Table"
      • removedInput schema / title
        Removed value: -"snowflake_clone_table_recipeArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_clone_table_recipeDictOutput"
    • Changedsnowflake_commit_transaction3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / title
        Removed value: -"snowflake_commit_transactionArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_commit_transactionDictOutput"
    • Changedsnowflake_cortex_analyst_query5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / question / title
        Removed value: -"Question"
      • removedInput schema / properties / semantic_model_path / title
        Removed value: -"Semantic Model Path"
      • removedInput schema / title
        Removed value: -"snowflake_cortex_analyst_queryArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_cortex_analyst_queryDictOutput"
    • Changedsnowflake_cortex_complete7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / max_tokens / title
        Removed value: -"Max Tokens"
      • removedInput schema / properties / model / title
        Removed value: -"Model"
      • removedInput schema / properties / prompt / title
        Removed value: -"Prompt"
      • removedInput schema / properties / temperature / title
        Removed value: -"Temperature"
      • removedInput schema / title
        Removed value: -"snowflake_cortex_completeArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_cortex_completeDictOutput"
    • Changedsnowflake_cortex_embed_text_7685 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / model / title
        Removed value: -"Model"
      • removedInput schema / properties / text / title
        Removed value: -"Text"
      • removedInput schema / title
        Removed value: -"snowflake_cortex_embed_text_768Arguments"
      • removedOutput schema / title
        Removed value: -"snowflake_cortex_embed_text_768DictOutput"
    • Changedsnowflake_cortex_extract_answer5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / question / title
        Removed value: -"Question"
      • removedInput schema / properties / source_text / title
        Removed value: -"Source Text"
      • removedInput schema / title
        Removed value: -"snowflake_cortex_extract_answerArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_cortex_extract_answerDictOutput"
    • Changedsnowflake_cortex_search7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / columns / title
        Removed value: -"Columns"
      • removedInput schema / properties / limit / title
        Removed value: -"Limit"
      • removedInput schema / properties / query / title
        Removed value: -"Query"
      • removedInput schema / properties / service_name / title
        Removed value: -"Service Name"
      • removedInput schema / title
        Removed value: -"snowflake_cortex_searchArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_cortex_searchDictOutput"
    • Changedsnowflake_cortex_sentiment4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / text / title
        Removed value: -"Text"
      • removedInput schema / title
        Removed value: -"snowflake_cortex_sentimentArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_cortex_sentimentDictOutput"
    • Changedsnowflake_cortex_summarize4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / text / title
        Removed value: -"Text"
      • removedInput schema / title
        Removed value: -"snowflake_cortex_summarizeArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_cortex_summarizeDictOutput"
    • Changedsnowflake_cortex_translate6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / source_language / title
        Removed value: -"Source Language"
      • removedInput schema / properties / target_language / title
        Removed value: -"Target Language"
      • removedInput schema / properties / text / title
        Removed value: -"Text"
      • removedInput schema / title
        Removed value: -"snowflake_cortex_translateArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_cortex_translateDictOutput"
    • Changedsnowflake_create_alert12 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / action_sql / title
        Removed value: -"Action Sql"
      • removedInput schema / properties / alert_name / title
        Removed value: -"Alert Name"
      • removedInput schema / properties / comment / title
        Removed value: -"Comment"
      • removedInput schema / properties / condition_sql / title
        Removed value: -"Condition Sql"
      • removedInput schema / properties / confirm / title
        Removed value: -"Confirm"
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / schedule / title
        Removed value: -"Schedule"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / properties / warehouse_name / title
        Removed value: -"Warehouse Name"
      • removedInput schema / title
        Removed value: -"snowflake_create_alertArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_create_alertDictOutput"
    • Changedsnowflake_create_database7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / comment / title
        Removed value: -"Comment"
      • removedInput schema / properties / data_retention_time_in_days / title
        Removed value: -"Data Retention Time In Days"
      • removedInput schema / properties / if_not_exists / title
        Removed value: -"If Not Exists"
      • removedInput schema / properties / name / title
        Removed value: -"Name"
      • removedInput schema / title
        Removed value: -"snowflake_create_databaseArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_create_databaseDictOutput"
    • Changedsnowflake_create_pipe9 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / auto_ingest / title
        Removed value: -"Auto Ingest"
      • removedInput schema / properties / copy_statement / title
        Removed value: -"Copy Statement"
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / if_not_exists / title
        Removed value: -"If Not Exists"
      • removedInput schema / properties / pipe_name / title
        Removed value: -"Pipe Name"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_create_pipeArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_create_pipeDictOutput"
    • Changedsnowflake_create_role6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / comment / title
        Removed value: -"Comment"
      • removedInput schema / properties / if_not_exists / title
        Removed value: -"If Not Exists"
      • removedInput schema / properties / role_name / title
        Removed value: -"Role Name"
      • removedInput schema / title
        Removed value: -"snowflake_create_roleArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_create_roleDictOutput"
    • Changedsnowflake_create_schema7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / comment / title
        Removed value: -"Comment"
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / if_not_exists / title
        Removed value: -"If Not Exists"
      • removedInput schema / properties / name / title
        Removed value: -"Name"
      • removedInput schema / title
        Removed value: -"snowflake_create_schemaArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_create_schemaDictOutput"
    • Changedsnowflake_create_stage8 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / comment / title
        Removed value: -"Comment"
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / if_not_exists / title
        Removed value: -"If Not Exists"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / properties / stage_name / title
        Removed value: -"Stage Name"
      • removedInput schema / title
        Removed value: -"snowflake_create_stageArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_create_stageDictOutput"
    • Changedsnowflake_create_stream9 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / append_only / title
        Removed value: -"Append Only"
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / if_not_exists / title
        Removed value: -"If Not Exists"
      • removedInput schema / properties / on_table / title
        Removed value: -"On Table"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / properties / stream_name / title
        Removed value: -"Stream Name"
      • removedInput schema / title
        Removed value: -"snowflake_create_streamArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_create_streamDictOutput"
    • Changedsnowflake_create_table8 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / columns_sql / title
        Removed value: -"Columns Sql"
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / if_not_exists / title
        Removed value: -"If Not Exists"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / properties / table_name / title
        Removed value: -"Table Name"
      • removedInput schema / title
        Removed value: -"snowflake_create_tableArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_create_tableDictOutput"
    • Changedsnowflake_create_task10 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / if_not_exists / title
        Removed value: -"If Not Exists"
      • removedInput schema / properties / schedule / title
        Removed value: -"Schedule"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / properties / sql_statement / title
        Removed value: -"Sql Statement"
      • removedInput schema / properties / task_name / title
        Removed value: -"Task Name"
      • removedInput schema / properties / warehouse / title
        Removed value: -"Warehouse"
      • removedInput schema / title
        Removed value: -"snowflake_create_taskArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_create_taskDictOutput"
    • Changedsnowflake_create_user9 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / comment / title
        Removed value: -"Comment"
      • removedInput schema / properties / default_role / title
        Removed value: -"Default Role"
      • removedInput schema / properties / default_warehouse / title
        Removed value: -"Default Warehouse"
      • removedInput schema / properties / if_not_exists / title
        Removed value: -"If Not Exists"
      • removedInput schema / properties / password / title
        Removed value: -"Password"
      • removedInput schema / properties / user_name / title
        Removed value: -"User Name"
      • removedInput schema / title
        Removed value: -"snowflake_create_userArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_create_userDictOutput"
    • Changedsnowflake_create_warehouse9 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / auto_resume / title
        Removed value: -"Auto Resume"
      • removedInput schema / properties / auto_suspend / title
        Removed value: -"Auto Suspend"
      • removedInput schema / properties / comment / title
        Removed value: -"Comment"
      • removedInput schema / properties / if_not_exists / title
        Removed value: -"If Not Exists"
      • removedInput schema / properties / warehouse_name / title
        Removed value: -"Warehouse Name"
      • removedInput schema / properties / warehouse_size / title
        Removed value: -"Warehouse Size"
      • removedInput schema / title
        Removed value: -"snowflake_create_warehouseArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_create_warehouseDictOutput"
    • Changedsnowflake_describe_alert6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / alert_name / title
        Removed value: -"Alert Name"
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_describe_alertArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_describe_alertDictOutput"
    • Changedsnowflake_describe_compute_pool4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / pool_name / title
        Removed value: -"Pool Name"
      • removedInput schema / title
        Removed value: -"snowflake_describe_compute_poolArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_describe_compute_poolDictOutput"
    • Changedsnowflake_describe_database4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database_name / title
        Removed value: -"Database Name"
      • removedInput schema / title
        Removed value: -"snowflake_describe_databaseArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_describe_databaseDictOutput"
    • Changedsnowflake_describe_dynamic_table6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / properties / table_name / title
        Removed value: -"Table Name"
      • removedInput schema / title
        Removed value: -"snowflake_describe_dynamic_tableArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_describe_dynamic_tableDictOutput"
    • Changedsnowflake_describe_function6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / function_signature / title
        Removed value: -"Function Signature"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_describe_functionArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_describe_functionDictOutput"
    • Changedsnowflake_describe_iceberg_table6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / properties / table_name / title
        Removed value: -"Table Name"
      • removedInput schema / title
        Removed value: -"snowflake_describe_iceberg_tableArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_describe_iceberg_tableDictOutput"
    • Changedsnowflake_describe_masking_policy6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / policy_name / title
        Removed value: -"Policy Name"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_describe_masking_policyArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_describe_masking_policyDictOutput"
    • Changedsnowflake_describe_network_policy4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / policy_name / title
        Removed value: -"Policy Name"
      • removedInput schema / title
        Removed value: -"snowflake_describe_network_policyArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_describe_network_policyDictOutput"
    • Changedsnowflake_describe_network_rule6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / rule_name / title
        Removed value: -"Rule Name"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_describe_network_ruleArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_describe_network_ruleDictOutput"
    • Changedsnowflake_describe_password_policy6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / policy_name / title
        Removed value: -"Policy Name"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_describe_password_policyArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_describe_password_policyDictOutput"
    • Changedsnowflake_describe_pipe6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / pipe_name / title
        Removed value: -"Pipe Name"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_describe_pipeArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_describe_pipeDictOutput"
    • Changedsnowflake_describe_procedure6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / procedure_signature / title
        Removed value: -"Procedure Signature"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_describe_procedureArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_describe_procedureDictOutput"
    • Changedsnowflake_describe_role4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / role_name / title
        Removed value: -"Role Name"
      • removedInput schema / title
        Removed value: -"snowflake_describe_roleArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_describe_roleDictOutput"
    • Changedsnowflake_describe_row_access_policy6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / policy_name / title
        Removed value: -"Policy Name"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_describe_row_access_policyArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_describe_row_access_policyDictOutput"
    • Changedsnowflake_describe_schema5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_describe_schemaArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_describe_schemaDictOutput"
    • Changedsnowflake_describe_secret6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / properties / secret_name / title
        Removed value: -"Secret Name"
      • removedInput schema / title
        Removed value: -"snowflake_describe_secretArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_describe_secretDictOutput"
    • Changedsnowflake_describe_stage6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / properties / stage_name / title
        Removed value: -"Stage Name"
      • removedInput schema / title
        Removed value: -"snowflake_describe_stageArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_describe_stageDictOutput"
    • Changedsnowflake_describe_stream6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / properties / stream_name / title
        Removed value: -"Stream Name"
      • removedInput schema / title
        Removed value: -"snowflake_describe_streamArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_describe_streamDictOutput"
    • Changedsnowflake_describe_streamlit6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / properties / streamlit_name / title
        Removed value: -"Streamlit Name"
      • removedInput schema / title
        Removed value: -"snowflake_describe_streamlitArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_describe_streamlitDictOutput"
    • Changedsnowflake_describe_table6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / properties / table_name / title
        Removed value: -"Table Name"
      • removedInput schema / title
        Removed value: -"snowflake_describe_tableArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_describe_tableDictOutput"
    • Changedsnowflake_describe_tag6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / properties / tag_name / title
        Removed value: -"Tag Name"
      • removedInput schema / title
        Removed value: -"snowflake_describe_tagArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_describe_tagDictOutput"
    • Changedsnowflake_describe_task6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / properties / task_name / title
        Removed value: -"Task Name"
      • removedInput schema / title
        Removed value: -"snowflake_describe_taskArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_describe_taskDictOutput"
    • Changedsnowflake_describe_user4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / user_name / title
        Removed value: -"User Name"
      • removedInput schema / title
        Removed value: -"snowflake_describe_userArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_describe_userDictOutput"
    • Changedsnowflake_describe_warehouse4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / warehouse_name / title
        Removed value: -"Warehouse Name"
      • removedInput schema / title
        Removed value: -"snowflake_describe_warehouseArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_describe_warehouseDictOutput"
    • Changedsnowflake_discover_schema_lineage5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_discover_schema_lineageArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_discover_schema_lineageDictOutput"
    • Changedsnowflake_drop_alert7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / alert_name / title
        Removed value: -"Alert Name"
      • removedInput schema / properties / confirm / title
        Removed value: -"Confirm"
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_drop_alertArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_drop_alertDictOutput"
    • Changedsnowflake_drop_database5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / confirm / title
        Removed value: -"Confirm"
      • removedInput schema / properties / name / title
        Removed value: -"Name"
      • removedInput schema / title
        Removed value: -"snowflake_drop_databaseArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_drop_databaseDictOutput"
    • Changedsnowflake_drop_pipe7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / confirm / title
        Removed value: -"Confirm"
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / pipe_name / title
        Removed value: -"Pipe Name"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_drop_pipeArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_drop_pipeDictOutput"
    • Changedsnowflake_drop_role5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / confirm / title
        Removed value: -"Confirm"
      • removedInput schema / properties / role_name / title
        Removed value: -"Role Name"
      • removedInput schema / title
        Removed value: -"snowflake_drop_roleArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_drop_roleDictOutput"
    • Changedsnowflake_drop_schema6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / confirm / title
        Removed value: -"Confirm"
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / name / title
        Removed value: -"Name"
      • removedInput schema / title
        Removed value: -"snowflake_drop_schemaArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_drop_schemaDictOutput"
    • Changedsnowflake_drop_stage7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / confirm / title
        Removed value: -"Confirm"
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / properties / stage_name / title
        Removed value: -"Stage Name"
      • removedInput schema / title
        Removed value: -"snowflake_drop_stageArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_drop_stageDictOutput"
    • Changedsnowflake_drop_stream7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / confirm / title
        Removed value: -"Confirm"
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / properties / stream_name / title
        Removed value: -"Stream Name"
      • removedInput schema / title
        Removed value: -"snowflake_drop_streamArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_drop_streamDictOutput"
    • Changedsnowflake_drop_table5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / confirm / title
        Removed value: -"Confirm"
      • removedInput schema / properties / table_name / title
        Removed value: -"Table Name"
      • removedInput schema / title
        Removed value: -"snowflake_drop_tableArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_drop_tableDictOutput"
    • Changedsnowflake_drop_task7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / confirm / title
        Removed value: -"Confirm"
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / properties / task_name / title
        Removed value: -"Task Name"
      • removedInput schema / title
        Removed value: -"snowflake_drop_taskArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_drop_taskDictOutput"
    • Changedsnowflake_drop_warehouse5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / confirm / title
        Removed value: -"Confirm"
      • removedInput schema / properties / warehouse_name / title
        Removed value: -"Warehouse Name"
      • removedInput schema / title
        Removed value: -"snowflake_drop_warehouseArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_drop_warehouseDictOutput"
    • Changedsnowflake_execute_dml4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / statement / title
        Removed value: -"Statement"
      • removedInput schema / title
        Removed value: -"snowflake_execute_dmlArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_execute_dmlDictOutput"
    • Changedsnowflake_execute_task6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / properties / task_name / title
        Removed value: -"Task Name"
      • removedInput schema / title
        Removed value: -"snowflake_execute_taskArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_execute_taskDictOutput"
    • Changedsnowflake_export_query_to_stage7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / file_format / title
        Removed value: -"File Format"
      • removedInput schema / properties / header / title
        Removed value: -"Header"
      • removedInput schema / properties / query / title
        Removed value: -"Query"
      • removedInput schema / properties / stage_location / title
        Removed value: -"Stage Location"
      • removedInput schema / title
        Removed value: -"snowflake_export_query_to_stageArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_export_query_to_stageDictOutput"
    • Changedsnowflake_get_column_lineage9 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / column_name / title
        Removed value: -"Column Name"
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / days / title
        Removed value: -"Days"
      • removedInput schema / properties / limit / title
        Removed value: -"Limit"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / properties / table_name / title
        Removed value: -"Table Name"
      • removedInput schema / title
        Removed value: -"snowflake_get_column_lineageArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_get_column_lineageDictOutput"
    • Changedsnowflake_get_current_context3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / title
        Removed value: -"snowflake_get_current_contextArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_get_current_contextDictOutput"
    • Changedsnowflake_get_database_ddl4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database_name / title
        Removed value: -"Database Name"
      • removedInput schema / title
        Removed value: -"snowflake_get_database_ddlArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_get_database_ddlDictOutput"
    • Changedsnowflake_get_object_lineage7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / direction / title
        Removed value: -"Direction"
      • removedInput schema / properties / object_name / title
        Removed value: -"Object Name"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_get_object_lineageArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_get_object_lineageDictOutput"
    • Changedsnowflake_get_object_tag_references5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / object_domain / title
        Removed value: -"Object Domain"
      • removedInput schema / properties / object_name / title
        Removed value: -"Object Name"
      • removedInput schema / title
        Removed value: -"snowflake_get_object_tag_referencesArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_get_object_tag_referencesDictOutput"
    • Changedsnowflake_get_pipe_status6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / pipe_name / title
        Removed value: -"Pipe Name"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_get_pipe_statusArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_get_pipe_statusDictOutput"
    • Changedsnowflake_get_query_history4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / limit / title
        Removed value: -"Limit"
      • removedInput schema / title
        Removed value: -"snowflake_get_query_historyArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_get_query_historyDictOutput"
    • Changedsnowflake_get_query_operator_stats4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / query_id / title
        Removed value: -"Query Id"
      • removedInput schema / title
        Removed value: -"snowflake_get_query_operator_statsArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_get_query_operator_statsDictOutput"
    • Changedsnowflake_get_query_plan4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / query / title
        Removed value: -"Query"
      • removedInput schema / title
        Removed value: -"snowflake_get_query_planArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_get_query_planDictOutput"
    • Changedsnowflake_get_table_ddl5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / object_name / title
        Removed value: -"Object Name"
      • removedInput schema / properties / object_type / title
        Removed value: -"Object Type"
      • removedInput schema / title
        Removed value: -"snowflake_get_table_ddlArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_get_table_ddlDictOutput"
    • Changedsnowflake_get_warehouse_load_history4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / warehouse_name / title
        Removed value: -"Warehouse Name"
      • removedInput schema / title
        Removed value: -"snowflake_get_warehouse_load_historyArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_get_warehouse_load_historyDictOutput"
    • Changedsnowflake_health_check3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / title
        Removed value: -"snowflake_health_checkArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_health_checkDictOutput"
    • Changedsnowflake_inspect_table_with_sample7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / sample_rows / title
        Removed value: -"Sample Rows"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / properties / table_name / title
        Removed value: -"Table Name"
      • removedInput schema / title
        Removed value: -"snowflake_inspect_table_with_sampleArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_inspect_table_with_sampleDictOutput"
    • Changedsnowflake_list_alerts6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_list_alertsArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_alertsDictOutput"
    • Changedsnowflake_list_catalog_integrations4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / title
        Removed value: -"snowflake_list_catalog_integrationsArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_catalog_integrationsDictOutput"
    • Changedsnowflake_list_compute_pools4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / title
        Removed value: -"snowflake_list_compute_poolsArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_compute_poolsDictOutput"
    • Changedsnowflake_list_connections3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / title
        Removed value: -"snowflake_list_connectionsArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_connectionsDictOutput"
    • Changedsnowflake_list_databases4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / title
        Removed value: -"snowflake_list_databasesArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_databasesDictOutput"
    • Changedsnowflake_list_dynamic_tables6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_list_dynamic_tablesArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_dynamic_tablesDictOutput"
    • Changedsnowflake_list_event_tables6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_list_event_tablesArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_event_tablesDictOutput"
    • Changedsnowflake_list_external_volumes4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / title
        Removed value: -"snowflake_list_external_volumesArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_external_volumesDictOutput"
    • Changedsnowflake_list_functions6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_list_functionsArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_functionsDictOutput"
    • Changedsnowflake_list_grants_to_role4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / role_name / title
        Removed value: -"Role Name"
      • removedInput schema / title
        Removed value: -"snowflake_list_grants_to_roleArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_grants_to_roleDictOutput"
    • Changedsnowflake_list_grants_to_user4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / user_name / title
        Removed value: -"User Name"
      • removedInput schema / title
        Removed value: -"snowflake_list_grants_to_userArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_grants_to_userDictOutput"
    • Changedsnowflake_list_iceberg_tables6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_list_iceberg_tablesArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_iceberg_tablesDictOutput"
    • Changedsnowflake_list_image_repositories6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_list_image_repositoriesArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_image_repositoriesDictOutput"
    • Changedsnowflake_list_integrations5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / integration_type / title
        Removed value: -"Integration Type"
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / title
        Removed value: -"snowflake_list_integrationsArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_integrationsDictOutput"
    • Changedsnowflake_list_masking_policies6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_list_masking_policiesArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_masking_policiesDictOutput"
    • Changedsnowflake_list_network_policies4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / title
        Removed value: -"snowflake_list_network_policiesArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_network_policiesDictOutput"
    • Changedsnowflake_list_network_rules6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_list_network_rulesArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_network_rulesDictOutput"
    • Changedsnowflake_list_notification_integrations4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / title
        Removed value: -"snowflake_list_notification_integrationsArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_notification_integrationsDictOutput"
    • Changedsnowflake_list_password_policies6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_list_password_policiesArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_password_policiesDictOutput"
    • Changedsnowflake_list_pipes6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_list_pipesArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_pipesDictOutput"
    • Changedsnowflake_list_procedures6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_list_proceduresArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_proceduresDictOutput"
    • Changedsnowflake_list_roles4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / title
        Removed value: -"snowflake_list_rolesArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_rolesDictOutput"
    • Changedsnowflake_list_row_access_policies6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_list_row_access_policiesArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_row_access_policiesDictOutput"
    • Changedsnowflake_list_schemas5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / title
        Removed value: -"snowflake_list_schemasArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_schemasDictOutput"
    • Changedsnowflake_list_secrets6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_list_secretsArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_secretsDictOutput"
    • Changedsnowflake_list_sequences6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_list_sequencesArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_sequencesDictOutput"
    • Changedsnowflake_list_services6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_list_servicesArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_servicesDictOutput"
    • Changedsnowflake_list_stage_files5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / properties / stage_location / title
        Removed value: -"Stage Location"
      • removedInput schema / title
        Removed value: -"snowflake_list_stage_filesArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_stage_filesDictOutput"
    • Changedsnowflake_list_stages6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_list_stagesArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_stagesDictOutput"
    • Changedsnowflake_list_streamlits6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_list_streamlitsArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_streamlitsDictOutput"
    • Changedsnowflake_list_streams6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_list_streamsArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_streamsDictOutput"
    • Changedsnowflake_list_tables6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_list_tablesArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_tablesDictOutput"
    • Changedsnowflake_list_tags6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_list_tagsArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_tagsDictOutput"
    • Changedsnowflake_list_tasks6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_list_tasksArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_tasksDictOutput"
    • Changedsnowflake_list_users4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / title
        Removed value: -"snowflake_list_usersArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_usersDictOutput"
    • Changedsnowflake_list_views6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_list_viewsArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_viewsDictOutput"
    • Changedsnowflake_list_warehouses4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / pattern / title
        Removed value: -"Pattern"
      • removedInput schema / title
        Removed value: -"snowflake_list_warehousesArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_list_warehousesDictOutput"
    • Changedsnowflake_profile_table6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / properties / table_name / title
        Removed value: -"Table Name"
      • removedInput schema / title
        Removed value: -"snowflake_profile_tableArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_profile_tableDictOutput"
    • Changedsnowflake_query5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / max_rows / title
        Removed value: -"Max Rows"
      • removedInput schema / properties / query / title
        Removed value: -"Query"
      • removedInput schema / title
        Removed value: -"snowflake_queryArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_queryDictOutput"
    • Changedsnowflake_read_stream_changes5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / limit / title
        Removed value: -"Limit"
      • removedInput schema / properties / stream_name / title
        Removed value: -"Stream Name"
      • removedInput schema / title
        Removed value: -"snowflake_read_stream_changesArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_read_stream_changesDictOutput"
    • Changedsnowflake_refresh_dynamic_table6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / properties / table_name / title
        Removed value: -"Table Name"
      • removedInput schema / title
        Removed value: -"snowflake_refresh_dynamic_tableArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_refresh_dynamic_tableDictOutput"
    • Changedsnowflake_remove_stage_file5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / confirm / title
        Removed value: -"Confirm"
      • removedInput schema / properties / stage_file_path / title
        Removed value: -"Stage File Path"
      • removedInput schema / title
        Removed value: -"snowflake_remove_stage_fileArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_remove_stage_fileDictOutput"
    • Changedsnowflake_resize_warehouse5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / size / title
        Removed value: -"Size"
      • removedInput schema / properties / warehouse_name / title
        Removed value: -"Warehouse Name"
      • removedInput schema / title
        Removed value: -"snowflake_resize_warehouseArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_resize_warehouseDictOutput"
    • Changedsnowflake_resume_alert6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / alert_name / title
        Removed value: -"Alert Name"
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_resume_alertArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_resume_alertDictOutput"
    • Changedsnowflake_resume_compute_pool4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / pool_name / title
        Removed value: -"Pool Name"
      • removedInput schema / title
        Removed value: -"snowflake_resume_compute_poolArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_resume_compute_poolDictOutput"
    • Changedsnowflake_resume_dynamic_table6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / properties / table_name / title
        Removed value: -"Table Name"
      • removedInput schema / title
        Removed value: -"snowflake_resume_dynamic_tableArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_resume_dynamic_tableDictOutput"
    • Changedsnowflake_resume_task6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / properties / task_name / title
        Removed value: -"Task Name"
      • removedInput schema / title
        Removed value: -"snowflake_resume_taskArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_resume_taskDictOutput"
    • Changedsnowflake_resume_warehouse4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / warehouse_name / title
        Removed value: -"Warehouse Name"
      • removedInput schema / title
        Removed value: -"snowflake_resume_warehouseArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_resume_warehouseDictOutput"
    • Changedsnowflake_rollback_transaction3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / title
        Removed value: -"snowflake_rollback_transactionArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_rollback_transactionDictOutput"
    • Changedsnowflake_sample_table5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / sample_size / title
        Removed value: -"Sample Size"
      • removedInput schema / properties / table_name / title
        Removed value: -"Table Name"
      • removedInput schema / title
        Removed value: -"snowflake_sample_tableArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_sample_tableDictOutput"
    • Changedsnowflake_set_object_tag7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / object_domain / title
        Removed value: -"Object Domain"
      • removedInput schema / properties / object_name / title
        Removed value: -"Object Name"
      • removedInput schema / properties / tag_name / title
        Removed value: -"Tag Name"
      • removedInput schema / properties / tag_value / title
        Removed value: -"Tag Value"
      • removedInput schema / title
        Removed value: -"snowflake_set_object_tagArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_set_object_tagDictOutput"
    • Changedsnowflake_suspend_alert6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / alert_name / title
        Removed value: -"Alert Name"
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / title
        Removed value: -"snowflake_suspend_alertArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_suspend_alertDictOutput"
    • Changedsnowflake_suspend_compute_pool4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / pool_name / title
        Removed value: -"Pool Name"
      • removedInput schema / title
        Removed value: -"snowflake_suspend_compute_poolArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_suspend_compute_poolDictOutput"
    • Changedsnowflake_suspend_dynamic_table6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / properties / table_name / title
        Removed value: -"Table Name"
      • removedInput schema / title
        Removed value: -"snowflake_suspend_dynamic_tableArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_suspend_dynamic_tableDictOutput"
    • Changedsnowflake_suspend_task6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / schema_name / title
        Removed value: -"Schema Name"
      • removedInput schema / properties / task_name / title
        Removed value: -"Task Name"
      • removedInput schema / title
        Removed value: -"snowflake_suspend_taskArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_suspend_taskDictOutput"
    • Changedsnowflake_suspend_warehouse4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / warehouse_name / title
        Removed value: -"Warehouse Name"
      • removedInput schema / title
        Removed value: -"snowflake_suspend_warehouseArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_suspend_warehouseDictOutput"
    • Changedsnowflake_truncate_table5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / confirm / title
        Removed value: -"Confirm"
      • removedInput schema / properties / table_name / title
        Removed value: -"Table Name"
      • removedInput schema / title
        Removed value: -"snowflake_truncate_tableArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_truncate_tableDictOutput"
    • Changedsnowflake_undrop_database4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / name / title
        Removed value: -"Name"
      • removedInput schema / title
        Removed value: -"snowflake_undrop_databaseArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_undrop_databaseDictOutput"
    • Changedsnowflake_undrop_schema5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / database / title
        Removed value: -"Database"
      • removedInput schema / properties / name / title
        Removed value: -"Name"
      • removedInput schema / title
        Removed value: -"snowflake_undrop_schemaArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_undrop_schemaDictOutput"
    • Changedsnowflake_undrop_table4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / table_name / title
        Removed value: -"Table Name"
      • removedInput schema / title
        Removed value: -"snowflake_undrop_tableArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_undrop_tableDictOutput"
    • Changedsnowflake_use_connection4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / connection_name / title
        Removed value: -"Connection Name"
      • removedInput schema / title
        Removed value: -"snowflake_use_connectionArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_use_connectionDictOutput"
    • Changedsnowflake_warehouse_scale_and_execute7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / query / title
        Removed value: -"Query"
      • removedInput schema / properties / restore_previous_size / title
        Removed value: -"Restore Previous Size"
      • removedInput schema / properties / target_size / title
        Removed value: -"Target Size"
      • removedInput schema / properties / warehouse_name / title
        Removed value: -"Warehouse Name"
      • removedInput schema / title
        Removed value: -"snowflake_warehouse_scale_and_executeArguments"
      • removedOutput schema / title
        Removed value: -"snowflake_warehouse_scale_and_executeDictOutput"
  4. 15 tool updatesv1.1.5
    • Changedsnowflake_cortex_complete1 field changed
      • changedInput schema / properties / model / default
        Previous value: -"claude-3-5-sonnet"New value: +"llama3.3-70b"
    • Changedsnowflake_create_alert1 field changed
      • addedInput schema / properties / confirm
        Added value: +{
        +  "default": false,
        +  "title": "Confirm",
        +  "type": "boolean"
        +}
    • Addedsnowflake_describe_masking_policy
    • Addedsnowflake_describe_row_access_policy
    • Addedsnowflake_get_column_lineage
    • Addedsnowflake_get_object_lineage
    • Addedsnowflake_list_catalog_integrations
    • Addedsnowflake_list_connections
    • Addedsnowflake_list_event_tables
    • Addedsnowflake_list_external_volumes
    • Addedsnowflake_list_masking_policies
    • Addedsnowflake_list_notification_integrations
    • Addedsnowflake_list_row_access_policies
    • Addedsnowflake_rollback_transaction
    • Addedsnowflake_use_connection
  5. 127 tool updatesv0.1.0
    • First observedsnowflake_account_usage_summary
    • First observedsnowflake_begin_transaction
    • First observedsnowflake_cancel_query
    • First observedsnowflake_clone_database
    • First observedsnowflake_clone_schema
    • First observedsnowflake_clone_table
    • First observedsnowflake_clone_table_recipe
    • First observedsnowflake_commit_transaction
    • First observedsnowflake_cortex_analyst_query
    • First observedsnowflake_cortex_complete
    • First observedsnowflake_cortex_embed_text_768
    • First observedsnowflake_cortex_extract_answer
    • First observedsnowflake_cortex_search
    • First observedsnowflake_cortex_sentiment
    • First observedsnowflake_cortex_summarize
    • First observedsnowflake_cortex_translate
    • First observedsnowflake_create_alert
    • First observedsnowflake_create_database
    • First observedsnowflake_create_pipe
    • First observedsnowflake_create_role
    • First observedsnowflake_create_schema
    • First observedsnowflake_create_stage
    • First observedsnowflake_create_stream
    • First observedsnowflake_create_table
    • First observedsnowflake_create_task
    • First observedsnowflake_create_user
    • First observedsnowflake_create_warehouse
    • First observedsnowflake_describe_alert
    • First observedsnowflake_describe_compute_pool
    • First observedsnowflake_describe_database
    • First observedsnowflake_describe_dynamic_table
    • First observedsnowflake_describe_function
    • First observedsnowflake_describe_iceberg_table
    • First observedsnowflake_describe_network_policy
    • First observedsnowflake_describe_network_rule
    • First observedsnowflake_describe_password_policy
    • First observedsnowflake_describe_pipe
    • First observedsnowflake_describe_procedure
    • First observedsnowflake_describe_role
    • First observedsnowflake_describe_schema
    • First observedsnowflake_describe_secret
    • First observedsnowflake_describe_stage
    • First observedsnowflake_describe_stream
    • First observedsnowflake_describe_streamlit
    • First observedsnowflake_describe_table
    • First observedsnowflake_describe_tag
    • First observedsnowflake_describe_task
    • First observedsnowflake_describe_user
    • First observedsnowflake_describe_warehouse
    • First observedsnowflake_discover_schema_lineage
    • First observedsnowflake_drop_alert
    • First observedsnowflake_drop_database
    • First observedsnowflake_drop_pipe
    • First observedsnowflake_drop_role
    • First observedsnowflake_drop_schema
    • First observedsnowflake_drop_stage
    • First observedsnowflake_drop_stream
    • First observedsnowflake_drop_table
    • First observedsnowflake_drop_task
    • First observedsnowflake_drop_warehouse
    • First observedsnowflake_execute_dml
    • First observedsnowflake_execute_task
    • First observedsnowflake_export_query_to_stage
    • First observedsnowflake_get_current_context
    • First observedsnowflake_get_database_ddl
    • First observedsnowflake_get_object_tag_references
    • First observedsnowflake_get_pipe_status
    • First observedsnowflake_get_query_history
    • First observedsnowflake_get_query_operator_stats
    • First observedsnowflake_get_query_plan
    • First observedsnowflake_get_table_ddl
    • First observedsnowflake_get_warehouse_load_history
    • First observedsnowflake_health_check
    • First observedsnowflake_inspect_table_with_sample
    • First observedsnowflake_list_alerts
    • First observedsnowflake_list_compute_pools
    • First observedsnowflake_list_databases
    • First observedsnowflake_list_dynamic_tables
    • First observedsnowflake_list_functions
    • First observedsnowflake_list_grants_to_role
    • First observedsnowflake_list_grants_to_user
    • First observedsnowflake_list_iceberg_tables
    • First observedsnowflake_list_image_repositories
    • First observedsnowflake_list_integrations
    • First observedsnowflake_list_network_policies
    • First observedsnowflake_list_network_rules
    • First observedsnowflake_list_password_policies
    • First observedsnowflake_list_pipes
    • First observedsnowflake_list_procedures
    • First observedsnowflake_list_roles
    • First observedsnowflake_list_schemas
    • First observedsnowflake_list_secrets
    • First observedsnowflake_list_sequences
    • First observedsnowflake_list_services
    • First observedsnowflake_list_stage_files
    • First observedsnowflake_list_stages
    • First observedsnowflake_list_streamlits
    • First observedsnowflake_list_streams
    • First observedsnowflake_list_tables
    • First observedsnowflake_list_tags
    • First observedsnowflake_list_tasks
    • First observedsnowflake_list_users
    • First observedsnowflake_list_views
    • First observedsnowflake_list_warehouses
    • First observedsnowflake_profile_table
    • First observedsnowflake_query
    • First observedsnowflake_read_stream_changes
    • First observedsnowflake_refresh_dynamic_table
    • First observedsnowflake_remove_stage_file
    • First observedsnowflake_resize_warehouse
    • First observedsnowflake_resume_alert
    • First observedsnowflake_resume_compute_pool
    • First observedsnowflake_resume_dynamic_table
    • First observedsnowflake_resume_task
    • First observedsnowflake_resume_warehouse
    • First observedsnowflake_sample_table
    • First observedsnowflake_set_object_tag
    • First observedsnowflake_suspend_alert
    • First observedsnowflake_suspend_compute_pool
    • First observedsnowflake_suspend_dynamic_table
    • First observedsnowflake_suspend_task
    • First observedsnowflake_suspend_warehouse
    • First observedsnowflake_truncate_table
    • First observedsnowflake_undrop_database
    • First observedsnowflake_undrop_schema
    • First observedsnowflake_undrop_table
    • First observedsnowflake_warehouse_scale_and_execute

TDQS

C2.9/5.0

Scored across 140 tools

Disambiguation3/5

Most tools are separated by resource prefixes (databases_, tables_, warehouses_, etc.) and clear descriptions, so many choices are unambiguous. However, several composite recipes overlap heavily with base tools (e.g. recipes_profile_table vs recipes_inspect_table_with_sample vs tables_describe_table/tables_sample_table), and a few list tools overlap, such as programmability_list_integrations vs programmability_list_notification_integrations.

Naming Consistency4/5

The dominant pattern is category_verb_object in snake_case, which is highly predictable across most of the surface. There are minor deviations and awkward names such as queries_query, cortex_complete, recipes_health_check, recipes_clone_table_recipe, and the typo compute_services_list_streamlits.

Tool Count1/5

At 140 tools, the surface is far beyond a practical, well-scoped set for agent selection. Even for a broad platform like Snowflake, this volume creates excessive choice overload and many tools could be consolidated into fewer parameterized operations.

Completeness3/5

Coverage is broad for querying, listing, describing, and some lifecycle operations across databases, schemas, tables, warehouses, tasks, streams, pipes, alerts, and governance objects. However, there are notable gaps: no grant/revoke operations, no alter-table/alter-object tools, no create/drop for dynamic tables or compute pools, no create for network policies, and no stage file upload/download.

Maintenance

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables intelligent data analysis and querying of Snowflake databases through specialized AI agents. Features 20+ tools for data operations, lineage tracing, usage analysis, and performance optimization with multi-agent architecture.
    -
  • A
    license
    A
    quality
    Not graded
    maintenance
    Enables AI assistants to securely connect to Snowflake data warehouses and execute SQL queries through natural language interactions. Supports multiple authentication methods and provides formatted query results with built-in security controls.
    1
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with Snowflake through Cortex AI services including search, analyst, and agents for querying structured and unstructured data, plus SQL execution and object management capabilities.
    8,995 PyPI
    303
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to perform comprehensive Snowflake database operations including DDL, DML, and warehouse management. It allows users to query data, manage database objects, and configure permissions using natural language commands.
    MIT