Snowflake connector for Claude

Use Porter’s Snowflake connector for Claude to ask about the tables you choose through a read-only role, then compare them with your ad data.

  • Map a new table’s columns, metrics and months of data
  • Track revenue and orders week by week
  • Find which channel or region moved a number
  • Compare warehouse revenue with Google Ads spend by week
G2★★★★★Rated 4.6/5 on G2 (288 reviews, October 2026)

By Porter Metrics team · Last updated October 19, 2026

ClaudePorter connected
Using my table SALES.PUBLIC.ORDERS, show total REVENUE and ORDERS by week of ORDER_DATE for the last 8 weeks.
Porter / Snowflake / Trailgear Demo✓ 4 rows
Revenue peaked the week of Sep 28 at $212K. The last 4 weeks are 9% above the 4 before.
WeekRevenueOrders
Sep 14$184K2,310
Sep 21$196K2,402
Sep 28$212K2,588
Oct 5$203K2,471
Demo data, Trailgear Demo account
Any table you pick
01Setup

How to connect Snowflake to Claude

Porter’s Snowflake connector for Claude takes 3 steps, with no code and no MCP server object to create in Snowflake. Connect a Snowflake user in Porter whose role can read the tables. Add Porter’s MCP URL to Claude as a custom connector and ask. MCP (Model Context Protocol) is the open standard Claude uses to connect to tools.

Before you start

  • You need a Snowflake user whose role has USAGE on a warehouse, the database and the schema, plus SELECT on the tables Claude should read. You also need a free Porter account and any Claude plan.
  • Custom connectors work in Claude and Cowork as well as Claude Desktop, on Free, Pro, Max, Team and Enterprise plans. But Free allows only one. On Team and Enterprise, an Owner adds Porter first (Anthropic’s guide to custom connectors).
  1. Step 1: Connect Snowflake in Porter

    Sign up free at Porter, pick Snowflake as the source, then fill in the connection details. Porter then lists every table that role can see, named as database, schema and table, and you pick Claude as the destination.

  2. Step 2: Add the connector to Claude

    In Claude, open Customize, then Connectors, choose + Add, then Add custom connector. Finally, name it Porter Metrics and paste this URL:

    MCP URL
    https://mcp.portermetrics.com/mcp
  3. Step 3: Ask Claude about Snowflake

    Sign in to Porter, then try this:

    Prompt
    Using my Snowflake table SALES.PUBLIC.ORDERS, show total REVENUE and ORDERS by week of ORDER_DATE for the last 8 weeks.

Guides and videos

Connect Snowflake to Claude free

app.portermetrics.com / create
Porter's Snowflake connection form with account URL and authentication method
First, add your Snowflake account URL and pick how Porter signs in.
Porter's Snowflake form with role, warehouse, default database and schema fields
Then, set a read-only role, warehouse and default database.
Claude's Add custom connector window with the name Porter Metrics and Porter's MCP URL filled in
Then, in Claude, add a custom connector with Porter's MCP URL.
Porter's Application Access Request screen asking you to let Claude use the Porter MCP server
When Claude asks, sign in to Porter and select Allow Access.
Porter Metrics listed as a connected connector in Claude with its read-only tools
After that, Porter shows as connected, so you can ask your first question.
If you prefer video, watch the whole Snowflake to Claude setup (1:19, no sound).
Interactive walkthrough, so you can click along here
02Use cases and prompts

What you can ask Claude

Each use case comes with a prompt to copy, the columns it uses and who it’s for. Your columns are your own, so each prompt uses example tables and uppercase column names, the way Snowflake stores them. Name one table and its date column in each prompt, then swap in yours.

Can Claude explain what's in a table?

One prompt gives you a working map of the table, instead of scrolling SELECT * results in Snowsight column by column.

Prompt
Using my Snowflake table ANALYTICS.MARKETING.DAILY_CAMPAIGNS, list its columns as metrics or dimensions, then total each metric by month of DATE. Which months have data, and which metrics stay at zero?

For: data teams onboarding a table · marketing analysts · agencies

Fields used: the table's own columns

Can Claude track a metric week by week?

The review opens with the weekly table already built instead of a ticket asking for it.

