Simple Snowflake MCP server

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.
Back to servers
Setup instructions
Provider
Yann Barraud
Release date
Jul 08, 2025
Stats
5 stars

The Simple Snowflake MCP Server is a tool that allows you to interact with Snowflake databases through Model Context Protocol (MCP). It's designed to work behind corporate proxies and provides convenient access to Snowflake data and operations via various MCP tools.

Installation Options

Docker Installation

Prerequisites

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

Setup with Docker

  1. Clone the repository and navigate to it

    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
    

VS Code Installation

  1. Clone the project and install dependencies

    git clone <your-repo>
    cd simple_snowflake_mcp
    python -m venv .venv
    .venv/Scripts/activate  # Windows
    pip install -r requirements.txt
    
  2. Configure Snowflake access Create a .env file at the root with your credentials:

    SNOWFLAKE_USER=...
    SNOWFLAKE_PASSWORD=...
    SNOWFLAKE_ACCOUNT=...
    # SNOWFLAKE_WAREHOUSE   Optional: Snowflake warehouse name
    # SNOWFLAKE_DATABASE    Optional: default database name
    # SNOWFLAKE_SCHEMA      Optional: default schema name
    # MCP_READ_ONLY=true|false   Optional: true/false to force read-only mode
    
  3. Configure VS Code for MCP debugging

    • Open the command palette (Ctrl+Shift+P)
    • Type MCP: Start Server and select simple-snowflake-mcp

Claude Desktop Integration

On MacOS

Edit: ~/Library/Application\ Support/Claude/claude_desktop_config.json

On Windows

Edit: %APPDATA%/Claude/claude_desktop_config.json

Add the following configuration:

For published servers:

"mcpServers": {
  "simple_snowflake_mcp": {
    "command": "uvx",
    "args": [
      "simple_snowflake_mcp"
    ]
  }
}

Using the MCP Server

The Snowflake MCP server exposes several tools to interact with your Snowflake instance:

Available Tools

  • execute-snowflake-sql: Executes a SQL query on Snowflake and returns the result
  • list-snowflake-warehouses: Lists available Data Warehouses (DWH) on Snowflake
  • list-databases: Lists all accessible Snowflake databases
  • list-views: Lists all views in a database and schema
  • describe-view: Gives details of a view (columns, SQL)
  • query-view: Queries a view with an optional row limit
  • execute-query: Executes a SQL query with configurable read-only mode

Example: Executing SQL Queries

To execute a SQL query, use the execute-snowflake-sql tool:

{
  "name": "execute-snowflake-sql",
  "arguments": { "sql": "SELECT CURRENT_TIMESTAMP;" }
}

The result will be returned as a list of dictionaries (one per row) in the MCP response.

Using Docker Commands

If you're using Docker, these commands can help manage your MCP server:

# Start in production mode
docker-compose up -d

# Start in development mode (with 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

Using the Makefile (if available)

# 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

Environment Configuration

You can configure the server using these environment variables:

  • SNOWFLAKE_USER: Your Snowflake username (required)
  • SNOWFLAKE_PASSWORD: Your Snowflake password (required)
  • SNOWFLAKE_ACCOUNT: Your Snowflake account identifier (required)
  • SNOWFLAKE_WAREHOUSE: Warehouse name (optional)
  • SNOWFLAKE_DATABASE: Default database (optional)
  • SNOWFLAKE_SCHEMA: Default schema (optional)
  • MCP_READ_ONLY: Set to "TRUE" for read-only mode (default: TRUE)

How to install this MCP server

For Claude Code

To add this MCP server to Claude Code, run this command in your terminal:

claude mcp add-json "simple_snowflake_mcp" '{"command":"uvx","args":["simple_snowflake_mcp"]}'

See the official Claude Code MCP documentation for more details.

For Cursor

There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json file so that it is available in all of your projects.

If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json file.

Adding an MCP server to Cursor globally

To add a global MCP server go to Cursor Settings > Tools & Integrations and click "New MCP Server".

When you click that button the ~/.cursor/mcp.json file will be opened and you can add your server like this:

{
    "mcpServers": {
        "simple_snowflake_mcp": {
            "command": "uvx",
            "args": [
                "simple_snowflake_mcp"
            ]
        }
    }
}

Adding an MCP server to a project

To add an MCP server to a project you can create a new .cursor/mcp.json file or add it to the existing one. This will look exactly the same as the global MCP server example above.

How to use the MCP server

Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.

The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.

You can also explicitly ask the agent to use the tool by mentioning the tool name and describing what the function does.

For Claude Desktop

To add this MCP server to Claude Desktop:

1. Find your configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

2. Add this to your configuration file:

{
    "mcpServers": {
        "simple_snowflake_mcp": {
            "command": "uvx",
            "args": [
                "simple_snowflake_mcp"
            ]
        }
    }
}

3. Restart Claude Desktop for the changes to take effect

Want to 10x your AI skills?

Get a free account and learn to code + market your apps using AI (with or without vibes!).

Nah, maybe later