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.

Inputs: schedule (required), action_sql (required), alert_name (required), condition_sql (required), +5 more. Returns: object

alerts_describe_alertAlerts Describe AlertB
Read-onlyIdempotent

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

Inputs: alert_name (required), database, schema_name. Returns: object

alerts_drop_alertAlerts Drop AlertA
Destructive

Drop an alert in Snowflake. Requires confirmation.

Inputs: alert_name (required), confirm, database, schema_name. Returns: object

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.

Inputs: pattern, database, schema_name. Returns: object

alerts_resume_alertAlerts Resume AlertC
Idempotent

Resume a suspended alert.

Inputs: alert_name (required), database, schema_name. Returns: object

alerts_suspend_alertAlerts Suspend AlertB
Idempotent

Suspend an active alert.

Inputs: alert_name (required), database, schema_name. Returns: object

compute_services_describe_compute_poolCompute Services Describe Compute PoolB
Read-onlyIdempotent

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

Inputs: pool_name (required). Returns: object

compute_services_describe_streamlitCompute Services Describe StreamlitA
Read-onlyIdempotent

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

Inputs: streamlit_name (required), database, schema_name. Returns: object

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.

Inputs: pattern. Returns: object

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.

Inputs: pattern, database, schema_name. Returns: object

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.

Inputs: pattern, database, schema_name. Returns: object

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.

Inputs: pattern, database, schema_name. Returns: object

compute_services_resume_compute_poolCompute Services Resume Compute PoolA
Idempotent

Resume an idle or suspended SPCS compute pool.

Inputs: pool_name (required). Returns: object

compute_services_suspend_compute_poolCompute Services Suspend Compute PoolA
Idempotent

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

Inputs: pool_name (required). Returns: object

cortex_analyst_queryCortex Analyst QueryB
Read-onlyIdempotent

Answer an analytical question via AI_COMPLETE. Optionally prefixes the prompt with semantic_model_path. Does not call Cortex Analyst REST (POST /api/v2/cortex/analyst/message).

Inputs: question (required), semantic_model_path. Returns: object

cortex_completeCortex CompleteC
Read-onlyIdempotent

Run LLM completion via Snowflake AI_COMPLETE (e.g., 'llama3.3-70b', 'llama3.1-8b').

Inputs: prompt (required), model, max_tokens, temperature. Returns: object

cortex_embed_text_768Cortex Embed Text 768A
Read-onlyIdempotent

Generate text embeddings via Snowflake AI_EMBED. Output dimension is set by the model (default snowflake-arctic-embed-m is 768); replaces legacy EMBED_TEXT_768.

Inputs: text (required), model. Returns: object

cortex_extract_answerCortex Extract AnswerB
Read-onlyIdempotent

Extract answers from text via Snowflake AI_EXTRACT. Returns the AI_EXTRACT JSON object (response/error), not a legacy plain-string answer.

Inputs: question (required), source_text (required). Returns: object

cortex_sentimentCortex SentimentA
Read-onlyIdempotent

Analyze sentiment via Snowflake AI_SENTIMENT. Returns an object with a categories array (overall plus optional aspects), not a legacy -1.0..1.0 float score.

Inputs: text (required). Returns: object

cortex_summarizeCortex SummarizeB
Read-onlyIdempotent

Summarize text via Snowflake AI_SUMMARIZE (drop-in for legacy CORTEX.SUMMARIZE).

Inputs: text (required). Returns: object

cortex_translateCortex TranslateB
Read-onlyIdempotent

Translate text via Snowflake AI_TRANSLATE (drop-in for legacy CORTEX.TRANSLATE).

Inputs: text (required), source_language (required), target_language (required). Returns: object

databases_clone_databaseDatabases Clone DatabaseB

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

Inputs: source_database (required), target_database (required). Returns: object

databases_create_databaseDatabases Create DatabaseC

Create a new database in Snowflake.

Inputs: name (required), comment, if_not_exists, data_retention_time_in_days. Returns: object

databases_describe_databaseDatabases Describe DatabaseB
Read-onlyIdempotent

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

Inputs: database_name (required). Returns: object

databases_drop_databaseDatabases Drop DatabaseA
Destructive

Drop a database in Snowflake. Requires confirmation flag.

Inputs: name (required), confirm. Returns: object

databases_get_database_ddlDatabases Get Database DdlB
Read-onlyIdempotent

Retrieve the exact CREATE DATABASE DDL definition.

Inputs: database_name (required). Returns: object

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.

