← Back to directory
S

Snowflake MCP Server (OSS, Deprecated)

Official
[Deprecated] Community MCP server for Snowflake Cortex AI and SQL orchestration
Category
Database #43 of 58
Stars
★ 299 Popular
Transport
stdio (local process) · SSE · Streamable HTTP
Runtime
Python · Docker
Credentials
API key / credential required
License
Apache-2.0
Last commit
Tools
6
48FMRS · D

This was Snowflake Labs' open-source MCP server bringing Cortex AI, object management, SQL execution, and semantic view querying to MCP clients, but the README explicitly marks it deprecated and no longer maintained, with official guidance to migrate to Snowflake's own hosted MCP Server. Its feature scope is broad, but its permission model depends entirely on the operator correctly configuring SQL statement allowlists and Snowflake roles; misconfiguration risks destructive SQL execution, and since it is unmaintained it is unsuitable for production or new projects.

Strongest · Documentation 16/20 Weakest · Maintenance 2/20

Reliability
7/20
Security and permissions
10/20
Maintenance
2/20
Documentation
16/20
Setup experience
13/20
Why each score
Reliability 7/20
The README documents three transports (stdio/sse/streamable-http), connection parameters, and troubleshooting via MCP Inspector and verbose logging, and describes tools being dynamically generated from a config file in a coherent, plausible way. However, none of the supplied source material includes a CI workflow or test files as verifiable execution evidence, and the README itself states up front that the project is deprecated and no longer maintained, raising doubt about ongoing compatibility and error-handling reliability against newer Snowflake/dependency versions. Per the static calibration rule, without executable evidence the score is capped well below 12; scored 7.
Security and permissions 10/20
Credentials are passed via env vars/CLI args, and the manifest correctly flags password and private-key fields as isSecret; the README repeatedly emphasizes that the server honors the connecting role's RBAC permissions rather than escalating privilege. SQL execution is gated by a configurable sql_statement_permissions allow-list, which can in principle enforce least privilege. However, the example configuration template in the README defaults destructive statement types (Alter/Create/Delete/Drop/Insert/Merge/Update/TruncateTable) to True, a high-risk default; the object-management tools can create/drop/alter Snowflake objects with no server-side confirmation mechanism described — any confirmation depends entirely on the external MCP client, which is not disclosed clearly. No red-line issue is evident (no malware or credential-exfiltration evidence), but incomplete least-privilege defaults and missing built-in confirmation for destructive ops justify 10.
Maintenance 2/20
The README carries a prominent banner stating the project 'is deprecated and no longer maintained' and directs all users to migrate to Snowflake's new official MCP server. Although GitHub metadata shows the repo is not archived, has 296 stars and 29 open issues, the project itself has explicitly ceased active maintenance, bug fixes, and feature work — functionally equivalent to an abandoned project. The Apache-2.0 license remains in place, which is the only mitigating factor, but maintenance activity should score at the bottom of the range; scored 2.
Documentation 16/20
Documentation is extensive: install methods (uvx/Docker/Docker Compose), multiple auth methods (password, key pair, OAuth, SSO, MFA), client configuration examples for Claude Desktop, Cursor, fast-agent, VS Code, and Codex, a transport customization parameter table, a SQL statement permission mapping table (sqlglot expression types with real SQL examples), and a troubleshooting FAQ — layered and example-rich. Deductions: the docs are explicitly labeled 'legacy documentation, for reference only' with no confirmation of current accuracy against the latest Snowflake service, and cost/rate-limit implications of Cortex usage are not disclosed. Scored 16.
Setup experience 13/20
The README provides complete, step-by-step setup examples from uvx installation through configuration for major clients (Claude Desktop, Cursor, fast-agent, VS Code+Copilot, Codex) plus containerized deployment (Docker/Docker Compose), covering multiple platforms clearly. Per the static calibration rule, absence of CI/test evidence caps this dimension at 15; additionally the flow still requires the user to provision a Snowflake account, credentials, and a hand-authored YAML service configuration file, so it is not fully turnkey. Scored 13.

