Why connect Snowflake to Cursor?
A renamed event or a new checkout field shows up in Snowflake days later, as a broken dashboard. Cursor's agent sees the change while you make it. With Lemonado it can query Snowflake right away, so you see what your change does to the warehouse before you ship it.
All your Snowflake data
Tables and views your role can read, ready to ask about.
Always today's numbers
Column names, types and descriptions, synced from Snowflake automatically, so answers use today's numbers.
Connect all your tools
Questions like "What does a paying customer cost?" use Snowflake and BigQuery, GA4 at once.
How to connect Snowflake to Cursor
Before you start
- A Snowflake account you can sign in to
- Cursor installed
- A Lemonado account (the free trial works)
- 1
Connect Snowflake in Lemonado
In Lemonado, open Connectors, find Snowflake and sign in. Create a read-only role that can use one warehouse and the schemas marketing should see, and connect with that. Keep raw PII schemas out of the grant.
- 2
Turn on external access
In the company's settings, open External tools, turn the connection on, choose which sources it can reach and copy the server URL.
texthttps://mcp.lemonado.io/mcp - 3
Open your MCP config
Open ~/.cursor/mcp.json for every project, or .cursor/mcp.json for this project only. Create the file if it doesn't exist.
- 4
Add Lemonado
Merge this into the file and save.
json{ "mcpServers": { "lemonado": { "url": "https://mcp.lemonado.io/mcp" } } } - 5
Sign in
Cursor asks you to sign in to Lemonado. Approve access, then ask the agent about your data.
- 6
Ask Cursor about Snowflake
Try "I added discount_code to the checkout payload in lib/checkout.ts last week. Check whether it's arriving in Snowflake's raw orders table, and how often it's filled." Or ask: "Which column does the dashboard use?" or "Will this query be slow?"
Good to know
- Editing the file directly avoids relying on menu labels that change between Cursor versions.
What can Cursor do with Snowflake?
Cursor's agent reads your Snowflake data while it edits: it fills components with real data, checks tracking code and writes the analysis next to your code.
I added discount_code to the checkout payload in lib/checkout.ts last week. Check whether it's arriving in Snowflake's raw orders table, and how often it's filled.
It arrives, but only on 12% of orders since the release. Orders paid with Apple Pay skip the code in lib/checkout.ts that adds it.
Source: Snowflake + your code
The revenue chart in components/RevenueChart.tsx calls our API. Trace which Snowflake column it ends up reading.
It reads gross_revenue from analytics.daily_sales, not net_revenue. That's why it runs 8% above the finance report.
Source: Snowflake + your code
Run the query in api/cohorts.sql on Snowflake with EXPLAIN and tell me what to change before it goes to production.
It scans all 410M order lines because the date filter wraps the column in a function. Filtering on order_date directly cuts the scan to one partition.
Source: Snowflake + your code
We fixed UTM parsing in middleware.ts on Oct 20. Compare the share of Snowflake orders with a utm_source before and after.
Orders with a utm_source went from 61% to 88% after Oct 20. The rest are direct and email app traffic, as expected.
Source: Snowflake + your code
Compare net revenue in our Snowflake finance model with gross orders for each week of October. Where is the gap biggest?
Week 42 has the widest gap: $186k gross against $151k net. Returns from the rain jacket recall explain most of it.
Source: Snowflake
Compare the purchases Google Ads reported last week with orders in Snowflake that have a gclid.
Google Ads reported 412 purchases, Snowflake has 371 orders with a gclid. Most of the gap is view-through conversions Google counts and your store never sees.
Source: Snowflake + Google Ads
Connect Snowflake to another AI app.
Claude
Connect Snowflake to Claude
ChatGPT
Connect Snowflake to ChatGPT
Claude Code
Connect Snowflake to Claude Code
VS Code (GitHub Copilot)
Connect Snowflake to VS Code (GitHub Copilot)
Codex
Connect Snowflake to Codex
Perplexity
Connect Snowflake to Perplexity
Google Antigravity
Connect Snowflake to Google Antigravity
Windsurf (Devin Desktop)
Connect Snowflake to Windsurf (Devin Desktop)
Zed
Connect Snowflake to Zed
n8n
Connect Snowflake to n8n
Other integrations for Cursor
All Cursor integrations- Google BigQuery in CursorAsk Claude, ChatGPT or Cursor about your GA4 export and BigQuery tables without writing SQL.
- Google Analytics in CursorAsk Claude, ChatGPT or Cursor about GA4 traffic, conversions and funnels, next to your ad spend.
- Meta Ads in CursorAsk Claude, ChatGPT or Cursor about your Facebook and Instagram ads, creatives and results.
- Stripe in CursorPut Stripe revenue next to your ad spend in Claude, ChatGPT or Cursor.
- Pipedrive in CursorAsk Claude, ChatGPT or Cursor about your Pipedrive deals, and which ads bring the ones that close.
- Amplitude in CursorAsk Claude, ChatGPT or Cursor which campaigns bring Amplitude users who stick around.
Reading this as an AI agent?
Everything an agent needs to set this up, in plain text. Paste this page's link into Cursor and ask it to connect you, or copy the block.
# Connect Snowflake to Cursor (Lemonado MCP)
- Server URL: https://mcp.lemonado.io/mcp
- Transport: Streamable HTTP
- Auth: OAuth; the user signs in to Lemonado in the browser. No API keys.
- In Lemonado: connect the Snowflake role and warehouse. Create a read-only role that can use one warehouse and the schemas marketing should see, and connect with that. Keep raw PII schemas out of the grant.
- In Cursor: ~/.cursor/mcp.json
```json
{
"mcpServers": {
"lemonado": {
"url": "https://mcp.lemonado.io/mcp"
}
}
}
```
First question to try: "I added discount_code to the checkout payload in lib/checkout.ts last week. Check whether it's arriving in Snowflake's raw orders table, and how often it's filled."
More: https://lemonado.io/integrations/snowflake · https://lemonado.io/llms.txtFrequently Asked Questions
No. Lemonado reads Snowflake with the role you connect, and that should be a read-only role. Changes to models and tracking happen in your code, and your normal deploy runs them.
Yes. Snowflake's managed MCP server is hosted, so Cursor can use it too. It covers Snowflake only. Lemonado covers Snowflake plus your ad platforms, GA4 and the rest of your stack in one connection, so Cursor can answer questions across them.
Open Cursor's settings and find lemonado in the MCP list. A red dot or a sign-in prompt means the login expired. Restart Cursor after editing mcp.json. In Lemonado, check that Snowflake is connected and External tools is on for the company. If a table is missing, the role can't see it. Grant USAGE on its database and schema and SELECT on the table, then ask again.
Yes, if both are connected in Lemonado. One connection reaches every source you allow, so you can ask things like "Compare the purchases Google Ads reported last week with orders in Snowflake that have a gclid."
MCP is included in Lemonado's paid plans and in the free trial, so you can try it before you pay.
Still have a question?
Shoot us an email at hello@lemonado.io.
Try for freeStop fighting with data. Start feeding your AI.
Connect your data to AI and free your team from reporting and busywork.
Try Lemonado free