Snowflake MCP Server
Official Snowflake Labs MCP server for Cortex AI (Search, Analyst, Agent), Snowflake object management, SQL execution, and semantic view querying.
The Snowflake MCP server (snowflake-labs-mcp) is an open-source server maintained by Snowflake Labs that lets MCP-compatible clients like Claude Desktop, Cursor, and fast-agent interact with a Snowflake account. It bundles Snowflake's Cortex AI services (Cortex Search for unstructured/RAG queries, Cortex Analyst for semantic-model-driven structured queries, and Cortex Agent for agentic orchestration across both) with general Snowflake object management and SQL execution.
When enabled, the server can create, drop, describe, list, and create-or-alter common Snowflake objects: databases, schemas, tables, views, warehouses, compute pools, roles, stages, users, and image repositories. A generic query manager runs LLM-generated SQL with permission filters configured by the operator, and semantic view tools let agents list, describe, and query Snowflake Semantic Views including their metrics and dimensions.
The server is configured through a YAML file that declares which Cortex services to expose and which capability groups (object_manager, query_manager, semantic_manager) to enable. It authenticates with any method supported by the Snowflake Python Connector, including password, key pair, OAuth, SSO, and MFA. The project is Apache-2.0 licensed.
Tools
| Tool | Description |
|---|---|
Cortex Search |
Query unstructured data in Snowflake for Retrieval Augmented Generation (RAG) workflows. One tool is registered per configured search service. |
Cortex Analyst |
Query structured data in Snowflake using a semantic model. One tool is registered per configured analyst service. |
Cortex Agent |
Agentic orchestrator that routes between structured (Analyst) and unstructured (Search) data retrieval. |
Object Management |
Create, drop, create-or-alter, describe, and list operations for databases, schemas, tables, views, warehouses, compute pools, roles, stages, users, and image repositories. Enabled via object_manager flag. |
Query Manager (SQL execution) |
Generic SQL execution tool that runs LLM-generated statements. Enabled via query_manager flag. Statement types can be allow/deny-listed via configuration. |
Semantic View Tools |
List Semantic Views, describe them, enumerate their metrics and dimensions, and run queries against them. Enabled via semantic_manager flag. |
Prerequisites
- A Snowflake account with appropriate roles/permissions
- Python with
uvxavailable (from theuvtoolchain) - An MCP-compatible client (Claude Desktop, Cursor, fast-agent, etc.)
1. Create a service configuration file
Copy the template from the repo to a local config directory and edit it to declare the Cortex services you want to expose and which capability groups (object_manager, query_manager, semantic_manager) to enable.
mkdir -p ${HOME}/.mcp/
# Then place your tools_config.yaml in ${HOME}/.mcp/
2. Configure Snowflake authentication
Set environment variables for your chosen auth method. For username/password:
export SNOWFLAKE_ACCOUNT=your_account_identifier
export SNOWFLAKE_USER=your_username
export SNOWFLAKE_PASSWORD=your_password_or_pat
export SNOWFLAKE_ROLE=your_role # optional
export SNOWFLAKE_WAREHOUSE=your_warehouse # optional
Key pair, OAuth, SSO, and MFA are also supported (any method the Snowflake Python Connector supports).
3. Add to your MCP client
Claude Desktop / Cursor config:
{
"mcpServers": {
"mcp-server-snowflake": {
"command": "uvx",
"args": [
"snowflake-labs-mcp",
"--service-config-file",
"<path>/tools_config.yaml",
"--connection-name",
"default"
]
}
}
}
The server is started by the MCP client; there is no managed/hosted endpoint provided by Snowflake Labs.
- Let an AI agent answer natural-language business questions by routing through Cortex Analyst against a curated semantic model.
- Build a RAG assistant over internal docs indexed in Snowflake using Cortex Search.
- Allow analysts to ask cross-domain questions where the Cortex Agent decides whether to hit structured tables or unstructured search.
- Automate Snowflake admin tasks (creating databases, schemas, warehouses, roles, stages) from a chat interface with permission guardrails.
- Run ad hoc SQL exploration where the LLM drafts queries and the query manager executes them under a restricted role.
- "Use Cortex Analyst to show me monthly revenue by region for the last 12 months."
- "Search our support knowledge base in Snowflake for known issues with the v3 API."
- "Create a new schema called
staging_marketingin theANALYTICSdatabase and a warehouseWH_MARKETING_XS." - "List all semantic views in the
SALESdatabase and describe the metrics available inSALES.PUBLIC.PIPELINE_VIEW." - "Run a SQL query to find the top 20 customers by ARR this quarter and return the result as a table."
- Official Snowflake Labs project, Apache-2.0 licensed, with first-class support for Cortex Search, Analyst, and Agent.
- Broad object management coverage (databases, schemas, tables, views, warehouses, compute pools, roles, stages, users, image repositories).
- Fine-grained control via YAML config: enable/disable object manager, query manager, and semantic manager independently; restrict SQL statement types.
- Supports all Snowflake Python Connector auth methods including key pair, OAuth, SSO, and MFA.
- Self-hosted only; there is no Snowflake-managed remote MCP endpoint, so you must run
uvxlocally or in your own infra. - Setup requires a YAML configuration file and Snowflake credentials, which is heavier than a simple drop-in token.
- Exact tool names depend on the services you configure, which can make discovery less predictable for end users.
- isaacwasserman/mcp-snowflake-server: community Python MCP server focused on SQL access to Snowflake.
- datawiz168/mcp-snowflake-service: community Snowflake MCP integration.
- For other warehouses, see the official BigQuery MCP server or the Databricks MCP integrations.