Special Thanks
Special thanks to @filhocf for contributing RRF fusion to the SQLite-vec hybrid search backend — a clean, well-tested implementation with full backward compatibility.
What's New
feat(search): Reciprocal Rank Fusion (RRF) for SQLite-vec hybrid search (#773)
The SQLite-vec backend now supports RRF as an alternative fusion method for combining vector + keyword search results.
Why RRF?
RRF operates on rank positions rather than raw scores, making it robust to the scale incompatibility between BM25 (negative log scores) and cosine similarity (0–1 range). Industry-standard approach per Cormack, Clarke & Buettcher 2009 (k=60 default).
How to enable:
export MCP_HYBRID_FUSION_METHOD=rrfNew env vars:
| Variable | Default | Description |
|---|---|---|
MCP_HYBRID_FUSION_METHOD
| weighted_average
| weighted_average or rrf
|
MCP_HYBRID_RRF_K
| 60
| RRF smoothing constant (Cormack 2009) |
MCP_HYBRID_RRF_CONSENSUS_BOOST
| 0.1
| Score bonus for documents ranked by both retrievers |
Default remains weighted_average — zero breaking changes for existing deployments.
10 new tests in tests/storage/test_rrf_fusion.py covering RRF scoring, k parameter, consensus boost, and integration with SQLite-vec hybrid search.
Dependency Bumps (Dependabot)
actions/checkout 3 → 6 (PR #777), docker/login-action 3 → 4 (PR #778), actions/upload-artifact 4 → 7 (PR #779), uv group bump (PR #780): authlib 1.6.11 → 1.7.0, cryptography 46.0.7 → 47.0.0, fastapi 0.135.3 → 0.136.1, uvicorn 0.44.0 → 0.46.0, sse-starlette 3.3.4 → 3.4.1, setuptools 80.10.2 → 82.0.1.
Full changelog: https://github.com/doobidoo/mcp-memory-service/blob/main/CHANGELOG.md#10430---2026-04-29