Rivalize

oficial

Inteligencia competitiva para agentes: desgloses de competidores, precios, anuncios, reseñas y momentum. Solo lectura por defecto.

¿Qué puedes hacer con Rivalize MCP?

  • Análisis de competidores — Solicita un análisis estratégico en una sola llamada sobre el posicionamiento, precios, anuncios, presencia social, reseñas, contrataciones y impulso de cualquier competidor mediante teardown_competitor.
  • Búsqueda en el universo — Busca en el conjunto de datos transversal de Rivalize sobre empresas rastreadas por palabra clave, categoría o capa con list_universe_companies.
  • Navegación de informes — Extrae secciones específicas o detalles de competidores de tus informes almacenados, como precios o battlecards, usando get_report.
  • Seguimiento de competidores — Consulta las puntuaciones de impulso, niveles de amenaza y posiciones en el Brief de tus competidores rastreados con list_competitors.
  • Verificación de evidencia — Comprueba las fuentes detrás de cualquier afirmación y la antigüedad de las observaciones de cada competidor usando get_evidence y get_freshness.
  • Añadir competidores — Opta por añadir URLs de competidores a un proyecto, lo que consume créditos y pone en cola el análisis, mediante add_competitor.

Documentación

Servidor MCP de Rivalize

npm License: MIT

Inteligencia competitiva con fuentes y fechas para tu asistente de IA, a través del Protocolo de Contexto de Modelo (MCP).

Qué hace

Este servidor conecta Claude, Cursor o cualquier otro cliente MCP con Rivalize. Tu asistente puede desglosar el posicionamiento, precios, anuncios, presencia social, reseñas, contrataciones y el impulso de un competidor en una sola llamada, buscar en el universo de empresas rastreadas de Rivalize y leer los proyectos, informes, battlecards, cronologías y evidencia de tu propia cuenta de Rivalize. Cada respuesta proviene de datos que Rivalize ha recopilado, con fechas y fuentes, en lugar de la memoria de un modelo.

El servidor es de solo lectura por defecto. Una herramienta de escritura, add_competitor, está disponible cuando optas por ella con RIVALIZE_MCP_ALLOW_WRITES=1.

Inicio rápido

Requiere Node.js 22 o superior (node --version).

  1. Crea una cuenta en rivalize.ai.
  2. Crea una clave de API en Panel → Configuración → Claves de API. Las claves comienzan con rk_live_. Una clave de cualquier plan funciona, incluido el plan gratuito, que obtiene lecturas con límite de velocidad.
  3. Añade el servidor a tu cliente usando uno de los bloques siguientes.

Claude Desktop

Edita ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) o %APPDATA%\Claude\claude_desktop_config.json (Windows), luego reinicia Claude Desktop:

{
  "mcpServers": {
    "rivalize": {
      "command": "npx",
      "args": ["-y", "@rivalize/mcp"],
      "env": { "RIVALIZE_API_KEY": "rk_live_..." }
    }
  }
}

Claude Code

claude mcp add rivalize -e RIVALIZE_API_KEY=rk_live_... -- npx -y @rivalize/mcp

Cursor

Añade a .cursor/mcp.json en tu proyecto, o ~/.cursor/mcp.json para todos los proyectos:

{
  "mcpServers": {
    "rivalize": {
      "command": "npx",
      "args": ["-y", "@rivalize/mcp"],
      "env": { "RIVALIZE_API_KEY": "rk_live_..." }
    }
  }
}

Cline

En Cline, abre el panel Servidores MCP, elige Configurar, luego Configurar Servidores MCP. Esto abre cline_mcp_settings.json. Añade:

{
  "mcpServers": {
    "rivalize": {
      "command": "npx",
      "args": ["-y", "@rivalize/mcp"],
      "env": { "RIVALIZE_API_KEY": "rk_live_..." }
    }
  }
}

Guarda el archivo. El servidor rivalize aparece con un punto verde después de unos 10 a 15 segundos (la primera ejecución descarga el paquete). En Windows, si no se inicia, usa "command": "cmd" y "args": ["/c", "npx", "-y", "@rivalize/mcp"].

Si le pides a Cline que lo instale por ti, apúntalo a llms-install.md.

Cualquier cliente MCP (stdio)

El servidor habla MCP a través de stdin y stdout. Configura tu cliente para ejecutar:

ConfiguraciónValor
Comandonpx
Argumentos-y @rivalize/mcp
EntornoRIVALIZE_API_KEY=rk_live_...
Transportestdio

En Windows, algunos clientes no pueden ejecutar npx directamente porque es npx.cmd. Usa cmd como comando y /c npx -y @rivalize/mcp como argumentos en su lugar.

Herramientas

Trece herramientas de solo lectura están siempre disponibles. add_competitor se registra solo cuando RIVALIZE_MCP_ALLOW_WRITES está configurado como 1, true o yes; sin eso, la herramienta no existe para el cliente.

HerramientaAccesoQué haceArgumentos clave
teardown_competitorlecturaDesglose estratégico de un competidor en una llamada como Markdown: posicionamiento, precios, anuncios, redes sociales, reseñas, contrataciones, impulso y debilidades a atacar, con cuándo se actualizaron los datos por última vezdomain (obligatorio)
list_universe_companieslecturaBusca en el universo de Rivalize, el conjunto de datos entre clientes de empresas rastreadasq, category (slug), layer, limit (1-100), offset
get_universe_companylecturaPerfil completo del universo para una empresa: identidad, precios, características, anuncios, redes sociales, reseñas, financiación y contrataciones, clasificaciones, señales, impulsodomain (obligatorio), layers
list_projectslecturaLos proyectos en tu cuenta; devuelve los project_id que toman otras herramientasninguno
list_reportslecturaTus informes, del más reciente al más antiguo. Leer nunca genera un informeproject_id, limit (1-100), offset
get_reportlecturaUn informe como Markdown, completo o una sección o un competidor a la vezreport_id (obligatorio), section, competitor, page
list_competitorslecturaLos competidores que rastreas, con puntuación de impulso, su banda de nivel de amenaza y, donde la API lo proporciona, la posición de cada rival en tu Briefproject_id, limit (1-100), offset
get_competitor_intelligencelecturaÚltima inteligencia almacenada para un competidor rastreado; un campo está presente solo cuando se midiócompetitor_id (obligatorio)
get_battlecardlecturaBattlecard de ventas citado para un competidor rastreado. Requiere un plan Procompetitor_id (obligatorio)
get_strategic_timelinelecturaCronología vinculada a evidencia de movimientos de competidores en precios, producto, personas, financiación y contenido/redes socialesproject_id (obligatorio), days (30, 90, 180), competitor_id, lanes, format, page
get_competitive_landscapelecturaPosiciones semanales actuales o almacenadas de competidores por actividad e importancia estratégicaproject_id (obligatorio), week (YYYY-MM-DD), format, page
get_freshnesslecturaCuándo se observó por última vez a cada competidor rastreado en un proyecto, y cómoproject_id (obligatorio)
get_evidencelecturaLas fuentes detrás de los hechos para tu producto o un competidor: URL, qué respalda y cuándo se leyóproject_id (obligatorio), competitor_id
add_competitorescritura, opcionalAñade URLs de competidores a un proyecto. Gasta créditos y pone en cola el análisisproject_id (obligatorio), urls (1-10, obligatorio)

project_id y competitor_id son UUIDs de list_projects y list_competitors. Las herramientas que leen tu cuenta solo ven tus propios datos.

Secciones de informes

get_report toma un section para que tu asistente pueda leer la parte que una pregunta necesita en lugar de todo el informe:

SecciónContiene
tldr, biggest-threat, blind-spots, actionsLas secciones principales del informe (actions es lo que tu producto debería hacer)
battlecardsLos battlecards de ventas citados
competitorsLa sección de cada competidor en su totalidad
pricing, momentum, app-store, strengths, weaknesses, key-findings, creators, ads, tech-stackUn tema recopilado de la sección de cada competidor

Un informe solo tiene las secciones para las que tiene datos; pedir cualquier otro nombre devuelve un error que enumera las secciones que sí tiene. section se combina con competitor, por lo que section: "pricing" con competitor: "Acme" devuelve los precios de Acme. Las afirmaciones que la verificación de fabricación del informe eliminó aparecen como [removed — unverified], exactamente como en el informe.

Respuestas largas

Cada respuesta se mantiene por debajo de 25,000 caracteres, y nada se corta en silencio:

  • Markdown (get_report, get_strategic_timeline, get_competitive_landscape) se divide en páginas en los límites de sección. Cada página comienza con Page N of M, cuánto queda y la llamada exacta para la página siguiente.
  • Listas (list_universe_companies, list_competitors, list_reports) devuelven pagination.next_offset; continúa desde allí hasta que sea null.
  • Objetos (get_universe_company, y JSON de cronología o panorama) limitan los arreglos largos y registran el límite en _capped. Un campo que aún no cabe se enumera en _omitted con la llamada que lo obtiene.

Ejemplos de indicaciones

  • "Desglosa linear.app." (teardown_competitor)
  • "¿Quiénes son los actores en herramientas de desarrollo de IA?" (list_universe_companies)
  • "Resume mi último informe y luego muéstrame cuánto cobran mis competidores." (list_reports, get_report con section: "pricing")
  • "¿Cuál de mis competidores se movió más este trimestre y qué hicieron?" (get_competitive_landscape, get_strategic_timeline)
  • "Dame puntos de venta contra mi principal competidor." (list_competitors, get_battlecard)
  • "¿De dónde viene esa afirmación de precios y qué tan reciente es?" (get_evidence, get_freshness)

Configuración

VariableObligatoriaPredeterminadoDescripción
RIVALIZE_API_KEYsíningunaTu clave de API de Rivalize. Debe comenzar con rk_live_; el servidor sale al inicio con un mensaje si falta o es inválida.
RIVALIZE_API_URLnohttps://rivalize.aiOrigen de la API de Rivalize. Una clave solo funciona en el servidor que la emitió: déjalo sin configurar para rivalize.ai, y para un servidor de Rivalize autoalojado o no productivo configúralo con el origen de ese servidor, o cada llamada devuelve 401.
RIVALIZE_MCP_ALLOW_WRITESnodesactivado1, true o yes (cualquier mayúscula/minúscula) registra add_competitor. Cualquier otro valor, o sin configurar, mantiene el servidor de solo lectura.
HTTPS_PROXY / HTTP_PROXYnoningunaEnruta solicitudes a través de un proxy corporativo. También se leen las formas en minúsculas, y HTTPS_PROXY gana cuando ambos están configurados. NO_PROXY se respeta. Los errores nombran el host del proxy, nunca sus credenciales.

Solución de problemas

"Conexión cerrada"

Cuando el servidor no puede iniciarse, muchos clientes muestran solo "Conexión cerrada" o un estado de error. El servidor imprime el motivo como la primera línea de su stderr, con el prefijo rivalize-mcp:, y la mayoría de los clientes mantienen stderr en su registro de MCP. Las causas habituales:

  1. RIVALIZE_API_KEY falta o es inválida. El registro dice rivalize-mcp: RIVALIZE_API_KEY is required, o dice que la clave no parece una clave de API de Rivalize (debe comenzar con rk_live_). Pon la clave en el bloque env del servidor y reinicia el cliente.
  2. Node.js es anterior a la versión 22. Ejecuta node --version e instala Node.js 22 o superior. Tu cliente usa el node y npx que aparecen primero en su propio PATH, que puede diferir de los de tu terminal.
  3. Sin acceso a la red. npx descarga el paquete en la primera ejecución, y cada llamada de herramienta va a https://rivalize.ai (o RIVALIZE_API_URL). Detrás de un proxy corporativo, configura HTTPS_PROXY. Un error de red nombra el servidor y el código de causa, como ECONNREFUSED o ENOTFOUND.

Para ver el mensaje directamente, ejecuta el servidor en una terminal con la misma clave:

RIVALIZE_API_KEY=rk_live_... npx -y @rivalize/mcp

Un servidor saludable imprime rivalize-mcp-server connected via stdio en stderr y espera entrada (presiona Ctrl+C para detener). Cualquier otra cosa es el motivo por el que tu cliente no pudo conectarse.

Cada llamada devuelve 401

La clave fue rechazada por el servidor al que se envió, y el error nombra ese servidor. Verifica que la clave no haya sido revocada y que RIVALIZE_API_URL esté sin configurar a menos que la clave haya sido emitida por un servidor de Rivalize diferente.

Una herramienta dice que necesita un plan superior

Las lecturas están disponibles en todos los planes. Algunas capacidades, como battlecards e historial completo de cronología o panorama, necesitan un plan superior; el error dice cuál y enlaza a rivalize.ai/pricing.

Docker

El repositorio incluye un Dockerfile que construye el mismo servidor stdio en Node 22 y lo ejecuta como un usuario no root.

