crag-anchor-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@crag-anchor-mcpsave insight: the API endpoint is /v2/users"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
crag Anchor
Unit tests for memory. The verified-memory engine for crag: every memory an AI agent saves is decomposed into atomic claims, each claim gets an executable falsifier, and a grounding loop re-verifies them against reality — so recall returns verified facts, not stale notes.
What it is
AI coding agents forget everything between sessions — and worse, when they do have memory, that memory silently rots: ports change, files move, decisions get reversed, and the agent keeps recalling the stale version with full confidence.
crag Anchor treats memory the way engineers treat code: untested memory is broken memory.
Save — insights captured from agent sessions pass a write-path governance gate (schema checks, secret scan, dedup, lifecycle resolution) before they enter the corpus.
Decompose — each insight is broken into atomic claims (P1–P5: existence, behavior, causal, spec, meta), and each claim gets an executable predicate — a cheap, read-only check that can prove it wrong.
Ground — a background worker pool re-runs falsifiers (recall-triggered for hot claims, sweep-based for cold ones). Trust is how recently a claim was re-grounded against reality, not a number that only rises.
Recall — hybrid semantic + full-text search (embeddings + BM25 + confidence), with a per-hit liveness verdict (
fresh/aging/unverified/revalidating/stale) so the agent knows what to discount.Govern — contradiction detection, arena adjudication, supersede chains, confidence lifecycle (verify/decay/promote), and a tiered disposition engine (T0 auto / T1 agent / T2 human) for anything an agent proposes to persist.
Architecture at a glance
Claude Code / Cursor session
│ (stdio)
▼
crag-anchor-mcp ──── 30 MCP tools, thin HTTP client, no local state
│ (HTTP, localhost)
▼
crag-anchor daemon ── FastAPI on 127.0.0.1:8786
│ ├─ embedding model (all-MiniLM-L6-v2, in-RAM)
│ ├─ claim layer (decompose → classify → author falsifiers)
│ ├─ grounding workers (v2 queue + v3 LLM adjudication)
│ ├─ disposition engine (T0/T1/T2 staging triage)
│ └─ capture pipeline (transcript tailer → extractor → emit)
▼
SQLite (WAL) ──────── engine.db: insights, principles, claims, falsifiers,
entity graph, grounding history, token ledgerSee docs/architecture.md for the honest deep-dive.
The loop
One closed loop turns raw session failures into compiled governance:
capture → disposition (T0 auto / T1 agent / T2 human) → claims → grounding
→ principles → crag distill → .crag/governance.gen.md → crag compile → 23 targetsTrust score is the verified fraction of active claims — only principles whose claims roll up fresh are eligible to compile into governance, so the rules an agent obeys are derived from verified reality, not vibes.
Read-model contract
The daemon exposes ONE read-model; every surface (CLI, console, cloud, ops) renders these same aggregates. No surface owns logic.
Endpoint | Returns |
| Trust hero: trust score, corpus counts, today's captured/verified/promoted |
| Items that need a human — TRUE-T2 dispositions only |
| Memory-become-law: active principles with claim health |
| Data-driven console nav manifest (the nav IS data) |
Ops-only aggregates (GET /infra/stack, /infra/costs, /infra/sessions) are
served exclusively by the private operator instance, appended via the module
seam — never present in this open-source engine.
Surfaces
The engine is headless; surfaces render the read-model.
Embedded console — ONE app, data-driven nav from
/console/modules. A module seam lets an operator instance append itsinframodule without a fork. Embeds via a contract (?embed=1+postMessage+frame-ancestorsfrom env). (Shipped, live 2026-07-18.)crag CLI cockpit —
crag status/crag inbox/crag why <id>read the aggregates;crag sync --memorypushes an overview+rules snapshot to app.crag.sh. (Onfeat/memory-seam; ships in the next@whitehatd/cragrelease.)Cloud — app.crag.sh stores pushed snapshots and renders a "Verified Memory" card. (Deployed.)
Roadmap (honest tense)
Shipped above is live today. In flight and planned:
P0 — session lifecycle (in progress):
session_start/session_endMCP methods + per-harnesscommandhooks (invisible capture/sync, not skills the agent must remember).Console v3 (in progress): five decision-surfaces (Memory · Needs You · Browser · Rules · Systems) on the live aggregates, behind a Playwright gate, flipped in via the manifest once they pass.
P0.5 — BYO-key gateway (planned): bring ANY provider's key — paste-a-key → OS keychain → one provider-neutral gateway with per-role model aliases; spend caps enforced outside agent code. No subscription login (banned by providers in 2026).
P1 — GitHub App (planned): quiet, evidence-linked PR receipts.
Quickstart
git clone <repo> crag-anchor && cd crag-anchor
python3 -m venv .venv && source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e '.[embeddings]'
crag-anchor # start the daemon (first boot downloads the ~90MB embedding model)
curl -sf http://127.0.0.1:8786/health
# register the MCP server with Claude Code:
claude mcp add --scope user crag-anchor crag-anchor-mcpDocker, systemd, and launchd paths are documented in
packaging/README.md. Zero-config defaults are
repo-relative (db/engine.db, logs/, bind 127.0.0.1:8786); everything is
overridable via CRAG_ANCHOR_* env vars or db/stack.toml.
Relation to crag
crag (npm i -g @whitehatd/crag) is the deterministic
governance compiler: one governance.md source of truth, compiled into
every agent format (CLAUDE.md, .cursorrules, AGENTS.md, hooks). crag Anchor is
the memory + verification engine underneath it: verified insights distill
into principles, and principles whose claims roll up fresh can compile back
into governance rules (crag distill). Compiler + engine, one product: rules
that are derived from verified reality, not vibes.
MCP surface
30 tools — recall (recall, recall_principle, recall_by_entity), knowledge
capture (save_insight, suggest_tags), lifecycle (get, verify, update,
supersede, promote_insight), governance queues (audit, arena,
clear_suspect, grounding), disposition (disposition_list,
disposition_resolve, staging_triage), session state (session_diary,
project_context, events, brief), telemetry (recall_stats,
recent_insights, cost_report, add_token_record, health_check),
governance export (principles_export), and introspection (engine_guide,
graph). Full table in
packages/mcp-spec/README.md.
Development
pip install -e '.[all]'
ruff check . # lint
python apps/daemon/tests/test_engine_paths.py # test suites are standalone scripts
python db/tests/test_write_gate.py # (each exits 0 on pass, 1 on fail)See CONTRIBUTING.md.
License
Apache-2.0 — see LICENSE and NOTICE. Every line of source in this repository is Apache-2.0 — no carve-outs, no dual licensing, no contributor surprises. Commercial capabilities (hosted console, team memory server, SSO/RBAC, audit export) are delivered as separate distributions built on this engine — see crag.sh.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/WhitehatD/crag-engine'
If you have feedback or need assistance with the MCP directory API, please join our Discord server