Snowflake + Connect AI
Query Snowflake warehouses from any AI agent with standard SQL. Connect AI handles role context, warehouse selection, and semi-structured VARIANT data.
Table
View
Warehouse
Role
Stage
Sequence
+ stored procedures, file formats
-- Ask Claude Code (or any MCP-aware agent):
--
-- "In Snowflake, show me the top 10 customers by total
-- revenue in the last 90 days. Include their region."
--
-- Claude generates and runs this SQL via the queryData MCP tool.
-- Connect AI applies the configured role and warehouse automatically.
SELECT
c.region,
c.customer_name,
SUM(o.amount) AS revenue_90d
FROM [Snowflake].[ANALYTICS].[ORDERS] o
JOIN [Snowflake].[ANALYTICS].[CUSTOMERS] c
ON o.customer_id = c.customer_id
WHERE o.order_date >= DATEADD('day', -90, CURRENT_DATE())
GROUP BY c.region, c.customer_name
ORDER BY revenue_90d DESC
LIMIT 10
Tutorials by AI surface
Working integrations for Snowflake + every supported AI surface.
Known quirks
Snowflake folds unquoted identifiers to uppercase. Querying SELECT * FROM orders may return zero rows if the table was created as "Orders". Connect AI passes identifiers through quoted. Use the canonical case from getTables to avoid surprises.
Every query consumes credits on the active warehouse. Auto-suspend usually fires after a few minutes of inactivity, but a chatty agent making rapid tool calls can keep the warehouse hot. Size the warehouse and tune auto-suspend before pointing a production agent at it.
JSON columns stored as VARIANT need : path or FLATTEN() to query nested fields. Connect AI exposes the columns but won't auto-flatten arrays. Tell the agent the schema shape in its system prompt or pre-flatten in a view.
The role on the Connect AI connection determines what tables are visible. If an agent reports "table not found" but the table exists, check the connection's role, not the user's default role in Snowflake.
Long-form recipes from the CData Knowledge Base.
Full API reference, authentication guides, and configuration details.