Zero-dependency agent memory + MCP server. Value-ranked recall, consolidation, and a first-class correction & erasure channel (revert, lineage-aware retraction, tamper-evident receipts). Measured integrity vs mem0/Graphiti.
claude mcp add inspeximus -- uvx --from{
"mcpServers": {
"inspeximus": {
"command": "uvx",
"args": ["--from"]
}
}
}MCP Servers overview
<div align="center"> <img src="https://raw.githubusercontent.com/DanceNitra/inspeximus/main/assets_readme/hero_banner.png" alt="inspeximus — a glowing digital memory layer resting on a robust machined-steel base" width="800"> # inspeximus *"We have inspected" — the medieval charter that recites an earlier one word for word and attests it unaltered. The self-correcting memory layer for AI agents.* *Correct a fact once and it stays corrected: inspeximus serves the new value and refuses to let the old one creep back — deterministically, with no LLM on the write path. Extracted from an autonomous research OS that has run it daily over 10,000 notes.* `pip install inspeximus` → `import inspeximus` · [PyPI](https://pypi.org/project/inspeximus/) · [Hugging Face](https://huggingface.co/Danchi17/inspeximus) · [DOI](https://doi.org/10.5281/zenodo.21128549) · [Homepage](https://dancenitra.github.io/inspeximus/) · MIT · v1.25.0 [](https://github.com/DanceNitra/inspeximus/actions/workflows/audit.yml) [](https://github.com/DanceNitra/inspeximus) *If inspeximus's saved you some time, a ⭐ would mean a lot — it's how other people find it. Thank you!* <img src="assets_readme/correction_demo.svg" alt="A fact is corrected; later the old value is restated, yet recall still serves the correction — the restatement lands retired via echo_guard" width="720"> Built by **[Rastislav Drahoš](https://github.com/DanceNitra)** — extracted from [Agora](https://github.com/DanceNitra/agora), an autonomous research OS that runs it daily. </div> --- ## Install into Claude Code in one line ``` /plugin marketplace add DanceNitra/inspeximus /plugin install inspeximus@inspeximus ``` That registers this repository as a plugin marketplace and installs the MCP server, which then starts with `uvx --from "inspeximus[mcp]" inspeximus-mcp` and keeps its store in `.inspeximus/memory.json` inside the project. Nothing to configure by hand, and nothing to install globally. Prefer the manual route? `pip install "inspeximus[mcp]"` and point your client at `inspeximus-mcp` — the extra matters, because the core library is deliberately zero-dependency and the MCP server is the one piece that needs a dependency. ## Every claim below is checked by a script you can run ```bash python claims_audit.py # downloads the published wheel from PyPI and audits THAT ``` It fetches the released artifact, prints its sha256, and runs each claim on it — never on the working tree. The write-path claim is enforced rather than asserted: sockets are disabled for the duration, so a write that reached for a model would fail the check instead of passing it quietly. Claims about *other* systems are listed separately and marked untestable here; verifying those means running those systems, so they are never counted as passing. ``` auditing : inspeximus-1.24.1-py3-none-any.whl 13 passed · 0 FAILED · 0 skipped · 5 not testable here ``` This exists because the exercise pays for itself: the first time we ran a README sentence against the published wheel, it failed. Erasure did delete the record and scrub the bytes, but plain `forget()` left no receipt, so the store's own `verify_writes()` reported the deletion as out-of-band — flagging a legitimate API call as tampering. Fixed in 1.24.0, with a regression probe, and the audit now covers it. The tightened audit then caught a second one: `forget_subject()` was writing *two* receipts per record, one of them with the wrong reason (fixed in 1.24.3). **On certification.** There is no certification body for an agent-memory library, and anyone claiming otherwise is selling a logo. SOC 2 and ISO 27001 certify organisations running services; no scheme certifies that a Python file deletes what it says it deletes. So instead: - **`governance_audit.py`** attacks the strongest claim here — *tell it to forget everything about a subject and it can prove it* — across three scenarios and three repeats each: erasure through `derived_from` lineage, absence from the records, from recall under several phrasings, and from the **bytes of every file the store wrote** including sidecars; exactly one receipt carrying the caller's stated basis; tamper detection; survival across a reload; unrelated records intact; and an identical end state on every run. - **The audit must be able to fail.** `GOV_FALSIFY=1` skips the erasure, and CI requires the run to report CLAIM BROKEN. A green falsification control would mean the checks measure nothing, so it is treated as a build failure. - **It runs where we cannot touch it** — every push and daily, on Linux, Windows and macOS, against both this source and the wheel published on PyPI. The badge above is the result. If it is red, believe the badge and not this paragraph. What that does **not** certify: this store, not your vector index, prompt logs or backups; the receipt proves the *act* of deletion, never the content; and an operator holding the receipt key can forge receipts, so anchor the chain head externally if your adversary is the operator. Those limits are in the docstrings too, and they are the reason the word "certified" does not appear anywhere else on this page. ## Why inspeximus — the one thing no other agent memory does Every mainstream agent-memory library puts an **LLM on the write path**: it calls a model to extract, summarize, or build a graph *every time you store something*. mem0 runs LLM fact-extraction on `add()` by default; Zep/Graphiti runs LLM entity/edge extraction on every `add_episode()`. That one choice is why their stored state is **non-deterministic**, costs a model call per write, and can silently drop a fact. **inspeximus has no LLM on the write path.** Storing a fact is a deterministic, zero-cost operation — and *that* is what makes three things possible the mainstream libraries don't offer: > **What that costs, measured on someone else's benchmark.** On the [MemOps](https://github.com/MemTensor/MemOps) > long-context scenarios (24 scenarios, ~50 sessions each), ingesting one scenario through mem0's default > pipeline took **519–917 s of LLM extraction** (median 606 s, n=24); inspeximus's write path made **zero model calls**. Read the rest > before quoting that: on the same run, answer accuracy was **statistically indistinguishable** — inspeximus 0.593, > a naive keep-all store 0.592, mem0 0.544, with every bootstrap CI crossing zero. So the honest claim is *same > answers, no write-time model cost*, not *better answers*. About 2% of mem0's extraction calls failed to parse > and those memories are missing from its store, which handicaps it slightly. MemOps is published by MemTensor, > who also make a competing system. Harness, pre-registration and the full result: > [agora/agora_output/lab/memops](https://github.com/DanceNitra/agora/tree/main/agora_output/lab/memops). - **Corrections that stick.** Write a new value for a key and it *supersedes* the old one; `echo_guard` blocks a later restatement of the retired value from resurfacing. No config, no model call. Honest scope: the guard engages on **keyed or extractor-derived** assertions (the shipped extractors derive the key from raw text); a free-text write that nothing keys is stored as an independent record and ranks on its own. - **Revert on command.** `m.revert(key)` rolls a corrected fact back to its predecessor. Of the leading systems we checked — mem0, Zep/Graphiti, Letta, Cognee, Memobase, MemoryScope, LangMem, txtai — **none exposes a revert-to-predecessor command** (mem0's `history()` is a read-only log; Graphiti invalidates but never un-invalidates; Letta has no undo). - **Deletes the value, not just the pointer.** `forget_subject` removes the value from inspeximus's records (subject + its `derived_from` lineage) and leaves a **content-free**, tamper-evident signed receipt — so what remains is a proof-of-deletion, not the data. Since **1.24.0 every deletion path leaves that receipt**, including plain `forget(ids=…, where=…)`; before that only `forget_subject` and `forget_pii` did, so a record removed with `forget()` was erased correctly but unaccounted-for, and `verify_writes()` reported it as an out-of-band deletion — the store flagging its own legitimate API call as tampering. Pass `request_id=` / `basis=` to `forget()` to bind the reason into the receipt's committed hash. Most agent-memory libraries instead *retain the deleted value* by design: mem0 keeps it in its SQLite history table (a full `reset()` purges it); Graphiti stamps the old edge `invalid_at` and keeps it. For **secure erasure at rest** (against raw-disk/backup forensics — which a plaintext store of ANY library, inspeximus included, does not give you) use an encrypted store + `shred()` (NIST SP 800-88 crypto-erasure: destroy the key and every at-rest copy dies). | | LLM on write | corrections stick | revert to predecessor | deleted value retained? | |---|---|---|---|---| | **inspeximus** | **no — deterministic** | ✅ supersession + echo_guard | ✅ `revert(key)` | ✅ no — value scrubbed, content-free receipt (+ `shred()` for at-rest) | | mem0 | yes (by default) | LLM decides ADD/UPDATE | ✗ history is read-only | ✗ kept in the history table by design | | Zep / Graphiti | yes | temporal invalidation | ✗ no un-invalidate | ✗ invalidated edge retained | | Letta / MemGPT | yes | LLM rewrites the block | ✗ no undo | ✗ | *(Every competitor cell was checked against that project's current source/docs — see [the integrity benchmark](inspeximus/probes/INTEGRITY_BENCHMARK.md), which also names each system that shares an individual property. Cryptographic deletion receipts do exist in purpose-built provenance systems like Engram and Heartwood; the claim here is scoped to mainstream agent-memory libraries.)* The mechanism undernea
What people ask about inspeximus
What is DanceNitra/inspeximus?
+
DanceNitra/inspeximus is mcp servers for the Claude AI ecosystem. Zero-dependency agent memory + MCP server. Value-ranked recall, consolidation, and a first-class correction & erasure channel (revert, lineage-aware retraction, tamper-evident receipts). Measured integrity vs mem0/Graphiti. It has 5 GitHub stars and was last updated today.
How do I install inspeximus?
+
You can install inspeximus by cloning the repository (https://github.com/DanceNitra/inspeximus) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is DanceNitra/inspeximus safe to use?
+
DanceNitra/inspeximus has not been audited yet by our security agent. Review the original repository on GitHub before using it in production.
Who maintains DanceNitra/inspeximus?
+
DanceNitra/inspeximus is maintained by DanceNitra. The last recorded GitHub activity is from today, with 1 open issues.
Are there alternatives to inspeximus?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy inspeximus to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/dancenitra-inspeximus)<a href="https://claudewave.com/repo/dancenitra-inspeximus"><img src="https://claudewave.com/api/badge/dancenitra-inspeximus" alt="Featured on ClaudeWave: DanceNitra/inspeximus" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface