SubReply
Integraciones

Conecta tu IA a SubReply

SubReply expone sus seis tools de prospección en Reddit mediante un servidor Model Context Protocol, el estándar que hablan Claude, ChatGPT, Gemini y n8n. Conéctalo en treinta segundos y tu asistente busca, redacta y publica sin que escribas una sola petición HTTP.

Un único endpoint, solo en POST, transporte HTTP streamable y sin sesión:

URL del servidor
https://subreply.io/api/mcp

Dos formas de autenticarse: OAuth para los conectores de los asistentes de gran público, una clave API para todo lo demás.

Conexión OAuth (recomendada) — claude.ai, ChatGPT, Gemini

El camino más corto, y sin ninguna clave que copiar. El conector te lleva a SubReply, inicias sesión con tu cuenta de siempre y ya está conectado.

Claude (claude.ai)
  1. Ajustes → Conectores → Añadir conector
  2. Pega la URL: https://subreply.io/api/mcp
  3. Conectar → inicio de sesión en SubReply → Autorizar
Ver la doc API completa →
ChatGPT
  1. Ajustes → Modo desarrollador → Apps → Nuevo conector
  2. URL: https://subreply.io/api/mcp, autenticación OAuth
  3. Requiere un plan Pro, Business, Enterprise o Edu
Ver la doc API completa →
Gemini
  1. Google AI Studio → Extensions → Custom MCP
  2. URL: https://subreply.io/api/mcp
  3. Autenticación mediante OAuth de SubReply
Ver la doc API completa →

La autorización dura 30 días. Pasado ese plazo el cliente vuelve a abrir la misma pantalla, y basta un clic para seguir.

La publicación no está disponible por OAuth

publish_reddit_comment rechaza las conexiones OAuth: escribir en Reddit exige una clave API con el permiso de publicación encendido en tus ajustes de API. Los otros cinco tools funcionan con normalidad.

Conexión con clave API — Claude Code, Claude Desktop, n8n

La clave viaja en la cabecera Authorization. Cada petición se vuelve a autenticar, así que revocar una clave la corta en ese mismo instante, sin esperar a que caduque ninguna sesión. Es la misma clave sr_live_… que la API REST v1, que se genera en tu página de claves API.

Claude Code y Claude Desktop

Terminal
claude mcp add --transport http subreply https://subreply.io/api/mcp \
  --header "Authorization: Bearer sr_live_TU_CLAVE_API"

O directamente en el archivo de configuración MCP, si prefieres versionarlo:

Configuración MCP
{
  "mcpServers": {
    "subreply": {
      "type": "http",
      "url": "https://subreply.io/api/mcp",
      "headers": {
        "Authorization": "Bearer sr_live_TU_CLAVE_API"
      }
    }
  }
}

n8n

Añade un nodo MCP Client y rellena cuatro campos:

  • Endpoint — https://subreply.io/api/mcp
  • Server Transport — HTTP Streamable
  • Authentication — Header Auth
  • Credencial Header Auth — nombre Authorization, valor Bearer sr_live_…

El nodo lista entonces los seis tools. Cuidado con el timeout: publish_reddit_comment puede tardar dos minutos, muy por encima del valor por defecto de n8n.

Comprobar que responde

Si un cliente se niega a conectarse, esta llamada zanja la cuestión: no depende de ningún cliente MCP y no gasta créditos.

cURL
curl -s -X POST https://subreply.io/api/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Authorization: Bearer sr_live_TU_CLAVE_API" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

Seis tools en la lista significa que el servidor está bien y el problema está del lado del cliente. Un 401 significa la clave. Un 406 significa la cabecera Accept: el transporte exige los dos tipos, aunque responda JSON puro. El tool ping hace el mismo trabajo una vez conectado el cliente: responde pong y demuestra de paso que tu clave funciona.

Tools disponibles

ToolQué haceCréditosConviene saber
pingSonda de disponibilidad. Responde «pong» y confirma que la clave es válida.gratis—
get_account_statusSaldo de créditos y estado de la suscripción. El tool que hay que llamar cuando otro responde «créditos insuficientes».gratis—
list_projectsProyectos de la cuenta: id, nombre, idioma objetivo, palabras clave, estado del agente.gratis—
scrape_reddit_opportunitiesEscanea subreddits y devuelve las publicaciones cuyo autor parece un cliente, puntuadas por relevancia.gratisproduct_description muy recomendable
generate_reddit_commentRedacta un comentario natural, en el idioma del hilo, pensado para no provocar un shadowban. No publica nada.35Idempotente sobre post_url
publish_reddit_commentPublica de verdad en Reddit, desde una cuenta del parque de SubReply detrás de un proxy residencial.50Activación por clave API obligatoria

