Redlib MCP Server
Un servidor MCP que integra tu instancia privada de Redlib, permitiendo que asistentes de IA accedan para utilizar Redlib.
Documentación
Servidor MCP de Redlib
Un servidor de Protocolo de Contexto de Modelo (MCP) que permite a los agentes de IA interactuar con Reddit a través de tu instancia privada de Redlib. ¡Sin necesidad de claves de API de Reddit, solo necesitas una instancia de Redlib en funcionamiento!
https://github.com/user-attachments/assets/66eec084-e911-4eed-a51f-be303e86f1a7
Tabla de Contenidos
- Características
- Implementación Actual
- Requisitos Previos
- Inicio Rápido
- Configuración
- Herramientas Disponibles
- Integración con Clientes de IA
- Docker Compose
- Seguridad: Predeterminado vs Reforzado
- Desarrollo
- Ejemplo de Uso con IA
- Contribuciones
- Licencia
- Agradecimientos
- Enlaces
Características
- Privacidad Primero - Usa tu Redlib autoalojado, sin rastreo ni claves de API
- 3 Herramientas Potentes - Busca publicaciones, obtén publicaciones populares, recupera detalles completos de publicaciones con comentarios
- Listo para Docker - Imágenes Docker simples y reforzadas disponibles
- Configuración Fácil - Funciona con Claude Desktop, Cursor, VS Code, Codex, ForgeCode, KiloCode y cualquier cliente compatible con MCP
- Salida Estructurada - Devuelve JSON limpio en lugar de HTML sin procesar
Implementación Actual: Transporte Stdio
Importante: Este servidor utiliza actualmente transporte stdio (comunicación stdin/stdout) para desarrollo local. Se ejecuta como un proceso hijo y se comunica a través de la entrada/salida estándar.
Qué Significa Esto:
- Sin endpoint HTTP - El servidor no expone ningún puerto HTTP
- Solo local - Diseñado para escenarios de desarrollo y pruebas locales
- Proceso hijo - Los clientes MCP inician este servidor como un subproceso
- Sin acceso a red - Toda la comunicación ocurre localmente vía stdin/stdout
Planes Futuros:
La funcionalidad de transporte HTTP está planificada para futuras versiones para habilitar:
- Acceso remoto a través de HTTP
- Múltiples conexiones de clientes concurrentes
- Escenarios de despliegue en producción
- Verificaciones de salud basadas en red
Requisitos Previos
Antes de usar este servidor MCP, necesitas:
-
Instancia de Redlib - Una instancia de Redlib en funcionamiento (predeterminado:
http://localhost:8080) -
Cliente MCP - Uno de:
- Claude Desktop
- Cursor
- VS Code con GitHub Copilot
- OpenAI Codex
- ForgeCode
- KiloCode
Inicio Rápido
Opción 1: Docker (Recomendado)
# Pull and run the default version
docker run -i --rm \
--network host \
-e REDLIB_URL=http://localhost:8080 \
alfafadock/mcp-redlib:latest
Opción 2: Docker Reforzado (Enfocado en Seguridad)
# Uses non-root user and minimal privileges
docker run -i --rm \
--network host \
--cap-drop=ALL \
--security-opt no-new-privileges:true \
-e REDLIB_URL=http://localhost:8080 \
alfafadock/mcp-redlib:hardened
Opción 3: Desarrollo Local
# Clone and setup
git clone https://github.com/Devthatdoes/redlib-mcp-server.git
cd redlib-mcp-server
# Install dependencies
npm install
# Build
npm run build
# Run
npm start
Docker Compose
Haz clic para expandir la configuración de Docker Compose
Crea docker-compose.yml:
services:
redlib-mcp:
image: alfafadock/mcp-redlib:latest
container_name: redlib-mcp
network_mode: "host" # Uses host network for MCP client communication
environment:
- REDLIB_URL=http://localhost:8080 # Change if Redlib is on a different port
restart: unless-stopped
# For hardened image, change image to: alfafadock/mcp-redlib:hardened
Configuración
Variables de Entorno
| Variable | Predeterminado | Descripción |
|---|---|---|
REDLIB_URL | http://localhost:8080 | URL de tu instancia de Redlib |
Ejemplo de Puerto Personalizado de Redlib
Si tu Redlib se ejecuta en un puerto diferente (por ejemplo, 8085):
docker run -i --rm \
--network host \
-e REDLIB_URL=http://localhost:8085 \
alfafadock/mcp-redlib:latest
Ejemplo de Archivo .env
Copia .env.example a .env y modifica según sea necesario:
cp .env.example .env
Herramientas Disponibles
1. search_reddit
Busca publicaciones de Reddit usando tu instancia privada de Redlib.
Parámetros:
query(obligatorio) - Cadena de consulta de búsquedasubreddit(opcional) - Limitar la búsqueda a un subreddit específico
Ejemplo:
{
"query": "rust programming",
"subreddit": "rust"
}
Devuelve: JSON con IDs de publicaciones, títulos, autores, puntuaciones y recuentos de comentarios.
2. get_subreddit_hot
Obtén publicaciones populares de un subreddit específico.
Parámetros:
subreddit(obligatorio) - Nombre del subreddit (sin r/)limit(opcional) - Número de publicaciones (predeterminado: 25)
Ejemplo:
{
"subreddit": "rust",
"limit": 10
}
3. get_post
Obtén una publicación específica con sus comentarios.
Parámetros:
subreddit(obligatorio) - Nombre del subredditpostId(obligatorio) - ID de la publicación de Reddit (de los resultados de búsqueda)
Ejemplo:
{
"subreddit": "rust",
"postId": "abc123"
}
Devuelve: Cuerpo completo de la publicación, puntuación y hasta 10 comentarios principales.
🔌 Integración con Clientes de IA
Claude Desktop
Edita ~/.config/claude/claude_desktop_config.json (Linux/macOS) o %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"redlib": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"--network", "host",
"-e", "REDLIB_URL=http://localhost:8080",
"alfafadock/mcp-redlib:latest"
]
}
}
}
Para puerto personalizado de Redlib (por ejemplo, 8085):
{
"mcpServers": {
"redlib": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"--network", "host",
"-e", "REDLIB_URL=http://localhost:8085",
"alfafadock/mcp-redlib:latest"
]
}
}
}
Después de actualizar: Reinicia Claude Desktop. Deberías ver un ícono de martillo (🔨) que indica que las herramientas MCP están disponibles.
Referencia: Documentación MCP de Claude Desktop
Cursor
Añade a ~/.cursor/mcp.json (global) o .cursor/mcp.json (nivel de proyecto):
{
"mcpServers": {
"redlib": {
"command": "docker",
"args": ["run", "-i", "--rm", "--network", "host", "-e", "REDLIB_URL=http://localhost:8080", "alfafadock/mcp-redlib:latest"]
}
}
}
Configuración a nivel de proyecto: Crea .cursor/mcp.json en la raíz de tu proyecto.
Después de actualizar: Cursor detectará automáticamente los cambios. Usa la Paleta de Comandos (Cmd/Ctrl+Shift+P) y busca "MCP" para gestionar servidores.
Referencia: Documentación MCP de Cursor
VS Code / GitHub Copilot
Opción A: Configuración del Espacio de Trabajo
Crea .vscode/mcp.json en tu proyecto:
{
"servers": {
"redlib": {
"command": "docker",
"args": ["run", "-i", "--rm", "--network", "host", "-e", "REDLIB_URL=http://localhost:8080", "alfafadock/mcp-redlib:latest"]
}
}
}
Opción B: Configuración de Usuario (Global)
Usa la Paleta de Comandos (Cmd/Ctrl+Shift+P) → "MCP: Abrir Configuración de Usuario":
{
"mcp": {
"servers": {
"redlib": {
"command": "docker",
"args": ["run", "-i", "--rm", "--network", "host", "-e", "REDLIB_URL=http://localhost:8080", "alfafadock/mcp-redlib:latest"]
}
}
}
}
Después de actualizar: Recarga VS Code. Las herramientas aparecerán en el Modo Agente de GitHub Copilot.
Referencia: Documentación MCP de VS Code
OpenAI Codex
Edita ~/.codex/config.toml (global) o .codex/config.toml (proyecto):
[mcp_servers.redlib]
command = "docker"
args = ["run", "-i", "--rm", "--network", "host", "-e", "REDLIB_URL=http://localhost:8080", "alfafadock/mcp-redlib:latest"]
Configuración a nivel de proyecto: Crea .codex/config.toml en la raíz de tu proyecto.
Después de actualizar: Reinicia Codex. Usa codex mcp list para verificar que el servidor esté cargado.
Referencia: Documentación MCP de Codex
ForgeCode
ForgeCode admite servidores MCP a través del comando forge mcp para importación fácil.
Opción A: Importación Rápida (Recomendado)
Usa la funcionalidad de importación MCP integrada:
# Import the Redlib MCP server
forge mcp import alfafadock/mcp-redlib:latest
# List imported servers
forge mcp list
# Reload to apply changes
forge mcp reload
Opción B: Configuración del Proyecto
Crea .mcp.json en la raíz de tu proyecto:
{
"mcpServers": {
"redlib": {
"command": "docker",
"args": ["run", "-i", "--rm", "--network", "host", "-e", "REDLIB_URL=http://localhost:8080", "alfafadock/mcp-redlib:latest"]
}
}
}
Opción C: Configuración Global
Edita el directorio de configuración de ForgeCode (consulta la configuración de la extensión para la ruta exacta).
Después de actualizar: Recarga la extensión de ForgeCode usando forge mcp reload. Las herramientas MCP deberían aparecer en la interfaz del asistente de IA.
Referencia: Documentación de ForgeCode
KiloCode
Opción A: Configuración Global
Edita ~/.config/kilo/kilo.jsonc o usa Configuración → MCP en KiloCode:
{
"mcpServers": {
"redlib": {
"command": "docker",
"args": ["run", "-i", "--rm", "--network", "host", "-e", "REDLIB_URL=http://localhost:8080", "alfafadock/mcp-redlib:latest"]
}
}
}
Opción B: Configuración del Proyecto
Crea .kilocode/mcp.json o kilo.jsonc en la raíz de tu proyecto:
{
"mcpServers": {
"redlib": {
"command": "docker",
"args": ["run", "-i", "--rm", "--network", "host", "-e", "REDLIB_URL=http://localhost:8080", "alfafadock/mcp-redlib:latest"]
}
}
}
Después de actualizar: Abre Configuración de KiloCode → MCP → Añadir Servidor, o edita el archivo de configuración directamente.
Referencia: Documentación MCP de KiloCode
Seguridad: Predeterminado vs Reforzado
| Característica | Predeterminado (latest) | Reforzado (hardened) |
|---|---|---|
| Usuario | root | No root (mcpuser) |
| Propiedad de Archivos | root | mcpuser |
| Etapas de Construcción | Única | Multi-etapa (más pequeña) |
| Capacidades de Ejecución | Predeterminado | Requiere --cap-drop=ALL |
| Caso de Uso | Desarrollo, pruebas | Producción |
Usando la Imagen Reforzada
docker run -i --rm \
--cap-drop=ALL \
--security-opt no-new-privileges:true \
--network host \
-e REDLIB_URL=http://localhost:8080 \
alfafadock/mcp-redlib:hardened
Desarrollo
Estructura del Proyecto
redlib-mcp-server/
├── src/
│ └── index.ts # Main server code (stdio transport)
├── dist/ # Compiled JavaScript (gitignored)
├── Dockerfile # Default Docker image
├── Dockerfile.hardened # Hardened Docker image
├── docker-compose.yml # Production compose
├── package.json
├── tsconfig.json
└── README.md
Compilar desde el Código Fuente
# Install dependencies
npm install
# Build TypeScript
npm run build
# Run locally
npm start
Compilar Imágenes Docker Personalizadas
# Default version
docker build -t redlib-mcp-server .
# Hardened version
docker build -f Dockerfile.hardened -t redlib-mcp-server:hardened .
Ejemplo de Uso con IA
Una vez conectado a tu cliente de IA (por ejemplo, Claude), puedes:
User: "Search Reddit for 'home lab setup' and summarize the top results"
AI uses search_reddit tool →
Returns structured JSON with posts →
AI summarizes the findings for you
User: "Get the full post and comments for that Rust tutorial I searched earlier"
AI uses get_post with postId →
Returns post body + comments →
AI provides detailed analysis
Contribuciones
¡Las contribuciones son bienvenidas! Por favor:
- Haz un fork del repositorio
- Crea una rama de características
- Envía una solicitud de extracción
Licencia
Licencia MIT - ¡siéntete libre de usar este proyecto como quieras!
Agradecimientos
- Redlib - El front-end privado de Reddit con el que este servidor interactúa
- Protocolo de Contexto de Modelo - El protocolo que hace posible esta integración
- Cheerio - Biblioteca de análisis HTML utilizada para extraer datos estructurados
Enlaces
- Docker Hub: alfafadock/mcp-redlib
- Problemas: Problemas de GitHub
- Redlib: github.com/redlib-org/redlib
Hecho con ❤️ para la comunidad de Reddit consciente de la privacidad