RedisVL MCP: search and upsert in Redis indexes
redis-vl-python
The MCP server from the RedisVL library lets an agent search and upsert data in already created Redis Search indexes
- 433 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- `upsert-records` writes data into Redis indexes unless `--read-only` mode is on
- The agent receives the contents of the indexes, and an HTTP or SSE start opens a network port
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/redis-vl-pythonDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- `upsert-records` writes data into Redis indexes unless `--read-only` mode is on
- The agent receives the contents of the indexes, and an HTTP or SSE start opens a network port
This is third-party code. Review the repository files before installing.
What it does
The MCP server is part of RedisVL, the Redis client library for Python (vector search, caching, conversation memory). It connects to one or more existing Redis Search indexes, restores each index's schema from Redis at startup and hands MCP clients a small fixed set of tools. Each index gets a logical id set in the YAML config. The `list-indexes` tool lists the indexes and their filterable fields, `search-records` searches records and `upsert-records` adds or updates them, computing embeddings with the index's vectorizer when needed. The caller sets `query`, `limit`, `offset`, `filter` and `return_fields`. The search mode (vector, full-text or hybrid) and tuning parameters are set in the index config, and the request does not change them. It starts with `uvx --from redisvl[mcp] rvl mcp --config /path/to/mcp.yaml` over stdio, and the `--transport streamable-http` and `--transport sse` flags enable network modes. The `--read-only` flag or `REDISVL_MCP_READ_ONLY=true` removes the write tool. Through `custom_tools` in the same YAML you can define narrow tools with a locked filter and a fixed field set, for example `search-support-tickets`.
Who it is for. Teams whose data already sits in Redis Search indexes and whose agent needs search or writes through MCP without custom query code.
Good fit when
- A knowledge base or tickets are indexed in Redis and an agent needs semantic search over them
- One server has to serve several indexes: the agent first calls `list-indexes` and then picks the right one
- An agent reads approved content while another system handles ingestion: starting with `--read-only` hides the write tool
- A narrow task needs a tool like `search-support-tickets` with a locked filter and fields
- A remote client needs Streamable HTTP access with JWT validation
Not a fit when
- The data sits in keys without a Redis Search index: the server reads the schema only from an existing index and does not create one
- An agent needs Redis commands for strings, hashes, streams and JSON: a separate Redis MCP Server exists for that
- The search type must be chosen on each call: the index config decides it and the caller does not change it
Example request
Find five similar resolved tickets about a payment failure in the support_tickets index and show the subject and resolution fieldsMCP
- Transport
- stdio, http, sse
- Authentication
- not required
Environment variables
REDISVL_MCP_READ_ONLY- The value `true` disables writes in every index, like the `--read-only` flag.
Limitations
The Redis Search index must exist before the server starts: it restores the schema from Redis and does not create indexes itself. The Redis address and index bindings sit in the YAML config, for example `redis_url: redis://localhost:6379`.
The `upsert-records` tool is on unless `--read-only` is set or the index has `read_only: true`. HTTP and SSE open a network port; JWT validation from an identity provider is configured separately, and the server does not map a token to Redis permissions.
How to disable. Remove the `redisvl` entry from the client's MCP settings. Removing the server does not change data in Redis and the indexes stay.
FAQ
How do I connect RedisVL MCP to Claude Code?
Run `claude mcp add redisvl -- uvx --from "redisvl[mcp]" rvl mcp --config /path/to/mcp.yaml`. The config has to describe the Redis connection and the existing indexes, and writes can be turned off with `--read-only`.
Which tools does the server expose?
`list-indexes` to browse indexes, `search-records` to search and `upsert-records` to write. The last one is not registered if writes are off for every index.
Can the server run over the network?
Yes, the flags `--transport streamable-http --host 0.0.0.0 --port 8000` enable HTTP and `--transport sse --port 9000` enables SSE. For HTTP you can require a JWT from an identity provider.
How do I restrict the server to read-only?
Start it with `--read-only` or set `REDISVL_MCP_READ_ONLY=true`: the `upsert-records` tool is then not registered. For a single index, `read_only: true` in its config block does the same.
How does it work with several indexes?
The agent calls `list-indexes`, takes a logical id and passes it in the `index` argument of `search-records` and `upsert-records` calls. With a single index the argument can be omitted.
Discussion
No questions or reviews yet.
Related
MCP serversRedis's official MCP server: strings, hashes, streams, JSON and vector search from your agent
A local MCP server that turns a folder of documents into a knowledge base with hybrid search for Claude Code and Cursor
Official MCP server from the OpenSearch project exposes a cluster to agents: indexes, mappings, DSL search and shard state.
An MCP server gives agents search and answers over local documents using hybrid retrieval, reranking and section links.
IRedis completes Redis commands, validates arguments and displays key values in a readable interactive terminal interface.
Zvec MCP: vector database for agents
Zvec MCP Server
17 MCP tools let an agent create Zvec collections, write documents and search by meaning with HNSW, IVF and FLAT indexes
README in short
In the RedisVL README, the MCP server section lists the capabilities, three launch commands (stdio, Streamable HTTP, SSE) and the `--read-only` flag, then points to the documentation. The rest of the README covers the library itself: vector search, caching and conversation memory. MIT license.