Snowflake to ChatGPT
ChatGPT connects to a Snowflake-managed MCP server over HTTPS. No data is copied into ChatGPT and no administrator password is handed over.
The short answer
What ChatGPT reads from Snowflake
- MCP server tools
- A Cortex Agent, semantic view, Cortex Search service, function or procedure exposed by the server, each with its own grant.
- Approved reporting tables
- Gold tables in one schema, read through a read-only role, with comments on tables and key columns.
- Masked sensitive columns
- Salaries or personal data protected with a masking policy in Snowflake rather than trusting the prompt.
How we set it up
- 1
Create a least-privilege role
We grant USAGE on the reporting warehouse, the database, the MCP server’s schema and the server, plus only what its tools need.
- 2
Start the connector and copy the callback
With Developer Mode on, we create the connector in ChatGPT, enter the full MCP URL, choose OAuth, and copy the callback URL it shows.
- 3
Create the OAuth integration
We use that exact callback as OAUTH_REDIRECT_URI, restrict the integration to the connector role, and enter the client ID and one active secret in ChatGPT.
- 4
Set defaults and verify the session
We grant the role, set default role and warehouse, have each person sign in, and run a context query and one narrow business query.
What breaks, and how we handle it
- Login works, queries fail
- If the default warehouse is blank, or the default role cannot use it, the OAuth screen can finish while the MCP session fails to start.
- A callback URL that almost matches
- A different hostname, path or trailing character stops OAuth before permissions are tested. We copy the value ChatGPT displays.
- Workspace settings
- In a managed workspace an owner may need to allow Developer Mode or publish the connector. That does not give members the owner’s Snowflake access.
- Changes not picked up
- An existing token can keep old session context. Each person reconnects after any change to grants or defaults.
- Uncapped query cost
- We put AI queries on their own warehouse with a statement timeout and a resource monitor, and use budgets for serverless and AI services.
What we build on top of the Snowflake data
- Read-only role on approved gold tables, with secondary roles off
- Dedicated AI warehouse with a statement timeout and resource monitor
- Comments on approved tables and key columns
- Masking policies on sensitive columns
- Semantic views for metrics that need one definition
Common questions
Does ChatGPT get access to my whole Snowflake account?
No. It connects to a Snowflake-managed MCP server and can only use the tools and data the signed-in Snowflake user is allowed to access.
Where do I add a Snowflake connector in ChatGPT?
Enable Developer Mode under Settings, Connectors, Advanced, then create the connector under Settings, Connectors. Menu labels can vary by plan and workspace policy.
Why can ChatGPT sign into Snowflake but not query?
Check the connector role, warehouse usage, database and schema usage including PUBLIC, MCP server usage and the underlying objects. Then reconnect, because an old token can keep old settings.
Does session:role:all activate every Snowflake role?
No. Despite the name, the session starts with the user’s DEFAULT_ROLE. Setting a default role also does not grant it: the user must have the role.
Does each person need their own Snowflake login?
Yes. Sharing the connector configuration does not share a Snowflake identity or role session. Each person completes the Snowflake authorization with their own account or SSO.
Want Snowflake data you can trust?
Bring the Snowflake reports that don't match. We'll trace them to the source and show you where to start.