Orb MCP

Análises de site sem cookies, feitas para IA. Conecte Claude, ChatGPT, Cursor, Grok ou qualquer cliente MCP e pergunte o que os visitantes fizeram.

Servidor MCP hospedado

npx add-mcp 'https://orbmcp.com/api/mcp'

Instala no Claude Code, Codex, Cursor e outros

Documentação

Início rápido.

Configure o Orb em um site: cole um script, conecte o servidor MCP e pergunte a uma IA sobre o tráfego.

01

O que é o Orb

O Orb é uma análise web sem cookies que uma IA lê por meio do MCP (Model Context Protocol) em vez de um painel. Um script registra o que os visitantes fazem. O servidor MCP permite que o Claude, ChatGPT, Cursor ou qualquer cliente MCP responda perguntas sobre esse tráfego em inglês simples. Não há painel para aprender. Grátis para um site e 25.000 eventos por mês, depois a partir de US$ 10 por mês. Todo plano mantém 12 meses de histórico.

Esta página foi escrita para ser seguida do início ao fim por um agente de codificação. Cada etapa é texto ou código. Se você é um agente configurando o Orb para alguém, siga as seções em ordem.

02

Obtenha um ID de site

Todo site tem um ID que se parece com site_XXXXXXXXXX. Você precisa de um antes que o script faça qualquer coisa. Peça à pessoa para quem você trabalha para abrir https://orbmcp.com/connect,, entrar e pressionar "Obter um código de configuração". Ela lhe dará um código que se parece com ORB-XXXX-XXXX. Ele dura 15 minutos e funciona uma vez.

Troque o código de configuração por um token

curl -s -X POST https://orbmcp.com/api/setup/exchange \
  -H 'Content-Type: application/json' \
  -d '{"code":"ORB-XXXX-XXXX"}'

A resposta contém um token. Ele pode criar sites e ler análises apenas para os sites que cria, nunca para o resto da conta. Mantenha-o fora do controle de versão: coloque-o em uma variável de ambiente ou apenas na configuração do cliente de IA.

Crie o site e obtenha seu snippet

curl -s -X POST https://orbmcp.com/api/setup/sites \
  -H 'Authorization: Bearer ORB_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"name":"YOUR_SITE_NAME","domain":"YOUR_DOMAIN"}'

A resposta contém site_id e snippet. Use o snippet exatamente como retornado; ele já tem o ID de site correto. Se o domínio já existir na conta, o mesmo site é retornado em vez de uma duplicata. Registre o domínio do qual as páginas são realmente servidas, incluindo subdomínios: eventos de qualquer outro hostname são descartados. Para um site que você está executando apenas localmente, registre o domínio como localhost.

03

Adicione o script

Adicione isto ao <head> de cada página, substituindo SITE_ID pelo ID de site da etapa anterior. Ele é assíncrono e não define cookies, então não precisa de banner de consentimento.

O script

<script async src="https://orbmcp.com/orb.js" data-site="SITE_ID"></script>

Next.js (App Router): app/layout.tsx

import Script from 'next/script'

export default function RootLayout({ children }: { children: React.ReactNode }) {
  return (
    <html lang="en">
      <body>
        {children}
        <Script src="https://orbmcp.com/orb.js" data-site="SITE_ID" strategy="afterInteractive" />
      </body>
    </html>
  )
}

Vite, Create React App ou qualquer index.html

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>My site</title>
    <script async src="https://orbmcp.com/orb.js" data-site="SITE_ID"></script>
  </head>
  <body></body>
</html>

HTML simples, em cada página ou em um cabeçalho compartilhado

<head>
  <script async src="https://orbmcp.com/orb.js" data-site="SITE_ID"></script>
</head>

Aplicativos de página única não precisam de nada extra: mudanças de rota são rastreadas automaticamente. Visualizações de página, sessões, referenciadores, campanhas, cliques em botões, envios de formulários, cliques externos e downloads são todos capturados sem configuração.

04

Conecte o servidor MCP

O servidor MCP é Streamable HTTP em https://orbmcp.com/api/mcp.. Autentique com o token como cabeçalho Bearer. Clientes que não podem definir cabeçalhos podem usar https://orbmcp.com/api/mcp/ORB\_TOKEN em vez disso, que coloca o token na URL, então trate essa URL como um segredo.

