PlugWiki
OSS Snowflake MCP Server logo

Snowflake Labs MCP, the deprecated open-source Snowflake server

Official · by SnowflakeLocal
GetPyPIsnowflake-labs-mcpsnowflake-labs/mcp

Deprecated Snowflake server for Cortex and SQL. Snowflake says to move to its managed MCP server.

This server is deprecated and no longer maintained, so use the Snowflake-managed MCP server instead. It let Claude, Cursor and other assistants query Cortex Analyst and Cortex Search, run SQL and manage Snowflake objects. If you still run it, the sample config lets the assistant write and drop data, so limit it before your next session.

Good for

  • Teams still running it who need to plan a move to the managed server
  • Admins who need to lock down its SQL tool until they move
  • Data teams who relied on its per-statement SQL controls

Works in

4 supported · 1 with issues · 7 should work

Tap an app to see how to set it up and any known problems.

Install OSS Snowflake MCP

Claude Code

  1. 1

    Copy this prompt.

    Add the OSS Snowflake MCP server to Claude Code. Run this command:
    
    claude mcp add mcp-server-snowflake -- uvx snowflake-labs-mcp --service-config-file <path_to_file>/tools_config.yaml --connection-name default
    
    Then check that it loaded and tell me if I need to sign in or restart.
  2. 2

    Paste it into Claude Code. It shows the change and asks before running it.

Requires uv, Python 3.11+, tools_config.yaml, Snowflake connection.

Read-only mode: Want it to only read? In tools_config.yaml, set every sql_statement_permissions entry to False except Select, Describe and Use, and set object_manager to False. The sample config allows nearly everything, including Drop, Create and Delete.

This server is deprecated and no longer maintained; its README tells all users to move to the Snowflake-managed MCP server (https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-agents-mcp), which runs in your Snowflake account, signs in with Snowflake OAuth and applies role-based access control per tool. Prefer that one. If you still want this server: it needs uv and Python 3.11 or newer, a tools_config.yaml that lists the Cortex services and tool groups to expose (see the README), and a connection named default in your Snowflake connections.toml. Replace <path_to_file> with the folder holding tools_config.yaml. Instead of a connection name you can pass connection flags or SNOWFLAKE_* environment variables. The server uses your Snowflake role's permissions. Tool groups are off until you set them to True in tools_config.yaml.

Built from the package data we hold. Not yet tested by us.

Tools

  • Runs a SQL statement in Snowflake

    Runs SQL generated by your assistant against your Snowflake account. Which statement types are allowed is set in the server's configuration file, and it must be turned on there. Use it for ad hoc queries and approved changes.

    Try: “Run a query that counts orders by month in SALES.PUBLIC.ORDERS”

    Delete · run_snowflake_query

  • Asks questions about structured data through Cortex Analyst

    Sends a natural-language question to a Cortex Analyst service built on a semantic view or semantic YAML file. It appears only when analyst services are configured. Use it for questions about your tables.

    Try: “What was revenue by region last quarter?”

    Network · cortex_analyst

  • Searches unstructured data through Cortex Search

    Queries a Cortex Search service you configured, the kind used for retrieval over documents and text. It appears only when search services are configured. Use it to find passages in your own data.

    Try: “Search our support tickets for refund complaints”

    Network · cortex_search

  • Hands a question to a Cortex Agent

    Sends a query to a Cortex Agent you set up in Snowflake, which can work across structured and unstructured data. It appears only when agent services are configured.

    Try: “Ask the sales agent which accounts are at risk”

    Network · cortex_agent

  • Lists semantic views in an account, database or schema

    Lists the Snowflake semantic views available at the scope you choose. Use it to find what data models exist.

    Try: “List the semantic views in the SALES database”

    Network · list_semantic_views

  • Describes one semantic view

    Returns the description of a semantic view. Use it to understand what a view contains before querying it.

    Try: “Describe the semantic view REVENUE_VIEW”

    Network · describe_semantic_view

  • Lists semantic dimensions

    Shows the semantic dimensions in an account, database or schema. Use it to see what you can group or filter by.

    Try: “Show the dimensions in the SALES schema”

    Network · show_semantic_dimensions

  • Lists semantic metrics

    Shows the semantic metrics in an account, database or schema. Use it to see which measures you can ask for.

    Try: “Show the metrics in the SALES schema”

    Network · show_semantic_metrics

  • Gets the definition of a semantic view

    Returns the DDL statement for a semantic view. Use it to see how a view is built or to recreate it elsewhere.

    Try: “Get the DDL for REVENUE_VIEW”

    Network · get_semantic_view_ddl

  • Queries a semantic view directly

    Runs a query against a Snowflake semantic view for the metrics and dimensions you choose. Use it to get answers from a governed data model.

    Try: “Query REVENUE_VIEW for revenue by month”

    Network · query_semantic_view

  • Lists Snowflake objects of a given type

    Lists objects such as databases, schemas, tables, views, warehouses, roles, stages and users. It must be enabled in the configuration. Use it to see what exists.

    Try: “List the tables in the ANALYTICS schema”

    Network · list_objects

  • Describes one Snowflake object

    Returns details of an object such as a table or warehouse. Use it to inspect columns or settings.

    Try: “Describe the table ORDERS”

    Network · describe_object

