
How to add Snowflake MCP Server (Snowflake Labs) to Cursor
Snowflake Labs server for Cortex AI, object management, and SQL orchestration over Snowflake. Paste the config into ~/.cursor/mcp.json and restart Cursor.
Last updated June 15, 2026 · 350★ · stdio · apikey · official
Cursor config for Snowflake MCP Server (Snowflake Labs)
uvx snowflake-labs-mcp --service-config-file tools_config.yaml --connection-name default{
"mcpServers": {
"snowflake-mcp-server-snowflake-labs": {
"command": "uvx",
"args": [
"snowflake-labs-mcp",
"--service-config-file",
"/absolute/path/to/tools_config.yaml",
"--connection-name",
"default"
],
"env": {
"SNOWFLAKE_USER": "<your-user>",
"SNOWFLAKE_ACCOUNT": "<your-account-identifier>",
"SNOWFLAKE_PASSWORD": "<your-password-or-pat>"
}
}
}
}Requires `uv` (the Python package runner). Install it from https://docs.astral.sh/uv/ if `uvx` is not found.
Setup steps
- 1Open Cursor → Settings → MCP → Add new MCP server (or edit ~/.cursor/mcp.json directly).
- 2Paste the Snowflake MCP Server (Snowflake Labs) config below into the "mcpServers" object.
- 3Fill in placeholder secrets, then save.
- 4Cursor reloads MCP servers automatically — check Settings → MCP for a green status dot.
- 5Ask Cursor to use one of Snowflake MCP Server (Snowflake Labs)'s tools to confirm it's connected.
Before you start
- Python with the uv package manager (run via `uvx snowflake-labs-mcp`), or Docker
- A Snowflake account and user with appropriate roles/warehouse access
- Snowflake credentials supplied via CLI flags or environment variables: SNOWFLAKE_ACCOUNT, SNOWFLAKE_USER, plus one of SNOWFLAKE_PASSWORD, key-pair (SNOWFLAKE_PRIVATE_KEY_FILE), OAuth, SSO, or MFA via --authenticator
- A `configuration.yaml` (service config) file declaring which Cortex services and managers to enable
- For Cortex Search/Analyst/Agent: pre-created service instances and semantic models in your Snowflake account
What Snowflake MCP Server (Snowflake Labs) can do in Cursor
Cortex SearchQuery unstructured data for RAG over configured search service instances
Cortex AnalystAnswer questions over structured data using a semantic model
Cortex AgentAgentic orchestration across data retrieval and tools
Object ManagerCreate, drop, alter, describe, and list databases, schemas, tables, views, warehouses, compute pools, roles, stages, users, and image repositories
Query ManagerExecute LLM-generated SQL with configurable allow/deny statement permissions
Semantic ManagerDiscover and query Snowflake Semantic Views, including their metrics and dimensions
Security
The README flags this Labs project as deprecated in favor of the newer official Snowflake MCP server, so evaluate migration. Scope the service config and Snowflake role tightly, since object-management tools can create and drop database objects.
Snowflake MCP Server (Snowflake Labs) + Cursor FAQ
Where is the Cursor config file?
Cursor reads MCP servers from ~/.cursor/mcp.json. Paste the Snowflake MCP Server (Snowflake Labs) config there under the "mcpServers" key and restart the client.
Is Snowflake MCP Server (Snowflake Labs) safe to use with Cursor?
The README flags this Labs project as deprecated in favor of the newer official Snowflake MCP server, so evaluate migration. Scope the service config and Snowflake role tightly, since object-management tools can create and drop database objects.
Is this the official Snowflake MCP server?
It is published by Snowflake Labs, but the GitHub repo is now marked deprecated and redirects to Snowflake's officially supported Cortex Agents MCP server in the Snowflake docs. Use the official one for new, long-lived deployments.
How do I authenticate?
It supports every method in the Snowflake Python connector: username/password, key-pair, OAuth, SSO, and MFA, passed via CLI flags (--account, --user, --private-key-file, --authenticator) or SNOWFLAKE_* environment variables.
Can I stop the agent from running destructive SQL?
Yes. The `sql_statement_permissions` section of configuration.yaml lets you allow or deny specific SQL statement types, so you can permit SELECT while blocking DROP/DELETE.