obliviate

obliviate

An MCP server for agent memory that enables remembering, recalling, and provably forgetting knowledge with cascade deletion, cryptographic shredding, and signed erasure certificates.

Category
访问服务器

README

<div align="center">

<img src="docs/media/logo.png" width="140" alt="Obliviate logo">

Obliviate

Agent memory that forgets on command — and proves it's gone.

Delete it everywhere · in one atomic transaction · with a signed receipt anyone can check

▶ Try the live demo

Live demo CockroachDB Basic Cloud MCP AWS S3 WORM Python 3.12 FastAPI License MIT

</div>

When an agent's memory is wrong, poisoned, or legally required to disappear — can you delete it everywhere, atomically, and prove it's gone?

Obliviate can. It cascade-deletes an entity's entire knowledge sub-graph — documents, graph nodes, edges, and vectors — in one ACID transaction, then proves erasure three ways: an AS OF SYSTEM TIME before/after diff, a live vector + graph re-search that returns nothing, and a crypto-shredded, object-locked deletion certificate.

Browsing, recall, the knowledge graph, and /verify are open to everyone. Writes are token-gated (an erasure product should never let anonymous visitors delete data) — to run Forget & Prove yourself, paste the demo token obliviate-judge-75a0f127 in Settings → Security.

<div align="center">

<br>

Obliviate landing

<br>

Living memory — the knowledge graph with real-time physics (47 entities · 83 relationships, all in CockroachDB):

Obliviate knowledge graph — live physics

</div>


The problem

Every agentic-memory project this cycle answers the same question: how do agents remember more? Almost none answer the question that governed, production memory actually demands: how do agents forget — completely, safely, and provably?

Memory that only ever accumulates is a liability. A poisoned or wrong fact propagates through the knowledge graph and corrupts future reasoning. A departed customer's data lingers past its legal retention window (EU GDPR Article 17 "right to erasure" is a 2026 enforcement priority). And in most systems, "delete" is a best-effort DELETE that leaves recoverable vectors on disk, orphaned graph edges, and no proof anything happened.

What Obliviate does

Point it at an entity — a customer, a decommissioned system, a poisoned memory — and it performs verifiable erasure:

Stage Guarantee
Cascade delete The entity's documents, graph nodes, edges, and vectors are removed in one serializable transaction — never a half-erased state.
Shared-node safety Entities shared with a surviving subject are invalidated, not deleted — erasing one subject never corrupts another's memory.
Crypto-shred The subject's per-record encryption key is destroyed, so residual ciphertext (in MVCC history, backups, or S3) is cryptographically unrecoverable — not merely dereferenced.
Proof of prior existence AS OF SYSTEM TIME reconstructs exactly what the graph knew before erasure — the database's own memory of itself, no separate audit log.
Proof of absence A live vector + graph re-search returns nothing; the agent answers "not on record."
Certificate A signed, object-locked (WORM) S3 certificate makes each erasure tamper-evident.

Two applications of the same primitive:

  • Data-integrity / incident response — a poisoned or wrong fact entered your agent's memory. Cut it out cleanly, cluster-wide, and prove the graph is clean again.
  • Compliance — GDPR/HIPAA right-to-erasure with a certificate you can hand an auditor.

Grounded recall — with sources, and honest about absence

Ask in plain English. Answers are grounded strictly in the stored graph, cite their sources, and decline honestly when a fact isn't on record — the exact behavior that makes forgetting provable.

Obliviate chat — grounded answer with sources

Forget & Prove — the hero

One click erases a subject in a single ACID transaction, then proves it three ways — it existed (AS OF SYSTEM TIME), it's gone (live vector + graph re-check), it's irreversible (crypto-shred + object-locked S3 certificate). Entities shared with a surviving subject are kept, not deleted (note the 1 shared kept).

Forget  Prove — the live 3-part proof of erasure

It produces a signed, object-locked Certificate of Erasure — and anyone can independently re-check it at /verify: the page re-derives the SHA-256 content hash and checks the ECDSA (P-256) signature (public key shown, so it verifies offline). A tampered field breaks the hash; a forged certificate fails the signature.

Certificate of Erasure Independent verifier (/verify)
<img src="docs/screenshots/07-certificate.png" width="380" alt="Certificate of Erasure"> <img src="docs/screenshots/09-verify.png" width="380" alt="Certificate verifier">

Don't take our word for it — here's the evidence, outside the app:

The certificate object in the AWS S3 console: Object Lock retention — Compliance mode (WORM: not even the account root can delete or overwrite it before expiry):

S3 Object Lock — Compliance mode on an erasure certificate

And an independent audit — direct SQL on the CockroachDB cluster (no application in the loop) for a previously forgotten subject: 0 nodes · 0 documents · data key destroyed:

Independent audit — direct SQL, zero rows for the forgotten subject

The same check through CockroachDB Cloud's Managed MCP server — an auditor queries the cluster directly (not our app) and gets 0 rows for the forgotten subject:

Managed MCP audit — 0 rows for the forgotten subject

The knowledge graph (47 entities · 83 relationships, live physics) and the in-app docs:

Knowledge graph Docs (/learn)
Knowledge graph Docs

Why CockroachDB (load-bearing, not a checkbox)

