Reddit

Interactúa con Reddit publicando comentarios y buscando publicaciones.

Documentación

Servidor MCP de Reddit

Este servidor MCP permite a los Clientes interactuar con Reddit mediante autenticación OAuth2, habilitando acceso de solo lectura para buscar publicaciones dentro de subreddits.

Características

  • Buscar publicaciones: Busca publicaciones en subreddits específicos con varias opciones de ordenamiento (relevancia, populares, mejores, nuevos, comentarios)
  • Autenticación OAuth2: Autenticación segura utilizando el flujo de credenciales de cliente OAuth2 de Reddit
  • Acceso de solo lectura: Acceso seguro y de solo lectura a los datos de Reddit sin requerir credenciales de usuario

Inicio Rápido

  1. Crea una aplicación de Reddit para obtener tus credenciales de API:

    • Ve a https://www.reddit.com/prefs/apps
    • Haz clic en "Create App" o "Create Another App"
    • Elige "script" como tipo de aplicación
    • Anota tu ID de cliente y secreto de cliente
  2. Agrega esta configuración a tu archivo de configuración de Claude Desktop:

Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "reddit-mcp": {
      "command": "npx",
      "args": ["-y", "@enisze/reddit-mcp"],
      "env": {
        "REDDIT_CLIENT_ID": "your_client_id_here",
        "REDDIT_CLIENT_SECRET": "your_client_secret_here",
        "REDDIT_USER_AGENT": "reddit-mcp-server/1.0.0"
      }
    }
  }
}
  1. Reinicia Claude Desktop

¡Eso es todo! Claude ahora puede buscar en Reddit a través de la herramienta search_posts.

Ejemplo de Uso

Intenta preguntarle a Claude:

  • "¿Puedes buscar publicaciones sobre 'inteligencia artificial' en el subreddit MachineLearning?"
  • "Busca las 10 publicaciones principales sobre 'Claude AI' en el subreddit artificial"
  • "Encuentra discusiones recientes sobre 'mejores prácticas de programación' en el subreddit programming"

Variables de Entorno

  • REDDIT_CLIENT_ID: El ID de cliente de tu aplicación de Reddit
  • REDDIT_CLIENT_SECRET: El secreto de cliente de tu aplicación de Reddit
  • REDDIT_USER_AGENT: Cadena de agente de usuario (opcional, por defecto "reddit-mcp-server/1.0.0")

Desarrollo

Si deseas contribuir o ejecutar desde el código fuente:

  1. Clona el repositorio:
git clone <repository-url>
cd reddit-mcp
  1. Instala las dependencias:
npm install
  1. Compila:
npm run build
  1. Ejecuta:
npm start
  1. Prueba:
# Run unit tests (no API credentials needed)
npm test

# Run API integration tests (requires Reddit credentials)
npm run test:api

Ejecutar Evaluaciones

Para probar la funcionalidad del servidor MCP de Reddit:

npm run eval

Esto ejecutará una serie de evaluaciones para asegurar que todas las herramientas funcionen correctamente.

Ejecutar Evals

El paquete de evals carga un cliente MCP que luego ejecuta el archivo index.ts, por lo que no es necesario recompilar entre pruebas. Puedes 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/index.ts

Soporte para Docker

También puedes ejecutar este servidor MCP usando Docker:

# Build the Docker image
docker build -t reddit-mcp .

# Run the container with environment variables
docker run -e REDDIT_CLIENT_ID=your_client_id \
           -e REDDIT_CLIENT_SECRET=your_client_secret \
           reddit-mcp

Documentación de la API

search_posts

Busca publicaciones en un subreddit de Reddit utilizando autenticación OAuth2.

Parámetros:

  • query (cadena, requerido): Consulta de búsqueda
  • subreddit (cadena, requerido): El nombre del subreddit (sin el prefijo r/)
  • count (número, opcional): Número de publicaciones a devolver (1-100, por defecto: 25)
  • sort (cadena, opcional): Orden de clasificación - 'relevance', 'hot', 'top', 'new', 'comments' (por defecto: 'relevance')

Solución de Problemas

Problemas de Autenticación

  • Asegúrate de que tu ID de cliente y secreto de Reddit sean correctos
  • Verifica que tu aplicación de Reddit esté configurada como tipo "script"
  • Comprueba que tu cadena de agente de usuario sea descriptiva y única

Límites de Tasa

  • El servidor implementa límites de tasa básicos (2 segundos entre solicitudes)
  • Reddit tiene sus propios límites de tasa - si los alcanzas, espera antes de reintentar

Errores Comunes

  • "Subreddit not found": Verifica la ortografía del nombre del subreddit
  • "OAuth2 authentication failed": Verifica las credenciales de tu aplicación de Reddit
  • "Invalid credentials": Asegúrate de que tu ID de cliente y secreto sean correctos

Pruebas

El proyecto incluye pruebas exhaustivas para verificar la funcionalidad:

Pruebas Unitarias

Ejecuta pruebas de funcionalidad básica sin requerir credenciales de API de Reddit:

npm test

Estas pruebas verifican:

  • Formato de respuestas
  • Definiciones de tipos
  • Manejo de estructuras de datos
  • Lógica de manejo de errores

Pruebas de Integración de API

Prueba la funcionalidad real de la API de Reddit (requiere credenciales):

npm run test:api

Configura tus credenciales en .env primero (copia desde .env.example).

Estas pruebas verifican:

  • Flujo de autenticación OAuth2
  • Funcionalidad de búsqueda
  • Manejo de respuestas de la API
  • Manejo de errores para varios escenarios

Consulta TEST.md para instrucciones detalladas de prueba.

Licencia

MIT