Redis
Um servidor para interagir com bancos de dados Redis.
GitHub
6
Experimente este MCPPatrocinadoDocumentação
Servidor MCP Redis
Um servidor Model Context Protocol (MCP) que fornece acesso a operações de banco de dados Redis.
Estrutura do Projeto
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
Ferramentas Disponíveis
| Ferramenta | Tipo | Descrição | Esquema de Entrada |
|---|---|---|---|
| hmset | Comando de Hash | Define múltiplos campos de hash com múltiplos valores | key: string (chave do hash)fields: objeto (pares campo-valor a definir) |
| hget | Comando de Hash | Obtém o valor de um campo de hash | key: string (chave do hash)field: string (campo a obter) |
| hgetall | Comando de Hash | Obtém todos os campos e valores de um hash | key: string (chave do hash) |
| scan | Comando de Chave | Escaneia chaves Redis que correspondem a um padrão | pattern: string (padrão a corresponder, ex.: "user:*")count: número, opcional (quantidade de chaves a retornar) |
| set | Comando de String | Define valor de string com opções opcionais NX e PX | key: string (chave a definir)value: string (valor a definir)nx: booleano, opcional (definir apenas se não existir)px: número, opcional (expiração em milissegundos) |
| get | Comando de String | Obtém valor de string | key: string (chave a obter) |
| del | Comando de Chave | Exclui uma chave | key: string (chave a excluir) |
| zadd | Comando de Conjunto Ordenado | Adiciona um ou mais membros a um conjunto ordenado | key: string (chave do conjunto ordenado)members: array de objetos com score: número e value: string |
| zrange | Comando de Conjunto Ordenado | Retorna um intervalo de membros de um conjunto ordenado por índice | key: string (chave do conjunto ordenado)start: número (índice inicial)stop: número (índice final)withScores: booleano, opcional (incluir pontuações na saída) |
| zrangebyscore | Comando de Conjunto Ordenado | Retorna membros de um conjunto ordenado com pontuações entre mínimo e máximo | key: string (chave do conjunto ordenado)min: número (pontuação mínima)max: número (pontuação máxima)withScores: booleano, opcional (incluir pontuações na saída) |
| zrem | Comando de Conjunto Ordenado | Remove um ou mais membros de um conjunto ordenado | key: string (chave do conjunto ordenado)members: array de strings (membros a remover) |
| sadd | Comando de Conjunto | Adiciona um ou mais membros a um conjunto | key: string (chave do conjunto)members: array de strings (membros a adicionar ao conjunto) |
| smembers | Comando de Conjunto | Obtém todos os membros de um conjunto | key: string (chave do conjunto) |
Uso
Configure no seu cliente MCP (ex.: Claude Desktop, Cline):
{
"mcpServers": {
"redis": {
"command": "npx",
"args": ["redis-mcp", "--redis-host", "localhost", "--redis-port", "6379"],
"disabled": false
}
}
}
Argumentos de Linha de Comando
--redis-host: host do servidor Redis (padrão: localhost)--redis-port: porta do servidor Redis (padrão: 6379)
Instalação via Smithery
Para instalar o Redis Server para Claude Desktop automaticamente via Smithery:
npx -y @smithery/cli install redis-mcp --client claude
Desenvolvimento
Para adicionar uma nova ferramenta Redis:
- Crie uma nova classe de ferramenta em
src/tools/estendendoRedisTool - Defina a interface da ferramenta em
src/interfaces/types.ts - Registre a ferramenta em
src/tools/tool_registry.ts
Exemplo de implementação de ferramenta:
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
}
}
Executando avaliações
O pacote de avaliações carrega um cliente mcp que então executa o arquivo index.ts, portanto não há necessidade de recompilar entre testes. Você pode carregar variáveis de ambiente prefixando o comando npx. Documentação completa pode ser encontrada aqui.
OPENAI_API_KEY=your-key npx mcp-eval src/evals/evals.ts src/tools/zrangebyscore_tool.ts