Sovseal Memory

io.github.bobybarackPublished by GitHub account bobybarackv0.3.8Updated Oct 24, 2026

Local-first, zero-knowledge AI memory across Claude, Cursor, and every MCP client. 0 RTT reads.

The publisher's own server: Memory.fit

Overview

AI-generated overview

Gives an assistant a private, on-device semantic memory that stores and recalls context locally without sending plaintext to the cloud.

What you can do
Sovseal Memory is a local MCP server that provides persistent semantic memory for AI assistants. It exposes store_memory, which embeds content with an on-device 384-dimension model and writes it to a local LanceDB store, and recall_memory, which embeds a query and returns the top-K nearest matches. Embeddings and recall run inside the local process, so reads need no network round-trip. An optional sync tier replicates only AES-256-GCM ciphertext.
When to use it
Useful when you want one memory shared across MCP clients such as Claude Desktop, Cursor, or agent frameworks, and when the material you work with cannot be uploaded to a third-party cloud. It suits privacy-constrained work where plaintext must stay on your own machine.
Requirements
Runs locally over stdio as the npm package @sovseal/mcp-server, typically launched with npx. Desktop only; no web execution. No environment variables or headers are declared in the manifest. The README mentions optional settings such as SOVSEAL_TRANSPORT and SOVSEAL_PORT for SSE mode, and a sync endpoint variable for self-hosting.
Before you install
The README states that programmatic secret redaction before writes is still prompt-level only, so secrets in stored content may not be filtered. Optional sync sends ciphertext to a storage bucket and uses a bearer token stored in a local config file; losing that config on lower tiers means losing synced snapshots, with no recovery. Local database encryption at rest is described as field-level, leaving embedding vectors in the clear.

Installation

In SourceWeft

  1. Open Sovseal Memory in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[sovseal — AI memory that never leaves your machine]

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

[Npm package] [License: Apache 2.0] [Node] [Security]

Why this exists

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.

Measured Performance & Benchmarks (May 2026)

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.

WorkloadOperationp50p95p99Network
10K records · 1K queriesrecall_memory (warm)6.1 ms10.4 ms21.8 ms0 RTT
Cold startrecall_memory (first call)~1.2 s——0 RTT
Single writestore_memory3.8 ms7.2 ms12.5 ms0 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:

  • Sub-25 ms p99 recall — semantic search is a local vector query, not an HTTP call.
  • On-device embeddings — a pinned, hash-verified 384-dim MiniLM model (~22 MB quantized ONNX) runs locally. No embedding API, no per-call cost.
  • Zero-knowledge sync — when replication is enabled, AES-256-GCM encryption happens before any byte leaves the device. The server stores ciphertext it cannot decrypt.
  • Verified Semantic Recall (VSR) — every load re-derives sha256(canonicalize(payload)) and fails closed on mismatch.
  • Deterministic lineage — snapshot graph enables byte-equal state restoration.

Introduction

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.

Key Features & Use Cases

Core Capabilities:

  • Local-First Semantic Memory: On-device LanceDB + 384-dim Transformers.js embeddings for 0-RTT recall.
  • Cross-Platform Capture: The browser extension captures and recalls across ChatGPT, Claude, Perplexity, Grok, Gemini, and DeepSeek — one memory, six platforms, ⌘/Ctrl+M anywhere.
  • Zero-Knowledge Sync (optional): Replication ships only end-to-end AES-256-GCM ciphertext. Local-only mode works fully offline with no account.
  • Write-Behind Replication: Tool calls return on local commit; ciphertext sync happens asynchronously.
  • Developer-Friendly: Drop-in MCP server, Node SDK, and self-hosted edge endpoints.

Who it's for:

  • Privacy-Constrained Teams: Healthcare, legal, fintech, and defense-adjacent teams whose policies require plaintext to stay on-device.
  • AI Power Users: People working across Claude Desktop, Cursor, ChatGPT, and more who are tired of six AIs with six separate amnesias.
  • Agent Frameworks: ElizaOS, Hermes, CrewAI, and LangGraph consume the MCP server natively — local memory with no per-call API bill.

⚖️ How sovseal compares

An honest map, because you'll ask anyway:

Platform-native memory (ChatGPT / Claude)Cloud memory layers (mem0, Zep, hosted MCP memories)sovseal
Where plaintext livesProvider's cloudProvider's cloud, or your servers (self-host = your ops)Your device only
Extraction pipelineProvider-internalTypically an LLM API call on your raw textOn-device embeddings; no LLM in the loop
Works across platformsNo — each platform is a siloYes (via their cloud)Yes — locally, via MCP + extension
OfflineNoNo (cloud) / partial (self-host)Yes
Sync modelProvider-controlledServer reads your dataServer sees ciphertext only
Cost per recallSubscription-gatedAPI/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.

🚀 Quickstart Guide

Choose your path

sovseal exposes one protocol with three delivery shapes. Pick by where your code runs:

MCP ServerBrowser ExtensionNode SDK / Self-Hosted
Best forClaude Desktop/Code, Cursor, Windsurf, Zed, agent frameworksChatGPT, Claude.ai, Perplexity, Grok, Gemini, DeepSeek in the browserIn-process use in a Node/TS service; full data residency
Installnpx -y @sovseal/mcp-serverChrome Web Store + local host installernpm install @sovseal/sdk
Recall latency0 RTT (local LanceDB)0 RTT (Native Messaging to local engine)0 RTT (local LanceDB)
CostFree (Hobby)Free (Hobby)Paid (Starter or above for self-hosted sync)

MCP Server

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:

json
{  "mcpServers": {    "sovseal-memory": {      "command": "npx",      "args": ["-y", "@sovseal/mcp-server"]    }  }}

