L'enregistrement MCP OAuth échoue lors de la connexion à Claude.ai

Je tente de connecter Claude.ai à mon instance n8n auto-hébergée (v2.30.7) en utilisant la fonctionnalité Instance-level MCP (Preview), mais je reçois constamment cette erreur de Claude :
« Couldn’t register with n8n’s sign-in service. You can try again, or add an OAuth Client ID in the connector settings. »
Détails de la configuration :

  • n8n est auto-hébergé, exécuté localement, exposé via ngrok (tunnel https)
  • Instance-level MCP est activé
  • J’ai ajouté l’URL de redirection requise (https://claude.ai/api/mcp/auth_callback) sous les paramètres OAuth et l’ai enregistrée avec succès
  • J’ai un flux de travail publié avec un Chat Trigger, et l’accès MCP est activé pour celui-ci
  • Les journaux ngrok montrent que Claude récupère avec succès /.well-known/oauth-authorization-server et /.well-known/oauth-protected-resource (200 OK), mais aucune requête POST vers un endpoint /register n’apparaît jamais — suivie d’un 401 Unauthorized sur /mcp-server/http
  • L’onglet « Connected clients » affiche toujours « No OAuth clients connected »
    Il semble que Claude ne soit pas en mesure de terminer l’enregistrement dynamique de client avec mon instance n8n. S’agit-il d’une limitation connue de la fonctionnalité Preview MCP, ou existe-t-il un moyen manuel d’enregistrer un client OAuth / d’obtenir un Client ID et Secret pour n8n afin que je puisse les entrer manuellement du côté Claude ?
    Merci d’avance !

Décrivez le problème/erreur/question

Quel est le message d’erreur (le cas échéant) ?

Veuillez partager votre flux de travail

(Sélectionnez les nœuds sur votre canevas et utilisez les raccourcis clavier CMD+C/CTRL+C et CMD+V/CTRL+V pour copier et coller le flux de travail.)

Partagez la sortie renvoyée par le dernier nœud

Informations sur votre configuration n8n

  • Version n8n :
  • Base de données (par défaut : SQLite) :
  • Paramètre n8n EXECUTIONS_PROCESS (par défaut : own, main) :
  • Exécution d’n8n via (Docker, npm, n8n cloud, application de bureau) :
  • Système d’exploitation :

Salut @Elma_Akter Bienvenue !
n8n construit les URL de point de terminaison OAuth qu’il annonce dans les documents .well-known (authorize, token, et le point de terminaison d’enregistrement dynamique) à partir de sa propre URL de base, qui derrière ngrok est toujours définie par défaut sur http://localhost:5678. Claude récupère ces documents correctement sur le tunnel, ce qui correspond à vos 200s, puis envoie l’enregistrement du client au point de terminaison d’enregistrement localhost qu’il a lu à partir de ceux-ci, donc la requête n’atteint jamais votre instance, aucun appel /register n’apparaît dans ngrok, et /mcp-server/http retourne 401 sans client connecté.

Pointez l’URL publique vers votre adresse ngrok https pour que les points de terminaison annoncés soient accessibles, puis redémarrez :

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

Redémarrez n8n, rouvrez Paramètres > MCP au niveau de l’instance, copiez de nouveau l’URL du serveur OAuth, et reconnectez-vous depuis Claude. L’enregistrement dynamique du client sera maintenant envoyé au point de terminaison ngrok public et le client s’enregistrera, donc vous n’aurez pas besoin d’entrer un ID client manuellement.