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.

Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf

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

Compare all alternatives →

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

Verified
stdio (local)
OAuth
Go
10 tools
Updated 15 days agoRepo

Read/write Postgres access plus index tuning, EXPLAIN plans, and database health analysis for AI agents.

Verified
stdio (local)
API key
Python
9 tools
Updated 3 months agoRepo

Official Supabase server: manage tables, run SQL, branches, configs and edge functions from your AI client.

Verified
HTTP (remote)
OAuth
TypeScript
12 tools
Updated 1 month agoRepo