Atlas / MCP servers / mikdanjey / snowflake-mcp-server

snowflake-mcp-serverSAFE

mcp/mikdanjey/snowflake-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.

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
1 0r · 1w · 0d
Transport
stdio
License
MIT
Stars
0
01

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

  1. Clone and install dependencies:
git clone https://github.com/mikdanjey/snowflake-mcp-server.git
cd snowflake-mcp-server
npm install
  1. **Configure environmen
Read from source at commit d1cc75c8743dOBSERVED · 2026-10-12
02

Connect

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-code
claude mcp add snowflake-mcp-server --env SNOWFLAKE_AUTHENTICATOR=${SNOWFLAKE_AUTHENTICATOR} --env SNOWFLAKE_PASSWORD=${SNOWFLAKE_PASSWORD} -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "snowflake-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "SNOWFLAKE_AUTHENTICATOR": "${SNOWFLAKE_AUTHENTICATOR}",
        "SNOWFLAKE_PASSWORD": "${SNOWFLAKE_PASSWORD}"
      }
    }
  }
}
03

Exposed tools (1)

0 read · 1 write · 0 destructive.

ToolRiskDescription
snowflake_querywriteExecute SQL queries against Snowflake database
04

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.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (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)

LOWInventory / provenance · inv.hidden_file · CWE-1104
.prettierignore
.prettierignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
tests/integration/application-startup.test.ts:6
import { ConfigManager } from "../../src/utils/config-manager.js";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
tests/integration/application-startup.test.ts:7
import { SnowflakeClient } from "../../src/clients/snowflake-client.js";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
tests/integration/application-startup.test.ts:8
import { MCPServer } from "../../src/server/mcp-server.js";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
tests/integration/application-startup.test.ts:9
import { SnowflakeResourceHandler } from "../../src/handlers/snowflake-resource-handler.js";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
tests/integration/application-startup.test.ts:10
import { SQLValidator } from "../../src/validators/sql-validator.js";
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/sdk, snowflake-sdk, @eslint/js, @types/jest, @types/node, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, eslint
Why it matters. 17 dependency range(s) float
Fix. pin exact versions or ship a lockfile
INFOPrompt injection · prompt.credential_read · CWE-94, CWE-1427
docs/TROUBLESHOOTING.md:131
cat .env
Why it matters. asks the agent to read credentials
INFOPrompt injection · prompt.credential_read · CWE-94, CWE-1427
docs/TROUBLESHOOTING.md:480
cat .env | sed 's/PASSWORD=.*/PASSWORD=***REDACTED***/'
Why it matters. asks the agent to read credentials
INFOPrompt injection · prompt.credential_read · CWE-94, CWE-1427
docs/USAGE.md:11
1. **Configuration Loading**: Load and validate environment variables
Why it matters. asks the agent to read credentials

Gates applied: no_behavioural_pass.

Audited 2026-10-12 · audit v0.4.1 · source sha d1cc75c8743dfull audit observations/trust-audit/mcp-server/mikdanjey__snowflake-mcp-server.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-12d1cc75c8743dSAFEB89first audit
06

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.

Advertisement