- Connect your warehouse to your agent over MCP — the interview verifies definitions against your live warehouse, and the context repo it generates queries that warehouse to answer questions. Both need read-only access.
- Grant query-history access — the interview’s highest-leverage input is mining what your company actually runs, and on most warehouses an ordinary read-only user can’t see the full history by default.
This runs entirely in your own agent. Nodal is not in this loop and never sees your database.
You wire a warehouse MCP server directly into your agent (Claude Code, Codex, Cursor, …); the
credentials stay with you. The grants below go to your own analysts, used from their own
warehouse sessions — Nodal never authenticates to your warehouse. It has no credential, no user,
and no role.
Connect your warehouse over MCP
Pick your warehouse’s MCP server
These are maintained by the warehouse vendors and the MCP community — Nodal just points you to them.Use a read-only role
Wire it into your agent
Follow your agent’s MCP documentation to add the server. For Claude Code, for example:Grant query-history access
These instructions are for your warehouse admin. The grant goes to each analyst or domain expert who will help build context — a person on your team, not a service account, and not any outside party. It’s a temporary working permission: each section below includes the one-line removal for when the context repo is built. Each section also ends with a test the analyst runs themselves to confirm the grant landed. The mining script reads query metadata — SQL text, run counts, who ran what — and never table data.- Snowflake
- BigQuery
- Redshift
Admin: grant the role. The full 365-day history lives in
Analyst: test it. Run this in your own session — not from a worksheet as A row count means you’re set. An access error means the grant — or the role activation above — is
missing.Admin: remove it later. When the context repo is built, hand the permission back:
SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY, which an ordinary read-only user cannot see by default.
Run this once, as ACCOUNTADMIN:<YOUR_READ_ONLY_ROLE> is the read-only role your analysts already use; <WAREHOUSE> is the
warehouse they run queries on. Repeat the last line for each contributor.Each analyst then activates the role in their session — Snowflake won’t use it otherwise:ACCOUNTADMIN,
which would pass regardless:If you later point a warehouse MCP server at a service user, the same role works — but
Snowflake programmatic access tokens are pinned to one role at creation via
ROLE_RESTRICTION, and
that role is fixed for the token’s lifetime. A role granted after the fact is invisible to an
existing token. Either nest QUERY_HISTORY_READER into the role the token is already restricted to,
or issue a new token bound to ANALYTICS_CONTEXT_READER. ROLE_RESTRICTION is required for service
users unless an authentication policy says otherwise.Without the grant, mining still works from a shorter, privilege-limited window (e.g. Snowflake’s
7-day
INFORMATION_SCHEMA fallback) — the interview will tell you it’s working from a reduced
sample, and a later session can re-mine the full history once the grant lands.Build your context
Run the interview against your connected warehouse.
Share with your team
When you’re ready to serve context to everyone, move to the hosted Nodal MCP.