One-line install for Claude Code:

bash
claude mcp add sovseal -- npx -y @sovseal/mcp-server

System Prompt Snippet (Claude Desktop / Cursor Project Instructions): To ensure the AI natively uses the memory server, paste this into your custom instructions:

text
This session has persistent memory via sovseal. At conversation start, check the sovseal://context/recent resource. Whenever the user shares preferences, plans, or personal context, store it via store_memory.

For always-on autonomous agents, switch to HTTP/SSE transport so the sovseal process outlives a single tool invocation:

bash
SOVSEAL_TRANSPORT=sse SOVSEAL_PORT=4040 npx -y @sovseal/mcp-server

Browser Extension

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.

  1. Install from the Chrome Web Store, then run the one-time local host installer.
  2. Confirm the popup shows "On-device engine connected."
  3. Chat normally; press ⌘/Ctrl+M in any supported platform to recall.

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.

Node SDK (Library)

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.

bash
npm install @sovseal/sdk
typescript
import { AgentStateClient, CryptoService } from "@sovseal/sdk";
const client = new AgentStateClient({  endpoint: "https://your-project.supabase.co/functions/v1/v2-agent-state",  apiKey: "sov_proj_your_project_uuid",});
const key = await CryptoService.generateAESKey();
// Client-side AES-GCM encrypted snapshot uploadconst receipt = await client.snapshot({  key,  payload: {    agent_id: "agent_a1b2c3",    sequence_number: 0,    parent_snapshot: null,    policy_hash: "0000000000000000000000000000000000000000000000000000000000000000",    timestamp: new Date().toISOString(),    active_context: {      project: "acme-migration",      decisions: ["Postgres over Mongo — team expertise", "Cut scope: no SSO in v1"],      open_question: "Client prefers staged rollout; confirm dates with their ops lead."    }  }});
// Restore the latest state snapshotconst { receipt: latestReceipt, ciphertextUrl } = await client.restore({  agentId: "agent_a1b2c3",});

Self-Hosted Edge

The replication endpoint is a Deno edge function — open source, deployable to any Supabase project for full data-residency control.

bash
# From the repo rootsupabase functions deploy v2-agent-statesupabase db push    # applies the agent_state_snapshots schema
# Point any client at it:export SOVSEAL_ENDPOINT="https://<your-project>.supabase.co/functions/v1/v2-agent-state"

Source: supabase/functions/v2-agent-state/.

🔗 Integrations & Agent Frameworks

All of these consume the same MCP server through their first-class MCP support. No sovseal-specific adapter is required:

FrameworkHow it consumes MCP
ElizaOS@fleek-platform/eliza-plugin-mcp (config-only, stdio or SSE)
Hermes AgentNative MCP, stdio + remote HTTP
CrewAImcps=[...] field on the agent
LangGraph · LangChainlangchain-mcp-adapters (npm + PyPI)
Microsoft Agent FrameworkBuilt-in MCP workbench
OpenAI Agents SDKNative MCPServerStdio / MCPServerSse
OpenClawNative openclaw mcp consumer

🛠️ MCP Tools Exposed to the LLM

ToolArgsBehavior
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.

🔒 Threat Model — Read this before depending on it

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:

  • Sync confidentiality. AES-256-GCM with a 96-bit random IV per snapshot, encrypted before transmission. The sync server stores ciphertext it cannot read.
  • Integrity (VSR). Every recall re-derives sha256(canonicalize(payload)) and compares against the stored client_payload_hash. Corrupted storage fails closed.
  • No third-party processing. Embeddings are computed on-device by a version-pinned, hash-verified model. Your text is never sent to an embedding or extraction API.
  • Authentication. Bearer token = sov_proj_<uuid v4> in ~/.sovseal/config.json.
  • Storage. Ciphertext lands in a Supabase Storage bucket. Object paths are SHA-256-derived and unguessable without your project_id.

Honest status — hardening in flight (v0.3.5):

ControlStatus
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.

  • Key loss (Hobby/Starter/Growth). Lose ~/.sovseal/config.json → lose every synced snapshot ever made. There is no escrow or recovery flow on these tiers.
  • Key recovery (Pro/Enterprise). Pro tier adds managed key recovery via Shamir-split escrow custody, and Enterprise adds HSM-backed key recovery.

🤝 Contributing

bash
pnpm installpnpm --filter @sovseal/mcp-server buildnode packages/sovseal-mcp-server/dist/index.js     # stdio MCP server

Test (unit + integration + crypto round-trip):

bash
pnpm --filter @sovseal/mcp-server testpnpm --filter @sovseal/mcp-server run bench-v2

See CONTRIBUTING.md.

🗺️ Roadmap

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:

  • v0.3.5 — Security hardening + first intelligence: local at-rest encryption, OS-keychain key custody, code-enforced secret redaction, and the start of typed memory (episodic / semantic / procedural) with reinforcement-aware recall — so sovseal remembers what you've tried, not just what you've said.
  • Ambient capture: deterministic session observation for Claude Code and transcript-capable clients — memory that forms without anyone remembering to store it.
  • Hosted sync tier — managed, high-availability ciphertext replication for teams that don't want to run their own edge function. (Still zero-knowledge: we host bytes we cannot read.)
  • Wallet-key mode (opt-in) — Arweave permanence via Base L2 and Irys, for users who want their encrypted snapshots to outlive any company, including ours. Entirely optional; the core product has no blockchain dependency.

Track progress in CHANGELOG.md and the issue tracker.

📚 Documentation & Support

⚖️ License

Apache 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.

Built by the sovseal team — local-first, zero-knowledge sync, free.

Source: README.md at commit 01ae3c8

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.3.8LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Memory integrations