You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

redis-mcp

Package Overview
Dependencies
Maintainers
0
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

redis-mcp

Redis MCP server providing tools and resources for interacting with Redis databases through the Model Context Protocol

0.0.4
latest
Source
npmnpm
Version published
Weekly downloads
358
-7.97%
Maintainers
0
Weekly downloads
 
Created
Source

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

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)

Development

To add a new Redis tool:

  • Create a new tool class in src/tools/ extending RedisTool
  • Define the tool's interface in src/interfaces/types.ts
  • 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

Keywords

mcp

FAQs

Package last updated on 06 Jan 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts