MCP Server for Snowflake logo

MCP Server for Snowflake

by dynamike

A Model Context Protocol (MCP) server for performing read-only operations against Snowflake databases. This tool enables Claude to securely query Snowflake data without modifying any information.

View on GitHub

Last updated: N/A

What is MCP Server for Snowflake?

The MCP Server for Snowflake is a tool that allows Claude to securely query data from Snowflake databases using the Model Context Protocol (MCP). It supports read-only operations and provides a secure way to access and analyze Snowflake data.

How to use MCP Server for Snowflake?

  1. Clone the repository. 2. Install the package using uv pip install -e .. 3. Configure your Snowflake credentials in a .env file (either using private key or external browser authentication). 4. Run the server with uv run snowflake-mcp. 5. Integrate with Claude Desktop by adding a new MCP server with the correct path to your uv executable.

Key features of MCP Server for Snowflake

  • Flexible authentication (service account or external browser)

  • Connection pooling with automatic refresh

  • Support for querying multiple views and databases

  • Support for multiple SQL statement types (SELECT, SHOW, DESCRIBE, EXPLAIN, WITH)

  • MCP-compatible handlers

  • Read-only operations with security checks

Use cases of MCP Server for Snowflake

  • Listing available databases and views

  • Describing the structure of specific views

  • Querying data from views with optional row limits

  • Executing custom read-only SQL queries

  • Integrating Snowflake data with Claude for analysis and insights

FAQ from MCP Server for Snowflake

What authentication methods are supported?

The server supports both service account authentication with a private key and external browser authentication for interactive sessions.

How do I configure the server to use private key authentication?

Set SNOWFLAKE_AUTH_TYPE=private_key in your .env file and provide the path to your private key in SNOWFLAKE_PRIVATE_KEY_PATH.

How do I configure the server to use external browser authentication?

Set SNOWFLAKE_AUTH_TYPE=external_browser in your .env file. When you start the server, a browser window will open asking you to log in.

What SQL statement types are allowed?

Only SELECT, SHOW, DESCRIBE, EXPLAIN, and WITH statements are allowed to ensure read-only operations.

How can I configure connection pooling behavior?

You can configure the time interval between connection refreshes using the SNOWFLAKE_CONN_REFRESH_HOURS environment variable.