Skip to content

v5.4.0 — V5-9 memory MCP server

Choose a tag to compare

@alexherrero alexherrero released this 17 Jun 19:07
· 81 commits to main since this release

MINOR. The memory engine is now reachable from any MCP host — Claude Code, Cursor, Goose, Claude Desktop — through a single local HTTP daemon. Four snake_case tools (memory_search, memory_recall, memory_append, memory_forget), singleton streamable-HTTP broker, static bearer auth, mandatory Origin-validation, and soft-delete. The daemon is writer #2 alongside the CLI, routing all MCP-host writes through the V5-0 vault_lock protocol. Five locked design calls in ADR 0017. Gates: 20/20, CI green across Linux/Mac/Windows.

Added

  • Server skeleton + liveness probe (cfda095) — scripts/memory_mcp_server.py, FastMCP 3.x, 127.0.0.1:7821, /health
  • Four-tool surface (ccdcb98) — memory_search / memory_recall / memory_append / memory_forget; in-memory test client
  • Writer-routing + vault-source-resolution (fb4c4ef) — resolves through V5-1 backend_selection (vault-primary); writer #2 composing full V5-0 mutex/CAS stack; never a hardcoded repo allowlist
  • Security layer (cd8d358) — TokenVerifier (bearer auth), _OriginValidator ASGI middleware (→403 on non-loopback Origin), path-traversal validation
  • Stdio shim + host configs (e895cef) — memory_mcp_stdio_shim.py for Claude Desktop; config snippets for Claude Code / Cursor / Goose / Claude Desktop
  • Operations & docs (c9d79dc) — memory_mcp_doctor.py (4 checks, 13 tests), launchd plist template, install.sh --mcp-server, doctor skill check 4e, ADR 0017, Stand-Up-Memory-MCP-Server how-to, Memory-MCP-Tools reference

Internal

  • Fix check-lib-parity / sync-lib: exclude __pycache__ from checksums (67bf8a7)
  • Fix check_index_root_safe: normalize to POSIX path before sync-marker check — Windows compat (1e11426)

How to connect

See Stand up the memory MCP server in the wiki. Verify with python3 scripts/memory_mcp_doctor.py --live.

Deferred to v1.1: remote tier (outbound tunnel + OAuth 2.1), Windows daemon parity, memory_get fetch verb.