Ich versuche, Claude.ai mit meiner selbstgehosteten n8n-Instanz (v2.30.7) mithilfe der MCP-Funktion auf Instanzebene (Vorschau) zu verbinden, aber ich erhalte ständig folgende Fehlermeldung von Claude:
„Registrierung bei n8ns Anmeldedienst nicht möglich. Sie können es erneut versuchen oder eine OAuth-Client-ID in den Connector-Einstellungen hinzufügen.„
Setup-Details:
- n8n ist selbstgehostet, wird lokal ausgeführt und über ngrok verfügbar gemacht (HTTPS-Tunnel)
- MCP auf Instanzebene ist aktiviert
- Ich habe die erforderliche Umleitungs-URL (https://claude.ai/api/mcp/auth_callback) unter OAuth-Einstellungen hinzugefügt und erfolgreich gespeichert
- Ich habe einen veröffentlichten Workflow mit einem Chat-Trigger, und der MCP-Zugriff ist dafür aktiviert
- ngrok-Logs zeigen, dass Claude erfolgreich /.well-known/oauth-authorization-server und /.well-known/oauth-protected-resource abruft (200 OK), aber es erscheint nie eine POST-Anfrage an einen /register-Endpunkt — gefolgt von 401 Unauthorized auf /mcp-server/http
- Die Registerkarte „Verbundene Clients
Hallo @Elma_Akter Willkommen!
n8n erstellt die OAuth-Endpunkt-URLs, die es in den .well-known-Dokumenten bewirbt (authorize, token und der dynamic-registration-Endpunkt) aus seiner eigenen Basis-URL, die hinter ngrok immer noch standardmäßig http://localhost:5678 ist. Claude ruft diese Dokumente über den Tunnel einwandfrei ab, was deine 200er sind, POSTs dann die Client-Registrierung an den localhost-Registrierungs-Endpunkt, den es daraus gelesen hat, sodass die Anfrage deine Instanz nie erreicht, kein /register-Aufruf in ngrok angezeigt wird und /mcp-server/http 401 mit keinem verbundenen Client zurückgibt.
Verweise die öffentliche URL auf deine ngrok-https-Adresse, damit die beworbenen Endpunkte erreichbar sind, und starte dann neu:
N8N_HOST=<your-subdomain>.ngrok-free.app
N8N_PROTOCOL=https
N8N_EDITOR_BASE_URL=https://<your-subdomain>.ngrok-free.app/
WEBHOOK_URL=https://<your-subdomain>.ngrok-free.app/
N8N_PROXY_HOPS=1
Starte n8n neu, öffne Einstellungen > Instance-level MCP, kopiere die OAuth-Server-URL erneut und verbinde dich von Claude aus neu. Dynamic Client Registration wird jetzt an den öffentlichen ngrok-Endpunkt POSTen und der Client wird registriert, sodass du keine Client-ID manuell eingeben musst.