mcp-snowflake-server
[](https://mseep.ai/app/isaacwasserman-mcp-snowflake-server) Python-based implementation.
Documentation

Snowflake MCP Server
Overview
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.
Components
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.
Tools
The server exposes the following tools:
Query Tools
- `read_query`
Execute `SELECT` queries to read data from the database.
Input:
Returns: Query results as array of objects
- `write_query` (enabled only with `--allow-write`)
Execute `INSERT`, `UPDATE`, or `DELETE` queries.
Input:
Returns: Number of affected rows or confirmation
- `create_table` (enabled only with `--allow-write`)
Create new tables in the database.
Input:
Returns: Confirmation of table creation
Schema Tools
- `list_databases`
List all databases in the Snowflake instance.
Returns: Array of database names
- `list_schemas`
List all schemas within a specific database.
Input:
Returns: Array of schema names
- `list_tables`
List all tables within a specific database and schema.
Input:
Returns: Array of table metadata
- `describe_table`
View column information for a specific table.
Input:
Returns: Array of column definitions with names, types, nullability, defaults, and comments
Analysis Tools
- `append_insight`
Add new data insights to the memo resource.
Input:
Returns: Confirmation of insight addition
Effect: Triggers update of `memo://insights` resource
Usage with Claude Desktop
Installing via Smithery
To install Snowflake Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install mcp_snowflake_server --client claudeInstalling via UVX
Traditional Configuration (Individual Parameters)
"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}"]
]
}
}TOML Configuration (Recommended)
"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"
]
}
}Installing Locally
1. Install Claude AI Desktop App
2. Install `uv`:
curl -LsSf https://astral.sh/uv/install.sh | sh3. Create a `.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"4. [Optional] Modify `runtime_config.json` to set exclusion patterns for databases, schemas, or tables.
5. Test locally:
uv --directory /absolute/path/to/mcp_snowflake_server run mcp_snowflake_server6. Add the server to your `claude_desktop_config.json`:
Traditional Configuration (Using Environment Variables)
"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}"]
]
}
}TOML Configuration (Recommended)
"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}"]
]
}
}Notes
- By default, write operations are disabled. Enable them explicitly with `--allow-write`.
- The server supports filtering out specific databases, schemas, or tables via exclusion patterns.
- The server exposes additional per-table context resources if prefetching is enabled.
- The `append_insight` tool updates the `memo://insights` resource dynamically.
License
MIT
Frequently asked questions
What is mcp-snowflake-server?
mcp-snowflake-server is [](https://mseep.ai/app/isaacwasserman-mcp-snowflake-server) Python-based implementation.
How do I install mcp-snowflake-server?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is mcp-snowflake-server open source?
Yes — it is hosted on GitHub at https://github.com/isaacwasserman/mcp-snowflake-server and has 169 stars.
Related MCP tools
MCP Server implementation for Ableton Live OSC control Python-based implementation.
MCP server to manage Facebook and Instagram Ads (Meta Ads) Python-based implementation.
Damn Vulnerable MCP Server Python-based implementation. Trusted by 1200+ developers. Trusted by 1200+ developers. Trusted by 1200+ developers.
A Model Context Protocol (MCP) server that enables secure interaction with MySQL databases Python-based implementation. Trusted by 900+ developers.
Query MCP enables end-to-end management of Supabase via chat interface: read & write query executions, management API support, automatic migration versioning...
Model Context Protocol with Neo4j Python-based implementation. Trusted by 700+ developers. Trusted by 700+ developers. Trusted by 700+ developers.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP