Fire in da houseTop Tip:Paying $100+ per month for Perplexity, MidJourney, Runway, ChatGPT and other tools is crazy - get all your AI tools in one site starting at $15 per month with Galaxy AI Fire in da houseCheck it out free

redis-mcp

MCP.Pizza Chef: farhankaz

The Redis MCP Server is a specialized Model Context Protocol (MCP) server that exposes Redis database operations to LLMs and AI workflows. It provides structured, real-time access to Redis commands such as GET, SET, HGET, HGETALL, DEL, SCAN, and more, enabling models to interact with Redis data stores efficiently. This server acts as a bridge between Redis and AI models, allowing them to query, update, and manage Redis data within their context, facilitating advanced AI-driven applications that require fast, scalable key-value data access. Its modular design includes a registry of Redis tools implemented in TypeScript, supporting extensibility and ease of integration in AI-enhanced environments.

Use This MCP server To

Query Redis key-value data in real-time Update Redis hashes and keys programmatically Scan Redis keys for data discovery Delete Redis keys via AI-driven commands Integrate Redis data into AI workflows Manage Redis data stores from LLMs Automate Redis operations in AI applications

README

Redis MCP Server

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

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

License

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

redis-mcp FAQ

How do I connect the Redis MCP server to my Redis instance?
Configure the Redis MCP server with your Redis connection details (host, port, credentials) in its settings or environment variables before starting the server.
What Redis commands does the Redis MCP server support?
It supports common Redis operations including GET, SET, HGET, HGETALL, DEL, SCAN, and others, enabling comprehensive data manipulation.
Can the Redis MCP server handle large datasets efficiently?
Yes, it uses Redis's native commands optimized for performance, allowing efficient handling of large keyspaces and data volumes.
Is the Redis MCP server compatible with multiple LLM providers?
Yes, it is designed to work with any MCP client and LLM provider such as OpenAI, Anthropic Claude, and Google Gemini.
How do I extend the Redis MCP server with custom Redis commands?
The server's modular TypeScript codebase allows adding new tools by implementing additional Redis command handlers and registering them in the tool registry.
Does the Redis MCP server support secure connections to Redis?
Yes, it supports secure Redis connections including TLS/SSL configurations as per your Redis deployment.
How is error handling managed in the Redis MCP server?
The server provides structured error responses for Redis command failures, enabling clients to handle exceptions gracefully.
Can I use the Redis MCP server in production environments?
Yes, it is designed for robust, scalable use in production with proper configuration and monitoring.