feat(MCP): [3/5] Add upsert-records tool to RedisVL MCP#540
feat(MCP): [3/5] Add upsert-records tool to RedisVL MCP#540vishal-bala wants to merge 6 commits intofeat/RAAE-1397/search-toolfrom
upsert-records tool to RedisVL MCP#540Conversation
🛡️ Jit Security Scan Results✅ No security findings were detected in this PR
Security scan by Jit
|
upsert-records tool to RedisVL MCP
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c748db2c6c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
upsert-records tool to RedisVL MCPupsert-records tool to RedisVL MCP
| async def _embed_many(vectorizer: Any, contents: List[str]) -> List[List[float]]: | ||
| """Embed multiple records with batch-first fallbacks.""" |
There was a problem hiding this comment.
Not sure I fully understand what you mean? If it's about having the fallback, it's because not all of our vectorizers implement batched calls.

Note
Medium Risk
Adds a new write-capable MCP tool that validates and loads user-provided records into Redis and may generate embeddings via the configured vectorizer, which impacts data integrity and runtime behavior. Risk is mitigated by strict request/schema validation, read-only gating, and extensive unit/integration test coverage.
Overview
Adds a new MCP tool,
upsert-records, that writes data into the configured Redis index by validating record shapes against the index schema, optionally generating missing vector embeddings via the configured vectorizer, and serializing vectors appropriately for HASH storage before callingindex.load().The MCP server now registers this tool during startup only when not in
read_onlymode, and the tools package exportsupsert_records. Separately, filter parsing type hints were adjusted to usetypingaliases (e.g.,Union,List) for broader Python compatibility, and new unit/integration tests cover upsert behavior, embedding fallbacks, runtime limits, and error mapping (including partial-write metadata).Written by Cursor Bugbot for commit 352406b. This will update automatically on new commits. Configure here.