github doobidoo/mcp-memory-service v10.60.0

5 hours ago

Special Thanks

Huge thanks to our community contributors who made this release possible:

  • @filhocf — mem0 benchmark adapter with end-to-end cloud API validation (#954) + temporal contradiction detection (#949)
  • @henry201605 — Milvus instance-level graph cache fix and superseded memory filtering in retrieve (#948)

Added

  • feat(consolidation): temporal contradiction detection via embedding similarity band (#949, @filhocf): New module src/mcp_memory_service/consolidation/contradictions.py. Detects contradictions using a similarity band of 0.4–0.75 (too similar to be independent facts, too different to be duplicates). Emits a CONTRADICTED_BY graph edge and sets superseded_by on the older memory. Opt-in via MCP_CONTRADICTION_DETECTION_ENABLED=true and MCP_CONTRADICTION_ON_STORE=true. Integrated as Step 7 in handlers/quality.py maintain flow. 8 new tests in tests/consolidation/test_contradictions.py.
  • feat(benchmarks): mem0 adapter — tested end-to-end with cloud API (#954, @filhocf): Adds scripts/benchmarks/adapters/ with an abstract BenchmarkAdapter base class and a concrete Mem0Adapter implementation that wraps the mem0 cloud API. Validated end-to-end with the mem0 cloud service. Provides a foundation for systematic latency/quality comparisons between mcp-memory-service and alternative memory backends.

Fixed

  • fix(milvus): instance-level graph cache + filter superseded in retrieve (#948, @henry201605): Replaces the class-variable _graph_storage_cache with an instance attribute protected by double-checked locking, preventing cross-instance contamination in tests. retrieve() now filters out superseded_by memories before trimming results to match the sqlite_vec behavior.
  • fix(hooks): use protocol-correct default port for standard HTTPS/HTTP URLs (#952, fixes #950): memory-client.js and memory-retrieval.js used url.port || 8443 (or || 8080) as the default port. For standard https:// URLs (e.g. Cloudflare Tunnel, reverse proxy) url.port is empty string — causing the fallback to always trigger and producing https://host:8443/... instead of the correct portless URL. Fix: use the protocol's default port (443 for https, 80 for http) when url.port is absent, and omit the port from the constructed URL if it matches the protocol default. Resolves broken hook connectivity for all Cloudflare Tunnel and reverse proxy deployments.

Full changelog: https://github.com/doobidoo/mcp-memory-service/blob/main/CHANGELOG.md

Don't miss a new mcp-memory-service release

NewReleases is sending notifications on new releases.