- Home
- MCP servers
- Snowflake
Snowflake
- python
0
GitHub Stars
python
Language
6 months ago
First Indexed
3 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": {
"sgriffin-magnoliacap-mcp-snowflake-server-readonly": {
"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"
],
"env": {
"SNOWFLAKE_ROLE": "YOUR_ROLE",
"SNOWFLAKE_USER": "YOUR_USER",
"SNOWFLAKE_SCHEMA": "YOUR_SCHEMA",
"SNOWFLAKE_ACCOUNT": "YOUR_ACCOUNT",
"SNOWFLAKE_DATABASE": "YOUR_DATABASE",
"SNOWFLAKE_PASSWORD": "YOUR_PASSWORD",
"SNOWFLAKE_WAREHOUSE": "YOUR_WAREHOUSE",
"SNOWFLAKE_AUTHENTICATOR": "externalbrowser"
}
}
}
}You can query Snowflake data and its schema context through a read-only MCP server that exposes ready-to-use tools for database discovery, data retrieval, and data-driven insights. It lets you run read queries, inspect databases, and surface per-table schema details, while automatically collecting insights into a memo resource for quick reference.
How to use
You interact with the Snowflake MCP Server through an MCP client. Start the local server, then connect your client to access the following capabilities. Use read_query to execute SELECT statements and fetch data, list_databases/list_schemas/list_tables to discover your Snowflake structure, and describe_table to view per-column details. When you discover useful data insights, add them with append_insight to keep memo://insights up to date. If you prefetch per-table context, you can access context://table/{table_name} resources for quick schema summaries.
Practical usage patterns:
- Discover databases, schemas, and tables to understand your data landscape.
- Run read-only queries to surface data for dashboards or reports.
- Expand insights by appending observations to memo://insights for ongoing context.
Key resources you’ll work with:
- memo://insights — a continuously updated memo of discovered data insights.
- context://table/{table_name} — per-table schema summaries (if prefetching is enabled).
How to install
Prerequisites: you need Python support in your environment, and you will run the MCP server via UVX from Claude Desktop or locally. The server is designed to perform read operations against Snowflake and expose useful tools for discovery and analysis.
Install Claude AI Desktop App to run the MCP client experience.
Install UVX to run the MCP server locally.
# Install UVX (example command shown in the flow)
curl -LsSf https://astral.sh/uv/install.sh | sh
Create a .env file with your Snowflake credentials and connection details. You can replace placeholders with your actual values:
SNOWFLAKE_USER="YOUR_USER"
SNOWFLAKE_ACCOUNT="YOUR_ACCOUNT"
SNOWFLAKE_ROLE="YOUR_ROLE"
SNOWFLAKE_DATABASE="YOUR_DATABASE"
SNOWFLAKE_SCHEMA="YOUR_SCHEMA"
SNOWFLAKE_WAREHOUSE="YOUR_WAREHOUSE"
SNOWFLAKE_PASSWORD="YOUR_PASSWORD"
# Optional: SNOWFLAKE_AUTHENTICATOR="externalbrowser"```
Optionally adjust runtime\_config.json to customize exclusion patterns for databases, schemas, or tables as needed to tailor what the MCP server exposes.
Test locally by starting the MCP server via UVX with the provided configuration snippet.
{ "mcpServers": { "snowflake_pip": { "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" ] } } }
## Additional notes
Notes about features and usage:
- 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, making insights available across sessions.
## Available tools
### read\_query
Execute SELECT queries to read data from Snowflake. Input: query (string). Returns: array of objects with rows.
### list\_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). Returns: array of schema names.
### list\_tables
List all tables within a specific database and schema. Input: database (string), schema (string). Returns: array of table metadata.
### describe\_table
View column information for a specific table. Input: table\_name (database.schema.table). Returns: array of column definitions.
### append\_insight
Add new data insights to the memo resource. Input: insight (string). Returns: confirmation and triggers memo update.