Get the FREE Ultimate OpenClaw Setup Guide →

mcp-snowflake

MCP server from isaacwasserman/mcp-snowflake-server

Installation
Run this command in your terminal to add the MCP server to Claude Code.
Run in terminal:
Command
claude mcp add --transport stdio isaacwasserman-mcp-snowflake-server uvx --python=3.12 mcp_snowflake_server --connections-file /path/to/snowflake_connections.toml --connection-name production \
  --env SNOWFLAKE_ROLE="Snowflake role" \
  --env SNOWFLAKE_USER="Snowflake user" \
  --env SNOWFLAKE_SCHEMA="Snowflake schema" \
  --env SNOWFLAKE_ACCOUNT="Snowflake account" \
  --env SNOWFLAKE_DATABASE="Snowflake database" \
  --env SNOWFLAKE_PASSWORD="Snowflake password" \
  --env SNOWFLAKE_WAREHOUSE="Snowflake warehouse" \
  --env SNOWFLAKE_PRIVATE_KEY_PATH="Path to private key (optional)"

How to use

This MCP server provides a Snowflake-backed context and memo resources along with a set of tools to query, modify, and analyze data. You can run read-only queries via read_query to fetch data with SELECT statements, and use schema tools like list_databases, list_schemas, list_tables, and describe_table to explore the Snowflake metadata. When write access is enabled (using --allow-write), you can run write_query to perform INSERT/UPDATE/DELETE operations and create_table to define new tables. The append_insight tool lets you add data insights to the memo resource memo://insights, which updates automatically, enabling iterative data storytelling as insights are discovered. For per-table context (if prefetch is enabled), you can access context://table/{table_name} resources that describe table schemas and columns.

How to install

Prerequisites:\n- Python 3.12 (or compatible with uvx runtime) installed on the host system.\n- UV (uvx) runtime installed.\n- Access to a Snowflake account with credentials and a configured connections file.\n\nInstallation steps:\n1) Install the uvx runtime (example):\n curl -LsSf https://astral.sh/uv/install.sh | sh\n\n2) Prepare a Snowflake connections file (snowflake_connections.toml) with your connection details and credentials. Example structure will vary by your setup; ensure it contains a named connection (production in this example).\n\n3) Create environment variable placeholders or a .env file as needed: \n SNOWFLAKE_USER=your_user@example.com\n SNOWFLAKE_PASSWORD=your_password\n SNOWFLAKE_ACCOUNT=your_account\n SNOWFLAKE_ROLE=your_role\n SNOWFLAKE_DATABASE=your_database\n SNOWFLAKE_SCHEMA=your_schema\n SNOWFLAKE_WAREHOUSE=your_warehouse\n\n4) Run the server using uvx with the provided configuration:\n uvx --directory /absolute/path/to/mcp_snowflake_server run mcp_snowflake_server\n\n5) (Optional) If you want to enable write access, start with the --allow_write flag via the configuration options and ensure your Snowflake user has appropriate permissions.\n\n6) Integrate the server with Claude Desktop or your orchestration tooling using the mcp_config entry.

Additional notes

Notes:\n- By default, write operations are disabled. Enable them explicitly with the --allow-write option.\n- The server supports excluding particular databases, schemas, or tables via configuration patterns in your UVX/Claude runtime.\n- memo://insights is updated dynamically when append_insight is used.\n- If prefetch is enabled, per-table context resources at context://table/{table_name} become available.\n- Ensure that your Snowflake credentials are managed securely, preferably using environment variables or a secrets manager rather than hard-coding in files.\n- The provided example connections-file path and connection-name (production) should be replaced with your actual connection configuration.

Related MCP Servers

Sponsor this space

Reach thousands of developers