MCP.so
Sign In
Servers

MCP Server for Snowflake

@dynamike

MCP Server for connecting to Snowflake with read-only questions

Overview

What is MCP Server for Snowflake?

A Model Context Protocol (MCP) server enabling Claude to securely perform read-only queries against Snowflake databases. It supports flexible authentication via service account (private key) or external browser login, and includes connection pooling with automatic background refresh.

How to use MCP Server for Snowflake?

Install Python 3.12+ and the uv package manager. Clone the repository, install with uv pip install -e ., configure a .env file with Snowflake credentials, then run as a stdio-based MCP server with uv run snowflake-mcp. Connect to it from Claude Desktop via Settings → MCP Servers.

Key features of MCP Server for Snowflake

  • Read-only enforcement: SELECT, SHOW, DESCRIBE, EXPLAIN, WITH only
  • Private key or external browser authentication
  • Automatic connection pooling with configurable refresh interval
  • Input validation and automatic LIMIT clauses to prevent large results
  • Stdio transport for easy Claude Desktop integration

Use cases of MCP Server for Snowflake

  • List all accessible databases and schema objects
  • Describe view structure, columns, and SQL definitions
  • Query sample data from views with optional row limits
  • Execute custom read-only SQL and receive markdown table results
  • Compare data across different databases and views in a single session

FAQ from MCP Server for Snowflake

What authentication methods are supported?

Private key authentication for service accounts, or external browser authentication for interactive user login sessions.

What are the required dependencies?

Python 3.12+, the uv package manager, and a Snowflake account with either a configured service account or regular user account.

Can I modify data with this server?

No. The server strictly enforces read-only operations and blocks INSERT, UPDATE, DELETE, and other modification statements.

How can I adjust connection pool refresh timing?

Set the SNOWFLAKE_CONN_REFRESH_HOURS environment variable (default 8 hours) to control how often connections are refreshed.

Tags

More from Databases