Static review · not runListed 2026-08-26

Read the FMRS scoring method →

Fit and risk

What it can accessChanges third-party account dataConnects to a database

Best for

  • Teams already on Snowflake who need to study or reproduce a legacy MCP integration for migration purposes
  • Developers researching this project's architecture before moving to the official Snowflake MCP Server

Not for

  • Any new project or production deployment, since the project is officially deprecated with no further fixes or features
  • Users unfamiliar with Snowflake RBAC and SQL statement allowlisting who cannot audit the permission configuration themselves

Required permissions

  • Requires valid Snowflake credentials (username/password, PAT, key pair, OAuth, or SSO)
  • Server behavior is fully bound by the RBAC permissions of the connecting role, which needs access to the target databases/schemas/warehouses/Cortex services
  • Enabling SQL execution or object-management tools requires explicitly allowlisting SQL statement types (Create, Drop, Update, etc.) in the configuration file

Risks and side effects

  • The project is officially marked deprecated and unmaintained, so unresolved security or functional issues may exist — not recommended for new deployments
  • Misconfigured sql_statement_permissions or an 'Unknown' statement type set to True can allow destructive SQL (DROP, DELETE, UPDATE) to execute beyond intended scope
  • Sensitive credentials (private keys, passwords) are passed via environment variables or CLI arguments, requiring careful protection of the deployment environment
  • Programmatic Access Tokens (PATs) do not evaluate secondary roles, forcing a single broadly-privileged role and coarser permission control

Setup

Before you start

Runtime:Python · Docker

SNOWFLAKE_PASSWORD optionalsecret Password or programmatic access token (PAT) created in Snowflake; secret credential.
SNOWFLAKE_PRIVATE_KEY optionalsecret Private key for key pair authentication; secret credential.
Other optional settings (12)
SNOWFLAKE_ACCOUNT optional Snowflake account identifier (e.g. xy12345.us-east-1) from your Snowflake account.
SNOWFLAKE_HOST optional Snowflake host URL from your account details.
SNOWFLAKE_USER optional Snowflake login username.
SNOWFLAKE_ROLE optional Role to use for the connection; governs RBAC permissions.
SNOWFLAKE_WAREHOUSE optional Warehouse used to run queries.
SNOWFLAKE_PASSCODE optional MFA passcode for authentication.
SNOWFLAKE_PRIVATE_KEY_FILE optional Path to the private key file.
SNOWFLAKE_PRIVATE_KEY_FILE_PWD optional Password for the encrypted private key file.
SNOWFLAKE_MCP_HOST optional Host to bind the HTTP server to; defaults to 0.0.0.0.
SNOWFLAKE_MCP_PORT optional HTTP server listen port; defaults to 9000.
SNOWFLAKE_MCP_ENDPOINT optional HTTP endpoint path; defaults to /mcp.
SNOWFLAKE_MCP_VERBOSE optional Set to true to enable debug logging.

1) Install the package via pip/uvx (snowflake-labs-mcp); 2) prepare a service configuration YAML file defining agent_services/search_services/analyst_services plus the other_services toggles and sql_statement_permissions; 3) set Snowflake connection credentials via environment variables or CLI flags (e.g. SNOWFLAKE_ACCOUNT, SNOWFLAKE_USER, SNOWFLAKE_PASSWORD); 4) point your MCP client (Claude Desktop, Cursor, fast-agent, Codex) at the uvx command with --service-config-file and --connection-name arguments; 5) optionally deploy via the provided Dockerfile or docker-compose for streamable-http transport on port 9000. Note: this project is deprecated — new users should use the official Snowflake-maintained MCP Server instead.

