- Explore MCP Servers
- snowflake
Snowflake
What is Snowflake
The Snowflake MCP Server is an implementation of the Model Context Protocol that facilitates interaction with Snowflake databases. It allows users to execute SQL queries and provides access to data insights and schema context as resources, making data management more efficient.
Use cases
The server can be utilized for various applications, including data analysis, data management, and report generation. Users can run SQL queries to retrieve or modify data, examine database structures, and append insights, thus enhancing decision-making processes based on data-driven insights.
How to use
To use the Snowflake MCP Server, one can install it via Smithery or UVX, configure it with Snowflake credentials in a .env file, and run it locally or in a Claude Desktop environment. Configuration settings allow users to specify options like permissions for write operations, logging preferences, and exclusions for certain database elements.
Key features
Key features include the ability to execute read and write SQL queries, dynamic insights aggregation, schema exploration tools, and support for customizable configurations to control access and logging. The server includes resources for per-table context if prefetching is enabled.
Where to use
The Snowflake MCP Server is ideal for data analysts, data scientists, and application developers working in environments that require interaction with Snowflake databases. It can be employed in analytical frameworks, business intelligence tools, or custom applications needing database connectivity and structured data insights.
Overview
What is Snowflake
The Snowflake MCP Server is an implementation of the Model Context Protocol that facilitates interaction with Snowflake databases. It allows users to execute SQL queries and provides access to data insights and schema context as resources, making data management more efficient.
Use cases
The server can be utilized for various applications, including data analysis, data management, and report generation. Users can run SQL queries to retrieve or modify data, examine database structures, and append insights, thus enhancing decision-making processes based on data-driven insights.
How to use
To use the Snowflake MCP Server, one can install it via Smithery or UVX, configure it with Snowflake credentials in a .env file, and run it locally or in a Claude Desktop environment. Configuration settings allow users to specify options like permissions for write operations, logging preferences, and exclusions for certain database elements.
Key features
Key features include the ability to execute read and write SQL queries, dynamic insights aggregation, schema exploration tools, and support for customizable configurations to control access and logging. The server includes resources for per-table context if prefetching is enabled.
Where to use
The Snowflake MCP Server is ideal for data analysts, data scientists, and application developers working in environments that require interaction with Snowflake databases. It can be employed in analytical frameworks, business intelligence tools, or custom applications needing database connectivity and structured data insights.
Content
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 theappend_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
ExecuteSELECT
queries to read data from the database.
Input:query
(string): TheSELECT
SQL query to execute
Returns: Query results as array of objects
-
write_query
(enabled only with--allow-write
)
ExecuteINSERT
,UPDATE
, orDELETE
queries.
Input:query
(string): The SQL modification query
Returns: Number of affected rows or confirmation
-
create_table
(enabled only with--allow-write
)
Create new tables in the database.
Input:query
(string):CREATE TABLE
SQL statement
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:database
(string): Name of the database
Returns: Array of schema names
-
list_tables
List all tables within a specific database and schema.
Input:database
(string): Name of the databaseschema
(string): Name of the schema
Returns: Array of table metadata
-
describe_table
View column information for a specific table.
Input:table_name
(string): Fully qualified table name (database.schema.table
)
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:insight
(string): Data insight discovered from analysis
Returns: Confirmation of insight addition
Effect: Triggers update ofmemo://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 claude
Installing via UVX
Installing Locally
-
Install Claude AI Desktop App
-
Install
uv
:
curl -LsSf https://astral.sh/uv/install.sh | sh
- 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"
# 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
- Add the server to your
claude_desktop_config.json
:
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 thememo://insights
resource dynamically.
License
MIT