Cursor can reach Snowflake through Snowflake's own managed MCP server, which you create as a schema object and secure with OAuth. Or you connect Snowflake to Contextflo once and give Cursor one URL. Pick the first for solo use, the second when a team will ask questions from their editors.
Option 1: Snowflake's managed MCP server in Cursor
Snowflake hosts MCP servers as schema objects. You create one with CREATE MCP SERVER ... FROM SPECIFICATION, and the specification exposes a SYSTEM_EXECUTE_SQL tool. The server URL follows this pattern:
https://<account-identifier>.snowflakecomputing.com/api/v2/databases/<DB>/schemas/<SCHEMA>/mcp-servers/<NAME>
OAuth goes through a SECURITY INTEGRATION ... TYPE = OAUTH that lists the client's redirect URI. OAuth cannot use ACCOUNTADMIN, so create a role for it. The full walkthrough, with semantic views, is in Claude and Snowflake semantic views.
Once the server exists, add it to ~/.cursor/mcp.json (global) or .cursor/mcp.json (one repo):
{
"mcpServers": {
"snowflake": {
"url": "https://<account-identifier>.snowflakecomputing.com/api/v2/databases/<DB>/schemas/<SCHEMA>/mcp-servers/<NAME>"
}
}
}
Cursor runs the OAuth flow itself when the server needs it.
Option 2: Contextflo
Create a role and a user for Contextflo in Snowflake, with a small warehouse that suspends quickly:
- Role
CONTEXTFLO_ROLEand userCONTEXTFLO_USER - An XSMALL warehouse with
AUTO_SUSPEND = 60 USAGEon the database and schemaSELECTon ALL and FUTURE tables and views- Key-pair auth for the user
Set the public key with:
ALTER USER CONTEXTFLO_USER SET RSA_PUBLIC_KEY='...';
The FUTURE grants matter. If you forget them, new tables stay invisible.
In Contextflo, open Data Sources, then Add data source, and enter:
| Field | Value |
|---|---|
| Account identifier | Your Snowflake account |
| Warehouse | The XSMALL one above |
| Role | CONTEXTFLO_ROLE |
| User | CONTEXTFLO_USER |
| Key | The private key for the public key you set |
Pick tables, invite the team, then add Contextflo to Cursor:
{
"mcpServers": {
"contextflo": {
"url": "https://mcp.contextflo.com/mcp"
}
}
}
Each person signs in with OAuth. Contextflo runs SELECT only, and the role underneath should be read-only too.
Snowflake's QUERY_HISTORY will show this SQL under the service user, not the person who asked. Contextflo's audit trail keeps the prompt and the SQL that ran for each person. It also generates table and column descriptions, stores your team's corrections as shared context, limits tables per person, and sends a weekly digest.
Which one to use
Only you, and you are happy to maintain a security integration? Option 1. If teammates will query from Cursor too, use Contextflo for shared context, per-person table access and the audit trail.
You do the modeling, we do the rest. Connect Snowflake free. Using Claude? See Claude with Snowflake.
FAQ
Can I use ACCOUNTADMIN to connect Cursor to Snowflake's MCP server? No. Snowflake's OAuth does not allow ACCOUNTADMIN, so create a dedicated role for the connection.
Why can't Cursor see my new Snowflake tables in Contextflo? Usually the FUTURE grants are missing. Grant SELECT on ALL and FUTURE tables and views, otherwise tables created later stay invisible.
Does Contextflo wake my Snowflake warehouse all day? Use an XSMALL warehouse with AUTO_SUSPEND = 60, as in the setup below, so it suspends after 60 seconds of idle time.
Can I see who asked what in Snowflake's QUERY_HISTORY? QUERY_HISTORY shows the SQL under the service user, not the person who asked. Contextflo keeps an audit trail of prompts and the SQL that ran, per person.
See it on your own data.
Connect your warehouse and your team can ask Claude about it the same day, without waiting on a data team. Want a walkthrough first? Grab 20 minutes.
Book a 20-minute callSee how teams use Contextflo
Related posts
Keep reading

Conversational analytics: 5 ways to set it up, compared
7 min read

How to connect Claude to BigQuery? What works and what doesn't in 2026
8 min read

How to connect Claude to Postgres without giving it write access
9 min read

How to build a BI dashboard with Claude that your team can actually trust
8 min read

How to give Claude read-only access to your database (it isn't always the default)
7 min read

You connected your warehouse to Claude, now what?
5 min read

ClickHouse MCP: how to connect ClickHouse to Claude, Cursor or Codex
6 min read

Query BigQuery from the Codex CLI with MCP
5 min read

Run ClickHouse queries from Codex with MCP
6 min read



