by isaacwasserman
Provides a Model Context Protocol server that connects to Snowflake, enabling execution of SQL queries, schema exploration, and dynamic insight aggregation through a set of tools and memo resources.
A server implementation that exposes Snowflake database operations via Model Context Protocol tools. It lets clients run read‑only SELECT statements, optionally perform write operations, list databases/schemas/tables, describe table structures, and append data insights that appear in a continuously updated memo resource.
npx -y @smithery/cli install mcp_snowflake_server --client claude
SNOWFLAKE_USER, SNOWFLAKE_PASSWORD, etc.).uvx run mcp_snowflake_server or the npx command shown in the serverConfig).--allow-write).append_insight updates memo://insights in real time.context://table/{table_name}).--allow-write flag.Q: Are write operations enabled by default?
A: No. Write tools (write_query, create_table) require the --allow-write flag.
Q: How are credentials supplied?
A: Via command‑line arguments, a TOML connections file, or environment variables (SNOWFLAKE_*).
Q: Can I limit which databases are exposed?
A: Yes, exclusion patterns can be set in runtime_config.json or via CLI flags.
Q: What does memo://insights contain?
A: An aggregated list of textual insights added through the append_insight tool.
Q: Is prefetching required for per‑table context resources?
A: Prefetch must be enabled; otherwise only the memo resource is available.
A Model Context Protocol (MCP) server implementation that provides database interaction with Snowflake. This server enables running SQL queries via tools and exposes data insights and schema context as resources.
memo://insights
A continuously updated memo aggregating discovered data insights.
Updated automatically when new insights are appended via the append_insight tool.
context://table/{table_name}
(If prefetch enabled) Per-table schema summaries, including columns and comments, exposed as individual resources.
The server exposes the following tools:
read_query
Execute SELECT queries to read data from the database.
Input:
query (string): The SELECT SQL query to executewrite_query (enabled only with --allow-write)
Execute INSERT, UPDATE, or DELETE queries.
Input:
query (string): The SQL modification querycreate_table (enabled only with --allow-write)
Create new tables in the database.
Input:
query (string): CREATE TABLE SQL statementlist_databases
List all databases in the Snowflake instance.
Returns: Array of database names
list_schemas
List all schemas within a specific database.
Input:
database (string): Name of the databaselist_tables
List all tables within a specific database and schema.
Input:
database (string): Name of the databaseschema (string): Name of the schemadescribe_table
View column information for a specific table.
Input:
table_name (string): Fully qualified table name (database.schema.table)append_insightinsight (string): Data insight discovered from analysismemo://insights resourceTo install Snowflake Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install mcp_snowflake_server --client claude
"mcpServers": {
"snowflake_pip": {
"command": "uvx",
"args": [
"--python=3.12", // Optional: specify Python version <=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"
// Optionally: "--private_key_path", "your_private_key_absolute_path"
// Optionally: "--allow_write"
// Optionally: "--log_dir", "/absolute/path/to/logs"
// Optionally: "--log_level", "DEBUG"/"INFO"/"WARNING"/"ERROR"/"CRITICAL"
// Optionally: "--exclude_tools", "{tool_name}", ["{other_tool_name}"]
]
}
}
"mcpServers": {
"snowflake_production": {
"command": "uvx",
"args": [
"--python=3.12",
"mcp_snowflake_server",
"--connections-file", "/path/to/snowflake_connections.toml",
"--connection-name", "production"
// Optionally: "--allow_write"
// Optionally: "--log_dir", "/absolute/path/to/logs"
// Optionally: "--log_level", "DEBUG"/"INFO"/"WARNING"/"ERROR"/"CRITICAL"
// Optionally: "--exclude_tools", "{tool_name}", ["{other_tool_name}"]
]
},
"snowflake_staging": {
"command": "uvx",
"args": [
"--python=3.12",
"mcp_snowflake_server",
"--connections-file", "/path/to/snowflake_connections.toml",
"--connection-name", "staging"
]
}
}
Install Claude AI Desktop App
Install uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
.env file with your Snowflake credentials:SNOWFLAKE_USER="xxx@your_email.com"
SNOWFLAKE_ACCOUNT="xxx"
SNOWFLAKE_ROLE="xxx"
SNOWFLAKE_DATABASE="xxx"
SNOWFLAKE_SCHEMA="xxx"
SNOWFLAKE_WAREHOUSE="xxx"
SNOWFLAKE_PASSWORD="xxx"
SNOWFLAKE_PASSWORD="xxx"
SNOWFLAKE_PRIVATE_KEY_PATH=/absolute/path/key.p8
# Alternatively, use external browser authentication:
# SNOWFLAKE_AUTHENTICATOR="externalbrowser"
[Optional] Modify runtime_config.json to set exclusion patterns for databases, schemas, or tables.
Test locally:
uv --directory /absolute/path/to/mcp_snowflake_server run mcp_snowflake_server
claude_desktop_config.json:"mcpServers": {
"snowflake_local": {
"command": "/absolute/path/to/uv",
"args": [
"--python=3.12", // Optional
"--directory", "/absolute/path/to/mcp_snowflake_server",
"run", "mcp_snowflake_server"
// Optionally: "--allow_write"
// Optionally: "--log_dir", "/absolute/path/to/logs"
// Optionally: "--log_level", "DEBUG"/"INFO"/"WARNING"/"ERROR"/"CRITICAL"
// Optionally: "--exclude_tools", "{tool_name}", ["{other_tool_name}"]
]
}
}
"mcpServers": {
"snowflake_local": {
"command": "/absolute/path/to/uv",
"args": [
"--python=3.12",
"--directory", "/absolute/path/to/mcp_snowflake_server",
"run", "mcp_snowflake_server",
"--connections-file", "/absolute/path/to/snowflake_connections.toml",
"--connection-name", "development"
// Optionally: "--allow_write"
// Optionally: "--log_dir", "/absolute/path/to/logs"
// Optionally: "--log_level", "DEBUG"/"INFO"/"WARNING"/"ERROR"/"CRITICAL"
// Optionally: "--exclude_tools", "{tool_name}", ["{other_tool_name}"]
]
}
}
--allow-write.append_insight tool updates the memo://insights resource dynamically.MIT
Please log in to share your review and rating for this MCP.
{
"mcpServers": {
"snowflake": {
"command": "npx",
"args": [
"-y",
"mcp_snowflake_server",
"--account",
"<ACCOUNT>",
"--warehouse",
"<WAREHOUSE>",
"--user",
"<USER>",
"--password",
"<PASSWORD>",
"--role",
"<ROLE>",
"--database",
"<DATABASE>",
"--schema",
"<SCHEMA>"
],
"env": {}
}
}
}claude mcp add snowflake npx -y mcp_snowflake_server --account <ACCOUNT> --warehouse <WAREHOUSE> --user <USER> --password <PASSWORD> --role <ROLE> --database <DATABASE> --schema <SCHEMA>Explore related MCPs that share similar capabilities and solve comparable challenges
by googleapis
An MCP server that streamlines database tool development by handling connection pooling, authentication, observability, and secure access, allowing agents to interact with databases via natural language.
by bytebase
Provides a universal gateway that lets MCP‑compatible clients explore and query MySQL, PostgreSQL, SQL Server, MariaDB, and SQLite databases through a single standardized interface.
by designcomputer
Enables secure interaction with MySQL databases via the Model Context Protocol, allowing AI applications to list tables, read contents, and execute queries safely.
by benborla
Provides read‑only access to MySQL databases for large language models, allowing schema inspection and safe execution of SQL queries.
by neo4j-contrib
Enables natural‑language interaction with Neo4j databases, allowing large language models to query, modify, and manage graph data through multiple transport modes.
by mongodb-js
Provides a Model Context Protocol server that enables interaction with MongoDB databases and MongoDB Atlas clusters through a unified API.
by ClickHouse
Enables AI assistants to run read‑only ClickHouse queries, list databases and tables, and execute embedded chDB queries through an MCP interface.
by neondatabase
Interact with Neon Postgres databases using natural language commands through the Model Context Protocol, enabling conversational database creation, migration, and query execution.
by motherduckdb
Enables SQL analytics on DuckDB and MotherDuck databases via a Model Context Protocol server, allowing AI assistants and IDEs to query data directly.