Skip to Content
MCP ServersCommunityRedis MCP Server

Redis MCP Server

View original on GitHub 

smithery badge

A Model Context Protocol (MCP) server that provides access to Redis database operations.

Redis Server MCP server

Project Structure

src/ β”œβ”€β”€ interfaces/ β”‚ └── types.ts # Shared TypeScript interfaces and types β”œβ”€β”€ tools/ β”‚ β”œβ”€β”€ base_tool.ts # Abstract base class for Redis tools β”‚ β”œβ”€β”€ tool_registry.ts # Registry managing all available Redis tools β”‚ β”œβ”€β”€ hmset_tool.ts # HMSET Redis operation β”‚ β”œβ”€β”€ hget_tool.ts # HGET Redis operation β”‚ β”œβ”€β”€ hgetall_tool.ts # HGETALL Redis operation β”‚ β”œβ”€β”€ scan_tool.ts # SCAN Redis operation β”‚ β”œβ”€β”€ set_tool.ts # SET Redis operation β”‚ β”œβ”€β”€ get_tool.ts # GET Redis operation β”‚ β”œβ”€β”€ del_tool.ts # DEL Redis operation β”‚ β”œβ”€β”€ zadd_tool.ts # ZADD Redis operation β”‚ β”œβ”€β”€ zrange_tool.ts # ZRANGE Redis operation β”‚ β”œβ”€β”€ zrangebyscore_tool.ts # ZRANGEBYSCORE Redis operation β”‚ └── zrem_tool.ts # ZREM Redis operation └── redis_server.ts # Main server implementation

Available Tools

ToolTypeDescriptionInput Schema
hmsetHash CommandSet multiple hash fields to multiple valueskey: string (Hash key)
fields: object (Field-value pairs to set)
hgetHash CommandGet the value of a hash fieldkey: string (Hash key)
field: string (Field to get)
hgetallHash CommandGet all fields and values in a hashkey: string (Hash key)
scanKey CommandScan Redis keys matching a patternpattern: string (Pattern to match, e.g., β€œuser:*β€œ)
count: number, optional (Number of keys to return)
setString CommandSet string value with optional NX and PX optionskey: string (Key to set)
value: string (Value to set)
nx: boolean, optional (Only set if not exists)
px: number, optional (Expiry in milliseconds)
getString CommandGet string valuekey: string (Key to get)
delKey CommandDelete a keykey: string (Key to delete)
zaddSorted Set CommandAdd one or more members to a sorted setkey: string (Sorted set key)
members: array of objects with score: number and value: string
zrangeSorted Set CommandReturn a range of members from a sorted set by indexkey: string (Sorted set key)
start: number (Start index)
stop: number (Stop index)
withScores: boolean, optional (Include scores in output)
zrangebyscoreSorted Set CommandReturn members from a sorted set with scores between min and maxkey: string (Sorted set key)
min: number (Minimum score)
max: number (Maximum score)
withScores: boolean, optional (Include scores in output)
zremSorted Set CommandRemove one or more members from a sorted setkey: string (Sorted set key)
members: array of strings (Members to remove)
saddSet CommandAdd one or more members to a setkey: string (Set key)
members: array of strings (Members to add to the set)
smembersSet CommandGet all members in a setkey: string (Set key)

Usage

Configure in your MCP client (e.g., Claude Desktop, Cline):

{ "mcpServers": { "redis": { "command": "npx", "args": ["redis-mcp", "--redis-host", "localhost", "--redis-port", "6379"], "disabled": false } } }

Command Line Arguments

  • --redis-host: Redis server host (default: localhost)
  • --redis-port: Redis server port (default: 6379)

Installing via Smithery

To install Redis Server for Claude Desktop automatically via Smithery :

npx -y @smithery/cli install redis-mcp --client claude

Development

To add a new Redis tool:

  1. Create a new tool class in src/tools/ extending RedisTool
  2. Define the tool’s interface in src/interfaces/types.ts
  3. Register the tool in src/tools/tool_registry.ts

Example tool implementation:

export class MyTool extends RedisTool { name = 'mytool'; description = 'Description of what the tool does'; inputSchema = { type: 'object', properties: { // Define input parameters }, required: ['requiredParam'] }; validateArgs(args: unknown): args is MyToolArgs { // Implement argument validation } async execute(args: unknown, client: RedisClientType): Promise<ToolResponse> { // Implement tool logic } }

License

MIT: https://opensource.org/license/mit 

Last updated on