by clarilayer
Stop re-explaining your data to your AI every session. The individual-analyst context layer, delivered over MCP (Claude Code / Cursor / Codex).
# Add to your Claude Code skills
git clone https://github.com/clarilayer/clarilayerclarilayer is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by clarilayer. Stop re-explaining your data to your AI every session. The individual-analyst context layer, delivered over MCP (Claude Code / Cursor / Codex). It has 132 GitHub stars.
clarilayer's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/clarilayer/clarilayer" and add it to your Claude Code skills directory (see the Installation section above).
clarilayer is primarily written in TypeScript. It is open-source under clarilayer on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh clarilayer against similar tools.
No comments yet. Be the first to share your thoughts!
Unlocks once the catalog security scan passes (runs nightly).
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
ClariLayer is an individual-analyst context layer, delivered over MCP. Connect it to Claude Code, Cursor, or Codex and it bootstraps your real working context from the SQL and dbt you already have, reconciles your definitions against your warehouse, and remembers your corrections — so your agent stops re-explaining your data and stops making the same mistakes every session.
Every new session, your AI coding agent starts from zero about your data. So it makes the same mistakes — queries the wrong table, picks the wrong join, counts refunds in revenue, uses a churn definition you deprecated months ago. You correct it. Next session, it forgets, and you correct it again.
A hand-written CLAUDE.md of definitions helps a little — but it has the same trust problem as the original numbers: it's just asserted text. Nobody checked it against your warehouse.
It gives your agent a durable, reconciled memory of your data context — and it lives inside the agent you already use, over MCP. Four verbs, all live:
| Verb | What it does |
|---|---|
| recall | Before writing SQL or defining a metric, your agent pulls the most relevant saved context — each with its provenance and status. Read-only, in-flow. |
| remember | Saves one durable fact — a definition, schema note, reusable query, assumption, caveat, or decision — so it survives across sessions. |
| bootstrap | Bulk-imports context from artifacts you already have, across five source kinds: a SQL SELECT (deterministically structured), a data dictionary / codebook (structured into one schema-note per variable), dbt models, CLAUDE.md / freeform notes, and a governed semantic-layer model (a Databricks Metric View, dbt semantic model, … imported as canonical metric definitions). No cold empty store. |
| reconcile | Grounds a saved definition against your real warehouse result. Your agent runs the SQL with its own access and reports back, so a declared-vs-actual mismatch surfaces as a caveat. |
The context you build compounds across sessions and is portable across Claude Code, Cursor, and Codex.
These four verbs are the in-flow core loop. The full contract today is 18 MCP tools at capability v32 (the four above plus propose / propose_batch, the entry and reasoning lifecycle, supersede, the read-only suggest_links, capabilities, and a health check). The canonical, live list is always discoverable by your client at connect — via the initialize response or a capabilities call — so you never have to trust a doc over the wire. See CAPABILITIES.md for what each recent capability bump added.
Fastest — one command. Auto-detects Claude Code, Cursor, and Codex, writes the right config, and offers to add the standing-orders block to your CLAUDE.md:
npx clarilayer init
You'll need a free context key — sign up at clarilayer.com, then open Connect your AI to mint one. The CLI prompts for it and validates it. Full options: CLI.md.
Replace cl_YOUR_CONTEXT_KEY with your key.
Claude Code — run in your terminal:
claude mcp add --transport http clarilayer https://clarilayer.com/api/mcp/mcp --header "Authorization: Bearer cl_YOUR_CONTEXT_KEY"
Cursor — add to ~/.cursor/mcp.json:
{
"mcpServers": {
"clarilayer": {
"url": "https://clarilayer.com/api/mcp/mcp",
"headers": { "Authorization": "Bearer cl_YOUR_CONTEXT_KEY" }
}
}
}
Codex — add to ~/.codex/config.toml. Recent Codex connects to the URL directly, no Node/npx needed (same as Claude Code and Cursor):
[mcp_servers.clarilayer]
url = "https://clarilayer.com/api/mcp/mcp"
http_headers = { "Authorization" = "Bearer cl_YOUR_CONTEXT_KEY" }
Only on older Codex without direct-HTTP support, bridge it via mcp-remote instead — this route requires Node.js (npx):
[mcp_servers.clarilayer]
command = "npx"
args = ["-y", "mcp-remote", "https://clarilayer.com/api/mcp/mcp", "--header", "Authorization: Bearer cl_YOUR_CONTEXT_KEY"]
See QUICKSTART.md for the full walkthrough and troubleshooting.
Paste this into your project's CLAUDE.md (or AGENTS.md) so your agent reaches for ClariLayer proactively instead of waiting to be asked. The full file is in examples/CLAUDE.md:
## ClariLayer — your data context layer (use it proactively)
ClariLayer is connected over MCP and holds this project's durable data context: definitions, schema notes, reusable SQL, assumptions, caveats, and decisions. Use it WITHOUT waiting to be asked.
- Recall first: before writing SQL, defining or computing a metric, or answering a question about this data, call `get_analysis_context` (pass a `use_case`). Build on what is already known instead of re-deriving it.
- Write back as you learn: when you establish a durable fact — a definition, schema note, reusable query (attach the SELECT as `sql`), assumption, caveat, or decision — save it with `remember`. Use `propose` for suggestions (they go to the human's review inbox).
- Reconcile on drift: if a definition's SQL changed or staleness is flagged, call `reconcile` to check it against the warehouse.
- Stay honest: treat status as `asserted`/`caveat`, never `verified`.
Not every fact should write straight to your context. Two verbs put a human in the loop:
Conversation harvest builds on propose_batch. When you explicitly ask, your agent distills the durable facts from a working conversation — the definitions, gotchas, and decisions you settled during the session — into a handful of candidates and stages them for your review. The guardrails are deliberate:
agent (they're the agent's suggestion, not your authorship) and remain asserted/caveat once accepted — never "verified".propose, propose_batch, and harvest are all on the free single-player tier, alongside recall, remember, bootstrap, and reconcile.
Caveats and assumptions attached to an entry have their own lifecycle, so you can quietly retire a note without losing the history:
(Entries themselves have the matching archive / restore / forget.)
CLAUDE.mdreconcile. A saved definition isn't just trusted — your agent runs its SQL against your warehouse and reports the result shape back, and ClariLayer compares declared-vs-actual. A mismatch becomes a caveat so you and your agent know exactly what to trust.
On trust language — we keep it honest. Today ClariLayer's two statuses are
assertedandcaveat. A strongerverifiedstatus is not shipped yet — it's the documented fast-follow. We reconcile and flag caveats; we don't claim your context is "verified." (why)
**ClariLayer never holds your warehouse credentials and never executes SQL server-si