Prompt
Using SALES.PUBLIC.ORDERS, show REVENUE and ORDERS by week of ORDER_DATE for the last 12 weeks, with the change versus the previous week. Name the 2 weeks that moved most.

For: RevOps and finance · growth marketers · founders

Fields used: example columns ORDER_DATEREVENUEORDERS

Can Claude find which channel or region moved the number?

You answer the thread with the segment and the size of its drop, before anyone opens a pivot table.

Prompt
Using SALES.PUBLIC.ORDERS, compare REVENUE by CHANNEL and by REGION for the last 7 days of ORDER_DATE versus the 7 days before. Rank the segments by change.

For: marketing analysts · RevOps · agencies

Fields used: example columns ORDER_DATECHANNELREGIONREVENUE

Can Claude join two tables?

As a result, you get revenue per dollar of spend by day, without anyone writing the JOIN or a new view.

Prompt
Query MARKETING.ADS.DAILY_SPEND and SALES.PUBLIC.ORDERS separately for the last 30 days. Total SPEND by SPEND_DATE and REVENUE by ORDER_DATE, then line them up by day and show revenue per dollar of spend.

For: growth marketers · data teams

Fields used: MARKETING.ADS.DAILY_SPEND: SPEND_DATESPEND. SALES.PUBLIC.ORDERS: ORDER_DATEREVENUE

Can Claude tell if more Google Ads spend brought more revenue?

The budget talk then moves to the revenue finance already trusts, set against what paid search cost each week.

Prompt
For the last 12 weeks, show Google Ads Cost by Week next to REVENUE by week of ORDER_DATE from SALES.PUBLIC.ORDERS, then revenue per dollar of Cost. Did weeks with more spend bring more revenue?

For: growth and performance marketers · agencies

Fields used: ORDER_DATEREVENUECostWeek
03Why Porter

Why Porter for Snowflake in Claude

Porter brings the Snowflake tables you pick into Claude, next to your ad and CRM data. Need Cortex Agents, Cortex Analyst, Cortex Search or SQL you write? Use Snowflake’s managed MCP server, which needs no extra account. You can run both.

✓

No server object to build

Give Porter a Snowflake user whose role can read the tables, then add one MCP URL to Claude. There’s no MCP server object or OAuth integration to create in Snowflake.

⊞

Safe for your warehouse

Claude reads every table your Porter role can SELECT and tells you what moved, while your Snowflake data stays exactly as you set it. You grant the role and revoke its grants anytime.

⚙

Your tables next to your ads

Ask about warehouse revenue next to Google Ads, HubSpot, GA4 and other Porter sources in one answer, instead of exporting either side into a sheet.

Aa

Every column is a field

Porter reads each table’s columns and offers them to Claude as metrics and dimensions. You ask for REVENUE by week, and Claude builds the query.

↻

Free plan to start

The Snowflake connector comes with every Porter plan, including Free, so your first table costs nothing to try. Snowflake still bills the warehouse credits each query uses.

04Pricing

Pricing

You can start free, since Porter’s Snowflake connector for Claude comes with every plan. Use the calculator for your number of accounts, or see Porter pricing for every plan.

What you get

  • Free plan: the MCP, unlimited connected accounts and 30 days of history (15 days in AI chats)
  • Reporting: from $12.50 per account a month billed annually, or $15 month to month for one account
  • Billing: each Snowflake table you query counts as one account, with volume discounts and no per-seat fee; Snowflake still bills warehouse credits separately
  • No credits needed: Claude’s Snowflake questions are reads, so they use no AI credits
  • Trial: 14 days of full access, no card

Price calculator

$33.33/mo$6.67 per account

An account is one ad account, Stripe account, store, page or GA4 property. The Free plan has unlimited accounts with 30 days of history.

05Data and actions

Snowflake data Claude can use

The Snowflake connector lets Claude read the rows of the tables you connect, and every column becomes a field it can ask for. There's no fixed field list, because each table brings its own columns. Claude reads one table per question and combines the results itself.

How Claude reads Snowflake

What Porter readsHow it works
TablesEach table is its own account, named as database, schema and table
ColumnsRead from the table and offered to Claude as metrics (numbers) and dimensions (labels and dates)
Column namesAs Snowflake stores them: uppercase unless the column was created in quotes
Not readFiles in stages, Cortex services, two tables in one query

