
n8n MCP Server: Leadgenerierung mit einem KI-Agenten
Ein n8n AI Agent kann eine Google Maps Leadsuche inzwischen selbst ausführen. Sie beschreiben die Aufgabe in normaler Sprache, der Agent wählt Kategorie, Land, Stadt und Umfang der Suche und liest die fertigen Zeilen zurück. Die Verbindung besteht aus einem Node und einer Credential.
Das ist eine andere Form von Automatisierung als im Leitfaden zum Polling-Workflow, wo jeder Parameter vor dem Lauf feststeht. Hier sind die Parameter die Entscheidung des Agenten. Für offene Recherche ist das wirklich nützlich, für alles, was Geld kostet, wirklich riskant. Der größte Teil dieses Artikels handelt von der zweiten Hälfte dieses Satzes.
Fester Workflow oder Agent?
Beide Wege rufen dieselbe API auf und kosten dieselben Credits. Sie unterscheiden sich darin, wer die Argumente wählt.
| Fester Workflow (HTTP Request) | KI-Agent (MCP) | |
|---|---|---|
| Wer wählt Kategorie und Stadt | Sie, beim Bauen | Das Modell, zur Laufzeit |
| Wiederholbarkeit | Bei jedem Lauf gleich | Hängt von der Anfrage ab |
| Gut geeignet für | Geplante Läufe, eine Nische pro Kampagne | Recherche, einzelne Fragen, Chat-Anfragen |
| Typischer Fehler | Falsches Ergebnis, leicht nachvollziehbar | Plausibles Ergebnis aus der falschen Suche |
| Prüfung nötig | Einmal | Nach jeder Prompt-Änderung |
Eine Regel, die sich bewährt hat: Wenn Sie die Suche vor dem Lauf aufschreiben können, schreiben Sie sie auf. Greifen Sie zum Agenten, wenn die Anfrage eher ein Satz als ein Formular ist.
Was der Endpunkt dem Agenten gibt
Der MCP-Server ist eine einzige URL. Den Handshake übernimmt n8n.
| Einstellung | Wert |
|---|---|
| Endpunkt | https://www.basedonb.com/api/mcp |
| Node | MCP Client Tool, Version 1.2 oder neuer |
| Transport | HTTP Streamable |
| Authentifizierung | MCP OAuth2 mit Dynamic Client Registration, oder Bearer Auth mit einem API-Schlüssel mit dem Scope mcp |
Nach dem Verbinden kann der Agent zehn Werkzeuge aufrufen:
| Werkzeug | Wofür der Agent es nutzt |
|---|---|
submit_scrape | Startet eine Suche. Das einzige Werkzeug, das Credits kostet. |
get_scrape_status | Prüft, ob ein Job noch läuft |
get_scrape_results | Liest fertige Zeilen, seitenweise |
list_scrapes | Sieht sich laufende Jobs an, bevor ein neuer startet |
cancel_scrape | Stoppt einen versehentlich gestarteten Job |
get_account | Liest Tarif und Kontostatus |
get_credits | Prüft das Guthaben, bevor es ausgegeben wird |
list_countries | Löst ein Land in seinen ISO-Code auf |
list_states | Findet den GeoNames-Code mit Punkt, etwa US.TX |
list_cities | Bestätigt eine Schreibweise, die das Modell geraten haben könnte |
Die letzten drei sind wichtiger, als sie aussehen. Ein Modell, das nach Zahnärzten in Texas gefragt wird, erfindet den Bundeslandcode bereitwillig. Die Listenwerkzeuge lassen es prüfen statt raten, und ihr Aufruf kostet nichts.
Die Verbindung
1. Legen Sie die Credential einmal an. Fügen Sie in n8n eine MCP-Credential für den obigen Endpunkt hinzu. Mit MCP OAuth2 lassen Sie Dynamic Client Registration aktiviert, n8n speichert das rotierende Refresh-Token, und die Credential wird einmal eingerichtet und dann in Ruhe gelassen. Mit Bearer Auth fügen Sie einen API-Schlüssel aus dem Dashboard unter API und Webhooks ein. Geben Sie ihm nur den Scope mcp.
2. Fügen Sie den MCP Client Tool Node hinzu und wählen Sie diese Credential. Lassen Sie den Transport auf HTTP Streamable.
3. Hängen Sie den Node an den Werkzeug-Port des AI Agent, neben das Chat-Modell Ihrer Wahl. Die Werkzeugliste entdeckt der Agent selbst.
4. Schränken Sie die Werkzeugliste ein. Der Node erlaubt eine Teilmenge. Beginnen Sie mit den lesenden Werkzeugen, testen Sie ein paar Prompts und fügen Sie erst danach submit_scrape hinzu. Ein Agent, der keine Credits ausgeben kann, lässt sich gefahrlos weiterentwickeln.
Die Leitplanken stehen im System-Prompt
Die Werkzeuge beschreiben, was möglich ist. Keines beschreibt, was für Ihr Konto sinnvoll ist. Das muss der Prompt tun. Ein brauchbarer Ausgangspunkt:
Du findest lokale Unternehmensleads mit den BasedOnBusiness-Werkzeugen.
Vor jeder Suche:
- Rufe get_credits auf. Liegt das Guthaben unter der Zahl der
angeforderten Leads, halte an und melde das Guthaben.
- Bestätige jeden Ortsnamen mit list_countries, list_states oder
list_cities. Erfinde niemals einen Land- oder Bundeslandcode.
Bei der Suche:
- Fordere nie mehr als 50 Leads pro Job an, sofern die Nutzerin
oder der Nutzer nicht ausdrücklich eine größere Zahl nennt.
- Frage nach einer Kategorie zur Zeit.
- Credits werden beim Start des Jobs ausgegeben, nicht bei der
Rückgabe der Ergebnisse. Ein Abbruch erstattet nichts.
Nie unterstützt:
- Suche nach Postleitzahl und Suche im Radius um eine Adresse
gibt es nicht. Sage das. Setze keine nahe Stadt ein.
Melde nach dem Job die Zeilenzahl und halte an. Füge nicht die
komplette Ergebnisliste ein.
Jede Zeile dort steht für eine bestimmte Art, wie das schiefgeht. Die teure ist die Zeile über die Credits.
Drei Grenzen, die der Agent nicht selbst herausfindet
Credits werden beim Absenden abgebucht, nach der angeforderten Zahl. 500 Leads anzufordern kostet 500 Credits in dem Moment, in dem der Job startet, egal ob 500 Zeilen zurückkommen oder zwölf. Ein nachträglicher Filter senkt den Preis nicht, ein Abbruch ebenso wenig. Das ist der wichtigste Satz für den Prompt, denn ein Modell ohne Kostensignal rundet Zahlen nach oben, um gründlich zu wirken.
Jobs haben harte Obergrenzen. Ein Job fasst höchstens 10 Suchbegriffe. Ein Konto hält höchstens 2 offene Jobs gleichzeitig, und alle offenen Jobs zusammen dürfen nicht mehr als 5.000 Leads anpeilen. Ein Agent, der bei zwanzig Städten pro Stadt einen Job startet, sammelt 429-Antworten statt Leads. Sagen Sie ihm, dass er Orte nacheinander abarbeitet und vor jedem neuen Job list_scrapes prüft.
Geografie hat ein Vokabular. Land ist ein ISO-Code wie GB. Bundesland ist ein GeoNames-Code mit Punkt wie US.TX, den kein Modell zuverlässig kennt. Stadt ist ein Name, der bestätigt werden muss. Postleitzahlen und Radiussuchen werden gar nicht unterstützt. Die nächstliegende echte Option ist ein gezeichnetes Polygon als custom_geo, das ein Agent nur schlecht erzeugen kann und das im Dashboard besser aufgehoben ist.
Halten Sie die Zeilen aus dem Modell heraus
Der stärkste Grund für MCP ist, dass der Agent die Suche wählt. Das ist kein Grund, ihn auch die Daten tragen zu lassen.
Ergebnisse kommen in Seiten mit bis zu 500 Zeilen. Sie durch das Modell zu schieben verbrennt Tokens, schneidet an unvorhersehbaren Stellen ab und liefert eine Zusammenfassung, wo Sie eine Tabelle wollten. Der Agent entscheidet, wonach gesucht wird, und meldet Job-ID und Zeilenzahl. Diese Job-ID nehmen Sie dann in einen gewöhnlichen HTTP Request Node und schreiben die Zeilen nach Google Sheets, in ein CRM oder in eine Datenbank. Der Leitfaden zum Polling-Workflow behandelt diese Hälfte ausführlich, samt Cursor-Paginierung und dublettensicherem Schreiben.
Soll der Agent über die Liste nachdenken statt sie zu speichern, stellen Sie ihm eine konkrete Frage zu einer begrenzten Seite und fordern Sie nicht die Liste selbst an.
Was weiterhin nicht der Agent entscheiden sollte
Alles, was außerhalb von n8n Kosten oder Folgen hat. Wer kontaktiert wird, was in der Nachricht steht, ob eine Telefonnummer rechtlich angerufen werden darf. Der Leitfaden zu Recht und Datenschutz beschreibt die Grundregeln, und keine davon wird weicher, weil ein Modell die Suchbegriffe gewählt hat.
Noch etwas gehört dazu: Google Maps Einträge haben kein E-Mail-Feld. Ein Agent, der nach E-Mails gefragt wird, arbeitet also mit dem, was die Anreicherung auf der jeweiligen Unternehmenswebsite gefunden hat, nicht mit Daten aus Maps. Der Leitfaden zur E-Mail-Extraktion erklärt, wo diese Grenze liegt.
FAQ
Was ist ein MCP-Server in n8n?
MCP ist ein Protokoll, mit dem ein KI-Modell externe Werkzeuge aufrufen kann. In n8n hängen Sie einen MCP Client Tool Node an einen AI Agent, geben eine Server-URL an, und der Agent erhält jedes Werkzeug, das dieser Server veröffentlicht. Der BasedOnB-Endpunkt veröffentlicht zehn Werkzeuge für die Suche in Google Maps Unternehmensdaten und das Lesen der Ergebnisse.
Wie verbinde ich BasedOnB mit einem n8n AI Agent?
Fügen Sie einen MCP Client Tool Node hinzu, setzen Sie den Endpunkt auf https://www.basedonb.com/api/mcp, wählen Sie HTTP Streamable als Transport und authentifizieren Sie sich mit MCP OAuth2 oder mit einem Bearer API-Schlüssel, der den Scope mcp trägt. Hängen Sie den Node an den Werkzeug-Port des AI Agent. Mehr ist nicht nötig.
Kostet ein KI-Agent mehr Credits als ein fester Workflow?
Der Preis ist identisch, denn beide Wege rufen dieselbe API auf. Das Risiko ist ein anderes. Credits werden beim Absenden der Suche abgebucht, und zwar nach der Zahl der angeforderten Leads. Ein Agent, der eine große Zahl wählt, gibt sie sofort aus. Begrenzen Sie die Zahl im System-Prompt und lassen Sie zuerst get_credits prüfen.
Kann der Agent nach Postleitzahl oder nach Radius um eine Adresse suchen?
Nein. Die Suche nimmt ein Land, optional ein Bundesland und optional eine Stadt, oder ein gezeichnetes Polygon. Es gibt keine Eingabe für Postleitzahlen und keine für einen Radius. Wird der Agent nach einem Radius von fünf Kilometern gefragt, sollte er sagen, dass diese Form nicht unterstützt wird, statt eine Stadt einzusetzen.
Sollte ich in n8n MCP oder die REST-API nutzen?
Nutzen Sie die REST-API, wenn Kategorie, Ort und Filter feststehen und der Workflow jedes Mal gleich laufen muss. Nutzen Sie MCP, wenn die Anfrage als normaler Satz eintrifft und die sinnvollen Parameter vorher nicht bekannt sind. Viele Teams betreiben beides: Der Agent übernimmt die Recherche, ein fester Workflow die Produktionsläufe.
Welche Werkzeuge sollte ich dem Agenten freigeben?
Nur das, was die Aufgabe braucht. Ein Rechercheagent, der bestehende Jobs liest, braucht die Werkzeuge für Status, Ergebnisse und Listen und nichts, was Geld ausgibt. Fügen Sie submit_scrape erst hinzu, wenn der Prompt eine harte Obergrenze für die Leadzahl enthält und der Agent gegen vage Anfragen getestet wurde.
Kann der Agent den kompletten Datensatz verarbeiten?
Er sollte es nicht versuchen. Ergebnisse kommen in Seiten zu 500 Zeilen, und eine große Liste erschöpft den Modellkontext und kostet Tokens ohne Nutzen. Der Agent entscheidet, wonach gesucht wird. Die Zeilen wandern danach mit gewöhnlichen n8n-Nodes nach Sheets, in ein CRM oder in eine Datenbank.
Beginnen Sie mit einem Auftrag, den Sie sich leisten können
Geben Sie dem Agenten lesende Werkzeuge, ein Chat-Modell und eine Frage, deren Antwort Sie schon kennen. Prüfen Sie, ob er den Bundeslandcode auflöst statt ihn zu erfinden, und ob er eine Anfrage nach Postleitzahl ablehnt statt stillschweigend eine Stadt zu durchsuchen.
Fügen Sie dann submit_scrape mit einer Obergrenze im Prompt hinzu und starten Sie einen kleinen Job. Ein neues BasedOnB-Konto bringt 50 einmalige Export-Credits ohne Karte mit, genug, um die ganze Schleife vor dem ersten echten Lauf zu beobachten. Wenn Sie den Agenten gar nicht erst bauen möchten, erledigt die fertige n8n-Vorlage die feste Variante dieser Aufgabe in etwa zehn Minuten.