sovseal-memory MCP server
β VerifiedProvides local-first, zero-knowledge semantic memory for AI clients using on-device embeddings and LanceDB.
Also known as sovseal/core, core, @sovseal/mcp-server
- Stars
- 7
- Tools
- 2
- Downloads, 30 days
- β
- Latest version
- 0.3.8
- Last commit
- Aug 5, 2026
- License
- Apache-2.0
What is sovseal-memory MCP?
sovseal-memory provides local-first, zero-knowledge semantic memory for AI clients using on-device embeddings and LanceDB. It exposes 2 tools, such as store_memory, recall_memory.
Summary generated from the project's README
About sovseal-memory MCP server
sovseal-memory provides a local-first semantic memory solution designed for users who handle sensitive data like legal, healthcare, or fintech information. It allows AI clients to maintain persistent context without sending plaintext information to the cloud. By running all embedding and recall processes on your own hardware, it ensures that private data never leaves your machine.
The server uses LanceDB and Transformers.js to perform on-device embeddings with a 384-dimension MiniLM model. This setup enables sub-25 ms recall latency because semantic searches are handled as local vector queries rather than network calls. It is compatible with various MCP clients including Claude Desktop, Cursor, Windsurf, and Zed, as well as agent frameworks like ElizaOS and CrewAI.
Users can choose between a local-only mode that works fully offline or an optional zero-knowledge sync tier. When replication is enabled, the system uses AES-256-GCM encryption to ensure that only ciphertext is transmitted to the server. This architecture allows for a single, unified memory that works across multiple platforms through the MCP protocol and a companion browser extension.
What you can do with it
- 1Maintain privacy for sensitive industriesDevelopers in regulated fields can use AI memory without violating NDAs or data residency policies.
- 2Unify context across different AI platformsYou can share a single memory pool between different chat interfaces like ChatGPT and Claude.
- 3Enable autonomous agent persistenceBuild agent frameworks that retain state locally without incurring per-call API costs for embeddings.
- 4Securely sync memory across devicesReplicate your AI context to a remote endpoint while ensuring the server cannot read your data.
Written from the project's README. Every use case is checked against a quote from it.
How to install sovseal-memory MCP
Formats verified 10 Nov 2026Install sovseal-memory MCP in Claude Code
$ claude mcp add core -- npx -y @sovseal/mcp-serverInstall sovseal-memory MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"core": {
"command": "npx",
"args": [
"-y",
"@sovseal/mcp-server"
]
}
}
}Install sovseal-memory MCP in VS Code
.vscode/mcp.json
{
"servers": {
"core": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@sovseal/mcp-server"
]
}
}
}Install sovseal-memory MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"core": {
"command": "npx",
"args": [
"-y",
"@sovseal/mcp-server"
]
}
}
}Install sovseal-memory MCP in Codex
~/.codex/config.toml
[mcp_servers.core] command = "npx" args = ["-y", "@sovseal/mcp-server"]
Install sovseal-memory MCP in Gemini CLI
~/.gemini/settings.json
{
"mcpServers": {
"core": {
"command": "npx",
"args": [
"-y",
"@sovseal/mcp-server"
]
}
}
}sovseal-memory MCP tools 2
Detected from the READMEstore_memoryrecall_memory
| store_memory | β | |
| recall_memory | β |
Configuration
SOVSEAL_ENDPOINTSOVSEAL_TRANSPORT
| Name | Description | |
|---|---|---|
| SOVSEAL_ENDPOINT | β | |
| SOVSEAL_TRANSPORT | β |
Automated checks
Ran Nov 14, 2026Full report βPassed our automated checks. That is not a security audit: read the code and give the server the narrowest access it needs. How checks work
- Source repository linked and reachablesovseal/core is public and reachablegithub.com/sovseal/core βPass
- Package names this repository as its source@sovseal/mcp-server names sovseal/core as sourcenpmjs.com/package/@sovseal/mcp-server βPass
- Build provenance (Sigstore attestation)No build attestation published for this releaseNot checked
- Open source license (OSI)Apache-2.0spdx.org/licenses/Apache-2.0.html βPass
- Commit or release in the last yearLast commit or release 2026-08-05github.com/sovseal/core βPass
- OpenSSF ScorecardNot checked
- Package name not close to a popular packageNo popular package one edit away from @sovseal/mcp-serverPass
- No critical advisory in the package or its dependencies235 resolved dependencies checked; no critical advisoryosv.dev βPass
- No hidden instructions to the model2 tool descriptions and the README read; no override phrases, credential paths or hidden charactersPass
- Destructive tools are labelledNo tool named like delete, drop or execPass
- Remote endpoint answers the MCP handshakeNot checked
README
View on GitHubWhy 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.
| 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:
- 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 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.
π Quickstart Guide
Choose your path
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) |
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:
{
"mcpServers": {
"sovseal-memory": {
"command": "npx",
"args": ["-y", "@sovseal/mcp-server"]
}
}
}
One-line install for Claude Code:
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:
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:
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.
- Install from the Chrome Web Store, then run the one-time local host installer.
- Confirm the popup shows "On-device engine connected."
- 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.
npm install @sovseal/sdk
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 upload
const 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 snapshot
const { 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.
# From the repo root
supabase functions deploy v2-agent-state
supabase 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:
| 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 |
π οΈ MCP Tools Exposed to the LLM
| 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. |
π 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 storedclient_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):
| 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.
- 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
pnpm install
pnpm --filter @sovseal/mcp-server build
node packages/sovseal-mcp-server/dist/index.js # stdio MCP server
Test (unit + integration + crypto round-trip):
pnpm --filter @sovseal/mcp-server test
pnpm --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
- Quickstart: see the Quickstart Guide above
- Integrations: see Integrations & Agent Frameworks
- Security: SECURITY.md
- Source:
packages/sovseal-mcp-server/Β·apps/extension/Β·supabase/functions/v2-agent-state/ - Release notes:
packages/sovseal-mcp-server/CHANGELOG.md - Issues & PRs: this repository
- Contact: founders@sovseal.com
βοΈ 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.
sovseal-memory MCP questions
How do I add sovseal-memory MCP to Claude Code?
Run claude mcp add core -- npx -y @sovseal/mcp-server in your terminal. Add --scope user to make it available in every project.
How do I add sovseal-memory MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
What tools does sovseal-memory MCP provide?
It exposes 2 tools, including store_memory, recall_memory.
How does sovseal ensure privacy?
All capture, embedding, and recall run on your device, meaning plaintext never leaves your machine. Optional sync uses AES-256-GCM encryption so the server only sees ciphertext.
Does it work with Claude and Cursor?
Yes, it is designed to work with Claude Desktop, Cursor, Windsurf, Zed, and other MCP-compatible clients.
Can I use it offline?
Yes, the local-only mode works fully offline without requiring an account.