redis-mcp

0.0.4 • Public • Published

Redis MCP Server

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

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

Tool Type Description Input Schema
hmset Hash Command Set multiple hash fields to multiple values key: string (Hash key)
fields: object (Field-value pairs to set)
hget Hash Command Get the value of a hash field key: string (Hash key)
field: string (Field to get)
hgetall Hash Command Get all fields and values in a hash key: string (Hash key)
scan Key Command Scan Redis keys matching a pattern pattern: string (Pattern to match, e.g., "user:*")
count: number, optional (Number of keys to return)
set String Command Set string value with optional NX and PX options key: string (Key to set)
value: string (Value to set)
nx: boolean, optional (Only set if not exists)
px: number, optional (Expiry in milliseconds)
get String Command Get string value key: string (Key to get)
del Key Command Delete a key key: string (Key to delete)
zadd Sorted Set Command Add one or more members to a sorted set key: string (Sorted set key)
members: array of objects with score: number and value: string
zrange Sorted Set Command Return a range of members from a sorted set by index key: string (Sorted set key)
start: number (Start index)
stop: number (Stop index)
withScores: boolean, optional (Include scores in output)
zrangebyscore Sorted Set Command Return members from a sorted set with scores between min and max key: string (Sorted set key)
min: number (Minimum score)
max: number (Maximum score)
withScores: boolean, optional (Include scores in output)
zrem Sorted Set Command Remove one or more members from a sorted set key: string (Sorted set key)
members: array of strings (Members to remove)
sadd Set Command Add one or more members to a set key: string (Set key)
members: array of strings (Members to add to the set)
smembers Set Command Get all members in a set key: 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)

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

Readme

Keywords

Package Sidebar

Install

npm i redis-mcp

Weekly Downloads

249

Version

0.0.4

License

ISC

Unpacked Size

70.5 kB

Total Files

44

Last publish

Collaborators

  • farhankaz2018