Skip to main content
Glama
efeabio

MCP Redis Server

by efeabio
README.md
# MCP Redis Server

Servidor MCP (Model Context Protocol) para interação com Redis, com sistema de conexão dinâmica e interativa.

## Características

- **Conexão Dinâmica**: Não requer configuração prévia de conexão
- **Tools Interativas**: Solicita dados de conexão quando necessário
- **Gerenciamento de Estado**: Verifica conexão antes de executar operações
- **Suporte Completo ao Redis**: Todas as operações principais do Redis

## Como Usar

### 1. Iniciar o Servidor

```bash
./start-mcp.sh
```

### 2. Configurar Conexão

**IMPORTANTE**: Antes de usar qualquer tool do Redis, você DEVE configurar uma conexão usando:

```python
# Tool: redis_configure_connection
# Parâmetros:
# - host: Host do Redis (ex: localhost, 127.0.0.1)
# - port: Porta do Redis (padrão: 6379)
# - password: Senha do Redis (deixe vazio se não houver)
# - database: Database inicial (0-15, padrão: 0)

# Exemplo:
await redis_configure_connection(
    host="localhost",
    port=6379,
    password="",
    database=0
)
```

### 3. Verificar Status da Conexão

```python
# Verificar se está conectado
await redis_check_connection()

# Obter status detalhado
await redis_get_connection_status()
```

### 4. Usar as Tools do Redis

Após configurar a conexão, você pode usar todas as tools disponíveis:

- **Informações do Servidor**: `redis_get_server_info()`
- **Estatísticas de Memória**: `redis_get_memory_stats()`
- **Informações do Keyspace**: `redis_get_keyspace_info()`
- **Estatísticas Gerais**: `redis_get_stats()`
- **Informações dos Clientes**: `redis_get_clients_info()`
- **Configurações**: `redis_get_config()`
- **Gerenciamento de Chaves**: `redis_list_keys()`, `redis_get_key_type()`, etc.
- **Gerenciamento de Databases**: `redis_select_database()`, `redis_create_key()`, etc.

## Fluxo de Uso Recomendado

1. **Iniciar o servidor MCP**
2. **Configurar conexão** com `redis_configure_connection()`
3. **Verificar status** com `redis_check_connection()`
4. **Usar as tools** conforme necessário
5. **Verificar conexão** periodicamente se necessário

## Tratamento de Erros

Todas as tools verificam automaticamente se há uma conexão ativa antes de executar. Se não houver conexão, você receberá um erro claro indicando que deve usar `redis_configure_connection()` primeiro.

## Exemplo de Uso Completo

```python
# 1. Configurar conexão
connection_result = await redis_configure_connection(
    host="localhost",
    port=6379,
    password="",
    database=0
)

# 2. Verificar status
status = await redis_check_connection()

# 3. Usar tools
if status["connected"]:
    # Obter informações do servidor
    server_info = await redis_get_server_info()
    
    # Listar chaves
    keys = await redis_list_keys(pattern="*", limit=10)
    
    # Obter estatísticas
    stats = await redis_get_stats()
```

## Desenvolvimento

### Estrutura do Projeto

```
src/
├── tools/
│   ├── connection.py      # Tools de conexão
│   ├── server_info.py     # Informações do servidor
│   ├── memory.py          # Estatísticas de memória
│   ├── keyspace.py        # Informações do keyspace
│   ├── stats.py           # Estatísticas gerais
│   ├── clients.py         # Informações dos clientes
│   ├── config.py          # Configurações
│   ├── keys.py            # Gerenciamento de chaves
│   └── database.py        # Gerenciamento de databases
├── utils/
│   ├── redis_connector.py # Conector Redis principal
│   └── logger.py          # Sistema de logging
└── core/
    └── exceptions.py      # Exceções personalizadas
```

### Testes

```bash
# Executar testes unitários
pytest tests/unit/

# Com cobertura
pytest --cov=src tests/unit/
```

## Requisitos

- Python 3.8+
- Redis server
- Dependências listadas em `requirements.txt`

## Instalação

```bash
# Criar ambiente virtual
python -m venv venv
source venv/bin/activate  # Linux/Mac
# ou
venv\Scripts\activate     # Windows

# Instalar dependências
pip install -r requirements.txt

# Para desenvolvimento
pip install -r requirements-dev.txt
```

## Configuração nos Editores

### Claude Code

1. **Adicionar o servidor MCP:**
```bash
# Na pasta do projeto, adicionar o script de inicialização
claude mcp add /caminho/completo/para/o/projeto/redis/start-mcp.sh
```

2. **Verificar se foi adicionado:**
```bash
claude mcp list
```

3. **Usar o servidor:**
   - O Claude Code detectará automaticamente o servidor MCP
   - As tools do Redis ficarão disponíveis no chat
   - Use as tools diretamente como `redis_configure_connection()`

### Cursor IDE

1. **Configurar MCP no Cursor:**
   - Abra as configurações do Cursor (Cmd/Ctrl + ,)
   - Procure por "MCP" nas configurações
   - Adicione a configuração do servidor:

```json
{
  "mcpServers": {
    "redis-mcp": {
      "command": "/caminho/completo/para/o/projeto/redis/start-mcp.sh"
    }
  }
}
```

2. **Usar o servidor:**
   - O Cursor detectará automaticamente o servidor MCP
   - Use `@redis-mcp` no chat para interagir com as tools
   - As tools aparecerão na lista de ferramentas disponíveis