OAuth para clientes MCP
Use OAuth quando o cliente puder abrir um fluxo de conexão no navegador, evitando pedir que o usuário copie uma chave de API.
| Recurso | URL |
|---|---|
| Recurso protegido / audience | https://infinityflow.stream/mcp |
| Protected resource metadata | https://infinityflow.stream/.well-known/oauth-protected-resource/mcp |
| Authorization server metadata | https://infinityflow.stream/.well-known/oauth-authorization-server |
| Registro de cliente público | POST https://infinityflow.stream/oauth/register |
| Autorização | GET https://infinityflow.stream/oauth/authorize |
| Token | POST https://infinityflow.stream/oauth/token |
| Revogação | POST https://infinityflow.stream/oauth/revoke |
Registro
Seção intitulada “Registro”O servidor suporta clientes públicos com token_endpoint_auth_method: "none", Authorization Code + PKCE S256 e refresh tokens. Registre de 1 a 10 redirect URIs exatas, HTTPS ou loopback local. Fragments, credenciais na URI e URLs genéricas não são aceitos.
{ "client_name": "Minha automação", "redirect_uris": ["http://localhost:8765/callback"], "token_endpoint_auth_method": "none", "grant_types": ["authorization_code", "refresh_token"], "response_types": ["code"]}Autorização
Seção intitulada “Autorização”Crie um code_verifier aleatório, derive code_challenge com SHA-256/base64url, guarde state e abra a autorização com client_id, redirect_uri, response_type=code, code_challenge, code_challenge_method=S256, resource=https://infinityflow.stream/mcp e os scopes necessários separados por espaço.
Depois do consentimento, valide state e o issuer da resposta antes de trocar o código. O servidor exige o mesmo redirect_uri e client_id e um verifier correto. O código tem validade curta e uma única utilização.
No token endpoint, use form URL-encoded com grant_type=authorization_code, client_id, redirect_uri, code, code_verifier e resource. Os tokens são destinados somente ao recurso MCP; não envie tokens de outro serviço nem repasse este token ao fornecedor de geração.
Expiração e refresh
Seção intitulada “Expiração e refresh”O access token dura 900 segundos. O refresh token tem janela de 30 dias e é rotativo: substitua os dois tokens de forma atômica no armazenamento do cliente. Reutilização de refresh token consumido revoga a conexão; nesse caso, inicie consentimento novamente.
Revogue com form URL-encoded contendo client_id e token. O usuário também pode revogar a conexão em Integrações. Perda do plano/adicional, suspensão ou alteração de epoch impede novas chamadas mesmo antes da expiração nominal do token.
Transporte
Seção intitulada “Transporte”O endpoint de tools é /mcp, não o authorization endpoint. A implementação usa o SDK oficial TypeScript v2 e chamadas HTTP POST sem sessão persistente. Suporta a revisão 2026-07-28 e a compatibilidade stateless 2025-11-25; o SDK negocia a revisão e interpreta respostas JSON ou SSE finitas conforme o transporte. GET de stream persistente e sessões de protocolo não são a forma de uso deste servidor. Use um SDK compatível para enviar Accept, versão e os headers de método/nome exigidos pela revisão negociada; evite construir o protocolo manualmente. Origin presente precisa ser permitido; não fabrique Origin de navegador em um cliente servidor.