La misma economía que la API REST: buscar es gratis, solo se factura la producción. Un escaneo que no encuentra nada nunca cuesta nada.

Escanear es gratis, pero no está abierto a todos

Escanear no cobra nada, pero exige un saldo de al menos 35 créditos — el precio de un comentario. Por debajo, el tool se niega: escanear para una cuenta que después no puede producir nada no le sirve a nadie. get_account_status y list_projects siguen siendo llamables con cero créditos. Ese es justamente su interés.

Los cargos son idempotentes por publicación: si la red se corta y tu agente repite generate_reddit_comment sobre la misma URL de Reddit, la segunda llamada devuelve credits_used: 0.

Límites

ToolLímite
scrape_reddit_opportunities60 llamadas / minuto
generate_reddit_comment20 llamadas / minuto
publish_reddit_comment5 llamadas / minuto
get_account_statuslist_projects60 llamadas / minuto
pingninguno

Las cuotas se cuentan por cuenta y por tool: agotar generate_reddit_comment no frena ni tus otros tools ni las cuentas de los demás. ping no tiene límite a propósito — es la sonda, y tiene que seguir accesible justo cuando la estás llamando en ráfaga porque sospechas una avería.

Publicar en Reddit

publish_reddit_comment escribe de verdad en Reddit

El comentario es público en cuanto el tool devuelve, publicado desde una cuenta del parque de SubReply detrás de un proxy residencial. Borrarlo no deshace la notificación ya enviada al autor. Llama a este tool solo cuando una persona haya validado el texto exacto.

Por eso está apagado por defecto. Para encenderlo, abre tu página de claves API y activa la publicación en la clave en cuestión.

El permiso vive en la clave y no en la cuenta, y es deliberado: una clave dedicada a un flujo de publicación en n8n puede tenerlo mientras que una clave pegada en un asistente conversacional no. Tras una fuga, apagar la publicación en esa clave no rompe ninguna de tus otras integraciones.

  • 5 llamadas por minuto como máximo, muy por debajo de lo que aguantaría la infraestructura. Una ráfaga de publicaciones no cuesta solo saldo: cuesta un shadowban.
  • Los 50 créditos se cobran después, una vez confirmada la publicación. Un fallo no factura nada.
  • Este tool no es idempotente: dos llamadas sobre la misma URL dejan dos comentarios. El segundo es gratis, pero ahí está.
  • Cuenta con hasta dos minutos por llamada — un navegador real abre la publicación y escribe el comentario. Ajusta el timeout de tu cliente en consecuencia.

Errores específicos de MCP

Un tool que falla nunca lanza una excepción JSON-RPC: devuelve un resultado marcado isError: true, con una frase legible para el agente. Cuatro casos existen solo del lado MCP.

CasoLo que devuelve el tool
Cuota superadaisError: true y el plazo de reintento en segundos. No se cobra nada.
Créditos insuficientesisError: true y el saldo que falta. Recarga en la página de facturación.
publish_reddit_comment sin activaciónisError: true: la publicación está apagada en esa clave. Actívala en tus ajustes de API.
publish_reddit_comment por OAuthisError: true: publicar exige una clave API, una conexión OAuth no basta.

El mensaje de cuota lleva el plazo de reintento, para que tu agente sepa cuándo retomar en vez de quedarse en bucle:

Respuesta del tool
Rate limit exceeded for generate_reddit_comment:
20 calls per minute maximum. Retry in 34 seconds.
No credits were charged.

El rechazo llega antes de toda lógica de negocio: no se llama a nada y no se cobra nada. Un agente que agota sus 20 generaciones por minuto no ha perdido ni un crédito.

Una lista vacía no es un error

scrape_reddit_opportunities filtra por frescura, señal de cliente y encaje con el producto. Cero resultados es una respuesta normal. Pasar product_description cambia mucho las cosas — sin ella, el umbral de encaje rechaza casi todo.

Los códigos HTTP y el formato de error de la API REST están descritos en la página códigos de error.

Códigos de error completos