GetAff
Article

Recruter des affiliés depuis Claude, ChatGPT ou Cursor avec le serveur MCP de GetAff

Tout ce que font les écrans de recrutement de partenaires de GetAff est aussi disponible sous forme d’outils qu’un assistant IA peut appeler, grâce au Model Context Protocol (MCP). Vous formulez votre demande avec vos mots — « trouve des créateurs mariage français entre 10 k et 100 k abonnés pour mon site » — et l’assistant choisit les outils, les exécute et vous rend compte.

Cet article détaille la connexion, les requêtes qui fonctionnent, l’ordre dans lequel les outils s’enchaînent et les garde-fous qui empêchent un assistant de dépenser des crédits ou d’envoyer des e-mails sans votre accord explicite.

Mis à jour le

Ce qu’il vous faut

  • Un compte GetAff avec au moins un site et son programme d’affiliation : chaque outil de recherche de partenaires travaille sur un site, identifié par son siteId.
  • Un client MCP : claude.ai, Claude Desktop, Claude Code, ChatGPT, Cursor, VS Code ou tout client compatible Streamable HTTP.
  • Pour les étapes payantes (recherches en direct dans les données de créateurs, recherches d’e-mails) : le plan Pro. Les sources gratuites — l’index de créateurs GetAff, les créateurs similaires à votre sélection et ceux qui promeuvent vos concurrents — fonctionnent sur tous les plans.
  • Pour la prospection : une boîte Gmail connectée dans l’application et des réglages d’expéditeur complets (nom, société, adresse postale).

Le serveur répond à une seule URL, https://www.getaff.org/api/mcp. La découverte (initialize, tools/list) répond sans identifiants, pour qu’un client puisse afficher les outils ; chaque appel d’outil exige un identifiant.

Connecter votre assistant avec OAuth

Le plus simple est OAuth 2.1 : rien à copier, rien à coller. Dans claude.ai, ouvrez Réglages › Connecteurs › Ajouter un connecteur personnalisé ; dans ChatGPT, ajoutez un connecteur (app). Dans les deux cas, saisissez l’URL du serveur. Le client reçoit un 401 de GetAff, suit les métadonnées qu’il indique et ouvre l’écran de consentement de GetAff.

  1. Connectez-vous à GetAff si ce n’est pas déjà fait.
  2. Lisez l’écran de consentement : il nomme l’application, l’adresse où elle vous renverra et ce qu’elle pourra faire.
  3. Cochez les autorisations (scopes) que vous souhaitez accorder. spend n’est jamais coché d’avance.
  4. Approuvez. Le connecteur est prêt ; le jeton est lié au serveur MCP et refusé par l’API REST.

Les jetons d’accès durent une heure ; les jetons de rafraîchissement durent 30 jours et changent à chaque utilisation. Vous pouvez déconnecter une application à tout moment depuis Réglages du compte › API › Applications connectées.

Avec une clé d’API

Les clients sans OAuth — ou les scripts — s’authentifient avec une clé d’API (gaff_live_…) créée sur la page Clés d’API. Avec Claude Code, une seule commande suffit :

Claude Code
claude mcp add --transport http getaff https://www.getaff.org/api/mcp \
  --header "Authorization: Bearer $GETAFF_API_KEY"

Dans Cursor, déclarez le serveur dans ~/.cursor/mcp.json ; la clé est lue dans votre environnement :

Cursor — ~/.cursor/mcp.json
{
  "mcpServers": {
    "getaff": {
      "url": "https://www.getaff.org/api/mcp",
      "headers": { "Authorization": "Bearer ${env:GETAFF_API_KEY}" }
    }
  }
}

La documentation MCP donne les configurations pour Claude Desktop, VS Code et l’API OpenAI. Gardez la clé dans une variable d’environnement ou dans le coffre à secrets du client, jamais dans un fichier de configuration partagé.

Choisir les scopes

Les scopes déterminent ce que l’assistant peut faire. Aucun n’en implique un autre, sauf read, que porte chaque identifiant.

  • read — sites, critères, résultats, sélection, prospects, séquences.
  • search — recherches qui ne dépensent aucun crédit : sources gratuites de la recherche de partenaires, index de créateurs, créateurs similaires, recherches de concurrents, échanges de conversation.
  • write — modifications de vos données : critères, sélection, prospects, concurrents, inscription dans une séquence.
  • spend — crédits des fournisseurs : recherches en direct et recherches d’e-mails payantes, toujours soumises en plus à une confirmation.

Un bon point de départ est read search write : l’assistant peut chercher, classer et sélectionner, mais tout ce qui est payant reste hors de portée. S’il a besoin de spend plus tard, un client OAuth reçoit un 403 insufficient_scope et peut vous demander de l’accorder — une extension que vous approuvez sur l’écran de consentement.

Le déroulé, outil par outil

