- Home
- MCP servers
- Snowflake
Snowflake
- python
179
GitHub Stars
python
Language
6 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
Configuration
View docs{
"mcpServers": {
"isaacwasserman-mcp-snowflake-server": {
"command": "uvx",
"args": [
"--python=3.12",
"mcp_snowflake_server",
"--connections-file",
"/path/to/snowflake_connections.toml",
"--connection-name",
"production"
],
"env": {
"SNOWFLAKE_ROLE": "YOUR_ROLE_PLACEHOLDER",
"SNOWFLAKE_USER": "YOUR_USER_PLACEHOLDER",
"SNOWFLAKE_SCHEMA": "YOUR_SCHEMA_PLACEHOLDER",
"SNOWFLAKE_ACCOUNT": "YOUR_ACCOUNT_PLACEHOLDER",
"SNOWFLAKE_DATABASE": "YOUR_DATABASE_PLACEHOLDER",
"SNOWFLAKE_PASSWORD": "YOUR_PASSWORD_PLACEHOLDER",
"SNOWFLAKE_WAREHOUSE": "YOUR_WAREHOUSE_PLACEHOLDER"
}
}
}
}You can query Snowflake data and fetch schema insights through a dedicated MCP server that exposes SQL query capabilities, schema information, and an evolving memo of data insights. This server lets you run read and write operations (if enabled), discover databases, schemas, and tables, and inspect per-table structures, all via a lightweight MCP interface you can connect to from your MCP client.
How to use
Connect to the Snowflake MCP server from your MCP client and choose the tools you need for your workflow. Use read_query to execute SELECT statements and retrieve results as structured data. If you need to modify data, enable write capabilities and run write_query to perform INSERT, UPDATE, or DELETE operations. Explore the database structure with list_databases, list_schemas, and list_tables to understand available data sources. Describe tables with describe_table to view column details including names, types, nullability, defaults, and comments. Keep an eye on the memo resource by using append_insight to add new data insights; this updates memo://insights automatically.
How to install
Prerequisites: you need Node.js and Python available on your system. You also need the UV runtime to run MCP servers locally and a functioning Snowflake account with credentials. Follow the concrete steps below to install and prepare the Snowflake MCP server for use.
# Prerequisites
node -v # ensure Node.js is installed
python3 -V # ensure Python is installed
# Install UV runtime (required to run MCP servers locally)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Optional: install MCP client helpers if you plan to test via a client
npm install -g @mcp/cli # if such a CLI exists for your environment
```} ,{
Configuration and usage notes
To run the MCP server locally via UVX, use a configuration that specifies the UVX command, the MCP server package, and your Snowflake connection details. Two common configuration examples are shown here. Use the production or staging connection name that matches your Snowflake setup and reference the appropriate credentials.
"mcpServers": {
"snowflake_prod": {
"command": "uvx",
"args": [
"--python=3.12",
"mcp_snowflake_server",
"--connections-file", "/path/to/snowflake_connections.toml",
"--connection-name", "production"
// Optional: "--allow_write" to enable write operations
// Optional: "--log_dir", "/absolute/path/to/logs"
// Optional: "--log_level", "DEBUG"/"INFO"/"WARNING"/"ERROR"/"CRITICAL"
// Optional: "--exclude_tools", "tool_name", ["other_tool"]
]
},
"snowflake_stg": {
"command": "uvx",
"args": [
"--python=3.12",
"mcp_snowflake_server",
"--connections-file", "/path/to/snowflake_connections.toml",
"--connection-name", "staging"
]
}
}
Notes and troubleshooting
By default, write operations are disabled. Enable them explicitly with the --allow_write option when you need to modify data. If you encounter connection issues, verify your Snowflake credentials, network access to Snowflake, and the correctness of the connections file path and connection-name. For performance or debugging, adjust log levels and log directories as needed.
Available tools
read_query
Execute SELECT queries to read data from Snowflake and return results as an array of objects.
write_query
Execute INSERT, UPDATE, or DELETE queries. Requires explicit enablement with --allow-write.
create_table
Create new tables in Snowflake. Requires explicit enablement with --allow-write.
list_databases
List all databases in the Snowflake instance.
list_schemas
List all schemas within a specified database.
list_tables
List all tables within a specified database and schema.
describe_table
Return column definitions for a specific table including names, types, nullability, defaults, and comments.
append_insight
Add a new data insight to the memo resource and trigger an update to memo://insights.