Registro MCP OAuth falha ao conectar Claude.ai

Estou tentando conectar Claude.ai à minha instância n8n auto-hospedada (v2.30.7) usando o recurso Instance-level MCP (Preview), mas continuação recebendo este erro do Claude:
“Couldn’t register with n8n’s sign-in service. You can try again, or add an OAuth Client ID in the connector settings.”
Detalhes da configuração:

  • n8n é auto-hospedado, rodando localmente, exposto via ngrok (túnel https)
  • Instance-level MCP está Ativado
  • Adicionei a URL de redirecionamento obrigatória (https://claude.ai/api/mcp/auth_callback) nas configurações de OAuth e salvei com sucesso
  • Tenho um workflow publicado com um Chat Trigger, e o acesso MCP está ativado para ele
  • Os logs do ngrok mostram Claude buscando com sucesso /.well-known/oauth-authorization-server e /.well-known/oauth-protected-resource (200 OK), mas nenhuma requisição POST para um endpoint /register jamais aparece — seguida por 401 Unauthorized em /mcp-server/http
  • A aba “Connected clients” sempre mostra “No OAuth clients connected”
    Parece que Claude não consegue completar o registro dinâmico de cliente com minha instância n8n. Essa é uma limitação conhecida do recurso MCP Preview, ou existe uma maneira manual de registrar um cliente OAuth / obter um Client ID e Secret para n8n para que eu possa inseri-lo manualmente no lado do Claude?
    Obrigado antecipadamente!

Descreva o problema/erro/pergunta

Qual é a mensagem de erro (se houver)?

Por favor, compartilhe seu workflow

(Selecione os nós na sua tela e use os atalhos de teclado CMD+C/CTRL+C e CMD+V/CTRL+V para copiar e colar o workflow.)

Compartilhe o resultado retornado pelo último nó

Informações sobre sua configuração n8n

  • Versão n8n:
  • Banco de dados (padrão: SQLite):
  • Configuração EXECUTIONS_PROCESS do n8n (padrão: own, main):
  • Executando n8n via (Docker, npm, n8n cloud, aplicativo desktop):
  • Sistema operacional:

Oi @Elma_Akter Bem-vinda!
n8n constrói as URLs de endpoint OAuth que anuncia nos documentos .well-known (authorize, token e o endpoint de registro dinâmico) a partir de sua própria URL base, que atrás do ngrok ainda está usando como padrão http://localhost:5678. Claude busca esses documentos normalmente pelo túnel, o que são seus 200s, depois faz POST no registro de cliente para o endpoint localhost de registro que leu deles, então a requisição nunca chega à sua instância, nenhuma chamada /register aparece no ngrok, e /mcp-server/http retorna 401 sem nenhum cliente conectado.

Aponte a URL pública para seu endereço https do ngrok para que os endpoints anunciados sejam acessíveis, depois reinicie:

N8N_HOST=<seu-subdomínio>.ngrok-free.app
N8N_PROTOCOL=https
N8N_EDITOR_BASE_URL=https://<seu-subdomínio>.ngrok-free.app/
WEBHOOK_URL=https://<seu-subdomínio>.ngrok-free.app/
N8N_PROXY_HOPS=1

Reinicie o n8n, reabra Settings > Instance-level MCP, copie a URL do servidor OAuth novamente e reconecte do Claude. O registro dinâmico de cliente agora fará POST no endpoint público do ngrok e o cliente será registrado, então você não precisará inserir um ID de cliente manualmente.