
Snowflake MCP Server
Query Snowflake databases over MCP — read/write SQL, schema discovery, and data-insight memos.
Add to your client
Copy the config for your MCP client and paste it into its config file.
npx -y @smithery/cli install mcp_snowflake_server --client claudePaste 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_queryExecute SELECT queries to read data from the database. Input: query (string). Returns query results as an array of objects.
write_queryExecute INSERT, UPDATE, or DELETE queries. Enabled only with --allow-write. Input: query (string). Returns number of affected rows or confirmation.
create_tableCreate new tables in the database. Enabled only with --allow-write. Input: query (CREATE TABLE SQL statement). Returns confirmation of table creation.
list_databasesList all databases in the Snowflake instance. Returns an array of database names.
list_schemasList all schemas within a specific database. Input: database (string). Returns an array of schema names.
list_tablesList all tables within a specific database and schema. Input: database (string), schema (string). Returns an array of table metadata.
describe_tableView 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_insightAdd 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.
Read/write Postgres access plus index tuning, EXPLAIN plans, and database health analysis for AI agents.
Official Supabase server: manage tables, run SQL, branches, configs and edge functions from your AI client.
Compare Snowflake MCP Server with: