Orb MCP
Análisis web sin cookies, diseñado para IA. Conecta Claude, ChatGPT, Cursor, Grok o cualquier cliente MCP y pregunta qué hicieron los visitantes.
Servidor MCP alojado
npx add-mcp 'https://orbmcp.com/api/mcp'Se instala en Claude Code, Codex, Cursor y más
Documentación
Inicio rápido.
Configura Orb en un sitio web: pega un script, conecta el servidor MCP y luego pregúntale a una IA sobre el tráfico.
01
Qué es Orb
Orb es analítica web sin cookies que una IA lee a través de MCP (Protocolo de Contexto de Modelo) en lugar de un panel de control. Un script registra lo que hacen los visitantes. El servidor MCP permite que Claude, ChatGPT, Cursor o cualquier cliente MCP responda preguntas sobre ese tráfico en inglés sencillo. No hay panel que aprender. Gratis para un sitio web y 25,000 eventos al mes, luego desde $10 al mes. Todos los planes conservan 12 meses de historial.
Esta página está escrita para que un agente de codificación la siga de principio a fin. Cada paso es texto o código. Si eres un agente que configura Orb para alguien, sigue las secciones en orden.
02
Obtén un ID de sitio
Cada sitio web tiene un ID que se ve así: site_XXXXXXXXXX. Necesitas uno antes de que el script haga algo. Pide a la persona para la que trabajas que abra https://orbmcp.com/connect,, inicie sesión y presione "Obtener un código de configuración". Te darán un código que se ve así: ORB-XXXX-XXXX. Dura 15 minutos y funciona una sola vez.
Intercambia el código de configuración por un token
curl -s -X POST https://orbmcp.com/api/setup/exchange \
-H 'Content-Type: application/json' \
-d '{"code":"ORB-XXXX-XXXX"}'
La respuesta contiene un token. Puede crear sitios web y leer análisis solo para los sitios que crea, nunca para el resto de la cuenta. Mantenlo fuera del control de versiones: colócalo en una variable de entorno o solo en la configuración del cliente de IA.
Crea el sitio web y obtén su fragmento
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"}'
La respuesta contiene site_id y snippet. Usa el fragmento exactamente como se devuelve; ya tiene el ID de sitio correcto. Si el dominio ya existe en la cuenta, se devuelve el mismo sitio en lugar de un duplicado. Registra el dominio desde el que realmente se sirven las páginas, incluidos los subdominios: los eventos de cualquier otro hostname se descartan. Para un sitio que solo ejecutas localmente, registra el dominio como localhost.
03
Añade el script
Añade esto al <head> de cada página, reemplazando SITE_ID con el ID de sitio del paso anterior. Es asíncrono y no establece cookies, por lo que no necesita banner de consentimiento.
El 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 o cualquier 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 simple, cada página o una inclusión de encabezado compartido
<head>
<script async src="https://orbmcp.com/orb.js" data-site="SITE_ID"></script>
</head>
Las aplicaciones de una sola página no necesitan nada extra: los cambios de ruta se rastrean automáticamente. Las visitas a páginas, sesiones, referentes, campañas, clics en botones, envíos de formularios, clics externos y descargas se capturan sin configuración.
04
Conecta el servidor MCP
El servidor MCP es Streamable HTTP en https://orbmcp.com/api/mcp.. Autentica con el token como encabezado Bearer. Los clientes que no pueden establecer encabezados pueden usar https://orbmcp.com/api/mcp/ORB\_TOKEN en su lugar, que coloca el token en la URL, así que trata esa URL como un secreto.
Cursor: ~/.cursor/mcp.json, o .cursor/mcp.json en el proyecto
{
"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 y ChatGPT lo añaden como conector personalizado usando la forma de URL https://orbmcp.com/api/mcp/ORB\_TOKEN.. Cualquier otro cliente MCP usa el transporte Streamable HTTP con la misma URL y encabezado Bearer.
Dónde termina el token importa, y hay dos buenos lugares. El comando anterior lo almacena en la configuración del cliente del usuario, fuera del proyecto. Si eres un agente que no puede escribir fuera del directorio de trabajo, usa la configuración del proyecto a continuación. Ambas son válidas. Lo que no es válido es un token literal escrito en un archivo dentro del repositorio, porque un .mcp.json con ámbito de proyecto se confirma como cualquier otro archivo.
Para un archivo de configuración dentro del proyecto, mantén el token en el entorno en lugar del archivo. Claude Code y Cursor ambos expanden ${ORB_TOKEN} al cargar. Si un token alguna vez se expone, revócalo en https://orbmcp.com/connect y emite otro.
Configuración del proyecto sin secreto: .mcp.json
{
"mcpServers": {
"orb": {
"type": "http",
"url": "https://orbmcp.com/api/mcp",
"headers": { "Authorization": "Bearer ${ORB_TOKEN}" }
}
}
}
Luego mantén el valor fuera de git
echo 'ORB_TOKEN=ffk_your_token_here' >> .env.local
grep -qxF '.env.local' .gitignore || echo '.env.local' >> .gitignore
05
Verifica que funciona
Un paso aquí necesita un navegador, así que un agente no puede terminarlo solo: una página real tiene que cargarse una vez con el script. Todo hasta ese punto está hecho.
- 01Despliega el sitio o inícialo localmente.
- 02Abre una página en un navegador. Pide a la persona para la que trabajas que haga esto si no tienes navegador.
- 03Ejecuta el comando a continuación. Mientras ninguna página se haya cargado aún, el sitio lee waiting_for_data, lo cual es esperado, no una falla. Una vez que llega una visita, lee receiving_data.
Dos cosas separadas deciden si una visita se registra, y ambas deben ser correctas. Primero, el script tiene que ejecutarse: ignora localhost a menos que la etiqueta lleve data-allow-localhost, lo cual es seguro dejar en su lugar porque no cambia nada en un dominio real. Segundo, el hostname de la página tiene que coincidir con el sitio web registrado aquí, incluidos los subdominios. Una página servida desde localhost no coincide con un sitio web registrado como example.com, y la solicitud aún devuelve 202, así que nada te dice que los eventos se descartaron.
Variante de prueba local
<script async src="https://orbmcp.com/orb.js" data-site="SITE_ID" data-allow-localhost></script>
Confirma que los datos están llegando
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":{}}}'
Si no llega nada, verifica estos en orden: el script está en la página que realmente cargaste; el hostname en la barra de direcciones del navegador coincide con el dominio bajo el que está registrado el sitio web; y el navegador no tiene activado Do Not Track o Global Privacy Control, porque esos visitantes nunca se cuentan.
06
Luego pregunta
Una vez que los datos llegan, la persona puede preguntarle a su IA sobre el sitio. Nombrar a Orb en la pregunta le dice al asistente que use la conexión en lugar de adivinar.
- 01Usa Orb para mirar example.com y configura las conversiones que debería estar rastreando.
- 02Usa Orb para mostrarme qué cambió en mi sitio web desde la última vez que revisé.
- 03Usa Orb para decirme dónde se rinden las personas antes de comprar.
Hay 24 herramientas, que cubren fuentes de tráfico, páginas, embudos, ingresos, conversiones y detección de cambios. Las conversiones se pueden crear a través de MCP con create_conversion, así que configurarlas tampoco necesita panel.