
Snowflake MCP Server
io.github.nsphungPublished by GitHub account nsphungv0.14.4Updated Oct 27, 2026
A Snowflake MCP server — SQL queries, schema exploration, and data insights for AI assistants
Overview
Connects an AI assistant to Snowflake so it can run SQL queries, explore schemas and record data insights.
- What you can do
- Run read-only SELECT queries against Snowflake
- List databases, schemas and tables, and describe a table's columns
- Optionally run INSERT, UPDATE, DELETE and CREATE TABLE statements when write mode is enabled
- Append data insights to a running memo resource the assistant can read back
- Pre-load table schemas as resources in prefetch mode
- When to use it
- Useful when an assistant needs to answer questions from a Snowflake warehouse, inspect its schema, or draft SQL against real tables. Best for analysts and developers who already have Snowflake credentials and want read-only exploration by default.
- Requirements
- Runs locally over stdio via uvx (Python 3.13) or a Docker image. Needs a Snowflake account identifier, user, warehouse, database and schema, plus credentials for one auth method: password, key-pair file, external browser, OAuth client credentials or a bearer token. Can also read a TOML connections file with named profiles. Network access to Snowflake is required.
Installation
In SourceWeft
- Open Snowflake MCP Server in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
[mcp-snowflake-server-nsp-banner]
[PyPI] • [codecov] • [PyPI Downloads] • [Docker Pulls] • [License: MIT]
Snowflake MCP Server NSP
A Model Context Protocol (MCP) server / MCP server that connects AI assistants to Snowflake — enabling SQL queries, schema exploration, and data insights directly from your LLM client.
Highlights:
- Multiple authentication methods: password, key-pair, external browser, OAuth 2.0 (client credentials & bearer token), TOML connection files
- TOML multi-connection config — manage
production,staging, anddevelopmentenvironments in one file - Write-safety guard — write operations are disabled by default and must be explicitly enabled
- Exclusion patterns — filter out databases, schemas, or tables from discovery
--exclude-json-resultsflag — reduces LLM context window usage- Selective tool exclusion via
--exclude_tools - Prefetch mode — pre-load table schema as MCP resources
- Docker support with hardened image (DHI, nonroot user, no shell in runtime)
Table of Contents
- Snowflake MCP Server NSP
Quick Start
The fastest way to try it — using uvx with a TOML connection file:
Claude Code
Add to your MCP client config (e.g. claude_desktop_config.json) using snowflake_connections.toml:
Visual Studio Code (VSCode)
uvx — [Install in VS Code] [Install in VS Code Insiders]
Docker — [Install in VS Code (Docker)] [Install in VS Code Insiders (Docker)]
Or add manually to your MCP client config (e.g. .vscode/mcp.json) using .env file (see Authentication):
OpenCode
Add to your MCP client config (e.g. opencode.jsonc) with .env file (see Authentication):
Components
Resources
Tools
Query Tools
Schema Tools
Analysis Tools
Authentication
Password
Set credentials via environment variables or CLI flags (see Configuration Reference):
Key-Pair
Both RSA (RS256) and ECDSA (ES256, ES384, ES512) private keys are supported (requires snowflake-connector-python ≥ 4.5.0 for ECDSA).
Or via CLI: --private_key_file /path/to/key.p8 --private_key_file_pwd passphrase
External Browser
Or in a TOML connection entry: authenticator = "externalbrowser"
OAuth 2.0 Client Credentials
Use the OAuth 2.0 client credentials flow to authenticate with a client ID and secret (no user interaction required):
OAuth Bearer Token
Use a pre-fetched OAuth bearer token:
TOML Connection File (Recommended)
Manage multiple environments in a single file. See example_connections.toml for a full template.
Pass the file with --connections-file and select a profile with --connection-name. Both flags are required together.
Installation
The package is published on PyPI as mcp-snowflake-server-nsp.
Contributing or running from source? See
CONTRIBUTING.mdfor local development setup, test commands, formatting, and building the Docker image from source.
Via UVX
TOML configuration (recommended)
Individual parameters
Via Docker Hub
The image is published on Docker Hub — no build step required:
Note:
-i(--interactive) is required to keep stdin open for the MCP stdio transport. Do not use-d(detach).
Claude Desktop — claude_desktop_config.json
With .env file (see Authentication):
With TOML connections file:
VS Code — .vscode/mcp.json
With .env file:
With TOML connections file:
OpenCode — opencode.jsonc
Configuration Reference
All connection parameters can also be set as environment variables (SNOWFLAKE_<PARAM_UPPER>).
Exclusion Patterns
Edit runtime_config.json to exclude databases, schemas, or tables from all discovery tools. Patterns are matched case-insensitively as substrings.
The server loads this file automatically at startup from the working directory.
License
This project is licensed under the MIT License. See the LICENSE file for the full text.
Fork and Attribution
This repository is a fork of isaacwasserman/mcp-snowflake-server.
[MseeP.ai Security Assessment Badge]
- Upstream authors and contributors retain copyright for their contributions.
- Fork-specific changes are maintained by
nsphung. - A summary of notable modifications is tracked in
NOTICE.
Source: README.md at commit d2971d3
Tools
0Version history
2- v0.14.4LatestSep 24, 2026
- v0.14.3Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts