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.
- Connectez-vous à GetAff si ce n’est pas déjà fait.
- Lisez l’écran de consentement : il nomme l’application, l’adresse où elle vous renverra et ce qu’elle pourra faire.
- Cochez les autorisations (scopes) que vous souhaitez accorder.
spendn’est jamais coché d’avance. - 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 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 :
{
"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.
list_sites— vos sites et le programme de chacun. L’assistant l’appelle en premier, car tous les autres outils ont besoin d’unsiteId.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_criteriales modifie.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.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.shortlist_add— conserve des créateurs de la dernière recherche par leurkey(par exempleinstagram:1784140). La sélection en contient 100.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.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.enrol_in_sequence— programme la séquence de prospection en trois étapes pour un prospect depuis votre boîte connectée, après confirmation.
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.
- 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. - L’assistant vous présente le coût ou le récapitulatif et attend un oui explicite.
- 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.
{ "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
De la clé d’API au prospect inscrit : recherche de partenaires, sélection, e-mails à coût confirmé (402), relances sûres par idempotence et limites de débit.
Critères, termes du sujet, quatre sources, classement par preuves et recherches enregistrées : la recherche de partenaires GetAff, étape par étape.
Recevez search.finished, prospect.replied, application.received et partner.approved, vérifiez la signature en Node ou Python, gérez les nouveaux essais.