Reach by Locus exécute un serveur MCP distant pour Google Business Profile. Un assistant tel que Claude, ChatGPT ou Cursor se connecte avec OAuth, lit le profil, les avis, les classements et les prospects d’une entreprise, et ne publie une modification publique qu’après l’approbation du propriétaire dans la discussion. Cet article explique comment il est construit.
La configuration du propriétaire se trouve sur la page MCP et ses guides par client. Cet article s’adresse aux développeurs et aux créateurs d’AI : ce que le serveur expose, comment une écriture atteint Google, et les décisions qui la sous-tendent. Il suit la spécification du protocole de contexte de modèle.
Ce que le serveur expose
Le serveur utilise le transport HTTP streamable de la spécification MCP (transports), donc rien à installer ni à exécuter en local. Ses outils se répartissent en trois classes, et chaque outil porte les annotations de la spécification, de sorte qu’un client sait avant d’appeler si un outil lit seulement, modifie les données propres de Reach ou modifie une fiche Google publique (annotations d’outils).
| Classe | Ce qu’elle couvre | Public sur Google ? |
|---|---|---|
| Lecture | Ce qu’elle couvreLe compte et ses établissements, le contenu du profil, les avis avec leur statut de réponse, les publications et médias, les statistiques de performance, les classements de mots-clés suivis et les concurrents proches, les prospects et demandes de réservation, et la liste de ce qui manque à chaque profil | Public sur Google ?Non |
| Modification dans Reach | Ce qu’elle couvreBrouillons de réponses aux avis, démarrage ou arrêt du suivi de mots-clés, marquer une recommandation comme faite ou ignorée, et envoyer une demande de fonctionnalité à l’équipe Reach | Public sur Google ?Non |
| Écriture Google | Ce qu’elle couvreModifications des champs du profil et de la zone de service, téléversements et suppressions de photos et vidéos, publication de posts et de réponses aux avis | Public sur Google ?Oui |
Le serveur propose aussi des invites MCP, les instructions de démarrage réutilisables de la spécification (prompts) : l’une optimise un profil une modification confirmée à la fois, une autre passe en revue la visibilité dans la recherche, et une dernière traite les avis sans réponse. Un client les affiche comme des demandes prêtes à l’emploi.
Chaque outil appelle les mêmes procédures serveur que le tableau de bord Reach, via un appelant en processus. Les vérifications d’accès à la localisation, les limites du plan et les contrôles de connexion Google s’exécutent donc exactement comme pour un propriétaire connecté ; la couche MCP n’a aucun moyen de les contourner.
Un exemple de session, appel par appel
Session illustrative : un propriétaire de cabinet dentaire dans Claude
Le propriétaire tape : « Trouve les avis du mois dernier auxquels je n'ai pas répondu et aide-moi à répondre aux plaintes. »
- L'assistant lit d'abord le compte. Le résultat liste les établissements du cabinet avec leurs identifiants, l'état de la connexion Google, le forfait et les crédits restants.
- Il lit les avis de l'établissement, filtrés sur ceux sans réponse des 30 derniers jours. Chaque avis revient avec sa note, son texte, sa date et son statut de réponse.
- Pour un avis 2 étoiles sur le temps d'attente, il demande à Reach des brouillons de réponse. La rédaction utilise des crédits et ne modifie rien de public. L'assistant montre les options, et le propriétaire en édite une.
- Avant de publier, l'assistant montre le texte exact et demande un oui. Le propriétaire accepte, la réponse part vers Google, et le résultat renvoie la réponse qu'elle a remplacée, s'il y en avait une.
- L'assistant relit les avis pour confirmer que la réponse s'affiche, puis rapporte ce qu'il a changé.
Cinq appels d'outil, une modification publique, une approbation explicite. Le brouillon n'atteint Google que dans le libellé approuvé par le propriétaire.
Comment une modification atteint Google
Une modification d'une fiche publique passe deux fois par le propriétaire. D'abord, les outils d'écriture portent destructiveHint, ce qui permet au client d'afficher sa propre invite d'approbation. Ensuite, chaque description d'outil indique au modèle de montrer la modification exacte et d'obtenir un oui explicite dans la conversation. Les modifications de profil et les changements de média vont plus loin et utilisent par défaut un aperçu qui n'écrit rien.
Une modification de profil prend deux appels. Le premier, avec preview: true (la valeur par défaut), renvoie pour chaque champ modifié l'avant et l'après, tout champ qui serait rejeté avec le correctif nécessaire, et une empreinte basedOn du profil lu. Le second appel n'écrit que s'il porte cette empreinte et que le profil n'a pas changé entre-temps. Si quelqu'un a modifié la fiche entre-temps, dans le tableau de bord ou via une synchronisation Google, l'écriture est refusée et l'assistant doit refaire un aperçu.
La propre API de Google applique les champs qui lui sont envoyés sous un masque de mise à jour (locations.patch). Elle ne peut pas savoir si une personne a vu la modification. L'aperçu et l'empreinte placent ce contrôle devant elle, de sorte qu'un modèle ne peut pas appliquer une modification obsolète ou non vue, même lors d'une nouvelle tentative.
Les publications et les réponses aux avis n'ont pas d'étape d'aperçu, car le texte que le propriétaire approuve est la modification elle-même. Leurs descriptions exigent que l'assistant montre d'abord la publication ou la réponse exacte. Une réponse publiée remplace toute réponse antérieure et aucun outil ne la supprime (reviews.updateReply), et la description le dit, afin que le modèle puisse en informer le propriétaire avant qu'il n'accepte.
Reach a choisi la confirmation dans la conversation plutôt qu'une file d'attente de proposition et d'approbation au sein de Reach. Le propriétaire est déjà dans le chat, une deuxième boîte de réception ajoute une étape facile à ignorer, et la spécification MCP attend déjà un humain qui peut refuser un appel d'outil (considérations de sécurité).
Gardes qui ne dépendent pas du modèle
La spécification dit que les clients doivent traiter les annotations d'outil comme non fiables à moins qu'elles ne proviennent d'un serveur de confiance (annotations d'outil), et un modèle peut ignorer une description. Le serveur applique donc ses propres règles :
- Un budget d'écriture Google. Chaque entreprise peut effectuer jusqu'à 20 modifications Google par heure via les assistants. Un modèle bloqué dans une boucle atteint la limite et se voit indiquer le temps d'attente, au lieu de réécrire un profil encore et encore.
- Sécurité des tentatives. Chaque modification accepte une clé d'idempotence. Une répétition avec la même clé renvoie le premier résultat au lieu d'écrire à nouveau ; sans clé, un appel identique dans un court laps de temps compte comme la même modification.
- Vérifications de l'établissement à chaque appel. L'identifiant d'établissement qu'un modèle envoie est vérifié par rapport à l'accès Google en direct du propriétaire à chaque fois, avec la même vérification qu'utilise le tableau de bord. Le serveur ne conserve aucune session qu'un modèle pourrait réutiliser.
- Numéros de téléphone masqués. Les prospects et les demandes de réservation reviennent avec les numéros de téléphone masqués aux quatre derniers chiffres, y compris dans les notes. Les e-mails passent, car un propriétaire en a besoin pour répondre à un prospect.
- Révocation appliquée par le serveur. Un propriétaire peut déconnecter un assistant depuis l'écran Connecteurs AI dans Reach, et le serveur refuse alors le jeton de ce client.
Dire au modèle ce qu'il ne peut pas voir
Un assistant qui reçoit une liste vide dit au propriétaire « vous n'avez aucun avis ». Souvent, la vérité est que des données existent mais sont cachées : l'établissement a été ajouté à partir de sa fiche publique et n'a pas de connexion Google, le forfait n'inclut pas une fonctionnalité, ou Google n'a pas terminé la première synchronisation. Les résultats de lecture portent donc une liste de limitations qui nomme la raison et le lien qui la corrige. Une liste vide signifie que rien n'a été caché.
Le résultat du compte fait de même pour les fonctionnalités. Chacune est marquée comme disponible ou pas encore construite, afin que le modèle ne décrive pas des appels ou des annonces comme des choses que Reach peut faire aujourd'hui. Lorsqu'un propriétaire veut quelque chose que Reach n'a pas, l'assistant peut envoyer la demande à l'équipe Reach dans les mots du propriétaire, après lui avoir montré le libellé.
Chaque réponse renvoie également la version du schéma de l'outil. Les clients mettent en cache les schémas d'outils et peuvent échouer silencieusement lorsque l'un d'eux change, donc une modification cassante apparaît dans la réponse et dans les journaux de Reach plutôt que seulement dans le taux d'erreur d'un client.
Connexion : OAuth 2.1, pas de clés API
Le serveur est une ressource protégée OAuth 2.1, comme le décrit la spécification d'autorisation MCP (autorisation). Il publie les métadonnées de ressource protégée (RFC 9728), afin qu'un client trouve le serveur d'autorisation par lui-même, s'enregistre et ouvre une connexion par navigateur. Le propriétaire se connecte avec son compte Reach ; il n'y a pas de clé à coller.
Le serveur vérifie que chaque jeton a été émis pour cette ressource et non pour un autre service sur le même serveur d'autorisation, la défense contre le député confus pour laquelle les indicateurs de ressource existent (RFC 8707). La connexion Google n'atteint jamais l'assistant : Reach la détient, et l'assistant ne détient jamais qu'un jeton Reach.
C'est aussi pourquoi un propriétaire n'a pas besoin d'accès à l'API Google. Google accorde les API Business Profile par projet après une demande d'accès (prérequis), que la plupart des petites entreprises ne déposent jamais.
Ce qu'il ne peut pas faire
- Il ne peut pas modifier la catégorie principale ou l'adresse. Ceux-ci restent avec le propriétaire dans les propres outils de Google.
- Il ne peut pas supprimer une publication ni retirer une réponse à un avis. Une réponse publiée peut être remplacée, pas supprimée.
- Sans Google Business Profile connecté, il ne peut que lire la fiche publique. Un établissement ajouté à partir de sa fiche publique obtient cet instantané et un lien pour se connecter.
- Il ne peut pas effectuer plus de 20 modifications Google par entreprise par heure via les assistants.
- Le classement de recherche ne couvre que les mots-clés suivis. Un nouveau mot-clé n'a pas de classement avant la première vérification.
Connectez-le dans Claude, ChatGPT ou Cursor
URL du serveur
https://reach.locus-intelligence.com/api/mcpÀ propos du serveur MCP Google Business Profile de Reach
Chaque client ajoute les serveurs distants différemment, donc les étapes se trouvent sur une page par client : Claude, ChatGPT, Claude Code, Cursor et VS Code. Les éditeurs documentent le même terrain : Anthropic sur les connecteurs personnalisés, OpenAI sur la connexion depuis ChatGPT et Cursor sur les serveurs MCP.
Questions fréquentes
- Ai-je besoin d'un accès à l'API Google Business Profile pour utiliser ce serveur MCP ?
- Non. Reach détient la connexion Google, et l'assistant se connecte à Reach avec OAuth. Les API de Google nécessitent un projet Google Cloud approuvé (prérequis), ce que cela évite.
- Quels assistants AI fonctionnent avec lui ?
- Tout client prenant en charge les serveurs MCP distants avec connexion OAuth, y compris Claude, ChatGPT, Claude Code, Cursor, VS Code, Codex, Windsurf et Cline.
- L'assistant peut-il modifier ma fiche sans demander ?
- Les modifications apportées à Google passent par l'invite d'approbation du client et un oui explicite dans la conversation, et les modifications de profil nécessitent un nouvel aperçu. Le serveur ne peut pas voir la conversation, donc les gardes qu'il applique lui-même sont le refus d'aperçu obsolète, la limite horaire d'écriture Google et la sécurité des tentatives.
- Cela coûte-t-il quelque chose ?
- La lecture ne coûte rien. La rédaction d'une réponse à un avis utilise des crédits Reach, et certaines fonctionnalités dépendent du forfait. Le forfait Gratuit couvre un établissement.
- Que se passe-t-il si la connexion Google se rompt ?
- Le résultat du compte montre l'état de connexion de chaque établissement. S'il n'est pas actif, l'assistant dit au propriétaire de reconnecter Google dans Reach et cesse de travailler sur cet établissement.
Connectez un assistant à votre propre profil
Commencez par une question en lecture seule, par exemple quels avis sont sans réponse, puis approuvez un petit changement et relisez-le. La page de configuration parcourt chaque client.
