Skip to main content
Glama
Redis MCP Server

Redis MCP Server

by farhankaz

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

Related MCP server: Redis MCP

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)

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
  }
}

Running evals

The evals package loads an mcp client that then runs the index.ts file, so there is no need to rebuild between tests. You can load environment variables by prefixing the npx command. Full documentation can be found here.

OPENAI_API_KEY=your-key  npx mcp-eval src/evals/evals.ts src/tools/zrangebyscore_tool.ts

License

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

Available Tools

13 tools
delC

Delete a key

Inputs: key (required).

getD

Get string value

Inputs: key (required).

hgetC

Get the value of a hash field

Inputs: field (required), key (required).

hgetallC

Get all the fields and values in a hash

Inputs: key (required).

hmsetC

Set multiple hash fields to multiple values

Inputs: fields (required), key (required).

saddC

Add one or more members to a set

Inputs: key (required), members (required).

scanC

Scan Redis keys matching a pattern

Inputs: pattern (required), count.

setC

Set string value with optional NX (only if not exists) and PX (expiry in milliseconds) options

Inputs: key (required), value (required), nx, px.

smembersC

Get all members in a set

Inputs: key (required).

zaddC

Add one or more members to a sorted set

Inputs: key (required), members (required).

zrangeC

Return a range of members from a sorted set by index

Inputs: key (required), start (required), stop (required), withScores.

zrangebyscoreC

Return members from a sorted set with scores between min and max

Inputs: key (required), max (required), min (required), withScores.

zremC

Remove one or more members from a sorted set

Inputs: key (required), members (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3/5.0

    Scored across 13 tools

    Disambiguation4/5

    Most tools have clearly distinct purposes targeting different Redis data types and operations, with minimal overlap. However, 'get' and 'set' for strings versus 'hget' and 'hmset' for hashes follow similar patterns but are differentiated by the 'h' prefix, which could cause minor confusion for agents unfamiliar with Redis naming conventions.

    Naming Consistency5/5

    The tool names are highly consistent, following Redis command conventions with lowercase, concise verb-based names (e.g., 'get', 'set', 'del', 'sadd', 'zadd'). All tools adhere to this pattern without mixing styles, making them predictable and easy to interpret.

    Tool Count5/5

    With 13 tools, this server is well-scoped for Redis operations, covering key data types (strings, hashes, sets, sorted sets) and essential commands. The count is appropriate, providing a focused set without being overwhelming or too sparse for the domain.

    Completeness4/5

    The tool set offers strong coverage for core Redis operations, including CRUD-like actions for multiple data types and scanning. Minor gaps exist, such as missing list operations (e.g., 'lpush', 'lrange') and transaction commands, but agents can still handle many common workflows effectively.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      F
      maintenance
      Provides access to Redis databases. This server enables LLMs to interact with Redis key-value stores through a set of standardized tools.
      179 npm
      30
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      Enables AI assistants to perform comprehensive Redis database operations including managing strings, hashes, lists, sets, sorted sets, TTL management, and data backup/restore. Supports secure connections and provides batch operations for efficient Redis interaction through natural language.
      34
      17 npm
      2
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      Provides comprehensive Redis database operations supporting all major data types (strings, lists, sets, hashes, sorted sets) with full CRUD functionality through natural language commands.
      9
      6 npm
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      A Model Context Protocol (MCP) server for Redis. Connect to any Redis instance and execute queries through AI assistants.
      3
      MIT