Evolcco Insights

Um canal único para as fontes de informação que alimentam o trabalho, normalizadas para agents consumirem.

Fontes entram, viram itens com texto íntegro, resumo, entidades e vetor, e ficam disponíveis por MCP para Claude, Codex e qualquer outro agent — e por uma tela, para gente.

Conectar um agent

endereçohttps://insights.evolc.co/api/mcp
Claude Codeclaude mcp add --transport http insights https://insights.evolc.co/api/mcp

No Claude Desktop, adicione o mesmo endereço como conector. Nos dois casos o agent abre esta aplicação no navegador: você entra, escolhe quais projects aquela credencial alcança, e pronto.

Não há chave de API para copiar nem segredo para colar em arquivo de configuração. Quem já está conectado aparece em Configurações › Conexões, com o alcance que autorizou e o rastro do que pediu.

Escopo — a única coisa que precisa ser entendida

Uma credencial pertence ao par (pessoa, cliente), não ao cliente sozinho. O Claude Code de duas pessoas são duas conexões, com alcances diferentes, porque o consentimento é de quem autorizou.

O que a credencial alcança é o conjunto de projects que essa pessoa marcou na tela de consentimento — e só aparecem lá projects dos quais ela é membro. Não é uma validação espalhada pelos endpoints: é a estrutura. O token de um cliente não consegue conter um project de outro porque esse project nunca esteve na lista que ele podia marcar.

A participação é reconferida na leitura, a cada chamada. Se a pessoa sai de um project, a credencial deixa de alcançá-lo na hora — sem depender de alguém lembrar de revogar.

O parâmetro project_id

  • Credencial com um project consentido: project_id é opcional, fica implícito.
  • Credencial com vários: project_id é obrigatório em toda chamada.

Não há estado de sessão. Não existe “project atual” que uma chamada anterior tenha deixado ligado — em MCP, estado invisível é como se erra de project. Chame get_project_context para descobrir quais existem.

Revogar

Em Configurações › Conexões, revogar tira a credencial daquele project; os outros dela continuam. O token segue válido — o que muda é o conjunto que ele alcança, e sem nenhum project a próxima chamada leva 403. Cada membro revoga a própria conexão; o owner revoga a de qualquer membro.

As sete tools

Três de leitura, quatro de escrita — e a lista de escrita é fechada. Não existe create_item genérico, campo livre nem metadata JSON arbitrário. Um MCP que aceita escrita genérica vira o lugar onde o agent externo orquestra trabalho através da plataforma, e a complexidade passa a morar fora, onde ninguém a vê crescer.

Leitura

search_items

Busca no acervo do project.

Uma tool de busca, não quatro: a diferença entre filtro e semântica é um parâmetro, não um verbo.

  • queryAssunto em linguagem natural. Com ele, ranqueia por similaridade; sem ele, ordena por data.
  • categoryNome exato de uma categoria do project.
  • source_idsRestringe a estas fontes.
  • entitiesItens que mencionam qualquer uma destas entidades.
  • from · toJanela de publicação, em ISO.
  • limit1 a 100. Padrão 20.
  • collapsePadrão true: uma linha por história. false devolve todas as coberturas.
  • exclude_irrelevantPadrão true.

Filtros são estritos e combináveis: cada um corta, nenhum “pesa”. Resultado que não passa no filtro não aparece mais abaixo — não aparece.

Devolve o resumo de cada item, com fonte, data, categoria, entidades e clusterSize — quantas fontes assinadas cobriram a mesma história, que é o melhor sinal de relevância que existe aqui.

get_item

Texto íntegro de um item, na língua original.

Segundo passo do padrão: search_items acha pelo resumo, isto aprofunda no escolhido.

  • item_idO id vindo de search_items.

Trazer texto íntegro já na busca queimaria o contexto do agent com itens que ele vai descartar.

get_project_context

Categorias, fontes assinadas, volume e data do item mais antigo.

Chame antes de montar filtros: nome de categoria precisa ser exato, e chutar devolve vazio sem dizer por quê.

Escrita

add_source

Valida uma URL de feed RSS/Atom e assina o project nela.

Devolve tier de conteúdo, itens por dia e custo mensal estimado ANTES de a assinatura valer.

  • urlURL do feed RSS ou Atom.
  • propose_categoriesPropõe categorias novas a partir do feed.

set_category

Move um item para outra categoria do project.

Marca a correção como manual: nenhum job de reclassificação a atropela depois.

  • item_id
  • category_idnull remove a categoria.

set_feedback

Marca um item como útil ou irrelevante.

Item irrelevante some das buscas do project por padrão. É filtro, não peso de ranking.

  • item_id
  • feedback"util", "irrelevante" ou null.

mark_used

Registra que o item virou material.

Fecha o ciclo, e é metade do cálculo de ROI: custo do project ÷ itens que viraram material.

  • item_id
  • noteO que foi produzido a partir dele.

Um agent que escreve a partir de cinco itens deveria marcar os cinco. Sem isso, o custo do acervo aparece sem o outro lado da conta.

Erros

  • 401Token ausente, inválido, expirado, ou de outro emissor.
  • 403Token válido, mas nenhum project consentido — ou a pessoa saiu de todos. Reautorize a conexão.
  • erro de toolproject_id fora do escopo da credencial, ou ausente quando há mais de um project consentido.
  • item não encontradoO item não existe, ou existe e não pertence a este project.

A última linha é deliberada: um item de outro project responde igual a um item inexistente. Distinguir os dois confirmaria a existência de conteúdo fora do escopo da credencial.

O que fica registrado

Toda chamada é registrada — tool, argumentos, quantidade de resultados, duração e erro — e aparece para os membros do project em Configurações › Conexões. Os argumentos entram inteiros, porque é neles que está a pergunta que o agent fez.

Uma credencial que alcança o acervo sem deixar rastro é uma credencial em que não dá para confiar. E o registro nunca derruba a resposta: se o banco falhar na hora de gravar o log, o que se perde é o log, não a chamada.

Estado operacional público, sem nada de acervo: /api/health.