Inutile de nommer les outils : l’assistant lit leurs descriptions et choisit. Connaître l’enchaînement vous aide à mieux formuler vos demandes et à vérifier ce qu’il a fait.

  1. list_sites — vos sites et le programme de chacun. L’assistant l’appelle en premier, car tous les autres outils ont besoin d’un siteId.
  2. get_criteria (facultatif) — les mots-clés, niches, plateformes, pays, langues, tranches d’audience et l’ancienneté d’activité que la prochaine recherche utilisera, ainsi que les termes de sujet sur lesquels porte le classement. update_criteria les modifie.
  3. search_partners — une seule recherche dans toutes les sources, fusionnée et classée pour votre programme, chaque créateur avec un score d’adéquation de 0 à 100.
  4. explain_ranking — pourquoi un créateur est classé là où il est : correspondance de sujet, marché, langue, portée, activité récente, signaux liés aux concurrents, proximité avec votre sélection.
  5. shortlist_add — conserve des créateurs de la dernière recherche par leur key (par exemple instagram:1784140). La sélection en contient 100.
  6. shortlist_to_prospects — transforme les créateurs sélectionnés en prospects privés. Gratuit ; compte dans le quota de découverte de votre plan.
  7. find_emails — recherches payantes auprès des fournisseurs de données de créateurs pour les prospects sans adresse (Pro), avec confirmation du coût.
  8. enrol_in_sequence — programme la séquence de prospection en trois étapes pour un prospect depuis votre boîte connectée, après confirmation.
Un seul outil pour tout

Vous préférez converser ? L’outil chat envoie un message à l’assistant partenaires GetAff d’un site, qui peut modifier les critères, lancer une recherche gratuite ou sélectionner des créateurs lui-même. Il ne dépense jamais : une étape payante revient en pending, et chat_confirm l’exécute une fois votre accord donné.

Des requêtes qui fonctionnent

Soyez précis sur le marché, l’audience et l’action suivante. Quelques requêtes qui correspondent directement au déroulé :

  • « Liste mes sites GetAff, puis montre-moi les critères du premier. »
  • « Pour mon site d’organisation de mariages, cherche des partenaires en France et en Belgique, sur Instagram et YouTube, avec des audiences micro et intermédiaires. Sources gratuites uniquement. »
  • « Pourquoi le troisième créateur est-il classé devant le cinquième ? Explique les deux classements. »
  • « Ajoute à ma sélection les cinq créateurs dont le sujet correspond le mieux, puis transforme la sélection en prospects. »
  • « Trouve les e-mails de ces prospects. Donne-moi d’abord le coût. »
  • « Prépare la séquence de prospection pour le premier prospect et montre-moi le récapitulatif avant de programmer quoi que ce soit. »

Si des résultats sont hors sujet, dites-le : « marque le terme budget comme hors sujet et relance la recherche » correspond à correct_topic_term, et la recherche suivante tient compte de votre correction dans le classement.

Coûts et envois toujours confirmés

Deux types d’outils agissent au-delà de vos propres données : ceux qui dépensent des crédits fournisseurs (search_partners avec includeLive, find_emails) et celui qui programme de vrais e-mails (enrol_in_sequence). Tous suivent les deux mêmes étapes.

  1. Le premier appel ne dépense rien et ne programme rien. Il renvoie une estimation — crédits, fournisseur, ce qu’il reste aujourd’hui — ou un récapitulatif de la séquence (prospect, boîte d’envoi, brouillon), accompagné d’un confirmToken.
  2. L’assistant vous présente le coût ou le récapitulatif et attend un oui explicite.
  3. Le même appel, avec les mêmes arguments plus confirmToken, s’exécute — en dépensant au plus les crédits confirmés.

Le jeton est lié à votre identifiant, à l’outil et aux arguments exacts, et expire au bout de 15 minutes. Un appel confirmé relancé rejoue son premier résultat au lieu de payer deux fois.

Le second appel, confirmé
{ "name": "find_emails",
  "arguments": { "ids": ["kJ2p8wQxYb_ig_1784140"], "confirmToken": "gcf_…" } }

Ce que le serveur ne fera pas

  • Dépenser des crédits sans un jeton de confirmation émis pour cet appel précis.
  • Envoyer un e-mail directement : l’inscription ne fait que programmer une séquence, après tous les contrôles de l’application — adresse valide et absente de la liste d’opposition, régime de conformité du pays du destinataire, réglages d’expéditeur complets, programme publié.
  • Accepter une session de navigateur : seule une clé d’API ou un jeton OAuth émis pour ce serveur permet de s’authentifier.
  • Renvoyer une clé, un jeton ou un identifiant réseau dans un résultat d’outil.
  • Faire passer le texte des créateurs pour des instructions : noms, pseudos et bios proviennent de profils publics et sont signalés comme données tierces dans chaque résultat.

Les limites de votre plan s’appliquent à l’assistant exactement comme à vous dans l’application : mêmes allocations quotidiennes, même quota de découverte, mêmes limites de débit. Un assistant n’est jamais un moyen de les contourner.

Pour aller plus loin

L’assistant n’apprend qu’une recherche est terminée ou qu’un prospect a répondu que lorsqu’il appelle de nouveau un outil. Pour une intégration qui doit réagir d’elle-même, enregistrez un webhook. Pour une tâche planifiée sans assistant, les mêmes opérations existent dans l’API REST.

Documentation

Le contrat exact, généré à partir des schémas que les routes appliquent :

À lire ensuite