Skip to main content

A simple Snowflake MCP server

Project description

Snowflake MCP Server

Slightly altered from https://github.com/isaacwasserman/mcp-snowflake-server


Overview

A Model Context Protocol (MCP) server implementation that provides database interaction with Snowflake. This server enables running SQL queries via tools and exposes data insights and schema context as resources. Does not include the ability to execute write operations, and includes a system prompt.


Components

Resources

  • memo://insights
    A continuously updated memo aggregating discovered data insights.
    Updated automatically when new insights are appended via the append_insight tool.

  • context://table/{table_name}
    (If prefetch enabled) Per-table schema summaries, including columns and comments, exposed as individual resources.


Tools

The server exposes the following 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

Schema Tools

  • list_databases
    List all databases in the Snowflake instance.
    Returns: Array of database names

  • list_schemas
    List all schemas within a specific database.
    Input:

    • database (string): Name of the database
      Returns: Array of schema names
  • list_tables
    List all tables within a specific database and schema.
    Input:

    • database (string): Name of the database
    • schema (string): Name of the schema
      Returns: Array of table metadata
  • describe_table
    View column information for a specific table.
    Input:

    • table_name (string): Fully qualified table name (database.schema.table)
      Returns: Array of column definitions with names, types, nullability, defaults, and comments

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
      Effect: Triggers update of memo://insights resource

Usage with Claude Desktop

Installing via UVX

"mcpServers": {
  "snowflake_pip": {
    "command": "uvx",
    "args": [
      "--python=3.12",  // Optional: specify Python version <=3.12
      "mcp_snowflake_server",
      "--account", "your_account",
      "--warehouse", "your_warehouse",
      "--user", "your_user",
      "--password", "your_password",
      "--role", "your_role",
      "--database", "your_database",
      "--schema", "your_schema"
      // Optionally: "--log_dir", "/absolute/path/to/logs"
      // Optionally: "--log_level", "DEBUG"/"INFO"/"WARNING"/"ERROR"/"CRITICAL"
      // Optionally: "--exclude_tools", "{tool_name}", ["{other_tool_name}"]
    ]
  }
}

Installing Locally

  1. Install Claude AI Desktop App

  2. Install uv:

curl -LsSf https://astral.sh/uv/install.sh | sh
  1. Create a .env file with your Snowflake credentials:
SNOWFLAKE_USER="xxx@your_email.com"
SNOWFLAKE_ACCOUNT="xxx"
SNOWFLAKE_ROLE="xxx"
SNOWFLAKE_DATABASE="xxx"
SNOWFLAKE_SCHEMA="xxx"
SNOWFLAKE_WAREHOUSE="xxx"
SNOWFLAKE_PASSWORD="xxx"
# Alternatively, use external browser authentication:
# SNOWFLAKE_AUTHENTICATOR="externalbrowser"
  1. [Optional] Modify runtime_config.json to set exclusion patterns for databases, schemas, or tables.

  2. Test locally:

uv --directory /absolute/path/to/mcp_snowflake_server run mcp_snowflake_server
  1. Add the server to your claude_desktop_config.json:
"mcpServers": {
  "snowflake_local": {
    "command": "/absolute/path/to/uv",
    "args": [
      "--python=3.12",  // Optional
      "--directory", "/absolute/path/to/mcp_snowflake_server",
      "run", "mcp_snowflake_server"
      // Optionally: "--log_dir", "/absolute/path/to/logs"
      // Optionally: "--log_level", "DEBUG"/"INFO"/"WARNING"/"ERROR"/"CRITICAL"
      // Optionally: "--exclude_tools", "{tool_name}", ["{other_tool_name}"]
    ]
  }
}

Notes

  • The server supports filtering out specific databases, schemas, or tables via exclusion patterns.
  • The server exposes additional per-table context resources if prefetching is enabled.
  • The append_insight tool updates the memo://insights resource dynamically.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_snowflake_server_readonly-0.4.6.tar.gz (23.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_snowflake_server_readonly-0.4.6-py3-none-any.whl (24.3 kB view details)

Uploaded Python 3

File details

Details for the file mcp_snowflake_server_readonly-0.4.6.tar.gz.

File metadata

File hashes

Hashes for mcp_snowflake_server_readonly-0.4.6.tar.gz
Algorithm Hash digest
SHA256 52ea84454af906d532646d0816c6d4c8699742972d420a7540b02c04f35b2468
MD5 cb5ab600809d7c19f8532fd6aa5829f8
BLAKE2b-256 7b1251d951c1cf30f653364098ff60e7ee265d27c7923a89fd6cffa2d5b8b6ec

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_snowflake_server_readonly-0.4.6.tar.gz:

Publisher: python-publish.yml on sgriffin-magnoliacap/mcp-snowflake-server-readonly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcp_snowflake_server_readonly-0.4.6-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_snowflake_server_readonly-0.4.6-py3-none-any.whl
Algorithm Hash digest
SHA256 a55fa88af434d462f2f010b15a78a39f47a0ca5c80ba34237c9f8d0827c095e2
MD5 c63975d02840ea05c2fa59e07823a167
BLAKE2b-256 7be178787d28470bbc1c199333dafecc1a2b0fc2484ec4bb5a6b7f49bb7a1f4a

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_snowflake_server_readonly-0.4.6-py3-none-any.whl:

Publisher: python-publish.yml on sgriffin-magnoliacap/mcp-snowflake-server-readonly

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page