by yannbrrd
Simple Snowflake enables secure SQL query execution and exploration on your Snowflake data warehouse, supporting proxies
Connects to Snowflake data warehouses to run SQL queries, explore database schemas, and analyze data with corporate proxy support and optional read-only mode.
Simple Snowflake is a community-built MCP server published by yannbrrd that provides AI assistants with tools and capabilities via the Model Context Protocol. Simple Snowflake enables secure SQL query execution and exploration on your Snowflake data warehouse, supporting proxies It is categorized under databases, analytics data.
You can install Simple Snowflake in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
MIT
Simple Snowflake is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
Enable Claude to query your database directly using natural language
Example
Ask 'Show me top 10 customers by revenue this month' and get SQL results instantly
Eliminate manual SQL writing for ad-hoc queries, get insights 10x faster
Generate complex reports and analytics without leaving conversation
Example
Analyze sales trends, cohort retention, user behavior patterns conversationally
Democratize data access—non-technical team members can query databases
Understand database structure, relationships, and data models
Example
'Explain the user_orders table schema and its relationships'
Onboard engineers faster, explore unfamiliar databases efficiently
Share your MCP server with the developer community
Simple Snowflake reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
Useful MCP listing: Simple Snowflake is the kind of server we cite when onboarding engineers to host + tool permissions.
Simple Snowflake is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
Simple Snowflake is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
Simple Snowflake has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
We evaluated Simple Snowflake against two servers with overlapping tools; this profile had the clearer scope statement.
We evaluated Simple Snowflake against two servers with overlapping tools; this profile had the clearer scope statement.
Simple Snowflake has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
Useful MCP listing: Simple Snowflake is the kind of server we cite when onboarding engineers to host + tool permissions.
We wired Simple Snowflake into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
showing 1-10 of 28
Enhanced Snowflake MCP Server with comprehensive configuration system and full MCP protocol compliance.
A production-ready MCP server that provides seamless Snowflake integration with advanced features including configurable logging, resource subscriptions, and comprehensive error handling. Designed to work seamlessly behind corporate proxies.
The server exposes comprehensive MCP tools to interact with Snowflake:
Core Database Operations:
read_only is false), result in markdown formatDiscovery and Metadata:
Advanced Operations:
The server now includes a comprehensive YAML-based configuration system that allows you to customize all aspects of the server behavior.
Create a config.yaml file in your project root:
# Logging Configuration
logging:
level: INFO # DEBUG, INFO, WARNING, ERROR, CRITICAL
format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
file_logging: false # Set to true to enable file logging
log_file: "mcp_server.log" # Log file path (when file_logging is true)
# Server Configuration
server:
name: "simple_snowflake_mcp"
version: "0.2.0"
description: "Enhanced Snowflake MCP Server with full protocol compliance"
connection_timeout: 30
read_only: true # Set to false to allow write operations
# Snowflake Configuration
snowflake:
read_only: true
default_query_limit: 1000
max_query_limit: 50000
# MCP Protocol Settings
mcp:
experimental_features:
resource_subscriptions: true # Enable resource change notifications
completion_support: false # Set to true when MCP version supports it
notifications:
resources_changed: true
tools_changed: true
limits:
max_prompt_length: 10000
max_resource_size: 1048576 # 1MB
You can specify a custom configuration file using the CONFIG_FILE environment variable:
Windows:
set CONFIG_FILE=config_debug.yaml
python -m simple_snowflake_mcp
Linux/macOS:
CONFIG_FILE=config_production.yaml python -m simple_snowflake_mcp
Configuration values are resolved in this order (highest to lowest priority):
LOG_LEVEL, MCP_READ_ONLY)CONFIG_FILE)config.yaml fileuvx (Recommandé)# Installation et exécution directe
uvx simple-snowflake-mcp
# Cloner le repo
git clone https://github.com/YannBrrd/simple_snowflake_mcp
cd simple_snowflake_mcp
# Installer avec uv (crée automatiquement un venv)
uv sync
# Exécuter
uv run simple-snowflake-mcp
# Installer avec les dépendances de développement
uv sync --all-extras
# Lancer les tests
uv run pytest
# Linter avec ruff
uv run ruff check .
uv run ruff format .
On MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
"mcpServers": {
"simple_snowflake_mcp": {
"command": "uv",
"args": [
"--directory",
".",
"run",
"simple_snowflake_mcp"
]
}
}
</details>
<details>
<summary>Published Servers Configuration</summary>
"mcpServers": {
"simple_snowflake_mcp": {
"command": "uvx",
"args": [
"simple_snowflake_mcp"
]
}
}
</details>
Clone the repository
git clone <your-repo>
cd simple_snowflake_mcp
Set up environment variables
cp .env.example .env
# Edit .env with your Snowflake credentials
Build and run with Docker Compose
# Build the Docker image
docker-compose build
# Start the service
docker-compose up -d
# View logs
docker-compose logs -f
Using Docker Compose directly:
# Build the image
docker-compose build
# Start in production mode
docker-compose up -d
# Start in development mode (with volume mounts for live code changes)
docker-compose --profile dev up simple-snowflake-mcp-dev -d
# View logs
docker-compose logs -f
# Stop the service
docker-compose down
# Clean up (remove containers, images, and volumes)
docker-compose down --rmi all --volumes --remove-orphans
Using the provided Makefile (Windows users can use make with WSL or install make for Windows):
# See all available commands
make help
# Build and start
make build
make up
# Development mode
make dev-up
# View logs
make logs
# Clean up
make clean
The Docker setup includes:
All Snowflake configuration can be set via environment variables:
Required:
SNOWFLAKE_USER: Your Snowflake usernameSNOWFLAKE_PASSWORD: Your Snowflake passwordSNOWFLAKE_ACCOUNT: Your Snowflake account identifierOptional:
SNOWFLAKE_WAREHOUSE: Warehouse nameSNOWFLAKE_DATABASE: Default databaseSNOWFLAKE_SCHEMA: Default schemaMCP_READ_ONLY: Set to "TRUE" for read-only mode (default: TRUE)Configuration System (v0.2.0):
CONFIG_FILE: Path to custom configuration file (default: config.yaml)LOG_LEVEL: Override logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)For development, use the development profile which mounts your source code:
docker-compose --profile dev up simple-snowflake-mcp-dev -d
This allows you to make changes to the code without rebuilding the Docker image.
# Synchroniser toutes les dépendances (prod + dev)
uv sync --all-extras
# Mettre à jour les dépendances
uv lock --upgrade
# Ajouter une nouvelle dépendance
uv add <package-name>
# Ajouter une dépendance de dev
uv add --dev <package-name>
# Build
uv build
# Publier sur PyPI
uv publish --token $UV_PUBLISH_TOKEN
Since MCP servers run over stdio, debugging can be challenging. For the best debugging experience, we strongly recommend using the MCP Inspector.
You can launch the MCP Inspector via npm with this command:
npx @modelcontextprotocol/inspector uv run simple-snowflake-mcp
Upon launching, the Inspector will display a URL that you can access in your browser to begin debugging.
The server exposes an MCP tool execute-snowflake-sql to execute a SQL query on Snowflake and return the result.
Call the MCP tool execute-snowflake-sql with a sql argument containing the SQL query to execute. The result will be returned as a list of dictionaries (one per row).
Example:
{
"name": "execute-snowflake-sql",
"arguments": { "sql": "SELECT CURRENT_TIMESTAMP;" }
}
The result will be returned in the MCP response.
Cloner le projet et installer les dépendances
git clone https://github.com/YannBrrd/simple_snowflake_mcp
cd simple_snowflake_mcp
# Installer avec uv (crée automatiquement un venv)
uv sync --all-extras
Configurer l'accès Snowflake
.env.example vers .env et remplir vos credentials :
SNOWFLAKE_USER=...
SNOWFLAKE_PASSWORD=...
SNOWFLAKE_ACCOUNT=...
# SNOWFLAKE_WAREHOUSE Optionnel: Nom du warehouse Snowflake
# SNOWFLAKE_DATABASE Optionnel: Nom de la base par défaut
# SNOWFLAKE_SCHEMA Optionnel: Nom du schéma par défaut
# MCP_READ_ONLY=true|false Optionnel: true/false pour forcer le mode lecture seule
Configurer le serveur (v0.2.0)
config.yaml par défaut au premier lancementRun data quality queries to catch anomalies and inconsistencies
Example
Find duplicate records, missing values, orphaned foreign keys automatically
Maintain data integrity with less manual SQL work
Prerequisites
Time Estimate
15-30 minutes including configuration and testing
Steps
Troubleshooting
✓ Do
✗ Don't
💡 Pro Tips
Architecture
MCP server acts as bridge between Claude and database, translating natural language to SQL queries and returning results in structured format.
Protocols
Compatibility
✓ Use when
Use for ad-hoc data queries, exploratory analysis, report generation, schema exploration, and democratizing data access. Best for read-heavy analytics workloads.
✗ Avoid when
Avoid for production write operations, mission-critical transactions, real-time OLTP workloads, or when database contains sensitive PII without proper access controls. Use read replicas, not primary.