Skip to main content
Two pieces of warehouse setup, both self-service:
  1. 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.
  2. 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

Give the MCP server a read-only role or credential. The interview and the generated data-question skill only ever run SELECT. A read-only role is the simplest way to guarantee that.

Wire it into your agent

Follow your agent’s MCP documentation to add the server. For Claude Code, for example:
The setup video walks through this live with BigQuery and Google’s MCP Toolbox.

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.
Admin: grant the role. The full 365-day history lives in 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:
Granting a role to a user only makes it available. It has no effect until the role is active in the session — via USE ROLE, the role field in the connection config, or ALTER USER <ANALYST_USER> SET DEFAULT_ROLE = ANALYTICS_CONTEXT_READER. This is the step that most often looks like “the grant didn’t work.”Note also that privileges inherit upward: GRANT ROLE A TO ROLE B means B inherits A. Creating a bundle role above the role someone actually connects as changes nothing on its own.
Analyst: test it. Run this in your own session — not from a worksheet as ACCOUNTADMIN, which would pass regardless:
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:
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.
Once your warehouse is connected, you’re ready to build context.

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.