claude_desktop_config.json
{"mcpServers":{"mcp-server-snowflake":{"command":"uvx","args":["snowflake-labs-mcp","--service-config-file","<path_to_file>/tools_config.yaml","--connection-name","default"]}}}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "mcp-server-snowflake": {
      "command": "uvx",
      "args": [
        "snowflake-labs-mcp",
        "--service-config-file",
        "<path_to_file>/tools_config.yaml",
        "--connection-name",
        "default"
      ]
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add mcp-server-snowflake -- uvx snowflake-labs-mcp --service-config-file '<path_to_file>/tools_config.yaml' --connection-name default

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

Launch MCP Inspector or check your client's tool list: the configured Cortex service tools (e.g. cortex_search) plus enabled tool groups like object_management should appear, confirming the config loaded and Snowflake connection works.

Troubleshooting

  1. Tools not appearing: check the configuration YAML syntax and confirm the relevant other_services flags are set to True; validate with MCP Inspector
  2. Connection failures: verify Snowflake connection parameters, authentication method, and that the role has access to the configured databases/schemas/services
  3. SSL errors: if the account identifier contains underscores, try the dashed form of the account URL
  4. Permission errors: check that a PAT's bound role covers all needed object permissions, since PATs ignore secondary roles
  5. Slow startup: initial connection and configuration validation can take a few seconds; over 30 seconds suggests checking network connectivity or credentials

Things to try

Once connected, you can ask your AI assistant things like:

  • Search the Cortex Search service for documents about customer churn
  • Describe the semantic view in my_database.my_schema and list its metrics and dimensions
  • Create a new Snowflake database named analytics
  • Run this SQL: SELECT id, name FROM my_table WHERE id < 200

Tools 6

cortex_search read-only
Query unstructured data in Snowflake, commonly used in Retrieval Augmented Generation (RAG) applications.
cortex_analyst read-only
Query structured data in Snowflake via a pre-configured semantic model or semantic view.
cortex_agent read-only
Orchestrate retrieval across structured and unstructured data sources using pre-configured Cortex Agent objects in Snowflake.
object_management writes
Perform basic create, drop, create-or-alter, describe, and list operations against common Snowflake objects (databases, schemas, tables, views, warehouses, compute pools, roles, stages, users, image repositories), gated by SQL permissions in the configuration file.
sql_execution destructive
Execute LLM-generated general SQL statements, allowed or blocked per sqlglot expression type as configured in sql_statement_permissions.
semantic_view_querying read-only
Discover and query Snowflake Semantic Views, including listing/describing views and their metrics and dimensions, and running direct queries against them.

Use cases

Letting MCP-capable AI clients query structured and unstructured Snowflake data via natural language
Running LLM-generated SQL against Snowflake under a configurable statement-type allowlist
Exploring and querying pre-configured Snowflake Semantic Views

Supported clients

Claude Desktop
Cursor
fast-agent
Codex
GitHub CopilotPartial support

Listed from the project's documentation, not tested by this site.

Overview

This repository (Snowflake-Labs/mcp) was a community-maintained MCP server from Snowflake Labs that connects to the Snowflake data platform, exposing Cortex Search (unstructured data retrieval for RAG), Cortex Analyst (semantic queries over structured data), Cortex Agent (orchestration across structured and unstructured sources), object management (create/drop/create-or-alter/describe/list for databases, schemas, tables, views, warehouses, compute pools, roles, stages, users, and image repositories), general SQL execution gated by sqlglot statement-type permissions, and discovery/querying of Snowflake Semantic Views. The README explicitly states the project is deprecated and no longer maintained, directing users to the official Snowflake-maintained MCP Server (documented at docs.snowflake.com). It ships as the PyPI package snowflake-labs-mcp, runs over stdio, sse (legacy), or streamable-http transport, and relies on the Snowflake Python Connector for authentication (password, PAT, key pair, MFA, SSO, OAuth).

Similar servers

Source revision 662cb486395d Data synced 2026-10-12 Read the FMRS scoring method