Redis

Un servidor para interactuar con bases de datos Redis.

Documentación

Servidor MCP de Redis

smithery badge

Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona acceso a operaciones de base de datos Redis.

Redis Server MCP server

Estructura del Proyecto

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

Herramientas Disponibles

HerramientaTipoDescripciónEsquema de Entrada
hmsetComando de HashEstablecer múltiples campos de hash a múltiples valoreskey: string (Clave de hash)
fields: object (Pares de campo-valor a establecer)
hgetComando de HashObtener el valor de un campo de hashkey: string (Clave de hash)
field: string (Campo a obtener)
hgetallComando de HashObtener todos los campos y valores de un hashkey: string (Clave de hash)
scanComando de ClaveEscanear claves de Redis que coincidan con un patrónpattern: string (Patrón a coincidir, p. ej., "user:*")
count: number, opcional (Número de claves a devolver)
setComando de CadenaEstablecer valor de cadena con opciones opcionales NX y PXkey: string (Clave a establecer)
value: string (Valor a establecer)
nx: boolean, opcional (Solo establecer si no existe)
px: number, opcional (Caducidad en milisegundos)
getComando de CadenaObtener valor de cadenakey: string (Clave a obtener)
delComando de ClaveEliminar una clavekey: string (Clave a eliminar)
zaddComando de Conjunto OrdenadoAñadir uno o más miembros a un conjunto ordenadokey: string (Clave de conjunto ordenado)
members: array de objetos con score: number y value: string
zrangeComando de Conjunto OrdenadoDevolver un rango de miembros de un conjunto ordenado por índicekey: string (Clave de conjunto ordenado)
start: number (Índice de inicio)
stop: number (Índice de fin)
withScores: boolean, opcional (Incluir puntuaciones en la salida)
zrangebyscoreComando de Conjunto OrdenadoDevolver miembros de un conjunto ordenado con puntuaciones entre mínimo y máximokey: string (Clave de conjunto ordenado)
min: number (Puntuación mínima)
max: number (Puntuación máxima)
withScores: boolean, opcional (Incluir puntuaciones en la salida)
zremComando de Conjunto OrdenadoEliminar uno o más miembros de un conjunto ordenadokey: string (Clave de conjunto ordenado)
members: array de strings (Miembros a eliminar)
saddComando de ConjuntoAñadir uno o más miembros a un conjuntokey: string (Clave de conjunto)
members: array de strings (Miembros a añadir al conjunto)
smembersComando de ConjuntoObtener todos los miembros de un conjuntokey: string (Clave de conjunto)

Uso

Configure en su cliente MCP (p. ej., Claude Desktop, Cline):

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

Argumentos de Línea de Comandos

  • --redis-host: Host del servidor Redis (predeterminado: localhost)
  • --redis-port: Puerto del servidor Redis (predeterminado: 6379)

Instalación mediante Smithery

Para instalar Redis Server para Claude Desktop automáticamente mediante Smithery:

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

Desarrollo

Para añadir una nueva herramienta de Redis:

  1. Cree una nueva clase de herramienta en src/tools/ que extienda RedisTool
  2. Defina la interfaz de la herramienta en src/interfaces/types.ts
  3. Registre la herramienta en src/tools/tool_registry.ts

Ejemplo de implementación de herramienta:

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

Ejecución de evaluaciones

El paquete de evaluaciones carga un cliente mcp que luego ejecuta el archivo index.ts, por lo que no es necesario reconstruir entre pruebas. Puede cargar variables de entorno prefijando el comando npx. La documentación completa se puede encontrar aquí.

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

Licencia

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