Install
$ agentstack add mcp-nsphung-mcp-snowflake-server ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
[](https://pypi.org/project/mcp-snowflake-server-nsp/) • [](https://codecov.io/gh/nsphung/mcp-snowflake-server) • [](https://pypi.org/project/mcp-snowflake-server-nsp/) • [](https://hub.docker.com/r/nsphung/mcp-snowflake-server-nsp) • [](https://opensource.org/licenses/MIT)
| | | | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Test | [](https://github.com/nsphung/mcp-snowflake-server/actions/workflows/test.yml) [](https://github.com/nsphung/mcp-snowflake-server/actions/workflows/docker-check.yml) | | Lint | [](https://github.com/nsphung/mcp-snowflake-server/actions/workflows/lint.yml) [](https://github.com/astral-sh/ruff) [](http://mypy-lang.org/) [](https://github.com/j178/prek) [](https://oxc.rs/docs/guide/usage/formatter) | | Meta | [](./CODEOFCONDUCT.md) [](https://modelcontextprotocol.io/) [](https://www.python.org/) [](https://www.python.org/) | | Security | [](https://github.com/nsphung/mcp-snowflake-server/actions/workflows/github-code-scanning/codeql) [](https://scorecard.dev/viewer/?uri=github.com/nsphung/mcp-snowflake-server) [](https://socket.dev/pypi/package/mcp-snowflake-server-nsp) | | Best Practices | [](https://www.bestpractices.dev/projects/12747) [](https://www.bestpractices.dev/projects/12747) | | Documentation | [](https://deepwiki.com/nsphung/mcp-snowflake-server) |
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](#snowflake-mcp-server-nsp)
- [Table of Contents](#table-of-contents)
- [Quick Start](#quick-start)
- [Claude Code](#claude-code)
- [Visual Studio Code (VSCode)](#visual-studio-code-vscode)
- [OpenCode](#opencode)
- [Components](#components)
- [Resources](#resources)
- [Tools](#tools)
- [Query Tools](#query-tools)
- [Schema Tools](#schema-tools)
- [Analysis Tools](#analysis-tools)
- [Authentication](#authentication)
- [Password](#password)
- [Key-Pair](#key-pair)
- [External Browser](#external-browser)
- [OAuth 2.0 Client Credentials](#oauth-20-client-credentials)
- [OAuth Bearer Token](#oauth-bearer-token)
- [TOML Connection File (Recommended)](#toml-connection-file-recommended)
- [Installation](#installation)
- [Via UVX](#via-uvx)
- [Via Docker Hub](#via-docker-hub)
- [Configuration Reference](#configuration-reference)
- [Exclusion Patterns](#exclusion-patterns)
- [License](#license)
- [Fork and Attribution](#fork-and-attribution)
Quick Start
The fastest way to try it — using uvx with a TOML connection file:
# 1. Create a connections file
cat > ~/snowflake_connections.toml **Contributing or running from source?** See [`CONTRIBUTING.md`](./CONTRIBUTING.md) for local development setup, test commands, formatting, and building the Docker image from source.
---
### Via UVX
TOML configuration (recommended)
```jsonc
"mcpServers": {
"snowflake_production": {
"command": "uvx",
"args": [
"--python=3.13",
"--from", "mcp-snowflake-server-nsp",
"mcp_snowflake_server",
"--connections-file", "/path/to/snowflake_connections.toml",
"--connection-name", "production"
// Optional flags — see Configuration Reference
]
},
"snowflake_staging": {
"command": "uvx",
"args": [
"--python=3.13",
"--from", "mcp-snowflake-server-nsp",
"mcp_snowflake_server",
"--connections-file", "/path/to/snowflake_connections.toml",
"--connection-name", "staging"
]
}
}
Individual parameters
"mcpServers": {
"snowflake": {
"command": "uvx",
"args": [
"--python=3.13",
"--from", "mcp-snowflake-server-nsp",
"mcp_snowflake_server",
"--account", "your_account",
"--warehouse", "your_warehouse",
"--user", "your_user",
"--password", "your_password",
"--role", "your_role",
"--database", "your_database",
"--schema", "your_schema"
// Optional: "--private_key_file", "/absolute/path/key.p8"
// Optional: "--private_key_file_pwd", "passphrase"
// Optional flags — see Configuration Reference
]
}
}
Via Docker Hub
The image is published on Docker Hub — no build step required:
docker pull nsphung/mcp-snowflake-server-nsp
> Note: -i (--interactive) is required to keep stdin open for the MCP stdio transport. Do not use -d (detach).
Claude Desktop — claudedesktopconfig.json
With .env file (see [Authentication](#authentication)):
"mcpServers": {
"snowflake": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"--env-file", "/absolute/path/to/.env",
"nsphung/mcp-snowflake-server-nsp"
]
}
}
With TOML connections file:
"mcpServers": {
"snowflake": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-v", "/path/to/snowflake_connections.toml:/app/snowflake_connections.toml:ro",
"nsphung/mcp-snowflake-server-nsp",
"--connections-file", "/app/snowflake_connections.toml",
"--connection-name", "production"
]
}
}
VS Code — .vscode/mcp.json
With .env file:
"snowflake": {
"type": "stdio",
"command": "docker",
"args": [
"run", "--rm", "-i",
"nsphung/mcp-snowflake-server-nsp"
],
"envFile": "${workspaceFolder}/.env"
}
With TOML connections file:
"snowflake": {
"type": "stdio",
"command": "docker",
"args": [
"run", "--rm", "-i",
"-v", "/path/to/snowflake_connections.toml:/app/snowflake_connections.toml:ro",
"nsphung/mcp-snowflake-server-nsp",
"--connections-file", "/app/snowflake_connections.toml",
"--connection-name", "production"
]
}
OpenCode — opencode.jsonc
"snowflake": {
"type": "local",
"command": [
"docker", "run", "--rm", "-i",
"--env-file", "/absolute/path/to/.env",
"nsphung/mcp-snowflake-server-nsp"
],
"enabled": true,
"timeout": 300000
}
Configuration Reference
All connection parameters can also be set as environment variables (SNOWFLAKE_).
| Flag | Env var | Default | Description | | ------------------------------ | -------------------------------- | ------------ | -------------------------------------------------------------------------------------------------- | | --account | SNOWFLAKE_ACCOUNT | — | Snowflake account identifier | | --user | SNOWFLAKE_USER | — | Snowflake username | | --password | SNOWFLAKE_PASSWORD | — | Password (not required for key-pair / SSO) | | --warehouse | SNOWFLAKE_WAREHOUSE | — | Virtual warehouse to use | | --database | SNOWFLAKE_DATABASE | (required) | Default database | | --schema | SNOWFLAKE_SCHEMA | (required) | Default schema | | --role | SNOWFLAKE_ROLE | — | Role to assume | | --private_key_file | SNOWFLAKE_PRIVATE_KEY_FILE | — | Absolute path to RSA or ECDSA (ES256/384/512) private key file (.p8 / .pem) | | --private_key_file_pwd | SNOWFLAKE_PRIVATE_KEY_FILE_PWD | — | Passphrase for encrypted private key | | --connections-file | — | — | Path to TOML connections file | | --connection-name | — | — | Connection profile name in TOML file (required with --connections-file) | | --allow_write | — | false | Enable write_query and create_table tools | | --prefetch / --no-prefetch | — | false | Pre-load table schema as context://table/* resources (disables list_tables / describe_table) | | --exclude_tools | — | [] | Space-separated list of tool names to disable | | --exclude-json-results | — | false | Omit embedded JSON resources from responses (reduces context window usage) | | --log_dir | — | — | Directory for log file output | | --log_level | — | INFO | Log verbosity: DEBUG, INFO, WARNING, ERROR, CRITICAL |
Exclusion Patterns
Edit runtime_config.json to exclude databases, schemas, or tables from all discovery tools. Patterns are matched case-insensitively as substrings.
{
"exclude_patterns": {
"databases": ["temp"],
"schemas": ["temp", "information_schema"],
"tables": ["temp"]
}
}
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.
[](https://mseep.ai/app/isaacwasserman-mcp-snowflake-server)
- 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 & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: nsphung
- Source: nsphung/mcp-snowflake-server
- License: MIT
- Homepage: https://pypi.org/project/mcp-snowflake-server-nsp/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.