databasesanalytics-data

Simple Snowflake

by yannbrrd

Simple Snowflake enables secure SQL query execution and exploration on your Snowflake data warehouse, supporting proxies

Integrates with Snowflake data warehouses to enable SQL query execution, database exploration, and result formatting with corporate proxy support and optional read-only mode for secure data analysis workflows.

github stars

7

Corporate proxy supportOptional read-only modeYAML-based configuration system

best for

  • / Data analysts querying Snowflake warehouses
  • / Database administrators exploring schema structures
  • / Corporate environments requiring proxy support
  • / Teams needing read-only data access controls

capabilities

  • / Execute SQL queries on Snowflake databases
  • / Browse databases, schemas, tables and views
  • / Get table samples and metadata details
  • / Explain query execution plans
  • / View warehouse status and query history
  • / Validate SQL syntax without execution

what it does

Connects to Snowflake data warehouses to run SQL queries, explore database schemas, and analyze data with corporate proxy support and optional read-only mode.

about

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.

how to install

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.

license

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.

readme

Simple Snowflake MCP server

Trust Score

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.

Tools

The server exposes comprehensive MCP tools to interact with Snowflake:

Core Database Operations:

  • execute-snowflake-sql: Executes a SQL query on Snowflake and returns the result (list of dictionaries)
  • execute-query: Executes a SQL query in read-only mode (SELECT, SHOW, DESCRIBE, EXPLAIN, WITH) or not (if read_only is false), result in markdown format
  • query-view: Queries a view with an optional row limit (markdown result)

Discovery and Metadata:

  • list-snowflake-warehouses: Lists available Data Warehouses (DWH) on Snowflake
  • list-databases: Lists all accessible Snowflake databases
  • list-schemas: Lists all schemas in a specified database
  • list-tables: Lists all tables in a database and schema
  • list-views: Lists all views in a database and schema
  • describe-table: Gives details of a table (columns, types, constraints)
  • describe-view: Gives details of a view (columns, SQL)

Advanced Operations:

  • get-table-sample: Gets sample data from a table
  • explain-query: Explains the execution plan of a SQL query
  • show-query-history: Shows recent query history
  • get-warehouse-status: Gets current warehouse status and usage
  • validate-sql: Validates SQL syntax without execution

🆕 Configuration System (v0.2.0)

The server now includes a comprehensive YAML-based configuration system that allows you to customize all aspects of the server behavior.

Configuration File Structure

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

Using Custom Configuration

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 Override Priority

Configuration values are resolved in this order (highest to lowest priority):

  1. Environment variables (e.g., LOG_LEVEL, MCP_READ_ONLY)
  2. Custom configuration file (via CONFIG_FILE)
  3. Default config.yaml file
  4. Built-in defaults

🚀 Installation Rapide

Méthode 1 : Installation avec uvx (Recommandé)

# Installation et exécution directe
uvx simple-snowflake-mcp

Méthode 2 : Installation depuis le code source

# 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

Méthode 3 : Développement

# 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 .

Configuration Claude Desktop

On MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json

On Windows: %APPDATA%/Claude/claude_desktop_config.json

<details> <summary>Development/Unpublished Servers Configuration</summary>
"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>

Docker Setup

Prerequisites

  • Docker and Docker Compose installed on your system
  • Your Snowflake credentials

Quick Start with Docker

  1. Clone the repository

    git clone <your-repo>
    cd simple_snowflake_mcp
    
  2. Set up environment variables

    cp .env.example .env
    # Edit .env with your Snowflake credentials
    
  3. 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
    

Docker Commands

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

Docker Configuration

The Docker setup includes:

  • Dockerfile: Multi-stage build with Python 3.11 slim base image
  • docker-compose.yml: Service definition with environment variable support
  • .dockerignore: Optimized build context
  • Makefile: Convenient commands for Docker operations

Environment Variables

All Snowflake configuration can be set via environment variables:

Required:

  • SNOWFLAKE_USER: Your Snowflake username
  • SNOWFLAKE_PASSWORD: Your Snowflake password
  • SNOWFLAKE_ACCOUNT: Your Snowflake account identifier

Optional:

  • SNOWFLAKE_WAREHOUSE: Warehouse name
  • SNOWFLAKE_DATABASE: Default database
  • SNOWFLAKE_SCHEMA: Default schema
  • MCP_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)

Development Mode

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.

Développement

Installation des dépendances

# 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 et Publication

# Build
uv build

# Publier sur PyPI
uv publish --token $UV_PUBLISH_TOKEN

Debugging avec MCP Inspector

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.

New Feature: Snowflake SQL Execution

The server exposes an MCP tool execute-snowflake-sql to execute a SQL query on Snowflake and return the result.

Usage

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.

Installation et configuration dans VS Code

  1. 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
    
  2. Configurer l'accès Snowflake

    • Copier .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
      
  3. Configurer le serveur (v0.2.0)

    • Le serveur créera automatiquement un fichier config.yaml par défaut au premier lancement
    • Personnalisez le logging, les limites et les fonctionnalités MCP en éditant

FAQ

What is the Simple Snowflake MCP server?
Simple Snowflake is a Model Context Protocol (MCP) server profile on explainx.ai. MCP lets AI hosts (e.g. Claude Desktop, Cursor) call tools and resources through a standard interface; this page summarizes categories, install hints, and community ratings.
How do MCP servers relate to agent skills?
Skills are reusable instruction packages (often SKILL.md); MCP servers expose live capabilities. Teams frequently combine both—skills for workflows, MCP for APIs and data. See explainx.ai/skills and explainx.ai/mcp-servers for parallel directories.
How are reviews shown for Simple Snowflake?
This profile displays 10 aggregated ratings (sample rows for discoverability plus signed-in user reviews). Average score is about 4.5 out of 5—verify behavior in your own environment before production use.
MCP server reviews

Ratings

4.510 reviews
  • Shikha Mishra· Oct 10, 2024

    Simple Snowflake is among the better-indexed MCP projects we tried; the explainx.ai summary tracks the official description.

  • Piyush G· Sep 9, 2024

    We evaluated Simple Snowflake against two servers with overlapping tools; this profile had the clearer scope statement.

  • Chaitanya Patil· Aug 8, 2024

    Useful MCP listing: Simple Snowflake is the kind of server we cite when onboarding engineers to host + tool permissions.

  • Sakshi Patil· Jul 7, 2024

    Simple Snowflake reduced integration guesswork — categories and install configs on the listing matched the upstream repo.

  • Ganesh Mohane· Jun 6, 2024

    I recommend Simple Snowflake for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.

  • Oshnikdeep· May 5, 2024

    Strong directory entry: Simple Snowflake surfaces stars and publisher context so we could sanity-check maintenance before adopting.

  • Dhruvi Jain· Apr 4, 2024

    Simple Snowflake has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.

  • Rahul Santra· Mar 3, 2024

    According to our notes, Simple Snowflake benefits from clear Model Context Protocol framing — fewer ambiguous “AI plugin” claims.

  • Pratham Ware· Feb 2, 2024

    We wired Simple Snowflake into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.

  • Yash Thakker· Jan 1, 2024

    Simple Snowflake is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.