Stop re-explaining your data to your AI every session. Connect Claude Code, Cursor, Codex, or claude.ai in one command — your agent recalls your context before it writes SQL, and every definition is reconciled against your source, not just asserted. Bootstrapped from the SQL, dbt, notes, dictionaries, and semantic models you already have.
Reconciled against your source — not blindly asserted. Mismatches surface as a caveat so you and your agent know what to trust.
In the personal MCP path, ClariLayer never holds warehouse or CRM credentials, runs SQL, or calls HubSpot. Your agent uses its own source access and supplies the supported evidence; ClariLayer reconciles it and flags caveats.
The problem is measured — by the labs themselves
21% → 95%+
Analytics-agent accuracy before and after structured, checked context — “a context and verification problem, not code generation.”
Anthropic · 2026
95% → 65%
The same accuracy one month later, without maintenance. Context rots — something has to keep checking it.
Anthropic · 2026
< 1 pt
The gain from retrieval over their entire SQL corpus. More docs don't help — checked structure does.
Anthropic · 2026
Our own numbers, kept separate: in a pre-registered internal paired eval, the same agent scored 36/38 data questions with ClariLayer vs 26/38 without — and on the cheaper model, cost per correct answer flipped to $0.054 vs $0.081. The layer doesn't cost you money; skipping it does.
Also measured elsewhere — Gartner (2026): 60% of agentic-analytics projects relying on MCP alone will fail without a consistent semantic layer. dbt (2026): raw text-to-SQL reaches 64.5% — and fails silently.
Your context, recalled and reconciled — without leaving Claude Code.
One command to connect. Then your agent recalls the definition you saved, runs the query with its own warehouse access, and reconcile flags what to treat with care.
Connected. ClariLayer rides along inside the agent.
you
How many active customers do we have?
mcp
recall · use_case: "active customers"
saved context · returned by recall
"Active customer" → fct_customers,
status = 'active' AND mrr > 0
source: you → reconciled · status: asserted
agent
Running it with my own warehouse access…
SELECT count(*) FROM fct_customers
WHERE status = 'active' AND mrr > 0;
mcp
reconcile · declared vs. actual
!Caveat — declared definition excludes 142 rows where mrr is NULL; counted as not-active. Confirm NULL handling.
agent
You have 4,820 active customers.
Grounded in your saved definition and checked against your warehouse — with one caveat noted above.
Reenactment of the real loop — the same recall → reconcile → caveat flow the MCP runs today. Your agent keeps its own warehouse access; ClariLayer never holds your warehouse credentials and never runs SQL server-side.
Your AI is brilliant — and it forgets your data every session.
Every session starts from zero
New chat, new context window — and your agent has forgotten which table is the real one, how the joins go, and which definition you actually use. You re-explain it. Again.
A CLAUDE.md is just asserted text
Hand-typing your definitions into a notes file has the same trust problem as the original numbers: nothing checked it against your warehouse. It drifts, and your agent trusts it anyway.
So it repeats your data mistakes
Wrong table, wrong join, refunds counted in revenue, an active customer defined three different ways — the same mistakes, session after session, because nothing remembers the correction you already made.
01 · The problem
Your agent remembers. It never checks.
Claude memory, ChatGPT memory, mem0, a CLAUDE.md: they store. None of them can tell you the revenue definition is stale. Each one is a silo. A notes file has the same trust problem as the original numbers.
assertedlive status
caveaton mismatch
not liveverified stamp
02 · Bootstrap
Start from the files you already have.
SQL, dbt, CLAUDE.md, a data dictionary, or a semantic model. The agent passes the content. ClariLayer feeds on your files, never your warehouse data. No blank-slate wiki.
03 · Recall, then reconcile
Why don’t these two numbers match?
Dashboard $1.42M. Agent query $1.51M. $90K gap, QBR in an hour. Reconcile compares the saved definition to the live result shape and records a caveat — not a ruling on which dollar is right.
04 · Remember
Correct it once. Next session starts from it.
The missing refunds join becomes a saved rule: asserted, from you. Standing instructions ship with the connection, so the agent recalls before it writes SQL. The layer compounds.
1 / 4
Claude memory
ChatGPT memory
CLAUDE.md
platform memory · silo
// Claude memory, this session
remembered: “use fct_orders for revenue”
status: stored
checked against warehouse: never
portable to Cursor / Codex: no
nothing here can tell you the rule is stale.
./analytics/sql/net_revenue.sql→ structured
models/marts/fct_customers.sql→ dbt
CLAUDE.md→ note
codebook.csv→ dictionary
day-1 context. not a cold empty store.
Dashboard
$1.42M
Agent query
$1.51M
caveat recorded
declared net_revenue expected a refunds join.
live result did not have it. $90K gap.
Caveat
> How many active customers?
recall → Active customer · mrr > 0 · asserted
agent runs saved SQL with its own access
remember · you · asserted
“net revenue must net refunds” next session starts from this, not from zero
Remembering is easy. Checking is the part that is hard.
Platform memory / CLAUDE.md
They store. They do not reconcile. Each platform is a silo. Even mem0 shipped additive-only. A CLAUDE.md is asserted text with the same trust problem as the original numbers.
ClariLayer
One portable layer across Claude Code, Cursor, Codex, and claude.ai. Bootstrap from files you have. Reconcile against warehouse samples or row-free HubSpot evidence. Mismatch → caveat. Otherwise it stays asserted. Those are the only live statuses.
Same agent. Same prompt. The difference is your context.
Without your saved context, the agent guesses from raw table names. With it, the agent recalls the definition you reconciled against your warehouse — and knows what to treat with care.
Agent without your context
// You: "How many active customers do we have?"
SELECT count(*) FROM raw_users WHERE last_login > now() - interval '90 days';
// Wrong table (raw_users, not fct_customers). // "Active" = logged-in, not your billing rule. // The same mistake you corrected last week.
Agent with ClariLayer
// You: "How many active customers do we have?"
// Agent recalls your saved context: "Active customer" → fct_customers, status = 'active' AND mrr > 0 source: you → reconciled · status: asserted
SELECT count(*) FROM fct_customers WHERE status = 'active' AND mrr > 0;
// Grounded in your definition, checked against // your warehouse. Caveats flagged, not hidden.
The first reconcile
“Why don’t these two numbers match?”
The acute analyst moment: two sources disagree and the QBR is in an hour. ClariLayer reconciles a saved definition against your real warehouse result and flags the drift as a caveat — checked against source, never blindly asserted.
Your dashboard says
$1.42M
Net revenue for the quarter — the number on the board.
Your agent’s query returns
$1.51M
The ad-hoc query your agent just wrote, against the same warehouse.
A $90K gap, and no way to tell which one is right.
reconcile
Your agent runs the stored net_revenue SQL with its own access and reports the result shape back. ClariLayer compares the saved definition’s declared signals — its columns, grouping, and aggregates — against what came back.
Caveat recorded
They don’t line up: the live result is missing a column the saved definition expects, so reconcile records a caveat. That’s the signal to look closer — not a ruling on which dollar figure is right.
The caveat sends your agent digging
With its own warehouse access it traces the $90K to the cause: the ad-hoc query never joined the refunds table, so it reported gross, not net. You ship the refund-adjusted $1.42M.
remember
You correct it once so next quarter the agent starts from it instead of rediscovering it:
// saved to your context “net revenue must net refunds” source: you · status: asserted
The caveat caught the $90K discrepancy an hour before the QBR. Your agent traced it to the missing refunds join, you shipped the right number, and the correction is remembered for good. Your agent runs the query with its own access; ClariLayer never holds your warehouse credentials and never runs SQL server-side.
Live now · HubSpot CRM reconcile
Check the CRM rules hidden behind internal values.
Save a row-free contract for a HubSpot property — expected stages, a canonical value, deprecated aliases, or an expected label. Your agent reads HubSpot with its own authorized access and sends ClariLayer only bounded property metadata and value distributions.
On this personal path, ClariLayer never receives CRM credentials or records, and it never calls HubSpot. A mismatch becomes a caveat; otherwise the contract remains asserted. Salesforce contracts can be stored and recalled, but Salesforce reconciliation is not enabled.
Hand-run with the partner's agent using its own access — bounded, row-free evidence only. The rules your CRM enforces are not the rules your team believes. Reconcile is how you find out before the QBR does.
Your context, working for you.
One analyst, your own data, your own agent. No governance rollout or procurement cycle — just your context, bootstrapped, reconciled, and remembered.
Day-1, not blank-slate
Bootstrap
Your agent doesn't start from zero — and it doesn't start from a hand-typed CLAUDE.md. Point ClariLayer at the work you already have.
What gets ingested
SQL
Validated SELECTs, deterministically structured
dbt
Model files imported as schema notes
CLAUDE.md
Your existing notes, brought along
Dictionary
One structured schema note per variable
Semantic model
One canonical definition per model
“Bootstrap my context from ./analytics/sql + my dbt models.” Real working context on the first session.
Checked, not just claimed
Reconcile
A saved definition is reconciled against a warehouse result or bounded, row-free HubSpot evidence collected by your agent.
What reconcile returns
Match
Applicable checks pass; the entry remains asserted, not verified
Mismatch
Flagged as a caveat so you know what to trust
CRM boundary
No HubSpot rows or credentials; ClariLayer never calls the provider
Measured
Internal paired eval: 36/38 data questions right with the layer vs 26/38 without
Warehouse access and CRM access stay with your agent. ClariLayer compares only the supported evidence it sends.
It compounds
Remember
Every correction, every reconcile, every new note persists. Your agent grounds on more of your context over time.
The retention loop
Correct once
The fix is remembered, not re-typed next session
Recall in-flow
The right context, pulled mid-task
Checkpoint
The agent's updated or no-update declaration is recorded before completion
In the wild
One analyst found it cold, connected with zero onboarding, and ran 79 recalls across six active days — still active
“In normal use, we ask vague follow-up questions and expect ClariLayer to prevent us from re-explaining established business rules.” — SIRAYA, RevOps design partner. The context you build is the moat.
Governed Context Edge · private pilot
When two people's numbers conflict, it adjudicates.
It does not average. Yours free, forever. The team product promotes what you reconciled into a shared canon: propose up, adopt down with agency, never a silent overwrite. Built, hand-run with design partners. No public price.
Personal layers sit at the bottom, a team layer in the middle, and org canon at the top. Governed Context Edges between them carry propose-up and adopt-down. When two personal numbers conflict, the Edge adjudicates; it does not average or silently overwrite.
Layers stay yours
Individuals, then team, then org canon. The layer is free; the Edge between layers is governed.
Flow both ways
Propose up what you reconciled. Adopt canon down with agency. Never a silent overwrite.
The Edge adjudicates
When two people's numbers conflict, a human decides what enters canon. It does not average.
For teams · private pilot
Yours today. Your team's — in pilot now.
ClariLayer starts as your personal context layer. The Governed Context Edge — your reconciled definitions promoted into a governed team canon, with ownership, approval, and one right metric — is built and in private pilot. A few design-partner slots are open.
Personal context merges into shared
The definitions and corrections you build solo are exactly what later merges into shared, owned team context — the same engine, one level up.
Conflicts adjudicated, not averaged
When two people's numbers conflict, the Edge surfaces it and a human settles it. Context proposes up and adopts down with agency — never a silent overwrite. One right answer, owned and approved, for everyone's agents.
Land solo, expand to the team
Start as your personal context layer with no procurement. When the team is ready, the Edge is already built and running in private pilot — design-partner slots are hand-onboarded, and a few are open now.
Connect Claude Code, Cursor, or Codex with a context key, or add ClariLayer as a custom claude.ai Connector and approve over OAuth. Managed instructions keep supported local agents on the recall, confirmed-update, and completion-checkpoint loop.
Connect from claude.ai
OAuth · no context key
Add ClariLayer as a custom Connector, paste only the MCP URL, then sign in and approve in your browser.
https://app.clarilayer.com/api/mcp/mcp
In claude.ai, open Settings → Connectors → Add custom connector.
Paste the ClariLayer MCP URL: https://app.clarilayer.com/api/mcp/mcp
Sign in to ClariLayer and approve the connection when prompted.
Back in a chat, confirm it worked by asking Claude to run the clarilayer__health tool.
Connect a local coding agent
Claude Code, Cursor, and Codex authenticate with the context key you mint in ClariLayer.
Replace cl_YOUR_CONTEXT_KEY with your context key. The key is shown once at creation, so paste it straight into the command.
Built to be trusted with your data
Grounded against supported evidence — and it shows its work.
The whole point is that your AI's context is grounded against reality, not just asserted. We measured what that is worth — and we label every claim with exactly how far it goes.
Measured, not manufactured
36 of 38 with the layer. 26 of 38 without.
In our internal paired eval, the same agent answered 36 of 38 data questions correctly with ClariLayer connected — 26 of 38 without. On the cheaper model, cost per correct answer flipped: $0.054 with the layer vs $0.081 without. And under session load, the control went confidently wrong; the ClariLayer arm did not.
Shipped, not slideware
Four everyday verbs, with the supporting loop behind them.
Bootstrap, recall, remember, and reconcile are live in production, alongside review, lifecycle, full-entry fetch, and a durable completion receipt. Connect Claude Code, Cursor, or Codex with a context key, or claude.ai over OAuth.
A standard, not a shortcut
We built “verified” — and refused to ship it.
We built the stronger “verified” stamp, ran eight adversarial review rounds against it, and refused to ship it — one false “verified” is the failure a trust product cannot survive. Every mark says asserted or caveat — reconcile checks a definition against a warehouse result or bounded, row-free HubSpot evidence, and a mismatch becomes a caveat. That refusal is the product.
Your data, your access
Personal reconciliation keeps source credentials with your agent.
On the personal MCP path, ClariLayer never runs SQL or calls HubSpot. Warehouse evidence can include optional preview rows; HubSpot evidence contains only bounded metadata and aggregate distributions, with CRM rows forbidden.
FAQ
Straight answers to the real objections.
What ClariLayer can see, what it doesn't touch, what's free, and what “reconciled” actually means.
Stop re-explaining your data.
Connect ClariLayer to Claude Code, Cursor, or Codex in one command. Free to start — no team, no procurement, just your context.
The Governed Context Edge is in private pilot — a shared, governed canon for your whole team's agents. We onboard design partners personally.
We use privacy-friendly analytics
With your consent we use PostHog and Vercel Analytics to understand how ClariLayer is used so we can improve it. We never sell your data. Errors are always monitored (without analytics) so we can keep the app reliable. You can change your mind anytime.