RepoSnowflake (Arctic)Snowflake (Arctic)published May 22, 2025seen 5d

Snowflake-Labs/mcp

Python

Open original ↗

Captured source

source ↗
published May 22, 2025seen 5dcaptured 8hhttp 200method plain

Snowflake-Labs/mcp

Description: MCP Server for Snowflake including Cortex AI, object management, SQL orchestration, semantic view consumption, and more

Language: Python

License: Apache-2.0

Stars: 291

Forks: 97

Open issues: 29

Created: 2025-05-22T20:58:02Z

Pushed: 2026-05-15T16:30:51Z

Default branch: main

Fork: no

Archived: no

README:

[DEPRECATED] Snowflake Cortex AI Model Context Protocol (MCP) Server

> [!CAUTION] > This project is deprecated and no longer maintained. Please migrate to the official Snowflake MCP Server. The official server is actively developed, fully supported by Snowflake, and continues to add new features.

This community MCP server previously provided tooling for Snowflake Cortex AI, object management, and SQL orchestration. It is no longer supported. For all new and existing use cases, please use the official Snowflake MCP Server instead.

---

Legacy documentation (for reference only)

The MCP server supported the below capabilities:

  • [Cortex Search](https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-search/cortex-search-overview): Query unstructured data in Snowflake as commonly used in Retrieval Augmented Generation (RAG) applications.
  • [Cortex Analyst](https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-analyst): Query structured data in Snowflake via rich semantic modeling.
  • [Cortex Agent](https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-agents): Agentic orchestrator across structured and unstructured data retrieval
  • Object Management: Perform basic operations against Snowflake's most common objects such as creation, dropping, updating, and more.
  • SQL Execution: Run LLM-generated SQL managed by user-configured permissions.
  • [Semantic View Querying](https://docs.snowflake.com/en/user-guide/views-semantic/overview): Discover and query Snowflake Semantic Views

Getting Started

Service Configuration

A simple configuration file is used to drive all tooling. An example can be seen at [services/configuration.yaml](services/configuration.yaml) and a template is below. The path to this configuration file will be passed to the server and the contents used to create MCP server tools at startup.

Cortex Services

Many Cortex Agent, Search, and Analyst services can be added. Ideal descriptions are both highly descriptive and mutually exclusive. Only the explicitly listed Cortex services will be available as tools in the MCP client.

Other Services

Other services include tooling for [object management](object-management), [query execution](sql-execution), and [semantic view usage](semantic-view-querying). These groups of tools can be enabled by setting them to True in the other_services section of the configuration file.

SQL Statement Permissions

The sql_statement_permissions section ensures that only approved statements are executed across any tools with access to change Snowflake objects. The list contains SQL expression types. Those marked with True are permitted while those marked with False are not permitted. Please see [SQL Execution](#sql-execution) for examples of each expression type.

agent_services: # List all Cortex Agent services
- service_name:
description: > # Describe contents of the agent service

database_name:
schema_name:
- service_name:
description: > # Describe contents of the agent service

database_name:
schema_name:
search_services: # List all Cortex Search services
- service_name:
description: > # Describe contents of the search service

database_name:
schema_name:
- service_name:
description: > # Describe contents of the search service

database_name:
schema_name:
analyst_services: # List all Cortex Analyst semantic models/views
- service_name: # Create descriptive name for the service
semantic_model: # Fully-qualify semantic YAML model or Semantic View
description: > # Describe contents of the analyst service

- service_name: # Create descriptive name for the service
semantic_model: # Fully-qualify semantic YAML model or Semantic View
description: > # Describe contents of the analyst service

other_services: # Set desired tool groups to True to enable tools for that group
object_manager: True # Perform basic operations against Snowflake's most common objects such as creation, dropping, updating, and more.
query_manager: True # Run LLM-generated SQL managed by user-configured permissions.
semantic_manager: True # Discover and query Snowflake Semantic Views and their components.
sql_statement_permissions: # List SQL statements to explicitly allow (True) or disallow (False).
# - All: True # To allow everything, uncomment and set All: True.
- Alter: True
- Command: True
- Comment: True
- Commit: True
- Copy: True
- Create: True
- Delete: True
- Describe: True
- Drop: True
- Insert: True
- Merge: True
- Rollback: True
- Select: True
- Transaction: True
- TruncateTable: True
- Unknown: False # To allow unknown or unmapped statement types, set Unknown: True.
- Update: True
- Use: True

> [!NOTE] > Previous versions of the configuration file supported specifying explicit values for columns and limit for each Cortex Search service. Instead, these are now exclusively dynamic based on user prompt. If not specified, a search service's default search_columns will be returned with a limit of 10.

Connecting to Snowflake

The MCP server uses the Snowflake Python Connector for all authentication and connection methods. Please refer to the official Snowflake documentation for comprehensive authentication options and best practices.

The MCP server honors the RBAC permissions assigned to the specified role (as passed in the connection parameters) or default role of the user (if no role is passed to connect).

Connection parameters can be passed as CLI arguments and/or environment variables. The server supports all authentication methods available in the Snowflake Python Connector, including:

  • Username/password authentication
  • Key pair authentication
  • OAuth authentication
  • Single Sign-On (SSO)
  • Multi-factor authentication (MFA)

Connection Parameters

Connection parameters can be passed as CLI arguments and/or environment variables:

| Parameter | CLI Arguments |…

Excerpt shown — open the source for the full document.

Notability

notability 6.0/10

New repo from Snowflake, moderate stars.