> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nodaldata.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Nodal

> Governed self-service analytics — a curated context layer your whole team can query, without ever handing over your database.

Pointing an agent at a warehouse and letting it write SQL *feels* like self-service analytics —
until you notice the answers are confidently wrong. The fix isn't a better model. It's **context**:
what your terms mean, which table is canonical, what the standard filters are, and where the
landmines are.

Nodal is that context layer — built *with* your analyst, measured as you go, and served to your
whole team over MCP.

<Note>
  **Nodal never needs access to your database.** Your agent queries your warehouse through *your own*
  read-only connector. Nodal serves the **context** — definitions and canonical queries — not your
  data. [See exactly what we access →](/mcp/data-access)
</Note>

## Two ways to use Nodal

<CardGroup cols={2}>
  <Card title="Open source (free)" icon="box-open" href="/open-source/context-layer">
    The **Analytics Context Format (ACF)** and an interview skill that builds your context layer
    one domain at a time — plus a local eval harness that proves it makes the agent more accurate.
    Apache-2.0. Fork it, self-host it, never talk to us.
  </Card>

  <Card title="Nodal MCP (paid)" icon="share-nodes" href="/mcp/overview">
    A hosted, **team-shared MCP endpoint** that serves the same context to everyone's agent, so a
    non-technical user gets the answer the analyst would give. Add one `.mcp.json` file and share.
  </Card>
</CardGroup>

## Why interview-built, not auto-generated

The obvious approach — ingest your warehouse, dbt, and query history and *auto-generate* the
context — is what most tools do. Teams who have measured it found it doesn't hold up as a source of
truth:

* Anthropic's data team reported that auto-generating metric definitions "encoded the very
  ambiguities we were trying to eliminate" and was **net-negative on evals** versus a smaller,
  human-curated layer.
* Giving an agent grep access to thousands of prior queries moved accuracy **less than a point** —
  the information was present, the agent saw it, and it still resolved questions to the wrong entity.

Their conclusion, and ours: **generate the draft with the model, but have a human own the
definition.** Nodal auto-extracts your schema and dbt as *a draft to correct* so the analyst isn't
staring at a blank page — but the analyst's confirmations, not the extraction, are what we trust.

<Info>
  **A context layer is one idea; ACF is our opinionated, eval-backed take on it.** You are not
  required to use ACF to get value from Nodal — the eval harness reads ACF, dbt models/docs, or plain
  markdown. Bring whatever context you already have.
</Info>

## Evaluation is built as you go

Every disambiguation the analyst makes in the interview ("active client means X, not Y") is
simultaneously a context entry **and** a labeled eval pair. The act of building context is the act
of harvesting ground truth — so you can always show accuracy **with** the context versus
**without** it. [More on evaluation →](/open-source/evaluation)

## Where to start

<CardGroup cols={2}>
  <Card title="Build your context" icon="comments" href="/open-source/build-your-context">
    Run the interview and generate your first domain — free and local.
  </Card>

  <Card title="Share it with your team" icon="users" href="/mcp/share-with-your-team">
    Put the context in front of everyone's agent with a single `.mcp.json` file.
  </Card>
</CardGroup>
