> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flowstep.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Autenticação MCP

> Como o Flowstep MCP autentica clientes: fluxo OAuth 2.1 PKCE e criação de conta.

O endpoint `/mcp` requer um `access_token` Supabase passado como um token Bearer. A maioria dos clientes MCP obtém isto automaticamente através do fluxo OAuth 2.1 PKCE. Pode também fornecer um token manualmente para teste.

## Fluxo OAuth 2.1 PKCE

O Flowstep implementa um servidor de autorização OAuth 2.1 completo em `https://api.flowstep.ai`. Os clientes MCP descobrem e completam o fluxo automaticamente: abrem uma janela do navegador para o utilizador fazer login, depois tratam da troca de token nos bastidores.

### Métodos de acesso suportados

A página de autorização em `/oauth/authorize` suporta:

* **Email/password** — qualquer conta Flowstep com uma palavra-passe definida
* **Google SSO** — redireciona através da autenticação social Supabase, retorna ao cliente automaticamente

### Criação de conta para utilizadores do conector claude.ai

A página de acesso OAuth não inclui um formulário de inscrição. Se está a ligar-se através do conector personalizado do claude.ai e ainda não tem uma conta Flowstep, crie uma primeiro em [app.flowstep.ai](https://app.flowstep.ai), depois regresse à configuração do conector para autenticar.

## Recuo de cookie

Se não existir cabeçalho `Authorization`, o middleware recua para uma sessão Supabase baseada em cookies. Isto funciona ao aceder a `/mcp` diretamente a partir de um navegador com uma sessão Flowstep ativa. Os clientes MCP sempre usam o caminho Bearer.

## Token manual (teste)

Para chamar o endpoint diretamente sem um fluxo OAuth de cliente:

1. Inicie sessão em [app.flowstep.ai](https://app.flowstep.ai) no seu navegador
2. Abra DevTools → Console, execute:

```javascript theme={"system"}
const pairs = document.cookie.split("; ").map((c) => {
  const i = c.indexOf("=");
  return [c.slice(0, i), c.slice(i + 1)];
});
const authPairs = pairs
  .filter(([k]) => /^sb-.+-auth-token(\.\d+)?$/.test(k))
  .sort(([a], [b]) => a.localeCompare(b));
const raw = authPairs.map(([, v]) => decodeURIComponent(v)).join("");
const session = JSON.parse(
  raw.startsWith("base64-") ? atob(raw.slice(7)) : raw,
);
console.log(session.access_token);
```

3. Passe o token como um cabeçalho:

```bash theme={"system"}
curl -X POST https://api.flowstep.ai/mcp \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
```

<Warning>
  As sessões MCP duram 30 dias — o servidor atualiza o token subjacente transparentemente, portanto os clientes que usam o fluxo OAuth não precisam de re-autenticar durante o uso normal. Um token extraído manualmente como o acima ainda expira após cerca de uma hora; é apenas para teste rápido.
</Warning>
