How to use Claude with Snowflake
Connect Claude or ChatGPT to Snowflake. Cortex Analyst vs Contextflo: a practical comparison for teams who want natural language analytics.
Snowflake is the warehouse of choice for companies that need serious scale, governance, and multi-cloud flexibility. But when your team wants to ask questions in natural language, you have two options: use Snowflake's built-in AI features (Cortex), or connect Claude to your Snowflake warehouse through an external tool.

Option 1: Snowflake Cortex Analyst
Snowflake Cortex is Snowflake's AI layer. Cortex Analyst specifically handles natural-language-to-SQL. You define a semantic model in YAML, Cortex processes questions against that model, and returns results. All within Snowflake.
# cortex_semantic_model.yaml
name: revenue_model
tables:
- name: orders
base_table: analytics.public.orders
measures:
- name: total_revenue
expr: SUM(amount)
description: "Total revenue from completed orders"
dimensions:
- name: order_date
expr: order_date
type: dateWhat works well
- Everything runs inside Snowflake. No data leaves your environment.
- Uses Snowflake's compute and governance model
- Tight integration with Snowflake roles and access control
The tradeoffs
- YAML semantic model required: You need to write and maintain the YAML definitions upfront. Every schema change means updating the model.
- Snowflake-first experience: Out of the box, questions go through Snowsight. There's a REST API for building custom chat apps, but that's additional engineering work to build and maintain.
- Vendor lock-in: The semantic model, the AI layer, and the queries all live in Snowflake. If you ever switch warehouses, everything needs to be rebuilt.
- Cost: Cortex charges ~$0.10-0.25 per message processed, plus warehouse credits for executing the generated SQL. Costs scale with usage.
Option 2: Snowflake + Claude via Contextflo
Contextflo connects to your Snowflake warehouse using a service account with read-only access. It scans your schemas, auto-generates context (table descriptions, column meanings, metric definitions), and serves that context to Claude through MCP.
Your team asks questions in Claude, the tool they already use daily. Claude uses the context layer to write accurate Snowflake SQL, Contextflo runs it, and the answer comes back.
Snowflake-specific setup:
- Create a read-only Snowflake role with access to the schemas you want to expose
- Contextflo connects using that role's credentials
- Select which databases, schemas, and tables to include
- Context is auto-generated. No YAML to write.
Cortex vs Contextflo
| Cortex Analyst | Contextflo | |
|---|---|---|
| Setup | Write YAML semantic model | Auto-generated, review & refine |
| Where users ask | Snowsight or custom app (REST API) | Claude (Desktop, Web, or API) |
| AI model | Auto-selected (Claude, GPT 4.1, Mistral) | Your Claude subscription (BYOA) |
| Maintenance | Manual YAML updates | Auto-syncs with schema changes |
| Pricing | ~$0.10-0.25/message + warehouse credits | Starts at $1,000/mo |
| Dashboards | Snowsight (basic) | Built-in dashboards & reports |
| Best for | Teams fully committed to Snowflake ecosystem | Teams who want analytics in Claude |
Which to choose
Cortex Analyst makes sense if your entire team already works in Snowflake, you have data engineers to build and maintain the YAML semantic model, and you're committed to the Snowflake ecosystem long-term.
Contextflo makes sense if you want non-technical team members to ask questions in Claude, you don't have the bandwidth to write YAML definitions, or you want flat pricing instead of per-query compute costs.
Evana, a trade compliance company, connected their Snowflake warehouse to Contextflo and saved 20 hours a week on data wrangling. Their team went from uploading CSVs into Claude to asking live questions against their warehouse.