OAuthBringer/redis-mcp
3.2
If you are the rightful owner of redis-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A Model Context Protocol (MCP) server for Redis operations built with FastMCP.
Tools
7
Resources
0
Prompts
0
Redis MCP Server
A Model Context Protocol (MCP) server for Redis operations built with FastMCP.
Features
- Core Redis operations: get, set, delete, list
- Bulk operations: mget, mset
- Pattern-based key scanning
- Connection pooling for efficient Redis access
- Multiple transport support (stdio, SSE, streamable-http)
- Environment-based configuration
- Type hints and comprehensive error handling
Installation
From PyPI
pip install redis-mcp
Or using uv:
uv tool install redis-mcp
From Source
# Clone the repository
git clone https://github.com/yourusername/redis-mcp.git
cd redis-mcp
# Create and activate a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install the package
pip install -e .
Configuration
The server can be configured via environment variables:
REDIS_HOST
: Redis server hostname (default: localhost)REDIS_PORT
: Redis server port (default: 6379)REDIS_DB
: Redis database number (default: 0)REDIS_PASSWORD
: Redis password (optional)REDIS_USERNAME
: Redis username (optional)
Usage
As a CLI Tool
# Using stdio transport (default)
redis-mcp
# Using SSE transport
redis-mcp --transport sse
# With custom Redis connection
redis-mcp --host redis.example.com --port 6380 --db 1
In Claude Desktop
Add to your claude_desktop_config.json
:
{
"mcpServers": {
"redis": {
"command": "uvx",
"args": ["redis-mcp"],
"env": {
"REDIS_HOST": "localhost",
"REDIS_PORT": "6379"
}
}
}
}
Available Tools
- get: Retrieve a value by key
- set: Store a key-value pair with optional expiry and conditions
- delete: Remove one or more keys
- list: List keys matching a pattern
- mget: Get multiple values in one operation
- mset: Set multiple key-value pairs in one operation
- scan: Iterate through keys matching a pattern without blocking
Example Usage
from fastmcp import Client
async def main():
async with Client("http://localhost:8000/sse") as client:
# Set a value
await client.call_tool("set", {"key": "user:123", "value": "John Doe"})
# Get a value
result = await client.call_tool("get", {"key": "user:123"})
print(result) # "John Doe"
# List keys
keys = await client.call_tool("list", {"pattern": "user:*"})
print(keys) # ["user:123"]
Development
Setup
# Install development dependencies
pip install -e ".[dev]"
Running Tests
pytest
Code Quality
# Format code
black .
isort .
# Type checking
mypy .
# Linting
ruff check .
Requirements
- Python 3.10+
- Redis server
- FastMCP 2.3.3+
License
MIT