CAPTCHAme im KI-Assistenten

Claude, ChatGPT oder Ihr Coding-Assistent bauen den Spamschutz ein, statt Ihnen zu erklären, wie es ginge. Was dabei übertragen wird, steht weiter unten — vollständig.

Worum es geht

CAPTCHAme lässt sich an einen KI-Assistenten anschließen — an Claude, an ChatGPT oder an einen Coding-Assistenten in Ihrer Entwicklungsumgebung. Danach kann der Assistent den Spamschutz für Sie einbauen, statt Ihnen zu erklären, wie es ginge.

Er erkennt, womit Ihre Website gebaut ist, liefert die passende Einbindung für über 18 Systeme, legt auf Wunsch ein Projekt an und prüft anschließend nach, ob das Widget im Formular und die Prüfung im Backend laufen. Beides zusammen, denn das Widget allein hält keinen Bot auf.

Für Website-Besucher ändert sich dadurch nichts.

Diese Verbindung betrifft ausschließlich Sie als Betreiber und Ihre Verwaltung. Das Captcha auf Ihrer Website arbeitet unverändert weiter: keine Cookies, keine Übermittlung, keine Zustimmungsabfrage.

Verbinden

Sie brauchen eine einzige Adresse:

https://mcp.captchame.de/mcp
  1. In Claude oder ChatGPT tragen Sie diese Adresse als Connector ein — oder Sie wählen CAPTCHAme direkt im Verzeichnis der Erweiterungen aus.
  2. Sie werden zu CAPTCHAme weitergeleitet. Sind Sie nicht angemeldet, melden Sie sich an und landen automatisch wieder an derselben Stelle.
  3. Sie sehen, welche Rechte verlangt werden und was nicht weitergegeben wird, und klicken auf Verbinden. Fertig.

Technisch ist das OAuth 2.1 mit PKCE. Ein Passwort geben Sie dabei nur bei CAPTCHAme selbst ein, nie im Assistenten. Der Assistent bekommt ein Token, kein Passwort — und keinen Zugang zu Ihrem Konto über die erteilten Rechte hinaus.

Nur dieser eine Weg

Es gibt keine zweite Möglichkeit, und das ist Absicht. Früher konnten Sie sich im Dashboard ein festes Zugriffstoken ausstellen lassen. Das ist entfernt: Ein solches Token läuft nie ab, zeigt Ihnen nicht, was es darf, und landet erfahrungsgemäß in Konfigurationsdateien, in Repositories und im Zweifel in einem Chatverlauf.

Die Anmeldung über OAuth kann all das nicht: Sie sehen vor dem Bestätigen, welche Rechte verlangt werden, ein Zugriffstoken gilt eine Stunde, und ein Widerruf im Dashboard wirkt sofort.

Was damit wegfällt: Umgebungen ohne Browser, etwa eine Verarbeitung in einer Pipeline. Falls Sie das brauchen, sagen Sie Bescheid — dann kommt es zurück, aber mit Ablaufdatum und sichtbarer Verwaltung.

Die Werkzeuge

Zwölf Stück. Die ersten vier beantworten öffentliche Fragen und brauchen kein Konto. Die übrigen acht arbeiten in Ihrem Konto und nur mit den Rechten, die Sie beim Verbinden bestätigt haben.

WerkzeugWofürArt
get_service_info Was CAPTCHAme ist, was es kostet, wo die Server stehen. liest
list_supported_integrations Alle unterstützten Systeme und Frameworks mit ihrer Kennung. liest
get_integration_guide Fertiger Einbau für ein System: Frontend, Serverprüfung, Fallstricke. liest
get_plugin_information Fassung und Download-Adresse der fertigen Erweiterungen. liest
get_account_status Wem das Konto gehört und welche Rechte die Verbindung hat. liest Konto
list_projects Die eigenen Projekte mit Sitekey, Domains und Einbaustand. liest Konto
get_project Ein einzelnes Projekt im Detail. liest Konto
create_project Ein neues Projekt anlegen. schreibt Konto
update_project_domains Die erlaubten Domains eines Projekts ändern. schreibt Konto
check_integration Prüfen, ob Widget und serverseitige Prüfung wirklich beide laufen. liest Konto
create_pairing_token Einmal-Token, mit dem sich eine Erweiterung den Schlüssel selbst abholt. schreibt Konto
diagnose_integration Fehlersuche anhand einer Fehlermeldung oder eines Symptoms. liest Konto

Schreibend sind genau drei: ein Projekt anlegen, die erlaubten Domains ändern, eine Kopplung vorbereiten. Kein Werkzeug löscht etwas. Kein Werkzeug ändert Ihr Passwort, Ihre Zahlungsdaten oder Ihr Konto.

Was übertragen wird

Wenn Sie einen Assistenten verbinden, sieht dessen Anbieter das, was die Werkzeuge zurückgeben. Das ist bewusst wenig:

Übertragen wird
Ihre E-Mail-Adresse in maskierter Form (ka***@beispiel.de), Projektnamen, Sitekeys, die erlaubten Domains und der Einbaustand.
Nicht übertragen wird
Ihr Passwort. Ihr Projekt-Secret. Daten der Besucher Ihrer Website: keine IP-Adressen, keine Formularinhalte, keine Zugriffsprotokolle. Der Assistent kann sie nicht abrufen, weil es dafür kein Werkzeug gibt.

Der Sitekey ist ohnehin öffentlich — er steht im Quelltext jeder Seite, auf der Ihr Formular liegt. Das Secret ist das Gegenteil davon, und deshalb gibt es dafür einen eigenen Weg.

Das Secret bleibt aus dem Chat heraus

Ein Assistent müsste das Projekt-Secret eigentlich kennen, um es in Ihre Website einzutragen. Damit stünde es im Verlauf, in den Protokollen des Anbieters und vermutlich später in einem Repository.

Deshalb bekommt er es nicht. Statt des Secrets erzeugt er ein Kopplungstoken: einmal gültig, 15 Minuten haltbar, an Ihr Projekt gebunden. Das trägt er in die Erweiterung ein. Beim ersten Aufruf tauscht die Erweiterung es direkt bei CAPTCHAme gegen das Secret und speichert es dort, wo es hingehört — auf Ihrem Server. Das Secret nimmt nie den Weg über den Assistenten.

Und wenn es keine Erweiterung gibt?

Bei einer selbst gebauten Anwendung — Laravel, Next.js, Django — gibt es niemanden, der das Token einlöst. Deshalb liefern wir den Einlöser mit, in zwei Fassungen, je nachdem was der Assistent auf Ihrem Server darf:

Er hat eine Shell
Er legt ein kurzes Einrichtungsskript in der passenden Sprache an — Node, PHP oder Python —, führt es einmal aus und löscht es. Die Schlüssel landen in Ihrer .env.
Er darf nur Dateien hochladen
Typisches Webhosting. Er lädt eine Datei mit zufälligem Namen hoch und ruft sie genau einmal auf. Sie holt die Schlüssel, legt sie in einer PHP-Datei ab und löscht sich selbst. Das Kopplungstoken steht dabei nicht in der Datei, sondern nur in seiner Anfrage — wer die Datei fände, fände kein Geheimnis. Nach einer halben Stunde verweigert sie ohnehin den Dienst.

Beide geben nur aus, dass es geklappt hat und wie lang das Secret ist — nie den Wert selbst. Ist schon etwas eingerichtet, brechen sie ab, statt eine laufende Einbindung stillzulegen.

Sie müssen dafür nichts tun.

Kein Eintragen, kein Kopieren, kein Aufrufen einer Oberfläche, kein Klicken. Wenn ein Assistent Sie nach dem Secret fragt oder Ihnen eine Schritt-für-Schritt-Anleitung schreibt, hat er einen dieser Wege nicht genommen. Ein Satz genügt: „Nimm create_pairing_token." Die Antwort dort enthält alles Nötige — Sie bleiben außen vor.

Eine Grenze wollen wir offen nennen: Ein Assistent mit Zugriff auf Ihre Dateien könnte die .env hinterher lesen. Das lässt sich technisch nicht verhindern. Erreicht ist, dass das Secret dafür nicht mehr durch den Chatverlauf muss — und unsere Anweisungen sagen ausdrücklich, dass die Datei nicht gelesen wird.

Anbieter des Assistenten ist eigenständig verantwortlich.

Was Anthropic oder OpenAI mit den übermittelten Angaben tun, richtet sich nach deren Datenschutzerklärung, nicht nach unserer. Anthropic und OpenAI sitzen in den USA. Näheres in unserer Datenschutzerklärung, Abschnitt 9.

Was beim Prüfen in die Irre führt

Diese Punkte sind uns bei einem echten Einbau in eine laufende Anwendung begegnet. Sie stehen auch in den Anweisungen, die jeder Assistent beim Verbinden bekommt — hier, damit Sie mitlesen können, wenn Ihrer sich verrennt.

