A Model Context Protocol (MCP) server implementation that provides database interaction with Snowflake. This server enables running SQL queries with tools and intereacting with a memo of data insights presented as a resource.

Snowflake MCP Server

Overview

A Model Context Protocol (MCP) server implementation that provides database interaction with Snowflake. This server enables running SQL queries with tools and intereacting with a memo of data insights presented as a resource.

Components

Resources

The server exposes a single dynamic resource:

  • memo://insights: A continuously updated data insights memo that aggregates discovered insights during analysis
    • Auto-updates as new insights are discovered via the append-insight tool

Tools

The server offers six core tools:

Query Tools

  • read_query

    • Execute SELECT queries to read data from the database
    • Input:
      • query (string): The SELECT SQL query to execute
    • Returns: Query results as array of objects
  • write_query (with --allow-write flag)

    • Execute INSERT, UPDATE, or DELETE queries
    • Input:
      • query (string): The SQL modification query
    • Returns: { affected_rows: number }
  • create_table (with --allow-write flag)

    • Create new tables in the database
    • Input:
      • query (string): CREATE TABLE SQL statement
    • Returns: Confirmation of table creation

Schema Tools

  • list_tables

    • Get a list of all tables in the database
    • No input required
    • Returns: Array of table names
  • describe-table

    • View column information for a specific table
    • Input:
      • table_name (string): Name of table to describe (can be fully qualified)
    • Returns: Array of column definitions with names and types

Analysis Tools

  • append_insight
    • Add new data insights to the memo resource
    • Input:
      • insight (string): data insight discovered from analysis
    • Returns: Confirmation of insight addition
    • Triggers update of memo://insights resource

Usage with Claude Desktop

This server can be run without cloning or installing the repository.

# Add the server to your claude_desktop_config.json
"mcpServers": {
  "snowflake": {
      "command": "uvx",
      "args": [
          "mcp_snowflake_server"
          # Optionally: "--allow-write" (but not recommended)
      ],
      "env": {
          "SNOWFLAKE_WAREHOUSE": "your_warehouse",
          "SNOWFLAKE_DATABASE": "your_database",
          "SNOWFLAKE_ACCOUNT": "your_account_identifier",
          "SNOWFLAKE_USER": "your_username",
          "SNOWFLAKE_ROLE": "your_role",
          "SNOWFLAKE_SCHEMA": "your_schema",
          "SNOWFLAKE_PASSWORD": "your_password"
      }
  }
}

Features

Query
Schema
Insights
Tables
Database

Category

Databases