Alison AI MCP
Inteligência criativa das suas contas de anúncios, dentro do seu assistente de IA.
Documentação
Model Context Protocol
Servidor MCP Evo
Aponte qualquer cliente MCP — Claude Code, Claude, Cursor, Codex — para o Evo e ele lê seu warehouse de desempenho criativo diretamente: gastos e KPIs, tags criativas, inteligência competitiva, pré-visualizações. Somente leitura, e limitado às contas que cada usuário já possui.
URL do servidor https://evo.alison.ai/mcp streamable-http somente leitura
14 ferramentas13 de análise + pré-visualizações criativas
Login SSOOAuth 2.1 — nenhum token para distribuir
Escopo no servidora concessão decide, não o cliente
Visão geral
O que você obtém e o que não pode fazer com ele.
A superfície MCP é o mesmo mecanismo de análise em que o agente analista do próprio Evo roda, exposto diretamente ao seu cliente. Cada ferramenta é uma leitura: nada nesta superfície grava, altera ou gasta orçamento de modelo. Não há SQL para escrever — as ferramentas recebem argumentos estruturados (métricas, dimensões, filtros) e os compilam no servidor contra o registro de KPIs.
O servidor fala streamable-http em /mcp. Tanto /mcp quanto/mcp/ funcionam, então um cliente que não segue redirecionamentos ainda se conecta.
Início rápido
Adicione o servidor sem credencial. Todo o resto acontece no seu navegador, uma única vez.
- Adicione o servidorUm comando, apenas a URL — sem token, sem arquivo de configuração para editar.
- Ele retorna não autorizadoAinda não conectado. O
401indica onde autenticar, então o cliente abre essa página (ou entrega o link para você). - Entre e aprovePágina do Evo: e-mail ou SSO, escolha qual produto este cliente pode ler, Aprovar.
- O token é armazenado para vocêEmitido no servidor, mantido pelo cliente, reutilizado em cada chamada posterior. Ninguém precisa lidar com ele.
Claude Code Claude Cursor Codex Qualquer cliente
claude mcp add --transport http evo https://evo.alison.ai/mcp
Em seguida, execute /mcp, escolha evo e autentique-se — seu navegador abre na página de login do Evo, você escolhe um produto e aprova, e o Claude Code mantém o token que recebeu.
Pré-aprovar todas as ferramentas é seguro. Todas as 14 são somente leitura e nenhuma gasta orçamento de modelo, então não há nada aqui que justifique um prompt de confirmação por chamada.
Autenticação
Seus usuários entram com a identidade que já possuem. Nada a provisionar, nenhuma credencial para distribuir.
O fluxo no navegador
A primeira chamada do cliente retorna 401 com um cabeçalho WWW-Authenticate apontando para /.well-known/oauth-protected-resource/mcp. A partir daí, o cliente se registra e abre o Evo, onde o usuário vê duas telas:
- Entre no Evo — e-mail e senha, ou SSO do Google, Microsoft ou LinkedIn.
- Conectar “” — escolha qual produto este cliente pode ler e depois Aprovar ou Negar.
Ao aprovar, o servidor emite um token e o devolve pelo redirecionamento. O cliente o armazena e se reconecta sozinho; ele nunca é exibido, e o produto escolhido nessa tela é o teto do que o cliente pode ver. Alguns clientes abrem o navegador para você, outros imprimem a URL — as mesmas páginas de qualquer forma.
Por baixo dos panos
OAuth 2.1 com PKCE e registro dinâmico de cliente, então nenhum cliente é pré-provisionado em nenhum dos lados:
| Etapa | Endpoint |
|---|---|
| Desafio | 401 + WWW-Authenticate nomeando os metadados do recurso |
| Descoberta | /.well-known/oauth-protected-resource/mcp → /.well-known/oauth-authorization-server |
| Registro | POST /oauth/register — RFC 7591, cliente público, nenhum segredo emitido |
| Autorização | GET /oauth/authorize — as telas acima; PKCE S256 obrigatório, um redirect_uri não registrado é rejeitado sem redirecionamento |
| Token | POST /oauth/token — código de uso único, verificado por PKCE, TTL de 60s |
Revogando acesso
GET /api/keys lista todos os clientes conectados sob seu usuário — nome, produto, quando foi criado, quando foi usado pela última vez. DELETE /api/keys/{id} desconecta um. A revogação é imediata, não eventualmente consistente: a autorização é re-resolvida do armazenamento em cada requisição e nunca é armazenada em cache, então a próxima chamada desse cliente falha de forma fechada (fails closed).
Escopo e permissões
O cliente não pode ampliar seu próprio alcance. Somente o servidor decide o que é visível.
Cada requisição resolve o token para as contas que seu usuário possui dentro do produto para o qual foi aprovado, e esse conjunto se torna a concessão da consulta. Um integration_ids fora da concessão retorna como um validation_error — nunca como dados, nunca como um resultado vazio silencioso. Um token cujas contas não possuem dados servíveis é recusado de imediato, em vez de receber zeros.
A mesma regra rege as ferramentas de produto, então get_creative não pode alcançar um ativo que as ferramentas de análise recusariam.
draft_content — a ferramenta de redação do loop do agente — não é deliberadamente montada aqui: ela gasta uma chamada de modelo por invocação, então expô-la ampliaria o que um cliente conectado pode fazer, em vez de substituir qualquer coisa que as ferramentas de leitura já oferecem.
Cada chamada é registrada com o usuário que a fez, o token do cliente e o produto para o qual foi aprovado, então o tráfego nesta superfície é atribuível a uma pessoa, e não a uma conta de serviço compartilhada.
Referência de ferramentas
O mapa, não a referência da API — seu cliente lê cada esquema de argumento pelo protocolo e os preenche sozinho. scope_overview é onde uma sessão começa: uma chamada que informa pelo que essas contas podem ser medidas e agrupadas.
| Ferramenta | O que faz |
|---|---|
| Orientação | |
| scope_overview | Uma chamada para se orientar: o que você pode medir, pelo que pode agrupar e as regras que se aplicam. Comece aqui. |
| list_integrations | Conexões de redes de anúncios no escopo, com metadados. |
| describe_integrations | Cobertura por integração, atualidade, MMP e métricas personalizadas. |
| list_kpis | KPIs disponíveis, métricas brutas e dimensões, em camadas para manter o contexto pequeno. |
| list_features | Recursos de anotação e seus valores de tag para integrações específicas. |
| discover_filters | Valores reais de filtro disponíveis para um escopo e intervalo de datas. |
| describe_marketing_entity | Metadados de campanha / grupo de anúncios / anúncio do catálogo de marketing. |
| get_asset_labels | Rótulos de anotação para ativos específicos. |
| Análise | |
| run_report | Componha e execute um relatório: métricas × dimensões × filtros em um intervalo de datas. |
| run_recipe | Execute uma análise pré-composta do catálogo de receitas em uma chamada (pares de tags, tendência de KPI, melhores desempenhos, cobertura de anotações, uplift em faixas). |
| Inteligência competitiva | |
| list_competition_metrics | Medidas e dimensões da SensorTower / Pathmatics. |
| discover_competition_filters | Valores distintos de concorrência: país, SO, tipo de anúncio, nome do concorrente. |
| run_competition_report | Consulte criativos de concorrentes e share of voice. |
| Mídia | |
| get_creative | URLs públicas de miniatura / pré-visualização para ids de criativos que você já possui. Lote de até 25 por chamada. |
As linhas do relatório carregam ids de criativos, não imagens. Quando quiser ver os criativos, passe os ids de run_report, run_recipe ourun_competition_report em uma única chamada em lote get_creative.
Erros e limites
| Status | Significado | Correção |
|---|---|---|
| 401 | Token ausente, inválido, revogado ou expirado. | Reconecte — o cliente executa o fluxo de login novamente. |
| 403 | O token é válido, mas seu usuário não tem contas servíveis no produto para o qual foi aprovado. | Reconecte e escolha um produto diferente, ou solicite acesso à conta. |
| 429 | 20 tentativas de autenticação rejeitadas de um IP em 15 minutos. | Corrija a credencial e aguarde a janela. Tráfego autenticado nunca é limitado por taxa. |
| 503 | O armazenamento de credenciais está inacessível — nossa dependência, não sua requisição. | Tente novamente com backoff. |
| validation_error | Argumentos fora da concessão, ou um relatório que o registro de KPIs não consegue compilar. | Corrigível pelo chamador — a mensagem indica o que mudar. |
Os códigos de status HTTP cobrem apenas transporte e autenticação. Uma ferramenta que recusa seus argumentos responde 200 com um error_kind no resultado, para que seu cliente possa se corrigir e tentar novamente, em vez de tratar como uma indisponibilidade.
O raio de impacto por chamada é limitado a 150 ids de integração em uma lista, eget_creative aceita no máximo 25 ids por chamada. Nenhum deles é a fronteira de autorização — a concessão é.