Das Token entsteht erst beim Absenden
Direkt nach dem Laden der Seite ist das versteckte Feld leer. Das ist kein Fehler: Das Widget fängt das erste Absenden ab, rechnet, und lässt das Formular dann durch. Wer im leeren Feld den Beweis für einen Defekt sieht, sucht am falschen Ende.
Die Netzwerkliste des Browsers verschweigt fremde Ursprünge
Dass captchame.js dort nicht auftaucht, heißt nicht, dass es nicht geladen wurde. Der Blick ins DOM ist verlässlicher: Das Widget legt ein verstecktes Feld und ein Honeypot-Feld an.
curl beweist nur die halbe Miete
Es führt kein JavaScript aus, kann das Widget also nicht auslösen. Mit curl zeigen Sie, dass eine Einsendung ohne Token abgelehnt wird — das ist die Serverhälfte. Für „Widget gesehen" braucht es einen echten Browser.
Testen Sie über die Anmeldung, nicht über die Registrierung
Mit einem falschen Passwort. Sonst entstehen beim Ausprobieren echte Konten in Ihrer laufenden Anwendung. Erscheint danach „Passwort falsch" statt der Spamschutz-Meldung, ist die Prüfung durchgelaufen — genau das wollten Sie sehen.
Die Umgebungsvariablen liegen oft nicht im Projekt
Bei systemd stehen sie hinter EnvironmentFile, häufig unter /etc. Eine .env im Projektordner läse dann niemand ein.
Hinter einem Reverse Proxy kann der Hostname falsch ankommen
Dann passt der Sitekey nicht zur gemeldeten Domain, und die Aufgabe wird verweigert. Der Proxy muss den Host-Kopf durchreichen.

Abstände prüfen

Der letzte Schritt, und der am leichtesten vergessene: Sehen Sie sich an, wie es aussieht. Ein Widget, das am letzten Feld klebt oder aus der Spalte fällt, wirkt wie ein Fremdkörper — und genau das bekommen wir zurückgemeldet.

Drei Fragen genügen:

  • Hat das Widget oben und unten vergleichbaren Abstand, oder klebt es an einem Nachbarn?
  • Ist es so breit wie die Felder darüber?
  • Bringt der Absenden-Knopf schon eigenen Abstand mit? Dann klafft unten sonst das Doppelte.

Das Widget bringt 16 Pixel oben und unten als Vorgabe mit. Eine Regel Ihrer eigenen CSS auf .captchame sticht sie — dort korrigieren Sie, nicht am Widget:

.mein-formular .captchame { margin-bottom: 0; }
Ihr Assistent sollte das von sich aus tun.

Die Anweisungen, die er beim Verbinden bekommt, verlangen den Blick auf die Abstände, bevor er „fertig" meldet. Tut er es nicht, genügt: „Sieh dir die Abstände an."

Verbindung beenden

Jederzeit und ohne Rückfrage, an zwei Stellen:

  • Im Dashboard unter Zugriff für KI-Assistenten. Dort steht jede Verbindung mit Datum und letzter Nutzung; ein Klick auf Widerrufen beendet sie sofort.
  • Im Assistenten selbst, indem Sie den Connector entfernen.

Ein widerrufener Zugang ist im selben Moment tot — auch mitten in einer laufenden Sitzung. Zugriffstoken sind eine Stunde gültig, die Erneuerung längstens 90 Tage; danach ist ohnehin eine neue Zustimmung fällig.

Wird ein bereits benutztes Erneuerungstoken ein zweites Mal vorgelegt, werten wir das als gestohlen und beenden die gesamte Verbindung. Das kostet im Verdachtsfall eine neue Anmeldung und ist uns lieber als der umgekehrte Fehler.

Für Technikprüfer

Endpunkt
https://mcp.captchame.de/mcp — Streamable HTTP. SSE wird nicht angenommen.
Anmeldung
OAuth 2.1, Authorization Code mit PKCE (nur S256), dynamische Client-Registrierung nach RFC 7591.
Metadaten
https://www.captchame.de/.well-known/oauth-authorization-server (RFC 8414) und https://mcp.captchame.de/.well-known/oauth-protected-resource (RFC 9728).
Widerruf
https://www.captchame.de/oauth/revoke nach RFC 7009.
Betreiber
Alpha Digitalagentur GmbH, Rosenheim. Server in Deutschland. Impressum · Datenschutz · AGB