Open source · MIT License · Grounded in Private-RAG research

A release gate for
private RAG context.

Private memory stays inside. Context only crosses to a model when a user or policy approves it. Every crossing is logged, audited, and provable.

MCP-native — no SDK required Works with OpenAI · Anthropic · Gemini · Local Self-hosted · MIT license
trykavacha.com / projects / clinical-trials / ask
The core idea

Retrieval is not release.
Most RAG tools skip that step.

⚠ Without Kavacha
📄
Private documents
↓ retrieved automatically
🔍
Top-k chunks selected
↓ sent immediately, no gate
⚠ Context crosses to OpenAI — no approval, no audit, no proof
✓ With Kavacha
📄
Private documents (PII redacted)
↓ retrieved inside Kavacha
🔍
Snippets shown — nothing sent yet
↓ user or policy approves
Only approved snippets cross the membrane
How it works

Five steps. Private retrieval.
Controlled release.

Retrieve and approve context inside the boundary. Only what you choose crosses to a provider — and every crossing comes with proof.

MEMBRANE
Inside Kavacha
01
📄

Ingest

Upload documents. Kavacha extracts text, detects and redacts PII — names become [PERSON_1] — and indexes chunks into private memory.

Inside Kavacha
02
🔍

Retrieve

Ask a question. Kavacha searches memory with hybrid keyword + semantic search and surfaces relevant snippets — entirely inside the private boundary. Nothing has left yet.

Inside Kavacha
03

Approve

You see exactly what was found. A user or release policy chooses which snippets may cross to the AI provider. Unapproved snippets stay inside — always.

04
💬

Answer

Only approved, redacted snippets are sent. The answer comes back with a full proof: retrieved vs. sent vs. blocked, token count, cost, model, and who approved.

05
📋

Audit

Every ingestion, retrieval, approval, and provider call is logged immutably. Filterable by user, project, provider, date, and cost. Export-ready for compliance.

Product tour

The full flow in three screens.

01
Ingest documents
Upload PDFs, DOCX, markdown, or plain text. PII is detected and redacted before anything is indexed. Processing runs in the background.
kavacha / support-assistant / documents
Indexed Project Atlas memo.pdf 42 chunks · 3 redacted
Redacting… Customer policy Q3.docx 60%
Indexed Invoice policy memo.txt 12 chunks · 1 redacted
Embedding… Employee handbook.pdf 88%
02
Ask + Approve
Preview retrieved snippets inside Kavacha. Nothing has left yet. Apply a policy or manually choose what crosses to the provider.
kavacha / support-assistant / ask
"Who owns Project Atlas and what can they share?"
Retrieved inside Kavacha
Project Atlas internal notepersonproject
AI provider policy memo
Customer recordpersondate
2 approved · est. 640 tokens Send to Anthropic →
03
Proof + Audit
Every answer links to a proof showing exactly what was retrieved, sent, and blocked — plus the full AI trace and immutable audit log.
kavacha / sessions / a3f912 / proof
6
Retrieved
2
Sent
4
Blocked
$0.0021
Cost
Provider: Anthropic claude-sonnet-4-6
Approved by: Maya Rao · Policy-assisted · 1,406ms
query_embedded
memory_retrieved (6 chunks)
policy_evaluated → 2 approved, 4 blocked
provider_called → answer_returned
Features

Everything a context release gate needs.

For anyone using public AI with private data — clinicians, compliance officers, business owners, and the teams that build for them. No technical background required.

🔒

Private retrieval

Document storage, search, and retrieval run entirely within your deployment. Queries never leave your infrastructure during retrieval — nothing crosses until you say so.

🚪

Controlled context release

No context is sent to a provider automatically. Every snippet requires explicit approval — from a user or from a release policy you configure per project.

🛡

Entity vault & resynthesis

Names, invoice IDs, product names, companies, and account numbers are replaced with lookup codes — [PRODUCT_X], [COMPANY_1]. When the AI answers, Kavacha swaps every code back so you read fully resynthesized results with real names and values.

📊

Proof on every answer

Every answer links to a proof screen: retrieved vs. sent vs. blocked, token breakdown, cost estimate, model, and who approved the release — immutably recorded.

📜

Immutable audit trail

A full log of every operation — filterable by user, project, provider, action, date, and cost. Append-only. Export-ready for compliance and legal review.

🔌

Provider-neutral

One memory API. OpenAI, Anthropic, Gemini, and local models all work the same way. Swap providers without changing how memory or release policies work.

MCP-native

No API to learn.
Just connect and ask.

Kavacha exposes a standard MCP server. Register your app, drop in your key, and your AI has private memory with the release gate already enforced — server-side, before any context surfaces.

1
Register your app
Create a project on trykavacha.com. Get an API key. Takes 60 seconds.
2
Add to MCP config
Point your AI agent at Kavacha's MCP server with your key. No SDK. No install.
3
Ask naturally
Your AI calls Kavacha tools. The membrane enforces itself. Proof on every answer.
claude_desktop_config.json
// claude_desktop_config.json  (or any MCP-compatible agent)
{
  "mcpServers": {
    "kavacha": {
      "url":  "https://mcp.trykavacha.com/ws/your-workspace-id",
      "headers": {
        "Authorization": "Bearer kv_live_xxxxxxxxxxxx"
      }
    }
  }
}

// That's it. Your AI now has private memory with a release gate.
// No SDK. No preview/send dance. No REST endpoints to wire up.
Privacy model

Policies first.
Formal privacy next.

V1 focuses on the control teams understand immediately: retrieve privately, inspect risk, approve release, and keep proof of exactly what crossed.

For repeated-query privacy, Kavacha is grounded in the Private-RAG paper (arxiv 2511.07637). Its MURAG and MURAG-ADA algorithms assign each chunk a privacy budget that depletes as it is retrieved over time — a formal differential privacy guarantee across all queries, not just per query.

That research path becomes the advanced privacy layer in V2: budget-aware retrieval, noisy thresholds, and Rényi DP accounting for sensitive corpora.

Research foundation

MURAG / MURAG-ADA (arxiv 2511.07637) — Multi-Query Retrieval-Augmented Generation with Differential Privacy. For any two corpora differing by one chunk, the probability of retrieving any context set differs by at most e^ε.

Local only

V1

Retrieve and show snippets. Nothing is ever sent to external providers. Answers use local models only. Maximum isolation.

Manual review

V1

Retrieve snippets privately. A user inspects and approves each snippet individually before it crosses to the provider.

Policy-assisted (default)

V1

A release policy auto-approves safe snippets, flags ambiguous ones for human review, and blocks prohibited entity types from crossing to external providers.

MURAG — fixed budget

V2

Formal DP retrieval. Laplace noise on scores, fixed threshold T, per-chunk privacy budget depletion across all queries.

MURAG-ADA — adaptive

V2

Adaptive per-query threshold. Better privacy/utility tradeoff on repeated queries over sensitive corpora.

Stop letting RAG send
context silently.

Self-hosted. MIT license. One docker compose up to run it yourself.

trykavacha.com MIT License Self-hosted Built on Private-RAG research