docs(mcp): document multi-index server contract (RAAE-1608)#633
Draft
vishal-bala wants to merge 1 commit into
Draft
docs(mcp): document multi-index server contract (RAAE-1608)#633vishal-bala wants to merge 1 commit into
vishal-bala wants to merge 1 commit into
Conversation
Update the MCP concept doc, how-to guide, and README MCP section to reflect
formal multi-index support. Replace single-index-only language ("one server
binds to exactly one index") with the compatibility story: a single configured
index remains the simplest deployment and behaves unchanged, while multiple
indexes are formally supported behind discovery and explicit routing.
Document the list-indexes discovery tool and recommend clients call it first on
a multi-index server, then pass the chosen logical id as the index argument to
search-records and upsert-records. Explain that both tools echo the resolved
index, that an omitted index is valid only on single-index servers, and that
unknown ids fail with invalid_request.
Explain the two-level write policy: global --read-only disables writes across
every binding, while per-index read_only disables a single binding; upsert is
exposed only when at least one binding is writable, and writes to a read-only
binding are rejected with invalid_request. Clarify that list-indexes shares the
filterable fields discovered from each index, omits the vector and embed-source
fields, surfaces only explicitly configured runtime limits, and never exposes
redis_name.
- Add a two-binding config example (writable vector index + read-only fulltext
index) and a list-indexes response example.
- Add index-parameterized search-records and upsert-records request/response
examples and a discovery-first multi-index flow.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
🛡️ Jit Security Scan Results✅ No security findings were detected in this PR
Security scan by Jit
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
The RedisVL MCP docs were written for the original single-index model and still stated that "one server process binds to exactly one existing Redis index." With multi-index support now implemented across RAAE-1604–RAAE-1607, the user-facing documentation (RAAE-1608) needs to describe the new compatibility story without confusing existing single-index users.
The guiding principle in the rewrite is that single-index remains the simplest deployment and works exactly as before — callers never name an index — while multi-index is presented as a formal, additive capability layered on top via discovery (
list-indexes) and explicit routing (theindexargument). No documentation still claims a server must bind to exactly one index.Implemented changes
The concept doc (concepts/mcp.md) now frames the server as binding one or several logical indexes, each addressed by an id, and adds an "Index Selection and Discovery" section covering the optional
indexargument, the omitted-index and unknown-id rules, the response echo, and discovery-first guidance. The "Single Index Binding" section becomes "Single and Multiple Index Bindings," the read-only section explains the two-level write policy (global--read-onlyvs per-indexread_only, folded into effective write availability), and the tool surface gains alist-indexessubsection documenting its minimal payload — filterable fields only, vector/embed-source fields omitted, explicit-only limits, andredis_namenever exposed.The how-to guide (how_to_guides/mcp.md) adds a two-binding config example (a writable vector index alongside a read-only fulltext index), an Index Selection subsection, a
list-indexestool contract with a response example, and threads the optionalindexargument through thesearch-recordsandupsert-recordsargument lists and request/response examples. A discovery-first multi-index flow is shown at the top of the search examples, and the CLI/env-var notes are updated for per-index read-only and the multi-index search description.Minor additional changes:
list-indexesand the discovery-first flow noted. (The README edit was explicitly authorized for this ticket, overriding the repo's default no-README-edits rule.)Verification
sphinx-build(thedocsdependency group) completes cleanly (exit 0). The only warnings are pre-existing and unrelated (upstreamredis-pydocstrings andindex.mdheading levels); no warnings reference the MCP pages, and no broken cross-reference/anchor warnings were introduced.Stacking
This PR targets
feature/raae-1607-upsert-routingand is the top of the stack. Review/merge bottom-up: #629 → #630 → #631 → #632 → this PR.🤖 Generated with Claude Code