Release Notes
feat(mcp): declarative custom tool profiles over search-records (#711)
The RedisVL MCP server can now publish custom tool profiles: additional tools defined entirely in the server's YAML configuration, with no Python required. A profile specialises the built-in search-records under a name and description you choose, pinning the index it targets and freezing whichever arguments you want fixed.
An author can lock the filter, the returned field set and a maximum result count, and choose per argument whether the model may pass it. A locked filter is AND-combined with any filter the model supplies, so the model can narrow the search but cannot widen or remove the locked clause; locked and hidden arguments are absent from the tool's advertised input schema, so there is no argument name for the model to pass. Profiles execute through the same path as the built-in tool and inherit its concurrency limit, request timeout, read-only enforcement, auth scoping and error contract.
Configuration errors fail at server startup with an actionable message rather than at the first tool call, and unrecognised keys in a profile are rejected rather than ignored.
This is additive. Existing configurations are unaffected, and a server with no custom_tools block behaves exactly as before.
Support redis-py 8 (#695)
redis-py 5.x and 6.0-6.2 are no longer supported. Upgrade to redis-py 6.3 or later. redis-py 8.0.0 is excluded because of its RESP3 empty-search-results defect.
🚀 Enhancement
- feat(mcp): declarative custom tool profiles over search-records #711 (@vishal-bala)
- Support redis-py 8 #695 (@abrookins)
- feat(mcp): let operators disable individual built-in tools #668 (@vishal-bala)
- feat(voyageai): add contextualized embeddings and refresh model support #692 (@fzowl)
🐛 Bug Fix
- fix: use whitespace intersection for filtered text queries #709 (@limjoobin)
- fix(ci): keep uv.lock in step with the release version bump #699 (@vishal-bala)
- fix: replace shared mutable connection_kwargs defaults with None sentinels #700 (@harshadkhetpal)
- Fix reranked scores not matching reranked document order in HFCrossEncoderReranker #694 (@adityaanikam)
📝 Documentation
🔩 Dependency Updates
- chore(deps): bump tornado from 6.5.7 to 6.5.8 in the uv group across 1 directory #710 (@dependabot[bot])