Reach by Locus betreibt einen Remote-MCP-Server für Google Business Profile. Ein Assistent wie Claude, ChatGPT oder Cursor meldet sich per OAuth an, liest das Profil, die Bewertungen, Rankings und Leads eines Unternehmens und nimmt eine öffentliche Änderung erst nach Freigabe durch den Inhaber im Chat vor. Dieser Beitrag erklärt, wie er aufgebaut ist.
Die Einrichtung für Inhaber finden Sie auf der MCP-Seite und in den zugehörigen Client-Anleitungen. Dieser Beitrag richtet sich an Entwickler und AI-Entwickler: was der Server bereitstellt, wie ein Schreibvorgang Google erreicht und die Entscheidungen dahinter. Er folgt der Spezifikation des Model Context Protocol.
Was der Server bereitstellt
Der Server verwendet den streamablen HTTP-Transport aus der MCP-Spezifikation (transports), es muss also nichts installiert oder lokal ausgeführt werden. Seine Tools fallen in drei Klassen, und jedes Tool trägt die Annotationen der Spezifikation, sodass ein Client vor dem Aufruf weiss, ob ein Tool nur liest, Reach-eigene Daten ändert oder einen öffentlichen Google-Eintrag ändert (tool annotations).
| Klasse | Was sie abdeckt | Öffentlich auf Google? |
|---|---|---|
| Lesen | Was sie abdecktDas Konto und seine Standorte, Profilinhalte, Bewertungen mit Antwortstatus, Beiträge und Medien, Leistungsanalysen, Rankings getrackter Keywords und nahegelegene Mitbewerber, Leads und Buchungsanfragen sowie eine Liste dessen, was jedem Profil fehlt | Öffentlich auf Google?Nein |
| Änderung in Reach | Was sie abdecktAntwortentwürfe für Bewertungen, Starten oder Stoppen des Keyword-Trackings, Markieren einer Empfehlung als erledigt oder verworfen und Senden einer Funktionsanfrage an das Reach-Team | Öffentlich auf Google?Nein |
| Google-Schreiben | Was sie abdecktProfilfeld- und Servicebereichsbearbeitungen, Foto- und Videouploads und -löschungen, Veröffentlichen von Beiträgen und Veröffentlichen von Bewertungsantworten | Öffentlich auf Google?Ja |
Der Server bietet auch MCP-Prompts an, die wiederverwendbaren Startanweisungen der Spezifikation (prompts): einer optimiert ein Profil jeweils eine bestätigte Änderung nach der anderen, einer überprüft die Sichtbarkeit in der Suche und einer arbeitet unbeantwortete Bewertungen ab. Ein Client zeigt sie als vorgefertigte Anfragen an.
Jedes Tool ruft dieselben Serverprozeduren auf, die auch das Reach-Dashboard aufruft, über einen prozessinternen Aufrufer. Standortzugriffsprüfungen, Tariflimits und Google-Verbindungsprüfungen laufen daher genauso ab wie für einen angemeldeten Eigentümer; die MCP-Ebene hat keinen Weg daran vorbei.
Eine Beispielsitzung, Anruf für Anruf
Beispielhafte Sitzung: eine Zahnarztpraxis in Claude
Der Inhaber tippt: „Finde die Bewertungen vom letzten Monat, auf die ich nicht geantwortet habe, und hilf mir, auf die Beschwerden zu antworten.“
- Der Assistent liest zuerst das Konto. Das Ergebnis listet die Standorte der Praxis mit ihren IDs auf, ob jede Google-Verbindung aktiv ist, den Plan und die verbleibenden Credits.
- Er liest die Bewertungen des Standorts, gefiltert auf unbeantwortete aus den letzten 30 Tagen. Jede Bewertung kommt mit ihrer Sternebewertung, dem Text, dem Datum und dem Antwortstatus zurück.
- Bei einer 2-Sterne-Bewertung über die Wartezeit fragt es Reach nach Antwortentwürfen. Das Entwerfen verbraucht Credits und ändert nichts Öffentliches. Der Assistent zeigt die Optionen, und der Inhaber bearbeitet eine davon.
- Vor dem Veröffentlichen zeigt der Assistent den genauen Text und fragt nach einem Ja. Der Inhaber stimmt zu, die Antwort geht an Google, und das Ergebnis liefert die Antwort, die ersetzt wurde, falls es eine gab.
- Der Assistent liest die Bewertungen erneut, um zu bestätigen, dass die Antwort sichtbar ist, und berichtet dann, was er geändert hat.
Fünf Tool-Aufrufe, eine öffentliche Änderung, eine ausdrückliche Freigabe. Der Entwurf erreicht Google nur in der Formulierung, die der Inhaber freigegeben hat.
Wie eine Änderung Google erreicht
Eine Änderung an einem öffentlichen Eintrag passiert den Inhaber zweimal. Erstens tragen Schreib-Tools destructiveHint, damit der Client seine eigene Genehmigungsaufforderung anzeigen kann. Zweitens sagt jede Tool-Beschreibung dem Modell, die genaue Änderung zu zeigen und im Chat ein ausdrückliches Ja einzuholen. Profilbearbeitungen und Medienänderungen gehen weiter und verwenden standardmäßig eine Vorschau, die nichts schreibt.
Eine Profilbearbeitung braucht zwei Aufrufe. Der erste mit preview: true (Standard) liefert für jedes geänderte Feld das Vorher und Nachher, jedes Feld, das abgelehnt würde, samt nötiger Korrektur, und einen basedOn-Fingerprint des gelesenen Profils. Der zweite Aufruf schreibt nur, wenn er diesen Fingerprint trägt und sich das Profil seither nicht geändert hat. Wenn jemand den Eintrag in der Zwischenzeit bearbeitet hat, im Dashboard oder durch eine Google-Synchronisierung, wird der Schreibvorgang verweigert und der Assistent muss erneut eine Vorschau anzeigen.
Die Google-eigene API wendet die Felder an, die ihr unter einer Update-Maske (locations.patch) gesendet werden. Sie kann nicht wissen, ob eine Person die Änderung gesehen hat. Die Vorschau und der Fingerabdruck stellen diese Prüfung davor, sodass ein Modell keine veraltete oder ungesehene Änderung anwenden kann, auch nicht bei einem erneuten Versuch.
Beiträge und Antworten auf Bewertungen haben keinen Vorschritt, weil der Text, den der Inhaber genehmigt, selbst die Änderung ist. Ihre Beschreibungen verlangen, dass der Assistent zuerst den genauen Beitrag oder die Antwort zeigt. Eine veröffentlichte Antwort ersetzt eine frühere Antwort, und kein Tool entfernt sie (reviews.updateReply); die Beschreibung sagt das, damit das Modell den Inhaber informieren kann, bevor er zustimmt.
Reach hat sich für die Bestätigung im Chat entschieden, statt für eine Vorschlag-und-Freigabe-Warteschlange innerhalb von Reach. Der Inhaber ist bereits im Chat, ein zweiter Posteingang wäre ein Schritt, den man leicht ignoriert, und die MCP-Spezifikation erwartet bereits einen Menschen, der einen Tool-Aufruf ablehnen kann (Sicherheitsüberlegungen).
Guards that do not depend on the model
The specification says clients must treat tool annotations as untrusted unless they come from a trusted server (tool annotations), and a model can ignore a description. So the server enforces its own rules:
- A Google write budget. Each business can make up to 20 Google changes per hour through assistants. A model stuck in a loop hits the limit and is told how long to wait, instead of rewriting a profile again and again.
- Retry safety. Every change accepts an idempotency key. A repeat with the same key returns the first result instead of writing again; without a key, an identical call within a short window counts as the same change.
- Location checks on every call. The location id a model sends is checked against the owner’s live Google access each time, with the same check the dashboard uses. The server keeps no session for a model to reuse.
- Masked phone numbers. Leads and booking requests come back with phone numbers masked to the last four digits, inside notes too. Emails pass through, because an owner needs them to answer a lead.
- Revocation the server enforces. An owner can disconnect an assistant from the AI Connectors screen in Reach, and the server refuses that client’s token from then on.
Telling the model what it cannot see
An assistant that receives an empty list tells the owner “you have no reviews”. Often the truth is that data exists but is hidden: the location was added from its public listing and has no Google connection, the plan does not include a feature, or Google has not finished the first sync. Read results therefore carry a limitations list that names the reason and the link that fixes it. An empty list means nothing was hidden.
The account result does the same for features. Each one is marked as available or not built yet, so the model does not describe calls or ads as things Reach can do today. When an owner wants something Reach lacks, the assistant can send the request to the Reach team in the owner’s words, after showing them the wording.
Every response also returns the tool’s schema version. Clients cache tool schemas and can fail quietly when one changes, so a breaking change shows up in the response and in Reach’s logs rather than only in a client’s error rate.
Anmeldung: OAuth 2.1, keine API-Schlüssel
The server is an OAuth 2.1 protected resource, as the MCP authorization specification describes (authorization). It publishes protected resource metadata (RFC 9728), so a client finds the authorization server on its own, registers itself and opens a browser sign-in. The owner signs in with their Reach account; there is no key to paste.
The server checks that each token was issued for this resource and not for another service on the same authorization server, the confused-deputy defence that resource indicators exist for (RFC 8707). The Google connection never reaches the assistant: Reach holds it, and the assistant only ever holds a Reach token.
That is also why an owner does not need Google API access. Google grants the Business Profile APIs per project after an access request (prerequisites), which most small businesses never file.
Was es nicht kann
- It cannot change the primary category or the address. Those stay with the owner in Google’s own tools.
- It cannot delete a post or remove a review reply. A posted reply can be replaced, not removed.
- Without a connected Google Business Profile it can only read the public listing. A location added from its public listing gets that snapshot and a link to connect.
- It cannot make more than 20 Google changes per business per hour through assistants.
- Search rank covers tracked keywords only. A new keyword has no rank until its first check runs.
Connect it in Claude, ChatGPT or Cursor
Server-URL
https://reach.locus-intelligence.com/api/mcpÜber den Reach Google Business Profile MCP-Server
Jeder Kunde fügt Remoteserver anders hinzu, daher stehen die Schritte auf einer Seite pro Kunde: Claude, ChatGPT, Claude Code, Cursor und VS Code. Die Anbieter dokumentieren dasselbe: Anthropic zu benutzerdefinierten Verbindungen, OpenAI zum Verbinden über ChatGPT und Cursor zu MCP-Servern.
Häufig gestellte Fragen
- Brauche ich für die Nutzung dieses MCP-Servers Zugriff auf die Google Business Profile API?
- Nein. Reach hält die Google-Verbindung, und der Assistent meldet sich mit OAuth bei Reach an. Die APIs von Google benötigen ein genehmigtes Google-Cloud-Projekt (Voraussetzungen), was dadurch vermieden wird.
- Mit welchen AI-Assistenten funktioniert das?
- Jeder Client, der entfernte MCP-Server mit OAuth-Anmeldung unterstützt, einschließlich Claude, ChatGPT, Claude Code, Cursor, VS Code, Codex, Windsurf und Cline.
- Kann der Assistent meinen Eintrag ohne Rückfrage ändern?
- Änderungen an Google laufen über die Genehmigungsaufforderung des Kunden und ein ausdrückliches Ja im Gespräch, und Profilbearbeitungen benötigen eine frische Vorschau. Der Server kann das Gespräch nicht sehen, daher sind die von ihm selbst durchgesetzten Schutzmechanismen die Weigerung bei veralteter Vorschau, das stündliche Google-Schreiblimit und die Wiederholungssicherheit.
- Kostet es etwas?
- Lesen kostet nichts. Das Entwerfen einer Antwort auf Bewertungen verbraucht Reach-Credits, und einige Funktionen hängen vom Plan ab. Der Free-Plan umfasst einen Standort.
- Was passiert, wenn die Google-Verbindung bricht?
- Das Kontenergebnis zeigt den Verbindungsstatus jedes Standorts. Wenn er nicht aktiv ist, teilt der Assistent dem Inhaber mit, Google in Reach neu zu verbinden, und arbeitet nicht mehr an diesem Standort.
Verbinden Sie einen Assistenten mit Ihrem eigenen Profil
Beginnen Sie mit einer reinen Lesefrage, z. B. welche Bewertungen unbeantwortet sind, genehmigen Sie dann eine kleine Änderung und lesen Sie sie vor. Die Einrichtungsseite führt Sie durch jeden Kunden.
