Redis
Un servidor para interactuar con bases de datos Redis.
GitHub
6
Prueba este MCPPatrocinadoDocumentación
Servidor MCP de Redis
Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona acceso a operaciones de base de datos Redis.
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
| Herramienta | Tipo | Descripción | Esquema de Entrada |
|---|---|---|---|
| hmset | Comando de Hash | Establecer múltiples campos de hash a múltiples valores | key: string (Clave de hash)fields: object (Pares de campo-valor a establecer) |
| hget | Comando de Hash | Obtener el valor de un campo de hash | key: string (Clave de hash)field: string (Campo a obtener) |
| hgetall | Comando de Hash | Obtener todos los campos y valores de un hash | key: string (Clave de hash) |
| scan | Comando de Clave | Escanear claves de Redis que coincidan con un patrón | pattern: string (Patrón a coincidir, p. ej., "user:*")count: number, opcional (Número de claves a devolver) |
| set | Comando de Cadena | Establecer valor de cadena con opciones opcionales NX y PX | key: string (Clave a establecer)value: string (Valor a establecer)nx: boolean, opcional (Solo establecer si no existe)px: number, opcional (Caducidad en milisegundos) |
| get | Comando de Cadena | Obtener valor de cadena | key: string (Clave a obtener) |
| del | Comando de Clave | Eliminar una clave | key: string (Clave a eliminar) |
| zadd | Comando de Conjunto Ordenado | Añadir uno o más miembros a un conjunto ordenado | key: string (Clave de conjunto ordenado)members: array de objetos con score: number y value: string |
| zrange | Comando de Conjunto Ordenado | Devolver un rango de miembros de un conjunto ordenado por índice | key: string (Clave de conjunto ordenado)start: number (Índice de inicio)stop: number (Índice de fin)withScores: boolean, opcional (Incluir puntuaciones en la salida) |
| zrangebyscore | Comando de Conjunto Ordenado | Devolver miembros de un conjunto ordenado con puntuaciones entre mínimo y máximo | key: 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) |
| zrem | Comando de Conjunto Ordenado | Eliminar uno o más miembros de un conjunto ordenado | key: string (Clave de conjunto ordenado)members: array de strings (Miembros a eliminar) |
| sadd | Comando de Conjunto | Añadir uno o más miembros a un conjunto | key: string (Clave de conjunto)members: array de strings (Miembros a añadir al conjunto) |
| smembers | Comando de Conjunto | Obtener todos los miembros de un conjunto | key: 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:
- Cree una nueva clase de herramienta en
src/tools/que extiendaRedisTool - Defina la interfaz de la herramienta en
src/interfaces/types.ts - 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