Obliviate unifies what normally takes three systems — a graph database, a vector store, and an audit log — into one durable, governed store. That is only possible because of CockroachDB primitives:

  • Distributed Vector Indexing (C-SPANN) — semantic recall over VECTOR(384) columns, index-backed (verified via EXPLAIN), living in the same table as the relational data.
  • AS OF SYSTEM TIME — MVCC time-travel is the deletion receipt. No bolt-on history table to trust.
  • Serializable transactions — the cascade delete + invalidate + crypto-shred either all commit or none do.
  • Recursive CTEs — exhaustive, by-construction blast-radius traversal of the knowledge graph.
  • Row-level TTL — retention enforced by the storage engine. Opt-in per row (ttl_expire_at): documents expire only when a retention policy sets it, so nothing is deleted by a blanket clock.
  • Managed MCP Server (independent verification) — Obliviate wires CockroachDB Cloud's own managed MCP endpoint (cockroachlabs.cloud/mcp). This is the strongest form of the erasure claim: an auditor doesn't have to trust our API when it says "it's gone" — they point their own MCP agent at Cockroach Labs' hosted endpoint and select_query the cluster directly to confirm the forgotten subject's rows are truly absent. Proof that never routes through Obliviate's code. See docs/MCP.md.
  • MCP-native (our own tools) — Obliviate also ships its own MCP server (FastMCP) backed by the same cluster, so any MCP agent (Claude Desktop/Code, Cursor) can remember, recall, and provably forget through high-level tools.

CockroachDB tools used (load-bearing): CockroachDB Cloud Managed MCP Server · Distributed Vector Indexing (C-SPANN) · AS OF SYSTEM TIME · Serializable transactions · Recursive CTEs · Row-level TTL. AWS services used: S3 (object-locked / WORM erasure certificates) · EC2 (hosting). Certificates are signed in-process with ECDSA (P-256); a Lambda-based signer is an optional deployment variant, not required.

Architecture

flowchart TB
    U["User / Agent"] -->|HTTPS| API["FastAPI app"]
    MCP["Obliviate MCP server (FastMCP)"] -->|"remember · recall · forget (via core)"| CRDB
    API -->|"vectors · AS OF SYSTEM TIME · cascade · CTEs"| CRDB
    subgraph CRDB["CockroachDB (one transactional store)"]
      D["documents (encrypted)"]
      N["nodes + VECTOR index"]
      E["edges (graph)"]
      K["subject_keys (crypto-shred)"]
      EV["erasure_events (audit)"]
    end
    API -->|"sign (ECDSA P-256) + PUT (Object Lock / WORM)"| S3["Amazon S3 — erasure certificates"]
    API -->|"embeddings"| FE["fastembed (local, 384-d)"]
    API -->|"generation"| LLM["LLM — local (Ollama) or hosted, BYO-model"]

How it works

  • Ingest — a document is stored encrypted under its subject's key; an LLM extracts entities and relationships; nodes are upserted by name (INSERT … ON CONFLICT = deterministic coreference dedup) and edges inserted — all in the one store.
  • Ask — cosine ANN finds the relevant entities, a recursive CTE expands the surrounding graph, and a strictly-grounded prompt answers only from that context, declining honestly when a fact is absent (the property that makes forgetting provable).
  • Forget — the transaction described above.

Quickstart

python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env          # set DATABASE_URL, LLM provider, AWS
python scripts/init_db.py     # apply schema + self-test
uvicorn app.main:app --port 8080

Bring your own model. The LLM layer is provider-agnostic — point it at a local Ollama model or any hosted OpenAI-compatible provider by editing .env (or from the in-app model picker). No provider lock-in.

Evaluation

Obliviate implements research-backed layered deletion rather than naive DELETE:

  • Naive deletion is only ~18% robust to reconstruction attacks; dependency-graph-aware layered deletion reaches ~94% (ForgetAgent, IJRASET).
  • API-confirmed vector deletion leaves embeddings physically recoverable from the raw index on disk — Ghost Vectors (arXiv:2606.18497) reconstructs 25.5% of exact names and 46.4% of locations from text embeddings (and up to ~99% from image embeddings); crypto-shredding a per-subject key drops recovery to 0% (the paper's own "Epoch Key Rotation" fix — encrypt, then discard the key).

The eval harness (evals/) reproduces a forget-correctness benchmark (blind-judge scored) and a Reconstruction-Robustness Score comparing naive deletion vs. Obliviate.

Built for this hackathon

Obliviate's CockroachDB-native memory engine was built new for this hackathon — the knowledge graph as relational tables, vectors in the C-SPANN index, the atomic transactional forget, the AS OF SYSTEM TIME proof, the per-subject crypto-shred, and the signed erasure certificate. Unifying the graph, the vectors, and the audit trail into one CockroachDB store is precisely what makes forgetting a single ACID transaction and the certificate provable from the database itself — something impossible when the graph and vectors live in two separate stores. That single-store design is the structural core: a single ACID cascade, AS OF SYSTEM TIME as the proof mechanism, object-locked crypto-shred certificates, and an exhaustive recursive-CTE blast-radius.

Honest limitations

  • Erasure removes data from the store; it does not unlearn an LLM's parametric priors (which is why the grounding prompt is strict and honesty is verified behaviorally).
  • Coreference is name-based; entities that should be distinct can merge and vice-versa.
  • The AS OF SYSTEM TIME window is bounded by the cluster GC window; the append-only audit trail and S3 certificate provide durability beyond it.

License

MIT © 2026 Vinayak Sonthalia

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选