Cursor: ~/.cursor/mcp.json, ou .cursor/mcp.json no projeto

{
  "mcpServers": {
    "orb": {
      "url": "https://orbmcp.com/api/mcp",
      "headers": {
        "Authorization": "Bearer ORB_TOKEN"
      }
    }
  }
}

Claude Code

claude mcp add --transport http orb https://orbmcp.com/api/mcp \
  --header "Authorization: Bearer ORB_TOKEN"

Claude desktop e ChatGPT adicionam como um conector personalizado usando o formato de URL https://orbmcp.com/api/mcp/ORB\_TOKEN.. Qualquer outro cliente MCP usa o transporte Streamable HTTP com a mesma URL e cabeçalho Bearer.

Onde o token vai parar importa, e há dois bons lugares. O comando acima o armazena na configuração do cliente do usuário, fora do projeto. Se você é um agente que não pode escrever fora do diretório de trabalho, use a configuração do projeto abaixo. Ambos são válidos. O que não é válido é um token literal escrito em um arquivo dentro do repositório, porque um .mcp.json com escopo de projeto é commitado como qualquer outro arquivo.

Para um arquivo de configuração dentro do projeto, mantenha o token no ambiente em vez do arquivo. Claude Code e Cursor ambos expandem ${ORB_TOKEN} no momento do carregamento. Se um token for exposto, revogue-o em https://orbmcp.com/connect e emita outro.

Configuração do projeto sem segredo: .mcp.json

{
  "mcpServers": {
    "orb": {
      "type": "http",
      "url": "https://orbmcp.com/api/mcp",
      "headers": { "Authorization": "Bearer ${ORB_TOKEN}" }
    }
  }
}

Depois, mantenha o valor fora do git

echo 'ORB_TOKEN=ffk_your_token_here' >> .env.local
grep -qxF '.env.local' .gitignore || echo '.env.local' >> .gitignore

05

Verifique se funciona

Uma etapa aqui precisa de um navegador, então um agente não pode concluí-la sozinho: uma página real precisa carregar uma vez com o script nela. Tudo até esse ponto está feito.

  1. 01Implante o site ou inicie-o localmente.
  2. 02Abra uma página em um navegador. Peça à pessoa para quem você trabalha para fazer isso se você não tiver navegador.
  3. 03Execute o comando abaixo. Enquanto nenhuma página foi carregada ainda, o site lê waiting_for_data, o que é esperado, não uma falha. Quando uma visita chega, ele lê receiving_data.

Duas coisas separadas decidem se uma visita é registrada, e ambas devem estar corretas. Primeiro, o script tem que rodar: ele ignora localhost a menos que a tag carregue data-allow-localhost, o que é seguro deixar no lugar porque não muda nada em um domínio real. Segundo, o hostname da página tem que corresponder ao site registrado aqui, incluindo subdomínios. Uma página servida de localhost não corresponde a um site registrado como example.com, e a solicitação ainda retorna 202, então nada informa que os eventos foram descartados.

Variante de teste local

<script async src="https://orbmcp.com/orb.js" data-site="SITE_ID" data-allow-localhost></script>

Confirme que os dados estão chegando

curl -s -X POST https://orbmcp.com/api/mcp \
  -H 'Authorization: Bearer ORB_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_sites","arguments":{}}}'

Se nada chegar, verifique nesta ordem: o script está na página que você realmente carregou; o hostname na barra de endereço do navegador corresponde ao domínio sob o qual o site está registrado; e o navegador não tem Do Not Track ou Global Privacy Control ativado, porque esses visitantes nunca são contados.

06

Depois, pergunte

Quando os dados estiverem chegando, a pessoa pode perguntar à sua IA sobre o site. Nomear o Orb na pergunta diz ao assistente para usar a conexão em vez de adivinhar.

  1. 01Use o Orb para olhar example.com e configurar as conversões que devo rastrear.
  2. 02Use o Orb para me mostrar o que mudou no meu site desde a última vez que verifiquei.
  3. 03Use o Orb para me dizer onde as pessoas desistem antes de comprar.

Há 24 ferramentas, cobrindo fontes de tráfego, páginas, funis, receita, conversões e detecção de mudanças. Conversões podem ser criadas por meio do MCP com create_conversion, então configurá-las também não precisa de painel.