snowflake-mcp-serverSAFE
A Model Context Protocol (MCP) server that enables LLM agents to securely connect to and query Snowflake databases. This server acts as a bridge between natural language processing agents and Snowflake's data warehouse, allowing for seamless SQL execution through structured input/output over STDIO.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
A Model Context Protocol (MCP) server that enables LLM agents to securely connect to and query Snowflake databases. This server acts as a bridge between natural language processing agents and Snowflake's data warehouse, allowing for seamless SQL execution through structured input/output over STDIO.
Features
- MCP Protocol Compliance: Full compatibility with the Model Context Protocol specification
- Secure Authentication: Support for both password and external browser (SSO) authentication
- SQL Validation: Comprehensive input validation and sanitization using Zod schemas
- Error Handling: Robust error handling with detailed diagnostic information
- Performance Optimized: Async query execution with connection pooling and timeout management
- Comprehensive Logging: Structured logging with configurable levels
- TypeScript: Full TypeScript support with comprehensive type definitions
Quick Start
Prerequisites
- Node.js 20.0.0 or higher
- Access to a Snowflake account
- Valid Snowflake credentials
Usage
Basic MCP Integration
The server exposes a snowflake.query resource that accepts SQL queries and returns structured results. Here's how to integrate it with an MCP client:
{
"mcpServers": {
"snowflake-mcp-server": {
"command": "npx",
"args": ["-y", "snowflake-mcp-server"],
"env": {
"SNOWFLAKE_ACCOUNT": "NLTFXXX-KB70000",
"SNOWFLAKE_USER": "MIKDANJEY",
"SNOWFLAKE_DATABASE": "DEMO",
"SNOWFLAKE_SCHEMA": "PUBLIC",
"SNOWFLAKE_WAREHOUSE": "COMPUTE_WH",
"SNOWFLAKE_ROLE": "SYSADMIN",
"SNOWFLAKE_AUTHENTICATOR": "snowflake",
"SNOWFLAKE_PASSWORD": "HZtJXuz6Efq2MNC",
"LOG_LEVEL": "info"
}
}
}
}Installation
- Clone and install dependencies:
git clone https://github.com/mikdanjey/snowflake-mcp-server.git cd snowflake-mcp-server npm install
- **Configure environmen
d1cc75c8743dOBSERVED · 2026-10-12Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add snowflake-mcp-server --env SNOWFLAKE_AUTHENTICATOR=${SNOWFLAKE_AUTHENTICATOR} --env SNOWFLAKE_PASSWORD=${SNOWFLAKE_PASSWORD} -- npx -y [email protected]{
"mcpServers": {
"snowflake-mcp-server": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"SNOWFLAKE_AUTHENTICATOR": "${SNOWFLAKE_AUTHENTICATOR}",
"SNOWFLAKE_PASSWORD": "${SNOWFLAKE_PASSWORD}"
}
}
}
}Exposed tools (1)
0 read · 1 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
snowflake_query | write | Execute SQL queries against Snowflake database |
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (10)
.prettierignore
import { ConfigManager } from "../../src/utils/config-manager.js";import { SnowflakeClient } from "../../src/clients/snowflake-client.js";import { MCPServer } from "../../src/server/mcp-server.js";import { SnowflakeResourceHandler } from "../../src/handlers/snowflake-resource-handler.js";import { SQLValidator } from "../../src/validators/sql-validator.js";@modelcontextprotocol/sdk, snowflake-sdk, @eslint/js, @types/jest, @types/node, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, eslint
cat .env
cat .env | sed 's/PASSWORD=.*/PASSWORD=***REDACTED***/'
1. **Configuration Loading**: Load and validate environment variables
Gates applied: no_behavioural_pass.
d1cc75c8743dfull audit observations/trust-audit/mcp-server/mikdanjey__snowflake-mcp-server.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-12 | d1cc75c8743d | SAFE | B | 89 | first audit |
Questions
What is the snowflake-mcp-server MCP server?
A Model Context Protocol (MCP) server that enables LLM agents to securely connect to and query Snowflake databases. This server acts as a bridge between natural language processing agents and Snowflake's data warehouse, allowing for seamless SQL execution through structured input/output over STDIO.
What tools does snowflake-mcp-server expose?
1 in total: 0 read-only, 1 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is snowflake-mcp-server safe to connect to an agent?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.
What credentials does snowflake-mcp-server need?
It reads SNOWFLAKE_AUTHENTICATOR and SNOWFLAKE_PASSWORD from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does snowflake-mcp-server run?
It speaks stdio, so it runs as a local process your client starts. It is published on npm as snowflake-mcp-server at 1.0.4.
How current is this page?
The grade is for one exact copy of the source (d1cc75c8743d), read on 2026-10-12. The repository is watched and re-audited when it changes.