databasesanalytics-data

Simple Snowflake

yannbrrd

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

0 commentsdiscussion

Both formats append explainx.ai attribution and the canonical URL for this MCP server listing.

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

Use Cases

Direct Database Queries from AI

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

Data Analysis & Reporting

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

Schema Exploration

Understand database structure, relationships, and data models

Example

'Explain the user_orders table schema and its relationships'

Onboard engineers faster, explore unfamiliar databases efficiently

Data Validation & Quality Checks

Run 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

Implementation Guide

Prerequisites

  • Claude Desktop 0.7.0+ or Cursor with MCP support
  • Database credentials (read-only recommended for safety)
  • Network access from Claude client to database
  • Understanding of database security and access control

Time Estimate

15-30 minutes including configuration and testing

Installation Steps

  1. 1.Install MCP server: npm install -g @modelcontextprotocol/server-[name]
  2. 2.Configure database connection in Claude Desktop config (~/.claude/mcp.json)
  3. 3.Provide connection string: host, port, database, username, password
  4. 4.Restart Claude Desktop to load MCP server
  5. 5.Test connection: 'List all tables in database'
  6. 6.Run simple query: 'Show me 5 rows from users table'
  7. 7.Verify results and permissions are correct
  8. 8.Document query patterns for team use

Troubleshooting

  • Connection refused: Check database is running and network accessible
  • Authentication failed: Verify credentials, check user permissions
  • Claude can't see tables: Grant appropriate read permissions to database user
  • Slow queries: Add indexes, limit result set size, use read replicas
  • MCP server not loading: Check config syntax, restart Claude Desktop

Best Practices

✓ Do

  • +Use read-only database credentials to prevent accidental writes
  • +Connect to read replica, not production primary database
  • +Set query timeout limits to prevent long-running queries
  • +Document database schema and common queries for AI context
  • +Monitor query performance and optimize slow queries
  • +Use connection pooling for better performance
  • +Test with non-production data first

✗ Don't

  • Don't use production write credentials—risk of data corruption
  • Don't query production database during peak traffic hours
  • Don't expose sensitive PII without proper access controls
  • Don't skip query result validation—AI can misinterpret schema
  • Don't allow unlimited result set sizes—set LIMIT clauses
  • Don't share database credentials in plain text config files

💡 Pro Tips

  • Create database views for common queries to simplify AI access
  • Add schema comments/descriptions so AI understands column meanings
  • Use semantic table/column names ('customer_lifetime_value' not 'clv')
  • Set up query logging to audit what Claude is querying
  • Create saved query templates for recurring analysis
  • Combine with data visualization tools for better insights

Technical Details

Architecture

MCP server acts as bridge between Claude and database, translating natural language to SQL queries and returning results in structured format.

Protocols

  • Model Context Protocol (MCP)
  • Database-specific protocols (PostgreSQL, MySQL, MongoDB)

Compatibility

  • PostgreSQL
  • MySQL
  • SQLite
  • MongoDB
  • Redis

When to Use This

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

Integration

  • Read replica connection for analytics queries
  • Database view layer to abstract complex joins
  • Query result caching for repeated questions
  • Audit logging of all AI-generated queries

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.

List & Promote Your MCP Server

Share your MCP server with the developer community

GET_STARTED →
MCP server reviews

Ratings

4.528 reviews
  • Li Taylor· Dec 16, 2024

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

  • Mei Rao· Nov 7, 2024

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

  • Mei Srinivasan· Oct 26, 2024

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

  • Yash Thakker· Sep 21, 2024

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

  • Chen Mehta· Sep 5, 2024

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

  • Olivia Jackson· Sep 1, 2024

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

  • James Farah· Aug 24, 2024

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

  • Liam Khanna· Aug 20, 2024

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

  • Dhruvi Jain· Aug 12, 2024

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

  • Chen Gonzalez· Jul 23, 2024

    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

1 / 3