Redis MCP Server
PYPI · REDIS-MCP-SERVER · 2 COMPONENTS · SCANNED SEP 20
Natural language interface designed for agentic applications to manage and search data in Redis.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security44
- Malware scan not yet available for this package.Unverified
- No known CVEs affecting this package version or its production dependencies.Pass
- Runs a script at install time (build_backend) that we could not recognise. It may be perfectly ordinary, but we do not read the published tarball, so we cannot say what it does. View diagnostics → Partial
- 1 of 52 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency6
- Repository check failed: no source repository is declared. See how to fix → View diagnostics → Fail
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: no license is declared. See how to fix → Fail
- Actively maintained (last published 46 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability75
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 4733 tokens (~89/item across 53 items; 53 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management83
- Stability observed for 25 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage71
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 0% of tool parameters carry a description.Fail
- Structured output schemas are declared (92% of tools); any adoption earns full credit.Pass
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 11 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "hdel" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 53 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the Redis MCP Server server?
Redis MCP Server runs locally as a PyPI package, launched with uvx redis-mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · redis-mcp-server
claude mcp add redis-mcp-redis -- uvx redis-mcp-server
{
"mcpServers": {
"redis-mcp-redis": {
"command": "uvx",
"args": [
"redis-mcp-server"
]
}
}
} {
"servers": {
"redis-mcp-redis": {
"command": "uvx",
"args": [
"redis-mcp-server"
]
}
}
} codex mcp add redis-mcp-redis -- uvx redis-mcp-server
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"redis-mcp-redis": {
"type": "local",
"command": [
"uvx",
"redis-mcp-server"
],
"enabled": true
}
}
} openclaw mcp add redis-mcp-redis --command uvx --arg redis-mcp-server
mcp_servers:
redis-mcp-redis:
command: "uvx"
args: ["redis-mcp-server"] {
"McpServers": {
"redis-mcp-redis": {
"Transport": "stdio",
"Command": "uvx",
"Arguments": [
"redis-mcp-server"
]
}
}
} assistant mcp add redis-mcp-redis -t stdio -c uvx -a redis-mcp-server
{
"mcpServers": {
"redis-mcp-redis": {
"command": "uvx",
"args": [
"redis-mcp-server"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.
- 19 Sept 26 −3
- Stability: pass → 0.80 functional
- 18 Sept 26 0
- Stability: 0.97 → pass security
- 17 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 15 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.
- 13 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.
- 12 Sept 26 −3
- Stability: pass → 0.80 functional
- 11 Sept 26 0
- Stability: 0.97 → pass security
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed pypi/redis-mcp-server@0.5.1
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | pypi |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| build_backend | unreviewed | uv_build |
Background: Why install scripts are a supply-chain risk →
Dependencies 52 packages
| Packages resolved | 52 |
|---|---|
| No linked repository | 1 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
client_list ~19
Get a list of connected clients to the Redis server.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
create_vector_index_hash ~233
Create a Redis 8 vector similarity index using HNSW on a Redis hash. This function sets up a Redis index for approximate nearest neighbor (ANN) search using the HNSW algorithm and float32 vector embeddings. Args: index_name: The name of the Redis index to create. Unless specifically required, use the default name for the index. prefix: The key prefix used to identify documents to index (e.g., 'doc:'). Unless specifically required, use the default prefix. vector_field: The name of the vector field to be indexed for similarity search. Unless specifically required, use the default field name dim: The dimensionality of the vectors stored under the vector_field. distance_metric: The distance function to use (e.g., 'COSINE', 'L2', 'IP'). Returns: A string indicating whether the index was created successfully or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| dim | integer | – | – |
| distance_metric | string | – | – |
| index_name | string | – | – |
| prefix | string | – | – |
| vector_field | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
dbsize ~19
Get the number of keys stored in the Redis database
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | integer | yes | – |
No examples provided.
delete ~43
Delete a Redis key. Args: key (str): The key to delete. Returns: str: Confirmation message or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
expire ~65
Set an expiration time for a Redis key. Args: name: The Redis key. expire_seconds: Time in seconds after which the key should expire. Returns: A success message or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| expire_seconds | integer | yes | – |
| name | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get ~47
Get a Redis string value. Args: key (str): The key to retrieve. Returns: str, bytes: The stored value or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
get_index_info ~63
Retrieve schema and information about a specific Redis index using FT.INFO. Args: index_name (str): The name of the index to retrieve information about. Returns: str: Information about the specified index or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| index_name | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_indexed_keys_number ~60
Retrieve the number of indexed keys by the index Args: index_name (str): The name of the index to retrieve information about. Returns: str: Number of indexed keys as a string
| Name | Type | Req | Description |
|---|---|---|---|
| index_name | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_indexes ~34
List of indexes in the Redis database Returns: str: A JSON string containing the list of indexes or an error message.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_vector_from_hash ~90
Retrieve a vector from a Redis hash and convert it back from binary blob. Args: name: The Redis hash key. vector_field: The field name inside the hash. Unless specifically required, use the default field name Returns: The vector as a list of floats, or an error message if retrieval fails.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | – |
| vector_field | string | – | – |
No output schema declared.
No examples provided.
hdel ~61
Delete a field from a Redis hash. Args: name: The Redis hash key. key: The field name inside the hash. Returns: A success message or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | – |
| name | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
hexists ~64
Check if a field exists in a Redis hash. Args: name: The Redis hash key. key: The field name inside the hash. Returns: True if the field exists, False otherwise.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | – |
| name | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | boolean | yes | – |
No examples provided.
hget ~64
Get the value of a field in a Redis hash. Args: name: The Redis hash key. key: The field name inside the hash. Returns: The field value or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | – |
| name | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
hgetall ~50
Get all fields and values from a Redis hash. Args: name: The Redis hash key. Returns: A dictionary of field-value pairs or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | – |
No output schema declared.
No examples provided.
hset ~103
Set a field in a hash stored at key with an optional expiration time. Args: name: The Redis hash key. key: The field name inside the hash. value: The value to set. expire_seconds: Optional; time in seconds after which the key should expire. Returns: A success message or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| expire_seconds | – | – | – |
| key | string | yes | – |
| name | string | yes | – |
| value | – | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
hybrid_search ~316
Perform a hybrid search combining a Redis filter expression with KNN vector similarity. Hybrid search pre-filters documents by metadata before ranking by vector similarity — the standard pattern for production RAG and semantic search pipelines. Filter expression examples: "*" → no filter, pure vector search (same as vector_search_hash) "@category:{news}" → tag filter "@year:[2020 2024]" → numeric range "@lang:{en} @year:[2022 +inf]" → combined tag + range "@title:redis" → full-text match on a text field Full filter syntax: https://redis.io/docs/latest/develop/interact/search-and-query/query/ Args: query_vector: List of floats to use as the query vector. filter_expression: Redis filter expression to restrict candidates before KNN ranking. Defaults to '*' (no filter). index_name: Name of the Redis index (default: 'vector_index'). vector_field: Name of the indexed vector field (default: 'vector'). k: Number of nearest neighbors to return. return_fields: Additional fields to include in results (optional). Returns: A list of matched documents with their similarity score, or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| filter_expression | string | – | – |
| index_name | string | – | – |
| k | integer | – | – |
| query_vector | array | yes | – |
| return_fields | – | – | – |
| vector_field | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
info ~54
Get Redis server information and statistics. Args: section: The section of the info command (default, memory, cpu, etc.). Returns: A dictionary of server information or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| section | string | – | – |
No output schema declared.
No examples provided.
json_del ~74
Delete a JSON value from Redis at a given path. Args: name: The Redis key where the JSON document is stored. path: The JSON path to delete (default: root '$'). Returns: A success message or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | – |
| path | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
json_get ~75
Retrieve a JSON value from Redis at a given path. Args: name: The Redis key where the JSON document is stored. path: The JSON path to retrieve (default: root '$'). Returns: The retrieved JSON value or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | – |
| path | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
json_set ~126
Set a JSON value in Redis at a given path with an optional expiration time. Args: name: The Redis key where the JSON document is stored. path: The JSON path where the value should be set. value: The JSON value to store (as JSON string, or will be auto-converted). expire_seconds: Optional; time in seconds after which the key should expire. Returns: A success message or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| expire_seconds | – | – | – |
| name | string | yes | – |
| path | string | yes | – |
| value | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
llen ~22
Get the length of a Redis list.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | integer | yes | – |
No examples provided.
lpop ~26
Remove and return the first element from a Redis list.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
lpush ~42
Push a value onto the left of a Redis list and optionally set an expiration time.
| Name | Type | Req | Description |
|---|---|---|---|
| expire | – | – | – |
| name | string | yes | – |
| value | – | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
lrange ~57
Get elements from a Redis list within a specific range. Returns: str: A JSON string containing the list of elements or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | – |
| start | integer | yes | – |
| stop | integer | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
lrem ~89
Remove elements from a Redis list. Args: name: The name of the list count: Number of elements to remove (0 = all, positive = from head, negative = from tail) element: The element value to remove Returns: A string indicating the number of elements removed.
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | yes | – |
| element | – | yes | – |
| name | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
psubscribe ~50
Subscribe to Redis channels using a pattern. Args: pattern: The Redis channel pattern to subscribe to. Returns: A dictionary containing the subscription ID or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| pattern | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | – |
No examples provided.
publish ~60
Publish a message to a Redis channel. Args: channel: The Redis channel to publish to. message: The message to send. Returns: A success message or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| channel | string | yes | – |
| message | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
read_messages ~106
Read pending pub/sub messages for an existing subscription. Args: subscription_id: The ID returned by subscribe() or psubscribe(). timeout_ms: Time to wait for messages in milliseconds. Use 0 for non-blocking. max_messages: Maximum number of messages to return in one call. Returns: A dictionary containing the collected messages or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| max_messages | integer | – | – |
| subscription_id | string | yes | – |
| timeout_ms | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | – |
No examples provided.
rename ~111
Renames a Redis key from old_key to new_key. Args: old_key (str): The current name of the Redis key to rename. new_key (str): The new name to assign to the key. Returns: Dict[str, Any]: A dictionary containing the result of the operation. On success: {"status": "success", "message": "..."} On error: {"error": "..."}
| Name | Type | Req | Description |
|---|---|---|---|
| new_key | string | yes | – |
| old_key | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | – |
No examples provided.
rpop ~26
Remove and return the last element from a Redis list.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
rpush ~42
Push a value onto the right of a Redis list and optionally set an expiration time.
| Name | Type | Req | Description |
|---|---|---|---|
| expire | – | – | – |
| name | string | yes | – |
| value | – | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
sadd ~88
Add a value to a Redis set with an optional expiration time. Args: name: The Redis set key. value: The value to add to the set. expire_seconds: Optional; time in seconds after which the set should expire. Returns: A success message or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| expire_seconds | – | – | – |
| name | string | yes | – |
| value | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
scan_all_keys ~159
Scan and return ALL keys matching a pattern using multiple SCAN iterations. This function automatically handles the SCAN cursor iteration to collect all matching keys. It's safer than KEYS * for large databases but will still collect all results in memory. ⚠️ WARNING: With very large datasets (millions of keys), this may consume significant memory. For large-scale operations, consider using scan_keys() with manual iteration instead. Args: pattern: Pattern to match keys against (default is "*" for all keys). batch_size: Number of keys to scan per iteration (default 100). Returns: A list of all keys matching the pattern or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| batch_size | integer | – | – |
| pattern | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
scan_keys ~360
Scan keys in the Redis database using the SCAN command (non-blocking, production-safe). ⚠️ IMPORTANT: This returns PARTIAL results from one iteration. Use scan_all_keys() to get ALL matching keys, or call this function multiple times with the returned cursor until cursor becomes 0. The SCAN command iterates through the keyspace in small chunks, making it safe to use on large databases without blocking other operations. Args: pattern: Pattern to match keys against (default is "*" for all keys). Common patterns: "user:*", "cache:*", "*:123", etc. count: Hint for the number of keys to return per iteration (default 100). Redis may return more or fewer keys than this hint. cursor: The cursor position to start scanning from (0 to start from beginning). To continue scanning, use the cursor value returned from previous call. Returns: A dictionary containing: - 'cursor': Next cursor position (0 means scan is complete) - 'keys': List of keys found in this iteration (PARTIAL RESULTS) - 'total_scanned': Number of keys returned in this batch - 'scan_complete': Boolean indicating if scan is finished Or an error message if something goes wrong. Example usage: First call: scan_keys("user:*") -> returns cursor=1234, keys=[...], scan_complete=False Next call: scan_keys("user:*", cursor=1234) -> continues from where it left off Final call: returns cursor=0, scan_complete=True when done
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | – | – |
| cursor | integer | – | – |
| pattern | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
search_redis_documents ~233
Search Redis documentation and knowledge base to learn about Redis concepts and use cases. This tool exposes updated and curated documentation, and must be invoked every time the user wants to learn more in areas including: **Common Use Cases:** - Session Management: User session storage and management - Caching: Application-level and database query caching - Rate Limiting: API throttling and request limiting - Leaderboards: Gaming and ranking systems - Semantic Search: AI-powered similarity search - Agentic Workflows: AI agent state and memory management - RAG (Retrieval-Augmented Generation): Vector storage for AI applications - Real-time Analytics: Counters, metrics, and time-series data - Message Queues: Task queues and job processing - Geospatial: Location-based queries and proximity search Args: question: The question about Redis concepts, data structures, features, or use cases Returns: Union[List[Dict[str, Any]], Dict[str, Any]]: A list of documentation results from the API, or a dict with an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| question | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
set ~90
Set a Redis string value with an optional expiration time. Args: key (str): The key to set. value (str, bytes, int, float, dict): The value to store. expiration (int, optional): Expiration time in seconds. Returns: str: Confirmation message or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| expiration | – | – | – |
| key | string | yes | – |
| value | – | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_vector_in_hash ~104
Store a vector as a field in a Redis hash. Args: name: The Redis hash key. vector_field: The field name inside the hash. Unless specifically required, use the default field name vector: The vector (list of numbers) to store in the hash. Returns: True if the vector was successfully stored, False otherwise.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | – |
| vector | array | yes | – |
| vector_field | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
smembers ~48
Get all members of a Redis set. Args: name: The Redis set key. Returns: A list of values in the set or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
srem ~62
Remove a value from a Redis set. Args: name: The Redis set key. value: The value to remove from the set. Returns: A success message or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | – |
| value | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
subscribe ~52
Subscribe to a Redis channel and return a reusable subscription handle. Args: channel: The Redis channel to subscribe to. Returns: A dictionary containing the subscription ID or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| channel | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | – |
No examples provided.
type ~57
Returns the string representation of the type of the value stored at key Args: key (str): The key to check. Returns: str: The type of key, or none when key doesn't exist
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | – |
No examples provided.
unsubscribe ~56
Unsubscribe and close an existing pub/sub subscription. Args: subscription_id: The ID returned by subscribe() or psubscribe(). Returns: A dictionary describing the closed subscription or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| subscription_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | – |
No examples provided.
vector_search_hash ~161
Perform a KNN vector similarity search using Redis 8 or later version on vectors stored in hash data structures. Args: query_vector: List of floats to use as the query vector. index_name: Name of the Redis index. Unless specifically specified, use the default index name. vector_field: Name of the indexed vector field. Unless specifically required, use the default field name k: Number of nearest neighbors to return. return_fields: List of fields to return (optional). Returns: A list of matched documents or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| index_name | string | – | – |
| k | integer | – | – |
| query_vector | array | yes | – |
| return_fields | – | – | – |
| vector_field | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
xack ~89
Acknowledge entries that were processed by a consumer group. Args: key (str): The stream key. group_name (str): The consumer group name. entry_ids (List[str]): Entry IDs to acknowledge. Returns: str: Confirmation message or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| entry_ids | array | yes | – |
| group_name | string | yes | – |
| key | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
xadd ~94
Add an entry to a Redis stream with an optional expiration time. Args: key (str): The stream key. fields (dict): The fields and values for the stream entry. expiration (int, optional): Expiration time in seconds. Returns: str: The ID of the added entry or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| expiration | – | – | – |
| fields | object | yes | – |
| key | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
xdel ~68
Delete an entry from a Redis stream. Args: key (str): The stream key. entry_id (str): The ID of the entry to delete. Returns: str: Confirmation message or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| entry_id | string | yes | – |
| key | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
xgroup_create ~117
Create a consumer group for a Redis stream. Args: key (str): The stream key. group_name (str): The consumer group name. start_id (str, optional): Stream ID from which the group starts consuming. mkstream (bool, optional): Create the stream if it does not exist. Returns: str: Confirmation message or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| group_name | string | yes | – |
| key | string | yes | – |
| mkstream | boolean | – | – |
| start_id | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
xgroup_destroy ~67
Destroy a consumer group for a Redis stream. Args: key (str): The stream key. group_name (str): The consumer group name. Returns: str: Confirmation message or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| group_name | string | yes | – |
| key | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
xrange ~66
Read entries from a Redis stream. Args: key (str): The stream key. count (int, optional): Number of entries to retrieve. Returns: str: The retrieved stream entries or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | – | – |
| key | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
xreadgroup ~188
Read entries from a Redis stream using a consumer group. Args: key (str): The stream key. group_name (str): The consumer group name. consumer_name (str): The consumer name. count (int, optional): Maximum number of entries to retrieve. block_ms (int, optional): Maximum time to block waiting for entries. Use None for a non-blocking read. 0 is rejected because Redis treats BLOCK 0 as an indefinite wait. stream_id (str, optional): Stream ID to read from. Use ">" for new messages. Returns: str: The retrieved stream entries or an error message.
| Name | Type | Req | Description |
|---|---|---|---|
| block_ms | – | – | – |
| consumer_name | string | yes | – |
| count | integer | – | – |
| group_name | string | yes | – |
| key | string | yes | – |
| stream_id | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
What is the Redis MCP Server server?
Redis MCP Server is listed in the public MCP registry as io.github.redis/mcp-redis. Natural language interface designed for agentic applications to manage and search data in Redis. This page covers its PyPI package (redis-mcp-server).
Is the Redis MCP Server server safe to use?
Redis MCP Server scores 54 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Redis MCP Server server expose?
Redis MCP Server exposes 53 tools: hset, hget, hdel, hgetall, hexists, and 48 more. Their descriptions and schemas cost roughly 4,733 tokens of context every time the server is loaded.
Is the Redis MCP Server server still maintained?
Redis MCP Server is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.