S
Snowflake
community
database
This MCP server enables LLMs to interact with Snowflake databases, allowing for secure and controlled data operations.
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
tool.append_insight
-
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
queries to read data from the database.SELECT
Input:
(string): Thequery
SQL query to executeSELECT
Returns: Query results as array of objects
-
(enabled only withwrite_query
)--allow-write
Execute
,INSERT
, orUPDATE
queries.DELETE
Input:
(string): The SQL modification queryquery
Returns: Number of affected rows or confirmation
-
(enabled only withcreate_table
)--allow-write
Create new tables in the database.
Input:
(string):query
SQL statementCREATE TABLE
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:
(string): Name of the databasedatabase
Returns: Array of schema names
-
list_tables
List all tables within a specific database and schema.
Input:
(string): Name of the databasedatabase
(string): Name of the schemaschema
Returns: Array of table metadata
-
describe_table
View column information for a specific table.
Input:
(string): Fully qualified table name (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:
(string): Data insight discovered from analysisinsight
Returns: Confirmation of insight addition
Effect: Triggers update of
resourcememo://insights
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
"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: "--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}"] ] } }
Installing Locally
-
Install Claude AI Desktop App
-
Install
:uv
curl -LsSf https://astral.sh/uv/install.sh | sh
- Create a
file with your Snowflake credentials:.env
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
to set exclusion patterns for databases, schemas, or tables.runtime_config.json
-
Test locally:
uv --directory /absolute/path/to/mcp_snowflake_server run mcp_snowflake_server
- Add the server to your
: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}"] ] } }
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
tool updates theappend_insight
resource dynamically.memo://insights
License
MIT
Related Servers
Apache IoTDB
official
MCP Server for [Apache IoTDB](https://github.com/apache/iotdb) database and its tools
View Details