Grok can query Snowflake through a custom connector. One route is a Snowflake-managed MCP server that you create in your account and sign in to with OAuth. The other is Contextflo, which connects to Snowflake with a read-only role and hands Grok a single URL.
If the people asking are on the business side, the second route usually saves a lot of back and forth. Nobody has to learn what a security integration is.
Option 1: Snowflake's managed MCP server in Grok
Snowflake lets you create an MCP server as a schema object. You define it with CREATE MCP SERVER ... FROM SPECIFICATION and give it a SYSTEM_EXECUTE_SQL tool. Its URL follows this pattern:
https://<account-identifier>.snowflakecomputing.com/api/v2/databases/<DB>/schemas/<SCHEMA>/mcp-servers/<NAME>
Sign-in uses OAuth through a SECURITY INTEGRATION ... TYPE = OAUTH, set up with the redirect URI of the client you are connecting. OAuth can't use ACCOUNTADMIN, so create a role for it.
The full walkthrough, with the SQL, is in Claude and Snowflake semantic views. The Snowflake side is the same for any client. Only the redirect URI changes.
Then in Grok:
- Open grok.com/connectors.
- Choose New Connector, then Custom.
- Enter your MCP server URL.
- Complete the sign-in.
The Snowflake hostname is public, so Grok can reach it. Grok cannot run a local server, so any stdio MCP package for Snowflake is not an option here.
Option 2: Contextflo
Contextflo reaches Snowflake with a role you create once.
On the Snowflake side:
- A role,
CONTEXTFLO_ROLE, and a user,CONTEXTFLO_USER. - An XSMALL warehouse with
AUTO_SUSPEND = 60. USAGEon the database and schema, andSELECTon ALL and FUTURE tables and views.- Key-pair auth:
ALTER USER CONTEXTFLO_USER SET RSA_PUBLIC_KEY='...'.
Do not skip the FUTURE grants. Without them, any table created later is invisible.
In Contextflo: go to Data Sources, then Add data source, and pick Snowflake. Enter the account identifier, warehouse, role, user and private key. Pick tables and invite your team.
In Grok: add a custom connector at grok.com/connectors with:
https://mcp.contextflo.com/mcp
Everyone signs in with their own account. Contextflo runs SELECT only.
Which one to use
| Snowflake managed MCP | Contextflo | |
|---|---|---|
| What you create | MCP server object, security integration, role | Role, user, warehouse, key |
| Sign-in | OAuth through your Snowflake account | Contextflo account per person |
| Descriptions and definitions | Whatever you put in the spec | Generated descriptions, plus shared team corrections |
| Table access | Snowflake role | Per-person table access |
| Audit trail | QUERY_HISTORY shows the service user | Prompts and the SQL that ran, per person |
Just you and comfortable with Snowflake admin: option 1. Your team asks too: Contextflo. The Claude version of this setup is in connecting Claude to Snowflake.
You do the modeling, we do the rest. Connect Snowflake free.
FAQ
Does Snowflake have an MCP server Grok can use? Yes. Snowflake can host an MCP server as a schema object, with a URL on your account's snowflakecomputing.com domain. Because it is on the public internet, a Grok custom connector can reach it once OAuth is set up.
Why can't I use ACCOUNTADMIN to sign in to the Snowflake MCP server? OAuth can't use ACCOUNTADMIN, so create a dedicated role for the connection and grant it only what the MCP server needs.
Why do new Snowflake tables not show up in Contextflo? Usually the FUTURE grants are missing. Grant SELECT on ALL and FUTURE tables and views in the schema, or tables created after the grant stay invisible.
Will Snowflake's QUERY_HISTORY show who asked the question in Grok? No. QUERY_HISTORY shows the SQL under the service user. Contextflo keeps an audit trail of the prompt and the SQL that ran for each person.
See it on your own data.
Connect your warehouse and your team can ask Claude about it the same day, without waiting on a data team. Want a walkthrough first? Grab 20 minutes.
Book a 20-minute callSee how teams use Contextflo
Related posts
Keep reading

Conversational analytics: 5 ways to set it up, compared
7 min read

How to connect Claude to BigQuery? What works and what doesn't in 2026
8 min read

How to connect Claude to Postgres without giving it write access
9 min read

How to build a BI dashboard with Claude that your team can actually trust
8 min read

How to give Claude read-only access to your database (it isn't always the default)
7 min read

You connected your warehouse to Claude, now what?
5 min read

ClickHouse MCP: how to connect ClickHouse to Claude, Cursor or Codex
6 min read

Query BigQuery from the Codex CLI with MCP
5 min read

Run ClickHouse queries from Codex with MCP
6 min read



