MCP : brancher votre assistant

Votre assistant IA pilote votre compte : il lit votre portefeuille, ajoute un client, diagnostique un prospect. Les règles sont celles de la console et de l’email : mêmes limites, mêmes refus.

Mis à jour le 29 septembre 2026

Brancher votre assistant

Une fois pour toutes. Ensuite, l’assistant renouvelle seul son accès tant qu’il sert.

Claude.ai et Claude Desktop

  1. Paramètres → Connecteurs → Ajouter un connecteur personnalisé.
  2. Adresse : https://geo.greeneris.io/agence/mcp/. Gardez « Se connecter maintenant » et « S'enregistrer automatiquement ».
  3. « Connecter » : écrivez l'adresse email de votre compte.
  4. Cliquez le lien reçu, dans le même navigateur.

ChatGPT

  1. Sur les formules payantes, sur le web : Paramètres → Sécurité et connexion → mode développeur.
  2. Plugins → « + » → « Créer une application ».
  3. Adresse : https://geo.greeneris.io/agence/mcp/, authentification OAuth.
  4. « Connecter », votre adresse email, puis le lien reçu.

Claude Code, pour vos développeurs

  1. Demandez la clé de votre compte : « ma clé », par email ou dans la console.
  2. Collez cette commande dans un terminal, avec votre clé :
claude mcp add --transport http geoscope-agence https://geo.greeneris.io/agence/mcp/ --header "x-api-key: VOTRE_CLÉ"

« Révoque ma clé » coupe vos clés et déconnecte vos assistants, tout de suite. Il suffit ensuite de les reconnecter.

Un bon lancement

Ce que vous écrivez à votre assistant, et ce qui se passe de notre côté, de la première phrase au premier rapport.

  1. « Ajoute Garage Dupont, garage-dupont.fr, Lyon, garage automobile ; concurrents : Garage du Parc, Auto Service Lyon. »

    Une proposition : ce qui serait ajouté. Rien ne part.

  2. « Oui. »

    L'ajout est confirmé : ses questions sont préparées, puis vous arrivent à valider.

  3. « Montre-moi ses questions », puis « retire la 7 » ou « lance ».

    Sans réponse, la mesure part seule au bout de 24 heures.

  4. Rien à faire.

    Le premier rapport arrive par email, à vos couleurs ; le brief de page, au plus tôt 24 heures après.

Les outils

Votre assistant choisit l’outil tout seul ; vous lui parlez normalement. Rangés par ce qu’ils font :

Lire

Rien ne change, rien ne se paie.

compte
Votre compte : la formule, le plafond de clients, les places qui restent, où en est le paiement.
clients
Votre portefeuille : chaque client suivi, son site, sa dernière mesure, le nombre de documents remis.
livrables
Les rapports et les pages d'un client, avec leurs liens.
questions
Les questions posées aux IA pour un client, mot pour mot, et où il en est sur chacune : jamais cité, cité mais derrière un concurrent, cité en tête ; la question notée pour sa prochaine page.
leads
Vos diagnostics de prospects des 30 derniers jours, leur état et leur lien, et le décompte du mois.
aide
Ce mode d'emploi.

Agir en deux temps

L'outil rend d'abord une proposition ; l'assistant a pour consigne d'attendre votre accord.

ajouter_clients
Ajoute des clients, en deux temps : d'abord une proposition, et rien ne part ; puis, avec votre accord, les mesures.
diagnostic_prospect
Le diagnostic d'un prospect, à vos couleurs, en deux temps ; le prospect n'est jamais contacté. 3 par client couvert et par mois.
corriger_client
Corrige le nom, le site, la ville ou le métier d'un client, en deux temps. Une seule fois par client : la correction refait ses mesures.
retirer_client
Retire un client, en deux temps. Sa place se libère 30 jours après son premier diagnostic.
marque
Votre nom, votre couleur et votre contact, sur les prochains documents, en deux temps ; ceux déjà remis ne changent pas.
resilier
Résilie à la fin de la période déjà réglée, en deux temps.
nouveau_badge
Change votre adresse de commande par email et coupe l'ancienne, en deux temps.

Agir tout de suite

Le geste s'applique à l'instant.

valider_questions
Après un ajout : retirer ou remplacer des questions, puis lancer la mesure. Sans réponse, elle part seule au bout de 24 heures.
choisir_page
Note la question que visera la prochaine page d'un client, tout de suite et sans coût ; se change jusqu'à ce qu'elle soit écrite. Sans choix, la machine prend celle où il perd le plus.
refaire_audit
Refait l'audit du site d'un client ; un par client et par jour.
revoquer_cles
Coupe tout de suite toutes vos clés d'API et déconnecte vos assistants.

Demander

La demande est transmise ; elle s'applique quand elle est vérifiée ou payée.

adresses
Demande d'ajouter ou de retirer une adresse email du compte ; une personne vérifie avant.
changer_formule
Demande une autre formule ; elle prend effet au paiement.
annoncer_virement
Signale un virement ; l'échéance avance quand il est constaté.

Les champs

Ce que l’assistant remplit quand vous ajoutez un client ou diagnostiquez un prospect. Il lit ces mêmes phrases.

entreprise
Son nom, tel qu'il s'écrit chez lui : c'est ce nom qu'on cherche dans les réponses des IA.
site_web
L'adresse de son propre site, pas une page d'annuaire ni de réseau social : on le lit pour reconnaître son métier, et on l'audite.
ville
La commune où il reçoit ses clients, telle qu'on l'écrit (« Lyon », « Porto-Vecchio ») : les questions posées aux IA la citent. Jamais une catégorie ni une description : avec « Hôtel de luxe », on demanderait aux IA un hôtel « à Hôtel de luxe ».
metier
Son métier en quelques mots (« hôtel », « notaire », « garage automobile ») : il choisit les questions de sa profession ; déclaré, il passe avant ce que nous déduisons du site.
concurrents
Pour un client seulement. Ceux qu'il cite, séparés par des virgules : ils passent en tête de ceux que le rapport suit, huit au plus.
contexte
Pour un client seulement. Ce qu'il vend ou à qui, que son site ne dit pas (« pains au levain, clientèle de quartier ») : il aide à reconnaître son métier et nourrit ses questions écrites sur mesure.

Les erreurs courantes

  • Une ville qui n'est pas une commune

    Les questions citent la ville : avec « Hôtel de luxe », elles deviennent absurdes et le rapport est faussé. Écrivez la commune.

  • Confirmer sans l'accord de l'agence

    Un ajout ou un diagnostic confirmé lance de vraies mesures, qui se paient. Proposez d'abord, confirmez ensuite.

  • Ajouter un client déjà suivi

    Refusé : il est déjà sur le compte.

  • Ajouter quand tout est pris

    Refusé, et le refus dit la formule au-dessus. Un client retiré garde sa place 30 jours après son premier diagnostic.

  • Corriger deux fois le même client

    Une seule correction par client : elle refait ses mesures.

  • Rediagnostiquer un prospect

    Refusé s'il a déjà son diagnostic des 30 derniers jours, ou s'il est déjà client. 3 leads par client couvert et par mois.

  • Attendre le document dans la conversation

    Il arrive par email. « livrables » et « leads » donnent les liens.

Le protocole, pour vos développeurs

Model Context Protocol : la prise standard par laquelle un assistant IA utilise un outil à la place de l’agence. Un seul point, POST https://geo.greeneris.io/agence/mcp/, du JSON-RPC 2.0, un message par requête, une réponse JSON. Pas de flux serveur : le GET répond 405. Écrit à la main, sans bibliothèque. Chaque outil appelle la même fonction que la route de l’API : mêmes règles, mêmes refus, mêmes mots.

  • Versions du protocole : 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05, dans l’en-tête MCP-Protocol-Version. Absent, 2025-03-26. Inconnue, 400.
  • Authentification : la clé du compte dans x-api-key, ou un jeton OAuth dans Authorization: Bearer. Sans l’un ni l’autre, 401 avec un défi WWW-Authenticate, pour initialize aussi : c’est ce 401 qui fait proposer « Connecter » à Claude.ai.
  • Méthodes : initialize, ping, tools/list, tools/call, et les notifications (sans id, accusées par un 202 vide). Ni resources ni prompts.
  • Origine : un en-tête Origin est refusé (403). Cette porte est faite pour un serveur, pas pour une page ouverte dans un navigateur.
  • Erreurs de protocole : -32700 JSON illisible, -32600 requête invalide, -32601 méthode inconnue, -32603 l’outil n’a pas abouti, -32001 refusé (clé, compte suspendu, trop d’appels). Un refus métier (plus de place, déjà retiré) est un résultat avec isError: true : l’assistant doit pouvoir le lire et l’expliquer.
  • Résultats : le même objet que la route correspondante, en texte dans content et en structuredContent. Chaque outil porte ses annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) et ses instructions disent à l’assistant pour qui il travaille : une agence cliente.
  • Limites : 600 appels par heure et par clé ou par connexion. Le compte est relu en base à chaque appel : un compte en pause ne commande plus.