Inputs: pattern. Returns: object

databases_undrop_databaseDatabases Undrop DatabaseA

Restore a recently dropped database using Time Travel.

Inputs: name (required). Returns: object

dynamic_tables_describe_dynamic_tableDynamic Tables Describe Dynamic TableA
Read-onlyIdempotent

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

Inputs: table_name (required), database, schema_name. Returns: object

dynamic_tables_describe_iceberg_tableDynamic Tables Describe Iceberg TableB
Read-onlyIdempotent

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

Inputs: table_name (required), database, schema_name. Returns: object

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.

Inputs: pattern. Returns: object

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.

Inputs: pattern, database, schema_name. Returns: object

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.

Inputs: pattern. Returns: object

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.

Inputs: pattern, database, schema_name. Returns: object

dynamic_tables_refresh_dynamic_tableDynamic Tables Refresh Dynamic TableB
Idempotent

Trigger an immediate manual refresh of a dynamic table.

Inputs: table_name (required), database, schema_name. Returns: object

dynamic_tables_resume_dynamic_tableDynamic Tables Resume Dynamic TableC
Idempotent

Resume scheduling and lag monitoring for a dynamic table.

Inputs: table_name (required), database, schema_name. Returns: object

dynamic_tables_suspend_dynamic_tableDynamic Tables Suspend Dynamic TableB
Idempotent

Suspend automated refresh and lag evaluation for a dynamic table.

Inputs: table_name (required), database, schema_name. Returns: object

governance_create_roleGovernance Create RoleC

Create a new role in Snowflake.

Inputs: role_name (required), comment, if_not_exists. Returns: object

governance_create_userGovernance Create UserC

Create a new Snowflake user with default role and warehouse.

Inputs: user_name (required), comment, password, default_role, +2 more. Returns: object

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.

Inputs: role_name (required). Returns: object

governance_describe_userGovernance Describe UserA
Read-onlyIdempotent

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

Inputs: user_name (required). Returns: object

governance_drop_roleGovernance Drop RoleB
Destructive

Drop a role in Snowflake. Requires confirmation.

Inputs: role_name (required), confirm. Returns: object

governance_get_current_contextGovernance Get Current ContextA
Read-onlyIdempotent

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

Inputs: no named parameters. Returns: object

governance_list_connectionsGovernance List ConnectionsA
Read-onlyIdempotent

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

Inputs: no named parameters. Returns: object

governance_list_grants_to_roleGovernance List Grants To RoleA
Read-onlyIdempotent

List privileges granted to a specific role.

Inputs: role_name (required). Returns: object

governance_list_grants_to_userGovernance List Grants To UserB
Read-onlyIdempotent

List roles granted to a specific user.

Inputs: user_name (required). Returns: object

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.

Inputs: pattern. Returns: object

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.

Inputs: pattern. Returns: object

governance_use_connectionGovernance Use ConnectionB
Idempotent

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

Inputs: connection_name (required). Returns: object

horizon_describe_masking_policyHorizon Describe Masking PolicyB
Read-onlyIdempotent

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

Inputs: policy_name (required), database, schema_name. Returns: object

horizon_describe_row_access_policyHorizon Describe Row Access PolicyB
Read-onlyIdempotent

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

Inputs: policy_name (required), database, schema_name. Returns: object

horizon_get_column_lineageHorizon Get Column LineageB
Read-onlyIdempotent

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

Inputs: table_name (required), column_name (required), days, limit, +2 more. Returns: object

horizon_get_object_lineageHorizon Get Object LineageB
Read-onlyIdempotent

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

Inputs: object_name (required), database, direction, schema_name. Returns: object

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.

Inputs: pattern, database, schema_name. Returns: object

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.

Inputs: pattern, database, schema_name. Returns: object

network_describe_network_policyNetwork Describe Network PolicyB
Read-onlyIdempotent

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

Inputs: policy_name (required). Returns: object

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.

Inputs: rule_name (required), database, schema_name. Returns: object

network_describe_password_policyNetwork Describe Password PolicyB
Read-onlyIdempotent

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

Inputs: policy_name (required), database, schema_name. Returns: object

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.

Inputs: pattern. Returns: object

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.

Inputs: pattern, database, schema_name. Returns: object

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.

Inputs: pattern, database, schema_name. Returns: object

pipes_create_pipePipes Create PipeC

Create a Snowpipe for continuous ingestion.

Inputs: pipe_name (required), copy_statement (required), database, auto_ingest, +2 more. Returns: object

