snowflake-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SNOWFLAKE_ROLE | No | Default role to use. | |
| SNOWFLAKE_USER | No | Snowflake username. | |
| SNOWFLAKE_TOKEN | No | Programmatic access token (PAT) or OAuth token. | |
| SNOWFLAKE_SCHEMA | No | Default schema to use. | |
| SNOWFLAKE_ACCOUNT | No | Snowflake account identifier (e.g., xyz12345.us-east-1). | |
| SNOWFLAKE_DATABASE | No | Default database to use. | |
| SNOWFLAKE_MAX_ROWS | No | Maximum number of rows returned by a query before truncation. | 1000 |
| SNOWFLAKE_PASSWORD | No | Snowflake password. | |
| SNOWFLAKE_WAREHOUSE | No | Default virtual warehouse to use. | |
| SNOWFLAKE_MCP_READONLY | No | Set to '1' to enable read-only safety mode, disabling all DDL/DML mutation capabilities. | 0 |
| SNOWFLAKE_AUTHENTICATOR | No | Authentication method, e.g. 'externalbrowser' for SSO/browser authentication. | |
| SNOWFLAKE_QUERY_TIMEOUT | No | Query timeout in seconds. | 120 |
| SNOWFLAKE_PRIVATE_KEY_PATH | No | Path to the private key for RSA key-pair JWT authentication. | |
| SNOWFLAKE_PRIVATE_KEY_PASSPHRASE | No | Passphrase for the private key, if encrypted. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| snowflake_queryB | Execute a SQL SELECT or read-only query on Snowflake and return structured rows with metadata. |
| snowflake_execute_dmlC | Execute a data modification SQL statement (INSERT, UPDATE, DELETE, MERGE, CREATE). |
| snowflake_cancel_queryB | Cancel an active running Snowflake query by its Query ID. |
| snowflake_get_query_historyC | Retrieve recent query execution history for the current account/user. |
| snowflake_get_query_planA | Generate the EXPLAIN execution plan for a SQL query without executing it. |
| snowflake_get_query_operator_statsA | Retrieve operator-level execution statistics and profiling data for a past Query ID. |
| snowflake_begin_transactionB | Begin an explicit transaction on the active session. |
| snowflake_commit_transactionA | Commit the current active transaction on the session. |
| snowflake_rollback_transactionA | Rollback the current active transaction on the session. |
| snowflake_list_databasesB | List all available databases accessible to the current role. |
| snowflake_describe_databaseB | Describe properties, owner, retention time, and comment of a database. |
| snowflake_create_databaseC | Create a new database in Snowflake. |
| snowflake_clone_databaseB | Create a zero-copy clone of a database in Snowflake. |
| snowflake_drop_databaseB | Drop a database in Snowflake. Requires confirmation flag. |
| snowflake_undrop_databaseC | Restore a recently dropped database using Time Travel. |
| snowflake_get_database_ddlC | Retrieve the exact CREATE DATABASE DDL definition. |
| snowflake_list_schemasB | List all schemas within a specific database or the current active database. |
| snowflake_describe_schemaA | Describe schema properties, owner, and retention settings. |
| snowflake_create_schemaC | Create a new schema inside a specified database. |
| snowflake_clone_schemaD | Create a zero-copy clone of a schema. |
| snowflake_drop_schemaB | Drop a schema in Snowflake. Requires confirmation flag. |
| snowflake_undrop_schemaB | Restore a recently dropped schema using Time Travel. |
| snowflake_list_tablesB | List tables in a database schema with row counts and bytes. |
| snowflake_list_viewsC | List views in a database schema. |
| snowflake_describe_tableB | Describe column definitions, data types, nullability, and primary keys for a table or view. |
| snowflake_get_table_ddlA | Retrieve the exact CREATE OR REPLACE TABLE/VIEW DDL definition for an object. |
| snowflake_sample_tableC | Preview sample rows from a table (default 10 rows). |
| snowflake_create_tableC | Create a table in Snowflake with specified column definitions SQL. |
| snowflake_drop_tableC | Drop a table in Snowflake. Requires confirmation flag. |
| snowflake_undrop_tableB | Restore a recently dropped table using Time Travel. |
| snowflake_truncate_tableB | Truncate all data rows from a table while preserving schema. Requires confirmation. |
| snowflake_clone_tableC | Create a zero-copy clone of an existing table. |
| snowflake_list_warehousesA | List virtual warehouses in the account with size, state, and auto-suspend configurations. |
| snowflake_describe_warehouseA | Describe details and running state of a specific virtual warehouse. |
| snowflake_create_warehouseC | Create a new virtual warehouse in Snowflake. |
| snowflake_drop_warehouseC | Drop a virtual warehouse. Requires confirmation. |
| snowflake_resume_warehouseC | Resume a suspended virtual warehouse. |
| snowflake_suspend_warehouseC | Suspend an active virtual warehouse to save compute costs. |
| snowflake_resize_warehouseC | Change warehouse compute size (XSMALL, SMALL, MEDIUM, LARGE, XLARGE, 2XLARGE, etc.). |
| snowflake_get_warehouse_load_historyB | Get execution load, queuing, and provisioning history for a warehouse. |
| snowflake_list_stagesC | List internal and external stages available in the active database or schema. |
| snowflake_describe_stageB | Describe stage location URL, storage integration, and file format properties. |
| snowflake_create_stageC | Create an internal named stage in Snowflake. |
| snowflake_drop_stageC | Drop a stage in Snowflake. Requires confirmation. |
| snowflake_list_stage_filesC | List files inside a Snowflake stage location (e.g. '@MY_STAGE/path/'). |
| snowflake_remove_stage_fileB | Remove a file from a stage location. Requires confirmation. |
| snowflake_list_tasksB | List tasks in a database or schema with schedule, state, and predecessor info. |
| snowflake_describe_taskC | Describe task definition, schedule, warehouse, and definition SQL. |
| snowflake_create_taskC | Create a scheduled or serverless task in Snowflake. |
| snowflake_drop_taskC | Drop a task in Snowflake. Requires confirmation. |
| snowflake_resume_taskC | Resume a suspended task. |
| snowflake_suspend_taskC | Suspend an active scheduled task. |
| snowflake_execute_taskC | Trigger an immediate one-time execution of a task. |
| snowflake_list_streamsC | List table/view streams in a database or schema. |
| snowflake_describe_streamB | Describe stream metadata, source table, and stale status. |
| snowflake_create_streamC | Create a CDC stream on a table or view. |
| snowflake_drop_streamC | Drop a stream. Requires confirmation. |
| snowflake_read_stream_changesB | Query unconsumed CDC changes recorded in a stream (default 10 rows). |
| snowflake_list_dynamic_tablesB | List dynamic tables with lag targets, refresh mode, and last refresh status. |
| snowflake_describe_dynamic_tableC | Describe dynamic table definition, target lag, warehouse, and query text. |
| snowflake_refresh_dynamic_tableC | Trigger an immediate manual refresh of a dynamic table. |
| snowflake_resume_dynamic_tableC | Resume scheduling and lag monitoring for a dynamic table. |
| snowflake_suspend_dynamic_tableC | Suspend automated refresh and lag evaluation for a dynamic table. |
| snowflake_list_iceberg_tablesB | List Apache Iceberg tables in the account, database, or schema. |
| snowflake_describe_iceberg_tableC | Describe schema, catalog integration, and external volume of an Iceberg table. |
| snowflake_list_external_volumesC | List external cloud storage volumes configured for Apache Iceberg tables. |
| snowflake_list_catalog_integrationsC | List catalog integrations (Polaris, AWS Glue, Object Storage) configured in Snowflake. |
| snowflake_list_pipesC | List Snowpipes configured in a database or schema. |
| snowflake_describe_pipeC | Describe pipe definition and COPY statement. |
| snowflake_create_pipeC | Create a Snowpipe for continuous ingestion. |
| snowflake_drop_pipeC | Drop a Snowpipe. Requires confirmation. |
| snowflake_get_pipe_statusC | Get execution and health status of a Snowpipe (pending file count, last ingested timestamp). |
| snowflake_list_alertsB | List configured alerts with condition queries, schedules, and state. |
| snowflake_describe_alertC | Describe alert condition SQL, action SQL, schedule, and warehouse. |
| snowflake_create_alertA | Create an alert with schedule, condition SQL, and action SQL. Destructive actions require confirm=True. |
| snowflake_drop_alertC | Drop an alert in Snowflake. Requires confirmation. |
| snowflake_resume_alertC | Resume a suspended alert. |
| snowflake_suspend_alertC | Suspend an active alert. |
| snowflake_get_current_contextA | Retrieve current active session context (current user, role, warehouse, database, schema, and account). |
| snowflake_list_connectionsA | List available connection profiles configured in ~/.snowflake/connections.toml and show active profile. |
| snowflake_use_connectionA | Dynamically switch the active Snowflake session to a different connection profile from ~/.snowflake/connections.toml. |
| snowflake_list_rolesB | List roles available in the Snowflake account. |
| snowflake_describe_roleB | Describe role properties and assigned grants. |
| snowflake_create_roleC | Create a new role in Snowflake. |
| snowflake_drop_roleC | Drop a role in Snowflake. Requires confirmation. |
| snowflake_list_usersC | List users in the Snowflake account with login status and default roles. |
| snowflake_describe_userC | Describe user properties, email, disabled status, and default warehouse/role. |
| snowflake_create_userC | Create a new Snowflake user with default role and warehouse. |
| snowflake_list_grants_to_roleB | List privileges granted to a specific role. |
| snowflake_list_grants_to_userA | List roles granted to a specific user. |
| snowflake_list_network_policiesC | List network policies configured in the account. |
| snowflake_describe_network_policyB | Describe allowed IP lists, blocked IP lists, and comments for a network policy. |
| snowflake_list_network_rulesC | List network rules defined in a database or schema. |
| snowflake_describe_network_ruleC | Describe mode (INGRESS, INTERNAL_STAGE, EGRESS), type (IPV4, AWSVPCEID, HOST_PORT), and value list of a network rule. |
| snowflake_list_password_policiesC | List password security policies defined in the account or database. |
| snowflake_describe_password_policyC | Describe password policy constraints (min length, lockout time, history, age). |
| snowflake_list_streamlitsC | List Streamlit applications hosted in Snowflake. |
| snowflake_describe_streamlitB | Describe Streamlit application root location, stage, and query warehouse. |
| snowflake_list_compute_poolsB | List Snowpark Container Services (SPCS) compute pools. |
| snowflake_describe_compute_poolA | Describe compute pool instance family, min/max nodes, active nodes, and state. |
| snowflake_resume_compute_poolC | Resume an idle or suspended SPCS compute pool. |
| snowflake_suspend_compute_poolB | Suspend an active SPCS compute pool to stop node provisioning costs. |
| snowflake_list_servicesC | List container services running on SPCS compute pools. |
| snowflake_list_image_repositoriesC | List OCI image repositories in Snowflake. |
| snowflake_list_tagsC | List object tags defined in a database or schema. |
| snowflake_describe_tagC | Describe tag properties, allowed values, and comment. |
| snowflake_get_object_tag_referencesC | Get tag key/value assignments on a specific database object. |
| snowflake_set_object_tagC | Set or assign a tag value on a Snowflake object (TABLE, SCHEMA, DATABASE, etc.). |
| snowflake_get_object_lineageC | Retrieve upstream source and downstream dependent object lineage from Snowflake Horizon. |
| snowflake_get_column_lineageC | Trace origin and transformation lineage for a column using Snowflake Horizon Access History. |
| snowflake_list_masking_policiesB | List column masking policies in the account, database, or schema. |
| snowflake_describe_masking_policyC | Describe signature, return type, and body of a masking policy. |
| snowflake_list_row_access_policiesA | List row access policies defined in the account, database, or schema. |
| snowflake_describe_row_access_policyC | Describe signature, filter expression, and comment of a row access policy. |
| snowflake_list_proceduresB | List stored procedures in a database or schema. |
| snowflake_describe_procedureC | Describe procedure signature, return type, language, and definition body. |
| snowflake_list_functionsB | List user-defined functions (UDFs) in a database or schema. |
| snowflake_describe_functionB | Describe UDF function signature, return type, language, and body. |
| snowflake_list_secretsC | List security secrets (API keys, OAuth credentials) stored in Snowflake. |
| snowflake_describe_secretA | Describe secret metadata, type (GENERIC_STRING, OAUTH2), and owner without exposing secret value. |
| snowflake_list_sequencesC | List auto-increment sequences in a database or schema. |
| snowflake_list_integrationsC | List external integrations (API, Storage, Notification, Security integrations). |
| snowflake_list_event_tablesB | List event tables used for application logging, tracing, and SPCS telemetry. |
| snowflake_list_notification_integrationsC | List notification integrations configured for alerts, tasks, and cloud messaging (SNS, PubSub, Webhooks). |
| snowflake_cortex_completeB | Run LLM completion using Snowflake Cortex AI (e.g., 'llama3.3-70b', 'mistral-large2', 'snowflake-arctic'). |
| snowflake_cortex_summarizeA | Summarize English text using Snowflake Cortex AI. |
| snowflake_cortex_sentimentB | Analyze sentiment of text returning score from -1.0 (most negative) to 1.0 (most positive). |
| snowflake_cortex_extract_answerC | Extract direct answer to a question from unstructured source document/text. |
| snowflake_cortex_translateC | Translate text from a source language to a target language using Snowflake Cortex AI. |
| snowflake_cortex_searchC | Query a Snowflake Cortex Search Service index over unstructured text. |
| snowflake_cortex_embed_text_768C | Generate 768-dimensional dense vector embeddings for text using Snowflake Cortex AI. |
| snowflake_cortex_analyst_queryC | Ask a natural language analytical question using Cortex Analyst semantic models. |
| snowflake_health_checkB | Composite recipe: Run health check on connection, active session, warehouse state, and credit consumption. |
| snowflake_inspect_table_with_sampleC | Composite recipe: Describe table schema, row count, column types, and preview sample rows in 1 call. |
| snowflake_profile_tableC | Composite recipe: Profile table metadata, row count, and column inventory. |
| snowflake_warehouse_scale_and_executeC | Composite recipe: Safely scale up a warehouse, run a heavy query, and optionally restore previous size. |
| snowflake_clone_table_recipeC | Composite recipe: Clone table with Time Travel timestamp or statement ID in 1 call. |
| snowflake_export_query_to_stageC | Composite recipe: Unload query results to a stage as Parquet or CSV files. |
| snowflake_account_usage_summaryB | Composite recipe: Summary of warehouse compute credits and storage consumption over the past 7 days. |
| snowflake_discover_schema_lineageB | Composite recipe: Discover all tables and views in a schema along with their column definitions. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 140 tools
Many tools are clearly resource-specific, but there are multiple overlapping clusters: profile_table, inspect_table_with_sample, describe_table, and sample_table all serve table inspection; clone_table and clone_table_recipe overlap; generic execute_dml overlaps with dedicated create_* tools; list_integrations overlaps with list_notification_integrations and list_catalog_integrations. The descriptions help, but at this scale an agent will frequently face ambiguous tool selection.
Tool names overwhelmingly follow a consistent snowflake_verb_noun pattern with snake_case, e.g. list_tasks, create_database, drop_stage, resume_warehouse. Minor deviations exist: health_check and account_usage_summary are noun-style names, and warehouse_scale_and_execute and cortex_embed_text_768 break the clean verb_noun pattern, but the overall convention is predictable.
140 tools is an extreme count, well beyond the 50+ threshold for a coherent tool set. Even for a platform as broad as Snowflake, this volume will overwhelm model context, increase selection error rates, and make the server difficult to use effectively.
The server covers a very wide range of Snowflake resources, including databases, schemas, tables, warehouses, stages, tasks, pipes, streams, alerts, roles, users, Cortex, and governance objects. However, several resources are list/describe-only with no dedicated create/update/drop lifecycle tools (views, functions, procedures, masking/row access policies, network policies, secrets, compute pools, services), and there is no explicit view management tool, leaving notable gaps that generic execute_dml must work around.