
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.
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
Google's official MCP server with prebuilt BigQuery tools, querying datasets via Application Default Credentials.
Create, manage, and query your InstantDB apps, schemas, permissions, and data from your AI editor.
Compare Snowflake MCP Server with: