Snowflake MCP Server

MCP server for executing Snowflake queries

Local serverstdio

What is the Snowflake MCP server?

Most database access work still happens through a UI a human drives. Snowflake MCP server moves it into the conversation instead. MCP server for executing Snowflake queries.

The short version

A Model Context Protocol (MCP) server that enables AI agents to execute SQL queries against Snowflake databases.

  • Execute SQL queries directly from AI agents like Cursor, Claude Desktop, etc
  • Schema Discovery — Browse databases, schemas, tables, and views
  • Table Inspection — Describe table structures, view sample data, check row counts
  • Query Safety — Readonly mode, row limits, and query timeouts
  • Multiple Output Formats — Table, JSON, or CSV
  • Query Explanation — Get execution plans for queries

Getting it running

Setup follows the usual MCP pattern — install or clone the server, register it in your client's configuration file, restart the client. The configuration blocks on this page cover the common clients.

The tools it exposes

The server publishes 14 tools. What each one is for:

  • Cursor — The Cursor tool exposed by this server
  • execute_query — The execute_query tool exposed by this server
  • explain_query — The explain_query tool exposed by this server
  • Connection — The Connection tool exposed by this server
  • test_connection — Test the connection to Snowflake and return connection info including current user, role, warehouse, database, schema, and version
  • list_databases — The list_databases tool exposed by this server
  • list_schemas — The list_schemas tool exposed by this server
  • list_tables — The list_tables tool exposed by this server
  • list_views — The list_views tool exposed by this server
  • describe_table — Get detailed information about a table's structure including columns, types, and constraints
  • get_table_sample — The get_table_sample tool exposed by this server
  • get_table_row_count — The get_table_row_count tool exposed by this server

What it needs from you

Configuration is passed through the environment: SNOWFLAKE_ACCOUNT, SNOWFLAKE_USERNAME, SNOWFLAKE_AUTHENTICATOR, SNOWFLAKE_WAREHOUSE, SNOWFLAKE_DATABASE, SNOWFLAKE_SCHEMA, SNOWFLAKE_PASSWORD, SNOWFLAKE_ROLE. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.

  • Node.js 18 or later

Things to watch

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • With 14 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch Snowflake.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

How it compares

Plenty of database access servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Snowflake's toolset — Cursor, execute_query, explain_query and 11 more — is a fair guide to whether it matches your workflow. It is maintained by faressoft; worth a glance at recent repository activity before you build anything load-bearing on it.

SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.

Available tools

ToolWhat it does
CursorThe Cursor tool exposed by this server.
execute_queryThe execute_query tool exposed by this server.
explain_queryThe explain_query tool exposed by this server.
ConnectionThe Connection tool exposed by this server.
test_connectionTest the connection to Snowflake and return connection info including current user, role, warehouse, database, schema, and version.
list_databasesThe list_databases tool exposed by this server.
list_schemasThe list_schemas tool exposed by this server.
list_tablesThe list_tables tool exposed by this server.
list_viewsThe list_views tool exposed by this server.
describe_tableGet detailed information about a table's structure including columns, types, and constraints.
get_table_sampleThe get_table_sample tool exposed by this server.
get_table_row_countThe get_table_row_count tool exposed by this server.
get_primary_keysThe get_primary_keys tool exposed by this server.
analyze_tableAnalyze a table's structure, sample data, and get query suggestions.

How to install the Snowflake MCP server

{
  "mcpServers": {
    "snowflake": {
      "command": "npx",
      "args": ["-y", "snowflake-mcp"],
      "env": {
        "SNOWFLAKE_ACCOUNT": "your-org-your-account",
        "SNOWFLAKE_USERNAME": "your-username",
        "SNOWFLAKE_AUTHENTICATOR": "externalbrowser",
        "SNOWFLAKE_WAREHOUSE": "your-warehouse",
        "SNOWFLAKE_DATABASE": "your-database",
        "SNOWFLAKE_SCHEMA": "your-schema"
      }
    }
  }
}

Configuration as documented by the project. Restart the client after saving.

Configuration

  • Node.js 18 or later
VariableDescriptionRequired
SNOWFLAKE_ACCOUNTConfiguration value read at startup.Optional
SNOWFLAKE_USERNAMEConfiguration value read at startup.Optional
SNOWFLAKE_AUTHENTICATORConfiguration value read at startup.Optional
SNOWFLAKE_WAREHOUSEConfiguration value read at startup.Optional
SNOWFLAKE_DATABASEConfiguration value read at startup.Optional
SNOWFLAKE_SCHEMAConfiguration value read at startup.Optional
SNOWFLAKE_PASSWORDConfiguration value read at startup.Optional
SNOWFLAKE_ROLEConfiguration value read at startup.Optional

Example prompts to try

  • Use Snowflake to Cursor.
  • Use Snowflake to execute query.
  • Use Snowflake to explain query.

Frequently asked questions

It connects Snowflake to MCP-compatible AI assistants such as Claude and Cursor, exposing 14 tools (Cursor, execute_query, explain_query, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Snowflake directly.