
How to add Snowflake MCP Server to Claude Desktop
Query Snowflake databases over MCP — read/write SQL, schema discovery, and data-insight memos. Paste the config into ~/Library/Application Support/Claude/claude_desktop_config.json and restart Claude Desktop.
Last updated June 14, 2026 · 183★ · stdio · apikey
Claude Desktop config for Snowflake MCP Server
npx -y @smithery/cli install mcp_snowflake_server --client claude{
"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.
Setup steps
- 1Open Claude Desktop → Settings → Developer → Edit Config (this opens ~/Library/Application Support/Claude/claude_desktop_config.json).
- 2Paste the Snowflake MCP Server config below under the top-level "mcpServers" key.
- 3Fill in any placeholder secrets (API keys, paths) in the snippet.
- 4Save the file, then fully quit and reopen Claude Desktop.
- 5Open a chat and confirm Snowflake MCP Server's tools appear under the 🔌 tools menu.
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
What Snowflake MCP Server can do in Claude Desktop
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.
Security
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 + Claude Desktop FAQ
Where is the Claude Desktop config file?
Claude Desktop reads MCP servers from ~/Library/Application Support/Claude/claude_desktop_config.json. Paste the Snowflake MCP Server config there under the "mcpServers" key and restart the client.
Is Snowflake MCP Server safe to use with Claude Desktop?
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.
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.