mcp-server-redis
Provides tools for interacting with Redis, including data operations (GET, SET, UPDATE, DELETE) and key management (CREATE, DROP, EXISTS, INFO), with permission control and operation logging.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-server-redis get the value for key user:123"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Redis Server
A MCP Redis server with data operations, permission control and operation logs.
Features
✅ Redis data operations (GET, SET, UPDATE, DELETE)
✅ Key management (CREATE, DROP, EXISTS, INFO)
✅ Dynamic tool list based on permissions
✅ Operation logging
✅ Connection management
✅ Auto-reconnection mechanism
✅ Health checks
✅ Error handling and recovery
Related MCP server: mcp-database
Installation
Global Installation (Recommended)
npm install -g @liangshanli/mcp-server-redisLocal Installation
npm install @liangshanli/mcp-server-redisFrom Source
git clone https://github.com/liliangshan/mcp-server-redis.git
cd mcp-server-redis
npm installConfiguration
Set environment variables:
export HOST=localhost
export PORT=6379
export PASSWORD=your_password
export ALLOW_INSERT=true
export ALLOW_UPDATE=true
export ALLOW_DELETE=true
export ALLOW_CREATE=true
export ALLOW_DROP=trueUsage
1. Direct Run (Global Installation)
mcp-server-redis2. Using npx (Recommended)
npx @liangshanli/mcp-server-redis3. Direct Start (Source Installation)
npm start4. Managed Start (Recommended for Production)
npm run start-managedManaged start provides:
Auto-restart (up to 10 times)
Error recovery
Process management
Logging
5. Development Mode
npm run devEditor Integration
Cursor Editor Configuration
Create
.cursor/mcp.jsonfile in your project root:
{
"mcpServers": {
"redis": {
"command": "npx",
"args": ["@liangshanli/mcp-server-redis"],
"env": {
"HOST": "your_host",
"PORT": "6379",
"PASSWORD": "your_password",
"ALLOW_INSERT": "true",
"ALLOW_UPDATE": "true",
"ALLOW_DELETE": "true",
"ALLOW_CREATE": "true",
"ALLOW_DROP": "true"
}
}
}
}VS Code Configuration
Install the MCP extension for VS Code
Create
.vscode/settings.jsonfile:
{
"mcp.servers": {
"redis": {
"command": "npx",
"args": ["@liangshanli/mcp-server-redis"],
"env": {
"HOST": "your_host",
"PORT": "6379",
"PASSWORD": "your_password",
"ALLOW_INSERT": "true",
"ALLOW_UPDATE": "true",
"ALLOW_DELETE": "true",
"ALLOW_CREATE": "true",
"ALLOW_DROP": "true"
}
}
}
}As MCP Server
The server communicates with MCP clients via stdin/stdout after startup:
{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2025-06-18"}}Available Tools
get_data: Get data by key
{ "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": { "name": "get_data", "arguments": { "key": "user:123" } } }set_data: Set/insert data for a key
{ "jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": { "name": "set_data", "arguments": { "key": "user:123", "value": "John Doe", "ttl": 3600 } } }list_keys: List Redis keys with pattern matching
{ "jsonrpc": "2.0", "id": 4, "method": "tools/call", "params": { "name": "list_keys", "arguments": { "pattern": "user:*", "limit": 10 } } }
Dynamic Tool List
The server dynamically shows/hides tools based on environment variables:
Read-Only Tools (Always Available)
get_data- Get data by keylist_keys- List keys with pattern matchingexists_key- Check if key existsget_key_info- Get key informationget_redis_info- Get Redis server informationget_database_stats- Get database statisticsget_memory_info- Get memory usage informationtest_connection- Test Redis connectionget_operation_logs- Get operation logscheck_permissions- Check current permissionsset_ttl- Set time to live for a keyremove_ttl- Remove time to live from a key
Conditional Tools (Based on Permissions)
set_data- RequiresALLOW_INSERT=trueupdate_data- RequiresALLOW_UPDATE=truedelete_data- RequiresALLOW_DELETE=truecreate_key- RequiresALLOW_CREATE=truedrop_key- RequiresALLOW_DROP=truerename_key- RequiresALLOW_CREATE=trueANDALLOW_DROP=true
Connection Management Features
Auto-creation: Automatically creates Redis connection on
notifications/initializedHealth checks: Checks connection status every 5 minutes
Auto-reconnection: Automatically reconnects when connection fails
Connection reuse: Uses connection pool for better performance
Graceful shutdown: Properly closes connections when server shuts down
Logging
Log file location: ./logs/mcp-redis.log
Logged content:
All requests and responses
Redis operation records
Error messages
Connection status changes
Error Handling
Individual request errors don't affect the entire server
Connection errors are automatically recovered
Process exceptions are automatically restarted (managed mode)
Environment Variables
Variable | Default | Description |
HOST | localhost | Redis host address |
PORT | 6379 | Redis port |
PASSWORD | Redis password | |
ALLOW_INSERT | true | Whether to allow insert operations. Set to 'false' to disable |
ALLOW_UPDATE | true | Whether to allow update operations. Set to 'false' to disable |
ALLOW_DELETE | true | Whether to allow delete operations. Set to 'false' to disable |
ALLOW_CREATE | true | Whether to allow create key operations. Set to 'false' to disable |
ALLOW_DROP | true | Whether to allow drop/delete key operations. Set to 'false' to disable |
MCP_LOG_DIR | ./logs | Log directory |
MCP_LOG_FILE | mcp-redis.log | Log filename |
Development
Project Structure
mcp-server-redis/
├── src/
│ ├── server-final.js # Main server file
│ └── utils/ # Utility modules
├── bin/
│ └── cli.js # CLI entry point
├── start-server.js # Managed startup script
├── package.json
└── README.mdTesting
npm testQuick Start
1. Install Package
npm install -g @liangshanli/mcp-server-redis2. Configure Environment Variables
export HOST=localhost
export PORT=6379
export PASSWORD=your_password
export ALLOW_INSERT=true
export ALLOW_UPDATE=true
export ALLOW_DELETE=true
export ALLOW_CREATE=true
export ALLOW_DROP=truePermission Control Examples:
# Default: Enable all operations
export ALLOW_INSERT=true
export ALLOW_UPDATE=true
export ALLOW_DELETE=true
export ALLOW_CREATE=true
export ALLOW_DROP=true
# Read-only mode (safe mode)
export ALLOW_INSERT=false
export ALLOW_UPDATE=false
export ALLOW_DELETE=false
export ALLOW_CREATE=false
export ALLOW_DROP=false
# Allow insert and update, but disable delete operations
export ALLOW_INSERT=true
export ALLOW_UPDATE=true
export ALLOW_DELETE=false
export ALLOW_CREATE=true
export ALLOW_DROP=false
# Allow everything except DROP operations
export ALLOW_INSERT=true
export ALLOW_UPDATE=true
export ALLOW_DELETE=true
export ALLOW_CREATE=true
export ALLOW_DROP=false3. Run Server
mcp-server-redisLicense
MIT
Available Tools
18 toolscheck_permissionsA
Check Redis permissions for insert, update, delete, create and drop operations
Inputs: no named parameters.
create_keyC
Create a new key in Redis
Inputs: key (required), ttl, type, value.
delete_dataC
Delete data by key from Redis
Inputs: key (required).
drop_keyB
Delete a key from Redis
Inputs: key (required).
exists_keyA
Check if a key exists in Redis
Inputs: key (required).
get_dataB
Get data by key from Redis
Inputs: key (required).
get_database_statsB
Get Redis database statistics
Inputs: no named parameters.
get_key_infoC
Get detailed information about a key
Inputs: key (required).
get_memory_infoA
Get Redis memory usage information
Inputs: no named parameters.
get_operation_logsC
Get operation logs
Inputs: limit, offset.
get_redis_infoB
Get Redis server information
Inputs: no named parameters.
list_keysB
List Redis keys with optional pattern matching
Inputs: limit, offset, pattern.
remove_ttlB
Remove time to live from a key
Inputs: key (required).
rename_keyB
Rename a key in Redis
Inputs: newKey (required), oldKey (required).
set_dataC
Set/insert data for a key in Redis
Inputs: key (required), value (required), ttl, type.
set_ttlB
Set time to live for a key
Inputs: key (required), ttl (required).
test_connectionA
Test Redis connection
Inputs: no named parameters.
update_dataC
Update existing data for a key in Redis
Inputs: key (required), value (required), ttl.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 18 tools
Several tools overlap significantly: set_data/create_key/update_data all manipulate key values, and delete_data/drop_key are essentially the same. The distinction between get_data, get_key_info, and exists_key may also confuse agents.
Most tools follow a verb_noun snake_case pattern, but the inconsistent use of 'data' vs 'key' for the same resource (e.g., set_data vs create_key, delete_data vs drop_key) breaks a predictable convention.
With 18 tools, the server is on the heavier side. While many are justified for Redis management, there is enough redundancy that the count feels slightly bloated.
The toolset covers core Redis CRUD, key lifecycle (rename, TTL), server info, and maintenance operations. Minor gaps like batch operations or type-specific commands exist, but they are not critical for basic usage.
Related MCP Connectors
MCP server for IPv4 geolocation lookup with Chinese output, supports batch queries.
MCP server for real-time Chinese internet hot-search and trending boards across major platforms.
MCP server with quote and live cryptocurrency price tools, local and cloud-deployed transports.
A MCP server built for developers enabling Git based project management with project and personal…
Related MCP Servers
AlicenseBqualityBmaintenanceThe official Redis MCP Server is a natural language interface designed for agentic applications to efficiently manage and search data in Redis.533,039 PyPI642MIT- AlicenseNot gradedqualityDmaintenanceMCP server for connecting to databases (PostgreSQL, MySQL, SQL Server, Redis) enabling SQL queries, table exploration, and Redis key-value operations.1MIT
- AlicenseBqualityDmaintenanceMCP server that exposes Redis API to AI models44MIT
- FlicenseNot gradedqualityDmaintenanceMCP server for Redis interaction with dynamic connection setup and management.-