pipes_describe_pipePipes Describe PipeC
Read-onlyIdempotent

Describe pipe definition and COPY statement.

Inputs: pipe_name (required), database, schema_name. Returns: object

pipes_drop_pipePipes Drop PipeB
Destructive

Drop a Snowpipe. Requires confirmation.

Inputs: pipe_name (required), confirm, database, schema_name. Returns: object

pipes_get_pipe_statusPipes Get Pipe StatusA
Read-onlyIdempotent

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

Inputs: pipe_name (required), database, schema_name. Returns: object

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.

Inputs: pattern, database, schema_name. Returns: object

programmability_describe_functionProgrammability Describe FunctionB
Read-onlyIdempotent

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

Inputs: function_signature (required), database, schema_name. Returns: object

programmability_describe_procedureProgrammability Describe ProcedureA
Read-onlyIdempotent

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

Inputs: procedure_signature (required), database, schema_name. Returns: object

programmability_describe_secretProgrammability Describe SecretA
Read-onlyIdempotent

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

Inputs: secret_name (required), database, schema_name. Returns: object

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.

Inputs: pattern, database, schema_name. Returns: object

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.

Inputs: pattern, database, schema_name. Returns: object

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.

Inputs: pattern, integration_type. Returns: object

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.

Inputs: pattern. Returns: object

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.

Inputs: pattern, database, schema_name. Returns: object

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.

Inputs: pattern, database, schema_name. Returns: object

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.

Inputs: pattern, database, schema_name. Returns: object

queries_begin_transactionQueries Begin TransactionA
Idempotent

Begin an explicit transaction on the active session.

Inputs: no named parameters. Returns: object

queries_cancel_queryQueries Cancel QueryA
Destructive

Cancel an active running Snowflake query by its Query ID. Requires confirmation.

Inputs: query_id (required), confirm. Returns: object

queries_commit_transactionQueries Commit TransactionA
Idempotent

Commit the current active transaction on the session.

Inputs: no named parameters. Returns: object

queries_execute_dmlQueries Execute DmlB
Destructive

Execute a data modification SQL statement (INSERT, UPDATE, DELETE, MERGE, CREATE). Requires confirmation.

Inputs: statement (required), confirm. Returns: object

queries_get_query_historyQueries Get Query HistoryB
Read-onlyIdempotent

Retrieve recent query execution history for the current account/user.

Inputs: limit. Returns: object

queries_get_query_operator_statsQueries Get Query Operator StatsB
Read-onlyIdempotent

Retrieve operator-level execution statistics and profiling data for a past Query ID.

Inputs: query_id (required). Returns: object

queries_get_query_planQueries Get Query PlanA
Read-onlyIdempotent

Generate the EXPLAIN execution plan for a SQL query without executing it.

Inputs: query (required). Returns: object

queries_queryQueries QueryB
Read-onlyIdempotent

Execute a SQL SELECT or read-only query on Snowflake and return structured rows with metadata.

Inputs: query (required), max_rows. Returns: object

queries_rollback_transactionQueries Rollback TransactionA
Destructive

Rollback the current active transaction on the session. Requires confirmation.

Inputs: confirm. Returns: object

recipes_account_usage_summaryRecipes Account Usage SummaryA
Read-onlyIdempotent

Composite recipe: Summary of warehouse compute credits and storage consumption over the past 7 days.

Inputs: no named parameters. Returns: object

recipes_clone_table_recipeRecipes Clone Table RecipeA

Composite recipe: Clone table with Time Travel timestamp or statement ID in 1 call.

Inputs: source_table (required), target_table (required), at_or_before. Returns: object

recipes_discover_schema_lineageRecipes Discover Schema LineageB
Read-onlyIdempotent

Composite recipe: Discover all tables and views in a schema along with their column definitions.

Inputs: database, schema_name. Returns: object

recipes_export_query_to_stageRecipes Export Query To StageC

Composite recipe: Unload query results to a stage as Parquet or CSV files.

Inputs: query (required), stage_location (required), header, file_format. Returns: object

recipes_health_checkRecipes Health CheckA
Read-onlyIdempotent

Composite recipe: Run health check on connection, active session, warehouse state, and credit consumption.

Inputs: no named parameters. Returns: object

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.

Inputs: table_name (required), database, sample_rows, schema_name. Returns: object

recipes_profile_tableRecipes Profile TableB
Read-onlyIdempotent

Composite recipe: Profile table metadata, row count, and column inventory.

Inputs: table_name (required), database, schema_name. Returns: object

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.

