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. - memo://insights A continuously updated memo aggregating discovered data insights. Updated automatically when new insights are appended via the appendinsight tool. - context://table/{tab
Add this skill
npx mdskills install isaacwasserman/mcp-snowflake-serverComprehensive Snowflake MCP server with rich schema tools and well-documented setup options
1[](https://mseep.ai/app/isaacwasserman-mcp-snowflake-server)23# Snowflake MCP Server4---56## Overview78A 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.910---1112## Components1314### Resources1516- **`memo://insights`**17 A continuously updated memo aggregating discovered data insights.18 Updated automatically when new insights are appended via the `append_insight` tool.1920- **`context://table/{table_name}`**21 (If prefetch enabled) Per-table schema summaries, including columns and comments, exposed as individual resources.2223---2425### Tools2627The server exposes the following tools:2829#### Query Tools3031- **`read_query`**32 Execute `SELECT` queries to read data from the database.33 **Input:**3435 - `query` (string): The `SELECT` SQL query to execute36 **Returns:** Query results as array of objects3738- **`write_query`** (enabled only with `--allow-write`)39 Execute `INSERT`, `UPDATE`, or `DELETE` queries.40 **Input:**4142 - `query` (string): The SQL modification query43 **Returns:** Number of affected rows or confirmation4445- **`create_table`** (enabled only with `--allow-write`)46 Create new tables in the database.47 **Input:**48 - `query` (string): `CREATE TABLE` SQL statement49 **Returns:** Confirmation of table creation5051#### Schema Tools5253- **`list_databases`**54 List all databases in the Snowflake instance.55 **Returns:** Array of database names5657- **`list_schemas`**58 List all schemas within a specific database.59 **Input:**6061 - `database` (string): Name of the database62 **Returns:** Array of schema names6364- **`list_tables`**65 List all tables within a specific database and schema.66 **Input:**6768 - `database` (string): Name of the database69 - `schema` (string): Name of the schema70 **Returns:** Array of table metadata7172- **`describe_table`**73 View column information for a specific table.74 **Input:**75 - `table_name` (string): Fully qualified table name (`database.schema.table`)76 **Returns:** Array of column definitions with names, types, nullability, defaults, and comments7778#### Analysis Tools7980- **`append_insight`**81 Add new data insights to the memo resource.82 **Input:**83 - `insight` (string): Data insight discovered from analysis84 **Returns:** Confirmation of insight addition85 **Effect:** Triggers update of `memo://insights` resource8687---8889## Usage with Claude Desktop9091### Installing via Smithery9293To install Snowflake Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/mcp_snowflake_server):9495```bash96npx -y @smithery/cli install mcp_snowflake_server --client claude97```9899---100101### Installing via UVX102103#### Traditional Configuration (Individual Parameters)104105```json106"mcpServers": {107 "snowflake_pip": {108 "command": "uvx",109 "args": [110 "--python=3.12", // Optional: specify Python version <=3.12111 "mcp_snowflake_server",112 "--account", "your_account",113 "--warehouse", "your_warehouse",114 "--user", "your_user",115 "--password", "your_password",116 "--role", "your_role",117 "--database", "your_database",118 "--schema", "your_schema"119 // Optionally: "--private_key_path", "your_private_key_absolute_path"120 // Optionally: "--allow_write"121 // Optionally: "--log_dir", "/absolute/path/to/logs"122 // Optionally: "--log_level", "DEBUG"/"INFO"/"WARNING"/"ERROR"/"CRITICAL"123 // Optionally: "--exclude_tools", "{tool_name}", ["{other_tool_name}"]124 ]125 }126}127```128129#### TOML Configuration (Recommended)130131```json132"mcpServers": {133 "snowflake_production": {134 "command": "uvx",135 "args": [136 "--python=3.12",137 "mcp_snowflake_server",138 "--connections-file", "/path/to/snowflake_connections.toml",139 "--connection-name", "production"140 // Optionally: "--allow_write"141 // Optionally: "--log_dir", "/absolute/path/to/logs"142 // Optionally: "--log_level", "DEBUG"/"INFO"/"WARNING"/"ERROR"/"CRITICAL"143 // Optionally: "--exclude_tools", "{tool_name}", ["{other_tool_name}"]144 ]145 },146 "snowflake_staging": {147 "command": "uvx",148 "args": [149 "--python=3.12",150 "mcp_snowflake_server",151 "--connections-file", "/path/to/snowflake_connections.toml",152 "--connection-name", "staging"153 ]154 }155}156```157158---159160### Installing Locally1611621. Install [Claude AI Desktop App](https://claude.ai/download)1631642. Install `uv`:165166```bash167curl -LsSf https://astral.sh/uv/install.sh | sh168```1691703. Create a `.env` file with your Snowflake credentials:171172```bash173SNOWFLAKE_USER="xxx@your_email.com"174SNOWFLAKE_ACCOUNT="xxx"175SNOWFLAKE_ROLE="xxx"176SNOWFLAKE_DATABASE="xxx"177SNOWFLAKE_SCHEMA="xxx"178SNOWFLAKE_WAREHOUSE="xxx"179SNOWFLAKE_PASSWORD="xxx"180SNOWFLAKE_PASSWORD="xxx"181SNOWFLAKE_PRIVATE_KEY_PATH=/absolute/path/key.p8182# Alternatively, use external browser authentication:183# SNOWFLAKE_AUTHENTICATOR="externalbrowser"184```1851864. [Optional] Modify `runtime_config.json` to set exclusion patterns for databases, schemas, or tables.1871885. Test locally:189190```bash191uv --directory /absolute/path/to/mcp_snowflake_server run mcp_snowflake_server192```1931946. Add the server to your `claude_desktop_config.json`:195196#### Traditional Configuration (Using Environment Variables)197198```json199"mcpServers": {200 "snowflake_local": {201 "command": "/absolute/path/to/uv",202 "args": [203 "--python=3.12", // Optional204 "--directory", "/absolute/path/to/mcp_snowflake_server",205 "run", "mcp_snowflake_server"206 // Optionally: "--allow_write"207 // Optionally: "--log_dir", "/absolute/path/to/logs"208 // Optionally: "--log_level", "DEBUG"/"INFO"/"WARNING"/"ERROR"/"CRITICAL"209 // Optionally: "--exclude_tools", "{tool_name}", ["{other_tool_name}"]210 ]211 }212}213```214215#### TOML Configuration (Recommended)216217```json218"mcpServers": {219 "snowflake_local": {220 "command": "/absolute/path/to/uv",221 "args": [222 "--python=3.12",223 "--directory", "/absolute/path/to/mcp_snowflake_server",224 "run", "mcp_snowflake_server",225 "--connections-file", "/absolute/path/to/snowflake_connections.toml",226 "--connection-name", "development"227 // Optionally: "--allow_write"228 // Optionally: "--log_dir", "/absolute/path/to/logs"229 // Optionally: "--log_level", "DEBUG"/"INFO"/"WARNING"/"ERROR"/"CRITICAL"230 // Optionally: "--exclude_tools", "{tool_name}", ["{other_tool_name}"]231 ]232 }233}234```235236---237238## Notes239240- By default, **write operations are disabled**. Enable them explicitly with `--allow-write`.241- The server supports filtering out specific databases, schemas, or tables via exclusion patterns.242- The server exposes additional per-table context resources if prefetching is enabled.243- The `append_insight` tool updates the `memo://insights` resource dynamically.244245---246247## License248249MIT250
Full transparency — inspect the skill content before installing.