Skip to main content
recall_memory is an MCP tool that performs vector similarity search locally against the on-device LanceDB index. Because both the index and the embedding model run inside the agent’s host process, semantic reads never require a network round-trip.
recall_memory is exposed as an MCP tool by @sovseal/mcp-server. @sovseal/sdk (v1.0.0+) and sovseal-sdk (v1.1.0+) also expose recall(query, opts) via framed IPC to the local native host (~/.sovseal/native-host/run.sh). If the native host is absent, version-mismatched (protocolVersion: 1), or times out, SDK calls throw/raise EngineUnavailableError (reason: "not-installed" | "version-mismatch" | "timeout") with zero cloud fallback. See Quickstart.

Arguments

That is the complete input schema. There is no minScore, no filters, and no metadata query language — filtering by tags, categories, or lineage is not implemented.

Return value

Top-K results in descending composite-score order:
Note that score is a composite value and is not bounded to [0,1] — see the ranking formula below.

Latency

All at 0 RTT. Reproduce: pnpm --filter @sovseal/mcp-server test bench-v2.

Query embedding cache

The MCP server keeps an LRU cache of query embeddings, default capacity 256, tunable with SOVSEAL_EMBEDDING_CACHE_SIZE (set 0 to disable). Only queries are cached — every stored memory is unique by construction, so caching writes would never hit.
The embedding model is Xenova/all-MiniLM-L6-v2 (ONNX, quantized, ~22 MB), auto-downloaded to ~/.sovseal/models/ on first run and SHA-256 pinned before load.The browser extension currently runs a different model (intfloat/multilingual-e5-small) — both are 384-dim, but the two surfaces do not share one vector space today. A memory captured in the browser is not guaranteed to rank correctly when recalled from the MCP server, or vice versa.

Reinforcement-aware ranking

Raw vector distance is only the first pass. recall_memory over-fetches 8 × topK candidates by vector distance, then re-ranks by a composite score before returning the top topK:
The practical consequence: a frequently-reinforced older fact can out-rank a fresher, higher-raw-similarity one-off. That is what makes recall behave like memory rather than a plain nearest-neighbour index.
Why local recall doesn’t re-verify cryptographically. Recall against the local LanceDB index does not run Verified Semantic Recall. The local index sits inside your trust boundary — an attacker who can write arbitrary bytes to ~/.sovseal/db/ has already compromised the device, and VSR would not help. VSR defends the network: a malicious replication server, a MITM, or a compromised endpoint. See Verified Semantic Recall.

Calling it

Recall works with the network fully unavailable. This was verified with DNS blackholed browser-wide: store in 144 ms cold, semantic recall in 38 ms, zero outbound requests, with the top hit ranking correctly on a query sharing no content words with the stored memory.

Next steps

Memory Model

How type, reinforce_count, and provenance are set at write time.

Verified Semantic Recall

The cryptographic check that runs when records are restored from the replication server.