Snowflake MCP Server: Secure Setup for Claude & AI Agents (2026)
The Snowflake MCP server lets Claude, Cursor, ChatGPT, and AI agents query your warehouse in plain English via Cortex. Here's the official setup, the NL→SQL blast radius, and how to deploy it with column-level redaction at the MCP layer.
The Snowflake MCP server is the path for AI agents (Claude, Cursor, ChatGPT, custom agents) to reach into your warehouse via the Model Context Protocol — running natural-language-to-SQL through Cortex Analyst, semantic retrieval through Cortex Search, and direct SQL across every database, schema, and table the authorizing role can read.
Setup is documented in the official Snowflake-managed MCP server guide; the managed server uses Snowflake's built-in OAuth and runs each session under the user's default role, exposing Cortex Analyst, Cortex Search, Cortex Agents, and SQL execution as tools.
The risk is the blast radius of a single question: one natural-language query can scan and return millions of regulated rows — PII, PHI, PCI, financial records — straight into the model's context. Broad analyst roles, raw sensitive columns (SSN, MRN, card numbers), and bulk result sets all flow back unfiltered. Nothing inspects the rows between the warehouse and the model.
Strac Snowflake MCP DLP is the governance layer for AI-agent access to Snowflake. Strac governs every tool call between the agent and the warehouse: it sees exactly what each role and agent queries, controls what they can run and export (allow, block, or require approval on large or sensitive result sets), protects the data in returned rows with redaction, masking, tokenization, and vaulting — including column-level handling for SSN, MRN, and card columns — and proves it by logging every query as audit evidence mapped to SOC 2 / HIPAA / PCI / GDPR / EU AI Act / ISO 42001.
Setup is agentless and under 10 minutes. No warehouse re-permissioning, no Cortex changes, no agent SDK changes.
What Is the Snowflake MCP Server?
The Snowflake MCP server is a Model Context Protocol implementation that exposes your Snowflake account's Cortex AI surface and SQL engine as a standardized set of tools to external AI agents. Once connected, an agent like Claude can translate a plain-English question into SQL, run it against governed data, search unstructured documents semantically, and execute direct queries — all on the authenticated user's behalf.
Refer to the official Snowflake-managed MCP server documentation and the Snowflake managed MCP announcement for the current tool catalog, OAuth setup, and RBAC model. The managed server bundles four capabilities: Cortex Analyst (natural-language-to-SQL over semantic views), Cortex Search (semantic retrieval across unstructured data), Cortex Agents (invoke an agent as a tool), and SQL execution (direct queries, with an optional read-only mode). Authentication runs through Snowflake's built-in OAuth, and each session operates under the user's default role.
From the user's perspective, the AI agent suddenly understands the warehouse — ask in English, get an answer. From the security perspective, the agent now has query reach across every database, schema, and table that default role can touch.
That's the value. It's also exactly where security teams need a control layer.
What AI Agents Can Actually Do With Snowflake MCP
Connect the Snowflake MCP server and your warehouse gains a conversational analyst. Scoped to the role it runs as, an agent like Claude or Cursor reaches the databases, schemas, and tables that role can see — and answers in plain English instead of SQL. Day to day, it can:
Ask the warehouse a question in English — "What was net revenue retention by segment last quarter, and which accounts churned?" becomes a Cortex Analyst NL→SQL query against your semantic views, returning real rows instead of a stale dashboard export.
Summarize a table on demand — point the agent at a fact table and have it profile row counts, distributions, null rates, and notable outliers without anyone writing SQL.
Run semantic search across documents — Cortex Search retrieves the most relevant unstructured records — support tickets, contracts, notes — by meaning, not keyword.
Build a report that spans schemas — join across SALES, FINANCE, and PRODUCT schemas in a single prompt and have the agent assemble the narrative and the numbers together.
Invoke a Cortex Agent as a tool — chain Snowflake's own agent into the external agent's workflow for multi-step analysis.
Every one of those actions runs through Snowflake's own RBAC and Cortex services — which is what makes it genuinely powerful, and exactly why the regulated rows it can pull back need an inspection layer in the tool-call path before they reach the model.
The Real Security Risks of the Snowflake MCP Server
The warehouse is the single largest concentration of regulated data most companies own. Pointing an AI agent at it through MCP creates four distinct exposures every healthcare, fintech, and enterprise security team should price in.
1. One question has an enormous blast radius. A human analyst writes a careful WHERE clause and LIMIT. A natural-language query through Cortex Analyst can resolve to a SQL statement that scans and returns millions of rows. There is no WHERE not_regulated = true — a single English sentence can pull an entire customer table into the model's context.
2. Analyst roles are broad by design. Snowflake RBAC is real, but the roles that make Cortex Analyst useful — the ones with SELECT across the analytics schemas — are usually wide. The MCP session runs under the user's default role, so the agent inherits whatever that role can see, which in most warehouses is a lot.
3. Sensitive columns come back raw.SSN, MRN, PAN, DOB, EMAIL — if those columns sit in tables the role can read, an NL→SQL or direct SQL call returns them in cleartext. Snowflake's own dynamic data masking only fires if every sensitive column is already tagged and policied, which in practice is rarely complete across hundreds of tables.
4. Bulk export is a single tool call away. SQL execution and large result sets mean an agent can pull thousands or millions of regulated rows out of the warehouse and into an external model context in one invocation — a data movement no traditional egress DLP ever sees.
The DLP a company already runs — at the network edge, on the SaaS app, inside the warehouse's own masking policies — does not sit in the MCP path. The result set goes straight from Snowflake into the AI agent's context window. That reach is precisely why each agent's access and actions in Snowflake must be governed: controlled (what it can query and export), the rows it touches protected down to the column, and every call audited. That is where Strac Snowflake MCP DLP lives. The same ingress problem shows up across every data store an agent can reach — see the MCP DLP pillar and AI DLP for the full pattern.
Strac's Snowflake MCP DLP is the governance layer that sits between AI agents and the Snowflake MCP server. It follows a simple model — See, Control, Protect, Prove:
See — Strac observes every tool call in flight: which role, which agent, which databases, schemas, tables, and columns the query touches, and how many rows come back.
Control — Strac decides what each role and agent is allowed to run and export. In-policy queries flow through untouched; oversized result sets, sensitive-table access, and bulk exports can be blocked or routed for approval.
Protect — Strac inspects the returned rows and redacts, masks, tokenizes, or vaults the sensitive data — including column-level handling so an SSN, MRN, or card-number column is protected while the rest of the row stays usable.
Prove — every query is logged as audit evidence: role, agent, statement, tables touched, data classes detected, redactions applied, disposition.
The Strac Snowflake MCP DLP gateway intercepts every tool call between any AI agent (Claude, Cursor, ChatGPT, custom) and the Snowflake MCP server. PII, PHI, PCI, and financial columns in returned rows are redacted, masked, or tokenized before the agent ever reads them.
What this looks like in practice:
Read queries are filtered at the column level. When the agent runs a Cortex Analyst NL→SQL, Cortex Search, or direct SQL call, Strac inspects the result set and redacts or tokenizes sensitive columns inline. The agent still gets its answer and its aggregates; the regulated values never enter the model context.
Large and sensitive pulls are guardrailed. A query that would return a high volume of regulated rows, or hit a flagged sensitive table, can be blocked, capped, or sent for approval before execution — stopping bulk export at the tool-call boundary.
Detection runs deep. SSN, driver's license, passport, MRN and clinical identifiers, full and partial card numbers (Luhn-checked), API keys and secrets, and financial values are matched across structured columns — plus OCR and document parsing for any unstructured content surfaced through Cortex Search.
Every invocation is logged. AI client, role, user, statement, tables and columns touched, data classes detected, redactions applied, vault references, disposition — the SOC 2 / HIPAA / PCI / GDPR audit trail, produced automatically.
Policy is contextual. Different schemas, different roles, different policies. Strac maps to your existing Snowflake data classification and tags, not an MCP-specific silo.
The same Strac MCP DLP layer covers sibling warehouses and stores — see Databricks MCP, BigQuery MCP, and Postgres MCP — one control plane across every place AI agents touch your regulated data.
✨ Strac Native Snowflake DLP — The Companion to MCP DLP
Strac natively discovers and classifies the regulated columns inside your Snowflake warehouse before any agent queries them — the companion to Snowflake MCP DLP that maps where sensitive data lives.
MCP DLP protects the AI-agent surface. Strac's native Snowflake DLP protects the data store itself — continuously scanning and classifying which columns across your databases hold SSNs, card numbers, health data, and financial identifiers, before any agent ever asks. This is classic DSPM: you can't govern at the MCP layer what you haven't first discovered in the warehouse. Most enterprises run both — native scanning to build the sensitive-data map, MCP DLP to enforce it in the agent path.
What Strac's native Snowflake DLP includes:
Continuous discovery and classification of PII, PHI, PCI, and financial data across every database, schema, and table — column by column
A live sensitive-data map that feeds MCP DLP policy, so column-level redaction at the agent boundary stays accurate as schemas change
Detection breadth across structured columns and any documents indexed for Cortex Search, with OCR for scanned files
Risk surfacing for over-broad roles and tables where sensitive columns sit unmasked
Audit findings mapped to SOC 2 CC6, the HIPAA Security Rule, PCI Req. 3/7/10, and GDPR
For the broader data-store posture this sits inside, see DSPM for AI. For the full integration catalog — every SaaS, cloud, warehouse, browser, and endpoint surface Strac covers — see strac.io/integrations.
✨ See Strac MCP DLP in Action
The screenshot below shows Strac's MCP DLP redacting sensitive data from a real Claude session — patient identifiers, customer emails, and credit card numbers tokenized inline before the model received the prompt. The same column-level inspection runs on every Snowflake MCP result set routed through Strac.
Strac DLP at work inside a Claude conversation: sensitive elements tokenized inline before the model sees them. The same pattern runs at the MCP layer for every Snowflake query result.
How to Set Up Strac Snowflake MCP DLP
Setup is agentless and takes under 10 minutes.
Authorize Strac with your Snowflake account via OAuth. Strac requests the role and scopes for the databases you want covered, and honors Snowflake's RBAC — Strac only ever sees what the authorizing role can see.
Configure the MCP gateway endpoint. Strac issues an MCP server endpoint that drops into your AI client's MCP configuration. Strac's gateway intercepts every tool call between the agent and Snowflake. For Claude Desktop:
json
"mcpServers": {
"snowflake": {
"url": "https://mcp.strac.io/snowflake",
"auth": { "type": "bearer", "token": "<your-strac-token>" }
}
}
For Cursor, OpenAI Agents, and custom agents — same endpoint, same auth.
Pick your policy. Out-of-the-box templates for SOC 2, HIPAA, PCI, and GDPR, plus column-level rules (which columns to mask, tokenize, or vault) and query-level rules (row caps, approval on sensitive tables) that take minutes to configure.
Done. Every Cortex Analyst, Cortex Search, and SQL tool call between your agent and Snowflake now flows through Strac. No warehouse re-permissioning, no Cortex changes, no agent code changes. The audit log starts populating immediately.
Compliance Coverage Out of the Box
The same Strac Snowflake MCP DLP control produces evidence mapped to every major compliance framework. Because data warehouses are where healthcare and life-sciences companies concentrate PHI, HIPAA is the sharpest edge here — a single NL→SQL query can otherwise pull an entire patient cohort into a model context with zero accounting of the disclosure.
Framework
What Strac Snowflake MCP DLP Satisfies
HIPAA
§164.312(b) (audit controls — every query logged), §164.502(b) (minimum necessary — column-level redaction and row caps enforce it), §164.514 (de-identification of returned PHI), §164.528 (accounting of disclosures for agent access)
SOC 2
CC6.6 (unauthorized data exposure), CC6.7 (restricted transmission of data to external systems), CC7.2 (monitoring anomalous AI query activity)
PCI DSS v4.0.1
Req. 3.3 (PAN masking in returned columns), Req. 4.x (encryption in transit), Req. 7 (least privilege at query time), Req. 10 (log every access)
GDPR
Art. 5 (purpose & storage limitation), Art. 25 (data protection by design), Art. 30 (records of processing), Art. 32 (security of processing)
EU AI Act
Art. 10 (data governance for high-risk AI systems consuming warehouse data)
ISO/IEC 42001
Clause 6.1.4 (risk treatment), Clause 8.4 (operational controls), Annex A.7 (data for AI systems)
For the broader AI-data-governance program this sits inside, see DSPM for AI.
🌶️ Spicy FAQs for Snowflake MCP Server
What is the Snowflake MCP server?
The Snowflake-managed MCP server is a Model Context Protocol implementation that lets external AI agents (Claude, Cursor, ChatGPT, custom agents) reach into your warehouse via standardized tool calls. It exposes Cortex Analyst for natural-language-to-SQL, Cortex Search for semantic retrieval, Cortex Agents, and direct SQL execution — all scoped to what the authorizing role can read across your databases, schemas, and tables.
Snowflake MCP vs Snowflake Cortex — what's the difference?
Cortex is Snowflake's native AI layer — Cortex Analyst, Cortex Search, and Cortex Agents all run inside Snowflake's governance boundary, operating on your data without it leaving the account. The Snowflake MCP server points the other direction: it exposes those same Cortex capabilities, plus raw SQL, to external agents over the open Model Context Protocol, so the AI client your team already uses can reach in and query. Cortex keeps the work inside Snowflake's guardrails; MCP lets an outside agent pull rows out, and the result set leaves those guardrails the moment it returns to the client. That hand-off is exactly where Strac Snowflake MCP DLP inspects and redacts — at the column level.
Is the Snowflake MCP server safe to use with sensitive data?
By itself, no — not without an MCP-layer DLP control. The managed server honors RBAC, but the analyst roles that make Cortex Analyst useful are broad, and a single NL→SQL query can return millions of rows with SSNs, MRNs, and card numbers in cleartext. For regulated workloads you need a layer like Strac Snowflake MCP DLP that inspects and redacts the result set — column by column — before rows reach the model.
How does Strac protect sensitive columns like SSN, MRN, and card numbers?
Strac inspects every returned result set and applies column-level handling: a flagged SSN, MRN, or PAN column is redacted, masked, or tokenized inline while the non-sensitive columns in the same row pass through unchanged. The agent still gets usable aggregates and context; the regulated values never enter the model. Optionally, sensitive values are vaulted — replaced with a short-lived retrieval reference that only authorized users can resolve.
Can Strac stop an agent from bulk-exporting the warehouse?
Yes. Strac's gateway sees the query before and the result set after execution, so it can cap row counts, block access to flagged sensitive tables, or route oversized and high-risk pulls for approval — stopping bulk export at the tool-call boundary instead of discovering it after the rows have already reached an external model.
Does Strac Snowflake MCP DLP work with Claude, Cursor, ChatGPT, and custom agents?
Yes. Strac exposes a standard MCP endpoint, so any MCP-aware AI client routes its Snowflake tool calls through it with one configuration change. No SDK changes, no warehouse re-permissioning, no application code changes.
How is this different from Snowflake's own dynamic data masking?
Snowflake's masking policies are powerful but only fire on columns you've already tagged and policied — which is rarely complete across hundreds of tables, and doesn't account for the AI-agent access path or produce per-query audit evidence for it. Strac sits in the MCP path itself, inspects every result set regardless of whether a native policy exists, and logs each agent query as compliance evidence.
Can I see what an AI agent did in my Snowflake account?
Yes. Strac produces a per-call audit log: timestamp, AI client identity, role, user, statement run, databases / schemas / tables / columns touched, row counts, data classes detected, redactions applied, vault references, disposition. It's queryable in the Strac console and exportable to your SIEM — the evidence trail SOC 2, HIPAA, PCI, and GDPR auditors ask about for AI-agent activity in the warehouse.
How long does Strac Snowflake MCP DLP take to deploy?
Under 10 minutes for the first account. OAuth Strac into Snowflake, paste the Strac MCP endpoint into your AI client's config, pick a policy template, done. No agents to install, no Cortex changes, no warehouse re-permissioning.
The Bottom Line
The Snowflake MCP server is fast becoming the way AI agents query the warehouse — and the warehouse is the single largest concentration of regulated data most companies own. A natural-language question that used to need a careful analyst and a LIMIT clause can now return millions of PII, PHI, and PCI rows into a model's context in one tool call. Running Snowflake MCP in 2026 without an MCP-layer DLP control isn't a question of if the first oversized pull reaches your security team; it's when.
Strac Snowflake MCP DLP gives you the governance layer — See, Control, Protect, Prove — with column-level redaction, bulk-export guardrails, automatic audit evidence, and framework-agnostic compliance coverage, so your team can query Snowflake with Claude, Cursor, ChatGPT, and any future AI client without making each one a separate security exception.
If you are running — or about to run — Snowflake MCP in production, book a 30-minute demo. We'll walk through the architecture, the column-level policy templates, and a deployment plan for your specific Snowflake account and AI clients.
The Snowflake-managed MCP server is a Model Context Protocol implementation that lets external AI agents (Claude, Cursor, ChatGPT, custom agents) reach into your warehouse via standardized tool calls. It exposes Cortex Analyst for natural-language-to-SQL, Cortex Search for semantic retrieval, Cortex Agents, and direct SQL execution — all scoped to what the authorizing role can read across your databases, schemas, and tables.
Snowflake MCP vs Snowflake Cortex — what's the difference?
Cortex is Snowflake's native AI layer — Cortex Analyst, Cortex Search, and Cortex Agents all run inside Snowflake's governance boundary, operating on your data without it leaving the account. The Snowflake MCP server points the other direction: it exposes those same Cortex capabilities, plus raw SQL, to external agents over the open Model Context Protocol, so the AI client your team already uses can reach in and query. Cortex keeps the work inside Snowflake's guardrails; MCP lets an outside agent pull rows out, and the result set leaves those guardrails the moment it returns to the client. That hand-off is exactly where Strac Snowflake MCP DLP inspects and redacts — at the column level.
Is the Snowflake MCP server safe to use with sensitive data?
By itself, no — not without an MCP-layer DLP control. The managed server honors RBAC, but the analyst roles that make Cortex Analyst useful are broad, and a single NL→SQL query can return millions of rows with SSNs, MRNs, and card numbers in cleartext. For regulated workloads you need a layer like Strac Snowflake MCP DLP that inspects and redacts the result set — column by column — before rows reach the model.
How does Strac protect sensitive columns like SSN, MRN, and card numbers?
Strac inspects every returned result set and applies column-level handling: a flagged SSN, MRN, or PAN column is redacted, masked, or tokenized inline while the non-sensitive columns in the same row pass through unchanged. The agent still gets usable aggregates and context; the regulated values never enter the model. Optionally, sensitive values are vaulted — replaced with a short-lived retrieval reference that only authorized users can resolve.
Can Strac stop an agent from bulk-exporting the warehouse?
Yes. Strac's gateway sees the query before and the result set after execution, so it can cap row counts, block access to flagged sensitive tables, or route oversized and high-risk pulls for approval — stopping bulk export at the tool-call boundary instead of discovering it after the rows have already reached an external model.
Discover & Protect Data on SaaS, Cloud, Generative AI
Strac provides end-to-end data loss prevention for all SaaS and Cloud apps. Integrate in under 10 minutes and experience the benefits of live DLP scanning, live redaction, and a fortified SaaS environment.