Inputs: query (required), target_size (required), warehouse_name (required), confirm, +1 more. Returns: object

schemas_clone_schemaSchemas Clone SchemaB

Create a zero-copy clone of a schema.

Inputs: source_schema (required), target_schema (required), database. Returns: object

schemas_create_schemaSchemas Create SchemaC

Create a new schema inside a specified database.

Inputs: name (required), comment, database, if_not_exists. Returns: object

schemas_describe_schemaSchemas Describe SchemaA
Read-onlyIdempotent

Describe schema properties, owner, and retention settings.

Inputs: schema_name (required), database. Returns: object

schemas_drop_schemaSchemas Drop SchemaB
Destructive

Drop a schema in Snowflake. Requires confirmation flag.

Inputs: name (required), confirm, database. Returns: object

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.

Inputs: pattern, database. Returns: object

schemas_undrop_schemaSchemas Undrop SchemaB

Restore a recently dropped schema using Time Travel.

Inputs: name (required), database. Returns: object

stages_create_stageStages Create StageC

Create an internal named stage in Snowflake.

Inputs: stage_name (required), comment, database, schema_name, +1 more. Returns: object

stages_describe_stageStages Describe StageB
Read-onlyIdempotent

Describe stage location URL, storage integration, and file format properties.

Inputs: stage_name (required), database, schema_name. Returns: object

stages_drop_stageStages Drop StageA
Destructive

Drop a stage in Snowflake. Requires confirmation.

Inputs: stage_name (required), confirm, database, schema_name. Returns: object

stages_list_stage_filesStages List Stage FilesB
Read-onlyIdempotent

List files inside a Snowflake stage location (e.g. '@MY_STAGE/path/').

Inputs: stage_location (required), pattern. Returns: object

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.

Inputs: pattern, database, schema_name. Returns: object

stages_remove_stage_fileStages Remove Stage FileB
Destructive

Remove a file from a stage location. Requires confirmation.

Inputs: stage_file_path (required), confirm. Returns: object

streams_create_streamStreams Create StreamC

Create a CDC stream on a table or view.

Inputs: on_table (required), stream_name (required), database, append_only, +2 more. Returns: object

streams_describe_streamStreams Describe StreamA
Read-onlyIdempotent

Describe stream metadata, source table, and stale status.

Inputs: stream_name (required), database, schema_name. Returns: object

streams_drop_streamStreams Drop StreamB
Destructive

Drop a stream. Requires confirmation.

Inputs: stream_name (required), confirm, database, schema_name. Returns: object

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.

Inputs: pattern, database, schema_name. Returns: object

streams_read_stream_changesStreams Read Stream ChangesB
Read-onlyIdempotent

Query unconsumed CDC changes recorded in a stream (default 10 rows).

Inputs: stream_name (required), limit. Returns: object

tables_clone_tableTables Clone TableB

Create a zero-copy clone of an existing table.

Inputs: source_table (required), target_table (required). Returns: object

tables_create_tableTables Create TableC

Create a table in Snowflake with specified column definitions SQL.

Inputs: table_name (required), columns_sql (required), database, schema_name, +1 more. Returns: object

tables_describe_tableTables Describe TableB
Read-onlyIdempotent

Describe column definitions, data types, nullability, and primary keys for a table or view.

Inputs: table_name (required), database, schema_name. Returns: object

tables_drop_tableTables Drop TableB
Destructive

Drop a table in Snowflake. Requires confirmation flag.

Inputs: table_name (required), confirm. Returns: object

tables_get_table_ddlTables Get Table DdlB
Read-onlyIdempotent

Retrieve the exact CREATE OR REPLACE TABLE/VIEW DDL definition for an object.

Inputs: object_name (required), object_type. Returns: object

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.

Inputs: pattern, database, schema_name. Returns: object

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.

Inputs: pattern, database, schema_name. Returns: object

tables_sample_tableTables Sample TableC
Read-onlyIdempotent

Preview sample rows from a table (default 10 rows).

Inputs: table_name (required), sample_size. Returns: object

tables_truncate_tableTables Truncate TableA
Destructive

Truncate all data rows from a table while preserving schema. Requires confirmation.

Inputs: table_name (required), confirm. Returns: object

tables_undrop_tableTables Undrop TableA

Restore a recently dropped table using Time Travel.

Inputs: table_name (required). Returns: object

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.

Inputs: tag_name (required), database, schema_name. Returns: object

tags_get_object_tag_referencesTags Get Object Tag ReferencesB
Read-onlyIdempotent