Les vingt outils, et la route de l’API qu’ils appellent. Là où la route prend un identifiant dans l’adresse, l’outil le prend en argument id ; les autres arguments sont ceux du corps JSON.
OutilRoute équivalenteNature
compteGET /agence/v1/compte/lecture
clientsGET /agence/v1/clients/lecture
livrablesGET …/clients/{id}/livrables/lecture
questionsGET …/clients/{id}/questions/lecture
leadsGET /agence/v1/diagnostics/lecture
aideGET /agence/v1/aide/lecture
ajouter_clientsPOST /agence/v1/clients/deux temps
retirer_clientPOST …/clients/{id}/retirer/deux temps, destructif
corriger_clientPOST …/clients/{id}/corriger/deux temps
diagnostic_prospectPOST /agence/v1/diagnostics/deux temps
marquePOST /agence/v1/marque/deux temps
resilierPOST /agence/v1/resilier/deux temps, destructif
nouveau_badgePOST /agence/v1/badge/deux temps, destructif
valider_questionsPOST …/clients/{id}/questions/tout de suite
choisir_pagePOST …/clients/{id}/page/tout de suite
refaire_auditPOST …/clients/{id}/audit/tout de suite
adressesPOST /agence/v1/adresses/transmise à une personne
changer_formulePOST /agence/v1/formule/transmise à une personne
annoncer_virementPOST /agence/v1/virement/tout de suite
revoquer_clesPOST /agence/v1/cles/revoquer/tout de suite, destructif
Appeler un outil, avec la clé du compte
# Le compte, par le MCP : la même fonction que GET /agence/v1/compte/
curl -X POST https://geo.greeneris.io/agence/mcp/ \
  -H "x-api-key: VOTRE_CLE" \
  -H "Content-Type: application/json" \
  -H "MCP-Protocol-Version: 2025-06-18" \
  -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call",
       "params": {"name": "compte", "arguments": {}}}'

# La liste des vingt outils, avec leur schéma d'entrée et leurs annotations
curl -X POST https://geo.greeneris.io/agence/mcp/ \
  -H "x-api-key: VOTRE_CLE" -H "Content-Type: application/json" \
  -d '{"jsonrpc": "2.0", "id": 2, "method": "tools/list"}'
Ce que rend un outil
{
  "jsonrpc": "2.0", "id": 1,
  "result": {
    "content": [{"type": "text", "text": "{ ...le même JSON, indenté... }"}],
    "structuredContent": { "slug": "...", "nom": "...", "plafond": 5, "places_restantes": 2 },
    "isError": false
  }
}

OAuth 2.1

C’est ainsi que Claude.ai, Claude Desktop et ChatGPT se connectent, sans clé. Clients publics enregistrés dynamiquement, PKCE S256 obligatoire, indicateur de ressource, rotation des jetons de rafraîchissement, iss dans chaque retour. L’agence s’identifie sans mot de passe : par un lien reçu à l’adresse email de son compte, cliqué dans le même navigateur. Un jeton OAuth n’ouvre que le MCP, jamais /agence/v1/ : un programme prend la clé.

  1. L’assistant appelle le MCP sans jeton et reçoit 401. Le défi pointe les métadonnées de la ressource (RFC 9728).
  2. GET /.well-known/oauth-protected-resource : resource, authorization_servers (le service lui-même), scopes_supported (agence).
  3. GET /.well-known/oauth-authorization-server (RFC 8414) : les trois points ci-dessous, S256, none comme seule méthode d’authentification du client.
  4. POST /agence/oauth/enregistrer/ (RFC 7591) : {"redirect_uris": [...]}, en https ou http://localhost, et un client_name facultatif. 201 avec client_id. Vingt par heure et cent par jour par adresse IP.
  5. GET /agence/oauth/autoriser/ avec response_type=code, client_id, redirect_uri, state, code_challenge, code_challenge_method=S256 et resource=https://geo.greeneris.io/agence/mcp/. Le service vérifie et envoie l’agence sur la fenêtre de connexion du site ; elle y écrit l’adresse email de son compte, clique le lien reçu, et la fenêtre repart vers redirect_uri avec code, state et iss. Un client ou un retour inconnus renvoient vers la page du site, jamais vers une adresse inconnue.
  6. POST /agence/oauth/jeton/, en application/x-www-form-urlencoded : le code contre un jeton d’accès d’une heure et un jeton de rafraîchissement de trente jours. Puis grant_type=refresh_token, avec rotation : un code ou un jeton déjà servi qui revient coupe toute la connexion. Erreurs aux codes de la RFC 6749 (invalid_grant, invalid_target…).
  7. Le MCP s’appelle avec Authorization: Bearer. Un jeton échu ou coupé rend 401 invalid_token : l’assistant rafraîchit, ou refait la connexion. « Révoque ma clé » coupe aussi tous les assistants connectés.
Le 401 qui lance la connexion
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer resource_metadata="https://geo.greeneris.io/.well-known/oauth-protected-resource", scope="agence"
{"error": "invalid_token", "error_description": "connexion requise"}
L’échange du code
curl -X POST https://geo.greeneris.io/agence/oauth/jeton/ \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=authorization_code&code=LE_CODE&client_id=LE_CLIENT_ID" \
  -d "redirect_uri=https://exemple.fr/retour&code_verifier=LE_VERIFIER" \
  -d "resource=https://geo.greeneris.io/agence/mcp/"

# {"access_token": "...", "token_type": "Bearer", "expires_in": 3600,
#  "refresh_token": "...", "scope": "agence"}

Les autres portes

Les mêmes gestes marchent sans assistant : dans votre console, par email en répondant à nos messages, et pour vos programmes par l’API. Ce que vous recevez, comment lire votre compte et ce que couvre chaque formule : le mode d’emploi.

Une question qui demande un humain : hello@greeneris.io