Product stats

WhatSnowflake connector
FieldsNo fixed list; each column of your tables is a metric or dimension
ActionsReads only, so your database stays exactly as you set it
ReadsOne table per question, named as database, schema and table
History30 days on the Free plan, 15 in AI chats
AccessRead-only role: USAGE on a warehouse, database and schema, SELECT on tables
Not readFiles in stages, Cortex services, two tables in one query
Query costsRuns on your warehouse; a resumed warehouse bills at least 60 seconds
06Security

Is it safe?

Yes. Claude sees only the tables that the role you create for Porter can SELECT, and you can revoke its grants anytime. Your tables, views and data stay exactly as you set them.

What the connector needs from Snowflake

Porter needs USAGE on one warehouse, USAGE on the database and schema, and SELECT on each table or view Claude should read (Snowflake's access control privileges). Grant nothing else, especially not OWNERSHIP or write privileges.

Give Claude its own Snowflake warehouse

A dedicated extra-small warehouse keeps Claude's questions apart from your pipelines, so you can see its credit use separately.

07FAQ

FAQ

Data teams usually ask 4 things first: SQL, credits, Claude Code, and which tables Claude sees. Then come 3 fixes: numbers that don't match Snowsight, a connection Snowflake refuses, and slow answers.

Do I need to know SQL?

No. Porter reads your table's columns and hands them to Claude, so you ask for REVENUE by week and Claude builds the query. Name the table and the date column, and write column names as they appear in Snowflake, so Claude matches them to the fields Porter lists.

Does Claude use Snowflake credits?

Yes. Every question runs on your Snowflake warehouse, and a suspended warehouse that wakes up bills at least 60 seconds, then per second (Snowflake's warehouse billing rules). Snowflake can reuse an identical query's result for 24 hours when the data hasn't changed (Snowflake's result cache).

Can I use Claude Code with Snowflake?

Yes. Porter's Snowflake connector covers answers in Claude chats, while Snowflake's Cortex Code plugin brings Snowflake into Claude Code. The plugin routes Snowflake prompts to the Cortex Code CLI, which can also create objects such as dynamic tables. Porter's MCP servers for marketing data list what else Claude reads through Porter.

Can Claude see every table in my account?

Claude sees the tables that the role you give Porter can read. Porter lists all of those, and Claude queries only the ones you ask about. Each table Claude queries counts as one Porter account, so a narrow role keeps both the list and the bill short.

Troubleshooting

Why don't the numbers match Snowsight?

Two Snowflake settings can make Claude's numbers different from Snowsight's. TIMESTAMP_LTZ columns show in the session time zone, which defaults to America/Los_Angeles (Snowflake's TIMEZONE parameter), so daily totals can shift. Unquoted column names are uppercase, so "Revenue" and REVENUE are different columns (Snowflake's identifier rules).

Why can't Porter connect to my account?

Check three Snowflake settings first. Snowflake disallows passwords for service users and asks human users with passwords for MFA (Snowflake's MFA and password rollout). A network policy's allowed list refuses every IP missing from it (Snowflake's network policies), and the role needs USAGE on a warehouse.

Why is a question slow?

Ask again once the warehouse is running, or point Porter at a warehouse with room to spare. A Snowflake question is slow while Porter waits for a suspended warehouse to resume, and the first queries after that run on a cold cache. A busy warehouse also queues statements beyond its concurrency limit.

08Next

More Claude connectors

Porter adds other sources to Claude through the same MCP URL, so warehouse tables and live platform data sit in one chat. Start with the platforms your tables already copy, or the ones your team reports on next to them, or browse all Claude connectors instead:

Try the connector in Claude

As soon as Snowflake is connected, ask Claude which week moved, which channel moved it, and what paid search returned in warehouse revenue. Setting up the Snowflake connector for Claude takes one role and one URL. Since the free plan already includes Porter's MCP, your first table costs nothing to try.

Free plan · 14-day trial · No card needed

Marketing analysts: weekly numbers and the segment behind them instead of a SQL request.

RevOps and finance: warehouse revenue together with ad spend, in one answer.

Data teams: fewer ad-hoc tickets, behind a role you control.