The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Sovseal Memory listing page.
Zero-knowledge, local-first AI memory for work you can't send to the cloud.
One private memory across Claude, ChatGPT, Cursor, and every MCP client — plaintext physically never leaves your machine.
@sovseal/mcp-server
·
@sovseal on npm
·
Quickstart
·
How it compares
·
Changelog
If you work with code, clients, or data you're not allowed to upload — healthcare, legal, fintech, defense, or anything under an NDA — every AI memory option today asks you to break that rule. Platform memory keeps your context on their cloud, in their walled garden, one platform at a time. Cloud memory layers route your raw conversations through third-party servers and extraction APIs.
sovseal takes the other path: all capture, embedding, and recall run on your device. Plaintext never crosses the network. The optional sync tier ships only AES-256-GCM ciphertext — the server cannot read your memories even if it wanted to. And because it speaks MCP and rides a browser extension, it's one memory across every AI you use, not six silos.
Cloud-hosted memory layers force a tradeoff between latency, privacy, and cost. Every recall is a 200–800 ms round-trip to someone else's database. sovseal collapses the tradeoff. LanceDB and Transformers.js run inside your agent's process.
| Workload | Operation | p50 | p95 | p99 | Network |
|---|---|---|---|---|---|
| 10K records · 1K queries | recall_memory (warm) | 6.1 ms | 10.4 ms | 21.8 ms | 0 RTT |
| Cold start | recall_memory (first call) | ~1.2 s | — | — | 0 RTT |
| Single write | store_memory | 3.8 ms | 7.2 ms | 12.5 ms | 0 RTT (write-behind) |
All benchmarks reproduce with: pnpm --filter @sovseal/mcp-server run bench-v2 (10K pre-seeded memories, 1K sequential queries, CPU-bound ONNX embeddings on commodity hardware).
What makes it fast and private:
sha256(canonicalize(payload)) and fails closed on mismatch.sovseal gives AI assistants and autonomous agents persistent, portable context that you actually own. It drops into any MCP-compatible client, captures from the major chat platforms via a browser extension, and keeps your plaintext where it belongs: on your hardware.
Core Capabilities:
Who it's for:
An honest map, because you'll ask anyway:
| Platform-native memory (ChatGPT / Claude) | Cloud memory layers (mem0, Zep, hosted MCP memories) | sovseal | |
|---|---|---|---|
| Where plaintext lives | Provider's cloud | Provider's cloud, or your servers (self-host = your ops) | Your device only |
| Extraction pipeline | Provider-internal | Typically an LLM API call on your raw text | On-device embeddings; no LLM in the loop |
| Works across platforms | No — each platform is a silo | Yes (via their cloud) | Yes — locally, via MCP + extension |
| Offline | No | No (cloud) / partial (self-host) | Yes |
| Sync model | Provider-controlled | Server reads your data | Server sees ciphertext only |
| Cost per recall | Subscription-gated | API/hosting cost | $0, local compute |
What you give up with sovseal, stated plainly: there's no cloud LLM doing clever extraction on your behalf (by design — that's the leak we exist to prevent), and you are responsible for your own key (see Threat Model). If neither of those matters to you and you live inside one platform, its native memory may be all you need. If they do matter, nothing else in this table does what the right-hand column does.
sovseal exposes one protocol with three delivery shapes. Pick by where your code runs:
| MCP Server | Browser Extension | Node SDK / Self-Hosted | |
|---|---|---|---|
| Best for | Claude Desktop/Code, Cursor, Windsurf, Zed, agent frameworks | ChatGPT, Claude.ai, Perplexity, Grok, Gemini, DeepSeek in the browser | In-process use in a Node/TS service; full data residency |
| Install | npx -y @sovseal/mcp-server | Chrome Web Store + local host installer | npm install @sovseal/sdk |
| Recall latency | 0 RTT (local LanceDB) | 0 RTT (Native Messaging to local engine) | 0 RTT (local LanceDB) |
| Cost | Free (Hobby) | Free (Hobby) | Paid (Starter or above for self-hosted sync) |
The default for AI coding assistants and any agent framework that speaks MCP. One server binary, one config snippet, every client.
Claude Desktop, Cursor, Windsurf, Zed — add to mcp.json or claude_desktop_config.json:
One-line install for Claude Code:
System Prompt Snippet (Claude Desktop / Cursor Project Instructions): To ensure the AI natively uses the memory server, paste this into your custom instructions:
For always-on autonomous agents, switch to HTTP/SSE transport so the sovseal process outlives a single tool invocation:
For the AI platforms that don't speak MCP. The extension bridges ChatGPT, Claude.ai, Perplexity, Grok, Gemini, and DeepSeek to the same on-device engine over Native Messaging — capture-on-send as you chat, ⌘/Ctrl+M to recall anywhere, with per-site toggles and one-click delete.
Everything the extension captures lives in the same local database the MCP server reads — tell Claude.ai something once, and Claude Code already knows it.
When you're building a backend service and want to manage agent state persistence programmatically, import the Node SDK client. It performs end-to-end AES-256-GCM encryption client-side and replicates checkpoints to a sync endpoint you choose.
The replication endpoint is a Deno edge function — open source, deployable to any Supabase project for full data-residency control.
Source: supabase/functions/v2-agent-state/.
All of these consume the same MCP server through their first-class MCP support. No sovseal-specific adapter is required:
| Framework | How it consumes MCP |
|---|---|
| ElizaOS | @fleek-platform/eliza-plugin-mcp (config-only, stdio or SSE) |
| Hermes Agent | Native MCP, stdio + remote HTTP |
| CrewAI | mcps=[...] field on the agent |
| LangGraph · LangChain | langchain-mcp-adapters (npm + PyPI) |
| Microsoft Agent Framework | Built-in MCP workbench |
| OpenAI Agents SDK | Native MCPServerStdio / MCPServerSse |
| OpenClaw | Native openclaw mcp consumer |
| Tool | Args | Behavior |
|---|---|---|
store_memory | { content: string } | Embed (384-dim, on-device) → write to local LanceDB → return. Ciphertext replication runs write-behind; nothing blocks. |
recall_memory | { query: string, topK?: number } | Embed query (LRU-cached) → vector search local LanceDB → return top-K matches ranked by L2 distance. 0 RTT. |
We publish exactly what is protected, what isn't yet, and what's on us versus on you. Full detail in SECURITY.md.
Guarantees that hold today:
sha256(canonicalize(payload)) and compares against the stored client_payload_hash. Corrupted storage fails closed.sov_proj_<uuid v4> in ~/.sovseal/config.json.project_id.Honest status — hardening in flight (v0.3.5):
| Control | Status |
|---|---|
| Zero-knowledge replication (AES-256-GCM + content hashing) | ✅ Shipped |
| On-device, hash-pinned embedding model | ✅ Shipped |
| Identifier sanitization against query-predicate injection | ✅ Shipped |
| Local database encryption at rest | ✅ Shipped v0.3.5 — field-level AES-256-GCM on memory content (embedding vector still in the clear) |
| Master key in OS keychain (HKDF-separated at-rest & sync subkeys) | ✅ Shipped v0.3.5 |
| Programmatic secret redaction before any write | 🔄 Planned — today this is enforced at the prompt level only |
| Model integrity verified strictly before load | ✅ Shipped v0.3.5 — incl. the first-run download path |
As of v0.3.5, memory content is encrypted at rest and the master key lives in the OS keychain, so local filesystem read no longer exposes your memories. Programmatic secret redaction is still prompt-level only — see SECURITY.md. We'd rather tell you that here than have you find out later.
~/.sovseal/config.json → lose every synced snapshot ever made. There is no escrow or recovery flow on these tiers.Test (unit + integration + crypto round-trip):
See CONTRIBUTING.md.
The core open-source modules — the stdio/SSE MCP server, browser extension, Node SDK, and self-hosted Supabase edge functions — are stable, free, and licensed under Apache 2.0.
Next up, in order:
Track progress in CHANGELOG.md and the issue tracker.
packages/sovseal-mcp-server/ · apps/extension/ · supabase/functions/v2-agent-state/packages/sovseal-mcp-server/CHANGELOG.mdApache 2.0 — for the entire public surface (MCP server, extension, SDK, core protocol, edge function, docs). Fork it, ship it, run it however you like.