SubReply
Intégrations

Connectez votre IA à SubReply

SubReply expose ses six tools de prospection Reddit via un serveur Model Context Protocol, le standard que parlent Claude, ChatGPT, Gemini et n8n. Branchez-le en trente secondes et votre assistant cherche, rédige puis publie sans que vous écriviez la moindre requête HTTP.

Un seul endpoint, en POST, transport HTTP streamable et sans session :

URL du serveur
https://subreply.io/api/mcp

Deux façons de s'authentifier : OAuth pour les connecteurs des assistants grand public, une clé API pour tout le reste.

Connexion OAuth (recommandée) — claude.ai, ChatGPT, Gemini

Le chemin le plus court, et sans clé à copier nulle part. Le connecteur vous renvoie sur SubReply, vous vous connectez avec votre compte habituel et c'est branché.

Claude (claude.ai)
  1. Réglages → Connecteurs → Ajouter un connecteur
  2. Collez l'URL : https://subreply.io/api/mcp
  3. Se connecter → login SubReply → Autoriser
Voir la doc API complète →
ChatGPT
  1. Réglages → Mode développeur → Apps → Nouveau connecteur
  2. URL : https://subreply.io/api/mcp, authentification OAuth
  3. Nécessite un plan Pro, Business, Enterprise ou Edu
Voir la doc API complète →
Gemini
  1. Google AI Studio → Extensions → Custom MCP
  2. URL : https://subreply.io/api/mcp
  3. Authentification par OAuth SubReply
Voir la doc API complète →

L'autorisation vaut 30 jours. Au bout de ce délai le client rouvre le même écran, et un clic suffit à repartir.

La publication n'est pas disponible en OAuth

publish_reddit_commentrefuse les connexions OAuth : écrire sur Reddit demande une clé API dont l'autorisation de publication est allumée dans vos réglages API. Les cinq autres tools fonctionnent normalement.

Connexion par clé API — Claude Code, Claude Desktop, n8n

La clé voyage dans l'en-tête Authorization. Chaque requête est réauthentifiée, donc révoquer une clé la coupe à l'instant même, sans attendre la fin d'une session. C'est la même clé sr_live_…que pour l'API REST v1, à générer sur votre page clés API.

Claude Code et Claude Desktop

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

Ou directement dans le fichier de configuration MCP, si vous préférez le versionner :

Configuration MCP
{
  "mcpServers": {
    "subreply": {
      "type": "http",
      "url": "https://subreply.io/api/mcp",
      "headers": {
        "Authorization": "Bearer sr_live_VOTRE_CLE_API"
      }
    }
  }
}

n8n

Ajoutez un nœud MCP Client et renseignez quatre champs :

  • Endpoint — https://subreply.io/api/mcp
  • Server Transport — HTTP Streamable
  • Authentication — Header Auth
  • Identifiant Header Auth — nom Authorization, valeur Bearer sr_live_…

Le nœud liste alors les six tools. Pensez au timeout : publish_reddit_comment peut prendre deux minutes, et le défaut de n8n est bien plus court.

Vérifier que ça répond

Si un client refuse de se connecter, cet appel tranche la question : il ne dépend d'aucun client MCP et n'utilise aucun crédit.

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_VOTRE_CLE_API" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

Six tools listés, c'est le serveur qui va bien et le problème est côté client. Un 401 et c'est la clé. Un 406 et c'est l'en-tête Accept: le transport exige les deux types, même s'il répond du JSON pur. Le tool ping fait le même travail une fois le client branché : il répond pong et prouve du même coup que votre clé passe.

Tools disponibles

ToolCe qu'il faitCréditsÀ savoir
pingSonde de disponibilité. Répond « pong » et confirme que la clé est valide.gratuit—
get_account_statusSolde de crédits et état de l'abonnement. Le tool à appeler quand un autre répond « crédits insuffisants ».gratuit—
list_projectsProjets du compte : id, nom, langue cible, mots-clés, état de l'agent.gratuit—
scrape_reddit_opportunitiesScanne des subreddits et rend les posts dont l'auteur ressemble à un client, scorés par pertinence.gratuitproduct_description vivement recommandé
generate_reddit_commentRédige un commentaire naturel, dans la langue du fil, pensé pour ne pas déclencher de shadowban. Ne publie rien.35Idempotent sur post_url
publish_reddit_commentPublie pour de vrai sur Reddit, depuis un compte du parc SubReply derrière un proxy résidentiel.50Opt-in par clé API requis

