mcp-snowflake-server
# Snowflake MCP Server
[](https://smithery.ai/server/mcp_snowflake_server) [](https://pypi.org/project/mcp-snowflake-server/)
## Overview
A Model Context Protocol (MCP) server implementation that provides database interaction with Snowflake. This server enables running SQL queries with tools and intereacting with a memo of data insights presented as a resource.
## Components
### Resources
The server exposes a single dynamic resource:
- `memo://insights`: A continuously updated data insights memo that aggregates discovered insights during analysis
- Auto-updates as new insights are discovered via the append-insight tool
### Tools
The server offers six core tools:
#### Query Tools
- `read_query`
- Execute SELECT queries to read data from the database
- Input:
- `query` (string): The SELECT SQL query to execute
- Returns: Query results as array of objects
- `write_query` (with `--allow-write` flag)
- Execute INSERT, UPDATE, or DELETE queries
- Input:
- `query` (string): The SQL modification query
- Returns: `{ affected_rows: number }`
- `create_table` (with `--allow-write` flag)
- Create new tables in the database
- Input:
- `query` (string): CREATE TABLE SQL statement
- Returns: Confirmation of table creation
#### Schema Tools
- `list_tables`
- Get a list of all tables in the database
- No input required
- Returns: Array of table names
- `describe-table`
- View column information for a specific table
- Input:
- `table_name` (string): Name of table to describe (can be fully qualified)
- Returns: Array of column definitions with names and types
#### 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
- Triggers update of memo://insights resource
## Usage with Claude Desktop
### Installing via Smithery
To install Snowflake Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/mcp_snowflake_server):
```bash
npx -y @smithery/cli install mcp_snowflake_server --client claude
```
### Installing via UVX
```python
# Add the server to your claude_desktop_config.json
"mcpServers": {
"snowflake_pip": {
"command": "uvx",
"args": [
"mcp_snowflake_server",
"--account",
"the_account",
"--warehouse",
"the_warehouse",
"--user",
"the_user",
"--password",
"their_password",
"--role",
"the_role"
"--database",
"the_database",
"--schema",
"the_schema",
# Optionally: "--allow_write" (but not recommended)
# 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
```python
# Add the server to your claude_desktop_config.json
"mcpServers": {
"snowflake_local": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/mcp_snowflake_server",
"run",
"mcp_snowflake_server",
"--account",
"the_account",
"--warehouse",
"the_warehouse",
"--user",
"the_user",
"--password",
"their_password",
"--role",
"the_role"
"--database",
"the_database",
"--schema",
"the_schema",
# Optionally: "--allow_write" (but not recommended)
# Optionally: "--log_dir", "/absolute/path/to/logs"
# Optionally: "--log_level", "DEBUG"/"INFO"/"WARNING"/"ERROR"/"CRITICAL"
# Optionally: "--exclude_tools", "{tool name}", ["{other tool name}"]
]
}
}
```