Read from the source code

Pros and cons

Good

  • Covers Cortex Analyst, Cortex Search, Cortex Agent and SQL in one local server.
  • You choose which tools exist through a YAML config file.
  • Respects the Snowflake role you connect with.
  • Runs with any sign-in the Snowflake Python Connector supports.

Watch out

  • Deprecated and no longer maintained.
  • Sample config allows writes and drops.
  • Tool calls fail after the login token expires until you restart.
  • Cannot turn off secondary roles.
  • Dependency caps block known security fixes.
  • No prebuilt Docker image.

Permissions

high risk · 6 things to watch

High risk

The SQL tool can create, change and drop data when you use the sample config. Use a role that only has SELECT and set every write statement type to False in the config.

What it can do

Watch out for

  • Sample config allows writes and drops

    The template turns on Create, Drop, Delete, Update, Insert, Merge and TruncateTable. Set them to False and connect with a role that only has SELECT. github.com

  • No longer maintained

    Snowflake deprecated it, so more security fixes are unlikely and capped dependencies block known ones. Move to the managed server. github.com

  • Semantic view tools skip the statement filter

    An open report says these tools bypass the statement permission check. Keep the role SELECT-only so the database refuses writes. github.com

  • Secondary roles widen what it can see

    With DEFAULT_SECONDARY_ROLES set to ALL the session gets all your roles, even if you pass one. Use a dedicated user with no secondary roles. github.com

  • Old connector range allows a TLS bug

    The allowed connector versions include ones hit by CVE-2026-15925. Upgrade snowflake-connector-python to 3.18.1 or later in your environment. github.com

  • Web mode listens on all interfaces

    In sse or streamable-http mode it binds to every network address by default. Set SNOWFLAKE_MCP_HOST to 127.0.0.1 for local use. github.com

Security advisories

No published security advisories as of Nov 1, 2026.

Technical details
Turning on read-onlyIn tools_config.yaml set every write type under sql_statement_permissions (Insert, Update, Delete, Merge, Create, Alter, Drop, TruncateTable, Copy) to False, keep Unknown False, and connect with a role that only has SELECT grants.
Sign-in and keysUses the Snowflake Python Connector: password, programmatic access token, key pair, OAuth or SSO, set by flags, environment variables or connections.toml.

Alternatives

Use the Snowflake-managed MCP server. It is the supported option, and its SQL tool is read-only by default.

ServerOfficialRunsSign-inCan change thingsGitHub stars
Snowflake-managed MCPOfficialHostedAccount––
Snowflake Labs MCP (this page)This pageOfficialLocalPassword or keyYes303