Même économie que l'API REST : la recherche est gratuite, seule la production est facturée. Un scan qui ne trouve rien ne coûte donc jamais rien.

Le scan est gratuit, mais pas ouvert à tous

Scanner ne débite rien, en revanche il exige un solde d'au moins 35crédits — le prix d'un commentaire. Sans quoi le tool refuse : scraper pour un compte qui ne peut rien produire derrière ne sert personne. get_account_status et list_projectsrestent, eux, appelables à zéro crédit. C'est tout leur intérêt.

Les débits sont idempotents par post : si le réseau coupe et que votre agent rejoue generate_reddit_comment sur la même URL Reddit, le second appel rend credits_used: 0.

Limites

ToolLimite
scrape_reddit_opportunities60 appels / minute
generate_reddit_comment20 appels / minute
publish_reddit_comment5 appels / minute
get_account_statuslist_projects60 appels / minute
pingaucune

Les quotas sont comptés par compte et par tool : épuiser generate_reddit_comment ne bride ni vos autres tools ni les autres comptes. pingn'est volontairement pas limité — c'est la sonde, elle doit rester joignable au moment où l'on tape en rafale parce qu'on soupçonne une panne.

Publier sur Reddit

publish_reddit_comment écrit vraiment sur Reddit

Le commentaire est public dès le retour du tool, posté depuis un compte du parc SubReply derrière un proxy résidentiel. Aucune suppression ne défait la notification déjà envoyée au posteur. N'appelez ce tool qu'une fois le texte exact validé par un humain.

C'est pour ça qu'il est éteint par défaut. Pour l'allumer, ouvrez votre page clés API et activez la publication sur la clé concernée.

L'autorisation vit sur la clé, pas sur le compte, et c'est délibéré : une clé dédiée à un workflow n8n de publication peut l'avoir pendant qu'une clé collée dans un assistant conversationnel ne l'a pas. Après une fuite, éteindre la publication sur cette clé-là ne casse aucune de vos autres intégrations.

  • 5 appels par minute au maximum, très en dessous de ce que l'infrastructure supporterait. Une rafale de publications ne coûte pas qu'un solde : c'est un shadowban.
  • Les 50 crédits sont débités après coup, une fois la publication confirmée. Un échec ne facture rien.
  • Ce tool n'est pas idempotent : deux appels sur la même URL laissent deux commentaires. Le second est gratuit, mais il est bien là.
  • Comptez jusqu'à deux minutes par appel — un vrai navigateur ouvre le post et écrit le commentaire. Réglez le timeout de votre client en conséquence.

Erreurs spécifiques MCP

Un tool en échec ne lève jamais une exception JSON-RPC : il rend un résultat marqué isError: true, avec une phrase lisible par l'agent. Quatre cas n'existent que côté MCP.

CasCe que rend le tool
Quota dépasséisError: trueet le délai de réattente en secondes. Rien n'est débité.
Crédits insuffisantsisError: true et le solde manquant. Rechargez sur la page facturation.
publish_reddit_comment sans opt-inisError: true : la publication est éteinte sur cette clé. Activez-la dans vos réglages API.
publish_reddit_comment en OAuthisError: true : publier exige une clé API, une connexion OAuth ne suffit pas.

Le message de quota porte le délai de réattente, pour que votre agent sache quand reprendre au lieu de boucler :

Réponse du tool
Rate limit exceeded for generate_reddit_comment:
20 calls per minute maximum. Retry in 34 seconds.
No credits were charged.

Le refus arrive avant toute logique métier : rien n'est appelé, rien n'est débité. Un agent qui épuise ses 20générations par minute n'a perdu aucun crédit.

Une liste vide n'est pas une erreur

scrape_reddit_opportunities filtre sur la fraîcheur, le signal client et le fit produit. Zéro résultat est une réponse normale. Renseigner product_description change beaucoup les choses — sans elle, le seuil de fit produit rejette le plus souvent tout.

Les codes HTTP et le format des erreurs de l'API REST sont décrits sur la page codes d'erreur.

Codes d'erreur complets