MCP Directory

Snowflake MCP Server

Query Snowflake databases over MCP — read/write SQL, schema discovery, and data-insight memos.

Unverified
stdio (local)
API key
Stale
Python

Add to your client

Copy the config for your MCP client and paste it into its config file.

Install / run
npx -y @smithery/cli install mcp_snowflake_server --client claude

Paste into ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "snowflake-mcp-server": {
      "command": "uvx",
      "args": [
        "--python=3.12",
        "mcp_snowflake_server",
        "--account",
        "your_account",
        "--warehouse",
        "your_warehouse",
        "--user",
        "your_user",
        "--password",
        "your_password",
        "--role",
        "your_role",
        "--database",
        "your_database",
        "--schema",
        "your_schema"
      ]
    }
  }
}

Requires `uv` (the Python package runner). Install it from https://docs.astral.sh/uv/ if `uvx` is not found.

Before you start

  • A Snowflake account with credentials (account, user, warehouse, role, database, schema)
  • Authentication via password, private key path, or external-browser authenticator
  • uv / uvx (or Python <=3.12) to run the server
  • An MCP client such as Claude Desktop

About Snowflake MCP Server

Snowflake MCP Server lets MCP clients (such as Claude Desktop) interact with a Snowflake data warehouse. It exposes SQL query tools, schema-introspection tools, and an insight-aggregation tool, plus resources for a running insights memo and per-table schema context. Reads are allowed by default; writes require the --allow-write flag.

Tools & capabilities (8)

read_query

Execute SELECT queries to read data from the database. Input: query (string). Returns query results as an array of objects.

write_query

Execute INSERT, UPDATE, or DELETE queries. Enabled only with --allow-write. Input: query (string). Returns number of affected rows or confirmation.

create_table

Create new tables in the database. Enabled only with --allow-write. Input: query (CREATE TABLE SQL statement). Returns confirmation of table creation.

list_databases

List all databases in the Snowflake instance. Returns an array of database names.

list_schemas

List all schemas within a specific database. Input: database (string). Returns an array of schema names.

list_tables

List all tables within a specific database and schema. Input: database (string), schema (string). Returns an array of table metadata.

describe_table

View column information for a specific table. Input: table_name (fully qualified database.schema.table). Returns column definitions with names, types, nullability, defaults, and comments.

append_insight

Add new data insights to the memo resource. Input: insight (string). Returns confirmation and triggers an update of the memo://insights resource.

What this server can do

Snowflake MCP Server provides tools for these capabilities — tap one to see every MCP server that does the same:

When to use it

  • Letting an AI assistant run ad-hoc SELECT queries against Snowflake data
  • Exploring warehouse structure by listing databases, schemas, and tables and describing columns
  • Performing controlled write operations (INSERT/UPDATE/DELETE/CREATE TABLE) when --allow-write is enabled
  • Accumulating analysis findings into a live insights memo for review
  • Managing multiple environments (production/staging/development) via named TOML connections

Security notes

By default, write operations are disabled; enable them explicitly with --allow-write, which turns on write_query and create_table. Snowflake credentials (password, private key path, or external-browser authentication) are supplied via command-line args, environment variables, or a TOML connections file. The server can filter out specific databases, schemas, or tables via exclusion patterns, and supports --exclude_tools to disable individual tools.

Snowflake MCP Server FAQ

Are write operations enabled by default?

No. Write operations are disabled by default. You must start the server with --allow-write to enable the write_query and create_table tools.

How do I provide Snowflake credentials?

Via individual command-line arguments (--account, --user, --password, etc.), environment variables / a .env file, or a TOML connections file referenced with --connections-file and --connection-name. Password, private key path, or external-browser authentication are supported.

Can I restrict which databases, schemas, or tables are visible?

Yes. The server supports filtering out specific databases, schemas, or tables via exclusion patterns (e.g. configured in runtime_config.json), and individual tools can be disabled with --exclude_tools.

What are the insights and table-context resources?

memo://insights is a continuously updated memo aggregating insights added via append_insight. When prefetching is enabled, context://table/{table_name} resources expose per-table schema summaries including columns and comments.

Alternatives to Snowflake MCP Server

Google's official MCP server with prebuilt BigQuery tools, querying datasets via Application Default Credentials.

Verified
stdio (local)
OAuth
Go
10 tools
Updated 2 months agoRepo

Create, manage, and query your InstantDB apps, schemas, permissions, and data from your AI editor.

Unverified
HTTP (remote)
OAuth
TypeScript
7 tools
Updated 1 month agoRepo

Zero-dependency, token-efficient database MCP server for Postgres, MySQL, SQL Server, MariaDB, and SQLite.

Unverified
stdio (local)
No auth
TypeScript
3 tools
Updated 1 month agoRepo