Get tag key/value assignments on a specific database object.

Inputs: object_name (required), object_domain. Returns: object

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.

Inputs: pattern, database, schema_name. Returns: object

tags_set_object_tagTags Set Object TagC
Idempotent

Set or assign a tag value on a Snowflake object (TABLE, SCHEMA, DATABASE, etc.).

Inputs: tag_name (required), tag_value (required), object_name (required), object_domain. Returns: object

tasks_create_taskTasks Create TaskC

Create a scheduled or serverless task in Snowflake.

Inputs: task_name (required), sql_statement (required), database, schedule, +3 more. Returns: object

tasks_describe_taskTasks Describe TaskA
Read-onlyIdempotent

Describe task definition, schedule, warehouse, and definition SQL.

Inputs: task_name (required), database, schema_name. Returns: object

tasks_drop_taskTasks Drop TaskA
Destructive

Drop a task in Snowflake. Requires confirmation.

Inputs: task_name (required), confirm, database, schema_name. Returns: object

tasks_execute_taskTasks Execute TaskB
Destructive

Trigger an immediate one-time execution of a task. Requires confirmation.

Inputs: task_name (required), confirm, database, schema_name. Returns: object

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.

Inputs: pattern, database, schema_name. Returns: object

tasks_resume_taskTasks Resume TaskC
Idempotent

Resume a suspended task.

Inputs: task_name (required), database, schema_name. Returns: object

tasks_suspend_taskTasks Suspend TaskB
Idempotent

Suspend an active scheduled task.

Inputs: task_name (required), database, schema_name. Returns: object

warehouses_create_warehouseWarehouses Create WarehouseC

Create a new virtual warehouse in Snowflake.

Inputs: warehouse_name (required), comment, auto_resume, auto_suspend, +2 more. Returns: object

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.

Inputs: warehouse_name (required). Returns: object

warehouses_drop_warehouseWarehouses Drop WarehouseB
Destructive

Drop a virtual warehouse. Requires confirmation.

Inputs: warehouse_name (required), confirm. Returns: object

warehouses_get_warehouse_load_historyWarehouses Get Warehouse Load HistoryC
Read-onlyIdempotent

Get execution load, queuing, and provisioning history for a warehouse.

Inputs: warehouse_name (required). Returns: object

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.

Inputs: pattern. Returns: object

warehouses_resize_warehouseWarehouses Resize WarehouseB

Change warehouse compute size (XSMALL, SMALL, MEDIUM, LARGE, XLARGE, 2XLARGE, etc.).

Inputs: size (required), warehouse_name (required). Returns: object

warehouses_resume_warehouseWarehouses Resume WarehouseB
Idempotent

Resume a suspended virtual warehouse.

Inputs: warehouse_name (required). Returns: object

warehouses_suspend_warehouseWarehouses Suspend WarehouseA
Idempotent

Suspend an active virtual warehouse to save compute costs.

Inputs: warehouse_name (required). Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.9/5.0

    Scored across 140 tools

    Disambiguation3/5

    Most tools target a distinct resource and action, and category prefixes help separate domains. However, composite recipes duplicate primitive tools (e.g., recipes_inspect_table_with_sample vs tables_describe_table + tables_sample_table, recipes_clone_table_recipe vs tables_clone_table), and some describe/list tools overlap in grants coverage. Descriptions mitigate this, but agents still face non-trivial selection ambiguity.

    Naming Consistency4/5

    Names generally follow a predictable snake_case pattern of category prefix + action + resource (databases_list_databases, warehouses_resize_warehouse, tasks_suspend_task). Minor deviations exist, such as cortex_search lacking an explicit verb/object structure, recipe names being phrase-like, and the 'streamlits' typo, but the convention remains readable and consistent.

    Tool Count1/5

    At 140 tools, the surface is far beyond a well-scoped set and creates a heavy selection burden for an agent. Even for a broad platform like Snowflake, this is an extreme mismatch that encourages overlap, duplication, and cognitive overload.

    Completeness4/5

    Coverage is broad across databases, schemas, tables, warehouses, stages, tasks, streams, dynamic tables, governance, network, compute services, tags, Horizon, programmability, Cortex, and query execution. Some object types are list/describe-only (e.g., network policies, masking policies, functions/procedures/secrets, tag creation), but generic DML provides a workaround for most gaps.

    Maintenance

    ActivityActive
    ResponsivenessOutdated data

    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.
      19,707 PyPI
      302
      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