What's New
This release wires two new capabilities into existing MCP tools via safe, opt-in parameters — no breaking changes.
feat: versioned memory update flag (#865, @filhocf)
The memory_update MCP tool gains a versioned: bool = False parameter. When set to True:
- Routes through
update_memory_versioned()in the SQLite-vec backend - Stores
superseded_byin the replaced memory's metadata, preserving a full audit trail of changes - Returns an explicit error message on backends that do not support versioning (non-SQLite-vec), so callers know immediately rather than silently losing history
feat(reasoning): infer_transitive and suggest_relationships in memory_graph (#866, @filhocf)
The memory_graph MCP tool gains two new actions:
infer— computes the transitive closure of a starting node. The traversal uses a recursive CTE insideGraphStorage, keeping the entire graph walk on the database side with no Python BFS loop. This keeps large graph queries fast regardless of depth.suggest— proposes new relationship edges based on semantic proximity of existing associations, surfacing connections the graph does not yet explicitly encode.
Upgrade
No migration required. Both features are gated behind new parameters with safe defaults (versioned=False; action must be explicitly set to infer or suggest). Existing callers are unaffected.
pip install --upgrade mcp-memory-service
# or
uvx mcp-memory-service@latest🙏 Special Thanks
Huge thanks to @filhocf for both PRs — delivering a clean versioned-update path and a fully database-side transitive closure in one release cycle.
Full changelog: CHANGELOG.md#10513