Servidor MCP do Flux
O Flux expõe um servidor MCP (Model Context Protocol). Depois de conectá-lo, você conversa com o Flux em português dentro do Claude, do ChatGPT, do Cursor ou do n8n — sem escrever código.
Por baixo, as ferramentas chamam exatamente a mesma API pública v1 do Flux, com o mesmo token, os mesmos escopos e o mesmo alcance de projetos. O que muda é a forma de perguntar.
Endereço do servidor
https://flux.reportei.com/mcp/v1O v1 do MCP é independente do v1 da API REST: o conjunto de ferramentas pode evoluir sem que o contrato REST mude, e vice-versa.
O que dá para perguntar
Pergunte pelo resultado que você quer, não pela ferramenta.
O que está travado esperando decisão de revisor? Qual é o mais urgente?
O que sai essa semana no cliente Padaria Aurora?
Me mostra a legenda completa do post 4471.
Essa peça foi publicada em quais redes?
Alguma conta conectada está com a autorização expirada?
O modelo escolhe as ferramentas e as encadeia sozinho — descobre o id do projeto antes de filtrar posts por data, por exemplo. Você não precisa citar nome de ferramenta nem id.
Conectar o servidor
Há dois caminhos, e o certo depende do cliente. Clientes de assistente com conector fazem OAuth sozinhos — você cola a URL e autoriza. Clientes de terminal e de automação usam um token no header. Abaixo, o que vale para todos; depois, o passo a passo de cada cliente.
OAuth (conector)
Você cola a URL do servidor, entra com a conta do Reportei e autoriza. Nenhum token passa pelas suas mãos.
Token no header
Você emite o token na tela do Flux e o informa no header Authorization do cliente.
A URL do servidor
É o mesmo endereço para todos os clientes, com OAuth ou com token. Cole exatamente assim, sem barra no fim: um caractere de diferença derruba a conexão sem mensagem útil.
https://flux.reportei.com/mcp/v1Escopos e o que cada um libera
Os escopos são escolhidos na tela de consentimento (OAuth) ou na emissão do token, e definem quais ferramentas o cliente enxerga.
| Escopo | Concede |
|---|---|
| projects:read | flux_list_projects |
| posts:read | flux_list_posts, flux_get_post, flux_get_content_group, flux_get_week_overview, flux_find_blocked_content |
| reviews:read | flux_list_post_reviews, flux_list_review_groups, flux_get_review_group |
| integrations:read | flux_list_connected_accounts |
O alcance é o de quem autoriza
A credencial nasce com o alcance de projetos de quem autorizou, naquela conta: ela não fica maior do que a pessoa que a criou. Revogar o acesso de alguém a um projeto não revoga as credenciais que já emitiu — ao desligar uma pessoa, revogue também as credenciais dela.
Se o seu cliente usa token no header
Clientes de terminal e de automação aceitam uma chave em cabeçalho. Use o mesmo token flux_ da API REST, emitido em Configurações → Tokens de API: /company/edit/api
A descoberta, se você quiser ver
O documento de Protected Resource Metadata (RFC 9728) é público e lido antes de existir qualquer credencial. É ele que diz ao cliente quem autoriza o recurso.
curl -s https://flux.reportei.com/.well-known/oauth-protected-resourceClaude
OAuthNo Claude, o Flux entra como conector personalizado. O consentimento acontece no navegador e a credencial fica guardada do lado do Claude — você não copia token nenhum.
- 1Abra Configurações → Conectores e escolha adicionar um conector personalizado.
- 2Cole a URL do servidor MCP do Flux e confirme.
- 3O Claude abre a tela de consentimento do Reportei: entre com a sua conta, escolha qual conta (company) autorizar e quais escopos conceder.
- 4De volta ao Claude, o conector aparece com as ferramentas do Flux. Ative-o na conversa e pergunte.
redirect_uri aceita
https://claude.ai/api/mcp/auth_callbackÉ a única redirect_uri que o Flux aceita para este cliente. Se a conexão falhar com erro de redirect_uri, o cliente está usando outra — avise o suporte informando qual.
ChatGPT
OAuthNo ChatGPT, o Flux entra como conector personalizado. Criar conectores próprios depende do plano e pode precisar estar habilitado para a sua conta ou workspace.
- 1Abra Configurações → Conectores e escolha criar um conector.
- 2Cole a URL do servidor MCP do Flux e escolha OAuth como forma de autenticação.
- 3Autorize na tela do Reportei: conta e escopos.
- 4Ative o conector na conversa para que o ChatGPT use as ferramentas do Flux.
redirect_uri aceita
https://chatgpt.com/connector_platform_oauth_redirectÉ a única redirect_uri que o Flux aceita para este cliente. Se a conexão falhar com erro de redirect_uri, o cliente está usando outra — avise o suporte informando qual.
Perplexity
OAuthNo Perplexity, o Flux entra pela tela de conectores. O percurso é o mesmo: descoberta a partir da URL, consentimento no navegador e credencial guardada do lado do cliente.
- 1Abra Configurações → Conectores e escolha adicionar um conector.
- 2Cole a URL do servidor MCP do Flux e confirme.
- 3Autorize na tela do Reportei: conta e escopos.
- 4Volte ao Perplexity e confira que as ferramentas do Flux aparecem no conector.
redirect_uri aceita
https://www.perplexity.ai/rest/connections/oauth_callbackÉ a única redirect_uri que o Flux aceita para este cliente. Se a conexão falhar com erro de redirect_uri, o cliente está usando outra — avise o suporte informando qual.
Claude Code
Token no headerCliente de terminal: o servidor é registrado por comando, com o token no header. claude mcp é comando do terminal, não um slash command — rode fora da sessão do Claude Code.
- 1Emita um token em Configurações → Tokens de API, com os escopos que você quer expor.
- 2Registre o servidor no terminal, trocando flux_SEU_TOKEN pelo token emitido.
- 3Abra uma sessão nova: o servidor é carregado na inicialização, então uma sessão que já estava aberta não o vê.
- 4Dentro da sessão, /mcp deve mostrar flux conectado, com as ferramentas listadas.
claude mcp add --transport http flux https://flux.reportei.com/mcp/v1 \
--header "Authorization: Bearer flux_SEU_TOKEN"O registro fica no escopo local por padrão, e local aqui significa aquela pasta: um servidor registrado em ~/projetos/x não aparece em sessões abertas em outro diretório. Para valer em qualquer pasta, acrescente -s user — e use um dos dois escopos, não os dois com o mesmo nome.
claude mcp add -s user --transport http flux https://flux.reportei.com/mcp/v1 \
--header "Authorization: Bearer flux_SEU_TOKEN"Para conferir o que foi gravado, sem abrir sessão:
claude mcp list # lista os servidores e o estado da conexão
claude mcp get flux # mostra a URL e os headers deste servidorclaude mcp get imprime o token
O comando mostra o header inteiro, token incluído. Evite rodá-lo com a tela compartilhada.
Cursor
Token no headerNo Cursor, o servidor é declarado no arquivo de configuração de MCP, com o token no header.
- 1Emita um token em Configurações → Tokens de API.
- 2Acrescente o bloco abaixo ao seu ~/.cursor/mcp.json, trocando flux_SEU_TOKEN pelo token emitido.
- 3Reinicie o Cursor e confira na tela de MCP: o servidor flux deve aparecer com as ferramentas listadas.
{
"mcpServers": {
"flux": {
"url": "https://flux.reportei.com/mcp/v1",
"headers": { "Authorization": "Bearer flux_SEU_TOKEN" }
}
}
}n8n
Token no headerNo n8n, o Flux entra como um nó MCP Client apontando para o mesmo endereço, com o token no header. É o caminho para automações que rodam sozinhas.
- 1Emita um token em Configurações → Tokens de API.
- 2Adicione um nó MCP Client e escolha o transporte HTTP.
- 3Informe a URL do servidor MCP do Flux.
- 4Configure a credencial do nó com o header abaixo.
Authorization: Bearer flux_SEU_TOKENAs ferramentas disponíveis
Todas são somente leitura, e cobrem os mesmos dados da API REST.
| Ferramenta | Responde | Escopo |
|---|---|---|
| flux_list_projects | Quais clientes existem, com fuso e idioma | projects:read |
| flux_list_posts | Posts por projeto, janela de datas, status, rede, tipo e aprovação | posts:read |
| flux_get_post | Um post inteiro: legenda, mídias, conta, agendamento e ciclo de aprovação | posts:read |
| flux_get_content_group | Todas as versões da mesma peça, uma por conta | posts:read |
| flux_list_connected_accounts | Onde um projeto publica, e a situação de cada conexão | integrations:read |
| flux_list_post_reviews | Quem aprovou, quem pediu alteração, e o que escreveu | reviews:read |
| flux_list_review_groups | Pacotes de aprovação, com resumo das decisões | reviews:read |
| flux_get_review_group | Um pacote inteiro, na ordem que o cliente vê na tela | reviews:read |
| flux_get_week_overview | O que sai numa janela: total, divisão por status, contas e dias | posts:read |
| flux_find_blocked_content | O que está parado esperando decisão, mais urgente primeiro | posts:read |
A lista depende dos escopos
Um token só vê as ferramentas dos escopos que possui: com posts:read apenas, as três de aprovação não aparecem na lista. Se uma ferramenta não aparece no cliente, é escopo faltando.
Limites e comportamento das respostas
As ferramentas respondem para um modelo, não para um parser: elas cortam o que é grande e dizem como refinar a busca.
Paginação
10 itens por página por padrão, 25 no máximo. Resposta cortada vem com uma linha dizendo quantos itens existem e como refinar a busca.
response_format
concise (padrão) resume a legenda e devolve mídia sem URL; detailed traz a legenda completa e as URLs.
URLs de mídia
Expiram em 48 horas, como na API REST. Baixe o arquivo se precisar guardá-lo.
Datas
Locais do fuso do projeto, tanto na entrada (AAAA-MM-DD) quanto na saída (ISO-8601 com o offset do projeto).
Identificadores
São devolvidos como texto, e aceitos como texto ou número.
Limite de requisições
120 requisições por minuto por credencial, o mesmo da API REST.
Alcance
A conta e os projetos autorizados na credencial. Não há parâmetro que alcance outra conta; um id fora do alcance responde como um id inexistente, de propósito.
Códigos de erro das ferramentas
Esses erros viajam dentro de uma resposta HTTP 200, de propósito: o modelo lê a mensagem e se corrige, em vez de ver uma porta fechada.
| Código | Significado | O que fazer |
|---|---|---|
| -32300 | Limite de requisições estourado | Aguardar os segundos indicados na mensagem |
| -32301 | Valor fora do formato que o schema não pega (uma data inexistente, por exemplo) | A mensagem diz o formato correto |
| -32302 | Escopo ausente, ou id fora do alcance da credencial | A mensagem diz o próximo passo; liste antes de filtrar por id |
| -32400 | Falha inesperada no Flux | Citar o request_id da mensagem ao suporte |
| -32602 | Parâmetro fora do schema (enum inválido, número acima do máximo). Vem do SDK do protocolo, com texto em inglês | A mensagem lista os valores aceitos |
Quando algo dá errado
| Sintoma | Causa | O que fazer |
|---|---|---|
| Falha de conexão com 401 | Token ausente, inválido, expirado ou revogado | Conferir o header do cliente e emitir outro token |
| Falha de conexão com 403 | Endereço com host ou origem não reconhecidos pelo servidor | Usar exatamente o endereço desta página, sem barra no fim |
| Uma ferramenta não aparece na lista | O token não tem o escopo dela | Emitir token com o escopo que falta |
| A sessão não mostra o servidor | Sessão aberta antes do registro, ou registro no escopo local de outra pasta | Abrir sessão nova, na pasta do registro — ou registrar com -s user |
| O cliente tenta um endereço que você não configurou | O mesmo nome existe em dois escopos, com endpoints diferentes | claude mcp list avisa em MCP config diagnostics; remover o errado com claude mcp remove <nome> -s user ou -s local |
Testar a conexão por fora
Para separar problema de cliente de problema de servidor, faça o handshake direto. Respondeu 200 com o header Mcp-Session-Id? O servidor está bom, e o problema é o cliente.
curl -si -X POST https://flux.reportei.com/mcp/v1 \
-H "Authorization: Bearer flux_SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1.0"}}}'Revogar o acesso
Na mesma tela Configurações → Tokens de API, o botão de revogar tem efeito imediato: a próxima requisição com aquele token responde 401.
Para deixar de usar o servidor no cliente, sem revogar o token:
claude mcp remove flux -s local