What people say

People used it for natural-language SQL on Snowflake, and now mostly talk about moving off it.

What people like

  • Some users relied on it for plain text-to-SQL with control over each statement type.

Common complaints

  • Snowflake no longer maintains it and has told users to move.
  • Long sessions break after the login token expires until you restart.
  • There is no way to turn off secondary roles, so the assistant can see everything you can.
  • Version caps on dependencies block known security fixes.
  • Passing a private key as text does not work, only a key file path.

In their words

2 more quotes

Questions

Is the Snowflake Labs MCP server deprecated?

Yes. The README says it is deprecated and no longer maintained, and asks all users to move to the Snowflake-managed MCP server. The last release in May 2026 only began the deprecation and updated dependencies.

How do I move to the managed MCP server?

Create the server in your Snowflake account with CREATE MCP SERVER, list the tools you want, then point your client at its URL and sign in with Snowflake OAuth. Remove the old entry from your client config afterwards. Steps are in the Snowflake-managed MCP server page and Snowflake's docs.

Is the managed server a full replacement?

Mostly. It covers Cortex Agent, Search, Analyst, SQL and custom tools, and its SQL tool is read-only by default. Users noted it first lacked per-statement-type control, so check that it meets your needs.

Is this an official Snowflake server?

It sits in Snowflake's own GitHub org and is written by Snowflake staff. Snowflake now calls it a community server and no longer supports it.

Can the SQL tool write or delete data?

Yes. The sample config allows inserts, updates, deletes, drops and creates. Set those to False and connect with a role that only has SELECT to keep it read-only.

Is it safe to keep running?

Only with limits. It gets no new fixes, so use a SELECT-only role, turn off write statement types and upgrade the Snowflake connector in your environment.

How do I sign in to Snowflake?

Use any method the Snowflake Python Connector supports. That means password, programmatic access token, key pair, OAuth or SSO.

Why do I get permission errors with a programmatic access token?

Tokens ignore secondary roles. Create the token for one role that can reach every service and object you configured.

Why do tool calls fail after a few hours?

The server signs in once at startup and never refreshes, so calls fail when the token expires. Restart the server. The managed server avoids this.

Why does it crash on startup with a fakeredis error?

A newer fakeredis release broke a dependency. Add --with fakeredis<2.26 to the uvx arguments in your client config.

Examples

  • Ask a Cortex Analyst service a business question in plain English.

    Using the revenue analyst service, what were total sales by region last quarter?

  • Search documents indexed by a Cortex Search service.

    Search the support docs service for articles about password reset errors and summarize the top three.

  • Run read-only SQL against a table.

    Show me the 10 most recent rows in ANALYTICS.PUBLIC.ORDERS.

  • Explore and query a Semantic View.

    List the semantic views in SALES_DB and query the dimensions and metrics in the orders view.

Information

updated Nov 2, 2026

Publisher
Snowflake (official)
Package
snowflake-labs-mcp
Registry
PyPI
Transport
stdio, SSE, Streamable HTTP
Auth
token in env
Version
1.3.5
License
Apache-2.0
Last commit
May 15, 2026
Open issues
22
Listed in
Official MCP registry

GitHubPyPIOfficial MCP RegistryChangelogIssues

Other Snowflake MCP servers

Sources

Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.

Show all 13
  1. [DEPRECATED] Snowflake Cortex AI Model Context Protocol (MCP) Server · github.com
  2. Snowflake-managed MCP server · docs.snowflake.com
  3. Snowflake-managed MCP server release note · docs.snowflake.com
  4. github.com · github.com
  5. github.com · github.com
  6. github.com · github.com
  7. github.com · github.com
  8. github.com · github.com
  9. github.com · github.com
  10. github.com · github.com
  11. github.com · github.com
  12. github.com · github.com
  13. github.com · github.com

Facts from the official MCP registry, GitHub, npm, PyPI and the Docker catalog. Updated Nov 2, 2026.