docker build -t rivalize-mcp .
{
  "mcpServers": {
    "rivalize": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "RIVALIZE_API_KEY", "rivalize-mcp"],
      "env": { "RIVALIZE_API_KEY": "rk_live_..." }
    }
  }
}

Ejecuta el contenedor con -i y sin TTY, ya que MCP usa stdin y stdout. -e RIVALIZE_API_KEY sin valor pasa la clave desde el entorno del cliente, por lo que nunca aparece en la línea de comandos de docker run. Añade -e RIVALIZE_API_URL o -e RIVALIZE_MCP_ALLOW_WRITES de la misma manera si los necesitas.

Política de privacidad

Este servidor es un cliente ligero para la API de Rivalize.

  • Qué envía y adónde. Cada llamada a una herramienta se convierte en una solicitud HTTPS a la API de Rivalize en https://rivalize.ai, o al origen que configures en RIVALIZE_API_URL. Una solicitud lleva tu clave de API como token Bearer, un User-Agent de rivalize-mcp/<version>, y los argumentos de la herramienta: por ejemplo, un dominio de empresa, un término de búsqueda, un proyecto, informe o ID de competidor, y, con escrituras habilitadas, las URL de competidores que agregues. Si configuras HTTPS_PROXY o HTTP_PROXY, las solicitudes pasan por ese proxy. No se envía nada a ningún otro lugar.
  • Qué no envía. Sin telemetría, análisis ni informes de errores. No lee archivos en tu máquina, tu conversación ni la salida de otras herramientas; solo ve los argumentos que tu cliente MCP pasa a sus propias herramientas.
  • Qué almacena localmente. Nada. No escribe archivos, no mantiene caché ni conserva estado entre ejecuciones. Tu clave reside en la configuración de tu cliente MCP, no en este servidor. Los mensajes de diagnóstico van a stderr, que tu cliente MCP puede registrar; nunca incluyen tu clave de API.
  • Qué hace Rivalize con las solicitudes. La API las procesa bajo la Política de Privacidad de Rivalize en rivalize.ai/privacy. Rivalize es operado por Downshift LLC, el controlador de datos de esa información. Las preguntas sobre privacidad van a privacy@rivalize.ai.

Seguridad

Por favor, reporta vulnerabilidades de forma privada a support@rivalize.ai con "security" en la línea de asunto, no en un problema público. Incluye la versión del paquete (npm view @rivalize/mcp version, o el User-Agent anterior), qué hiciste y qué ocurrió. Confirmaremos tu informe y te mantendremos informado hasta que se resuelva.

Trata tu clave de API como una credencial. Mantenla en el bloque env de tu cliente o en el entorno de tu shell, nunca en un archivo compartido o versionado, y revoca una clave filtrada en Dashboard → Settings → API Keys.

Contribuciones

Los informes de errores y las solicitudes de funciones son bienvenidos en github.com/Downshift/rivalize-mcp/issues. Para preguntas sobre cuentas y facturación, envía un correo a support@rivalize.ai.

Para trabajar en el servidor localmente:

npm ci
npm run typecheck
npm run build      # emits dist/, which the rivalize-mcp bin runs
npm test           # offline: every API call is mocked or served by a local fixture

server.json es la entrada del Registro MCP. Las pruebas lo validan contra el esquema oficial (incluido en schema/) y verifican que su nombre, versión y paquete coincidan con package.json.

Registro de cambios

0.3.2

  • list_competitors ahora le indica a tu asistente cómo elegir un competidor principal: por la posición del rival en tu Brief (brief.standing) cuando la API lo devuelve, de lo contrario por momentum_score. threat_level se describe como lo que es, la banda de la puntuación de impulso, y ya no se ofrece como clasificación.
  • Cuando la posición de una fila aún se está leyendo (brief.state es deferred), list_competitors solicita la misma página nuevamente, hasta 4 veces, con 1,5 segundos de diferencia. Contra una API que no devuelve brief, hace una solicitud por llamada como antes.
  • Redacción más clara en la pista de error 401 para un servidor Rivalize autoalojado o no productivo, y en la descripción de add_competitor.

0.3.1

  • La versión desde la que comienza el historial de este repositorio: trece herramientas de solo lectura, la herramienta de escritura opcional add_competitor, respuestas mantenidas por debajo de 25,000 caracteres con paginación explícita, soporte de proxy y la entrada del Registro MCP en server.json.

Licencia

MIT, © 2026 Downshift LLC. Ver LICENSE.