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
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: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 withSOVSEAL_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
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.