Rivalize
oficialInteligencia 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_evidenceyget_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
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).
- Crea una cuenta en rivalize.ai.
- 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. - 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ón | Valor |
|---|---|
| Comando | npx |
| Argumentos | -y @rivalize/mcp |
| Entorno | RIVALIZE_API_KEY=rk_live_... |
| Transporte | stdio |
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.
| Herramienta | Acceso | Qué hace | Argumentos clave |
|---|---|---|---|
teardown_competitor | lectura | Desglose 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 vez | domain (obligatorio) |
list_universe_companies | lectura | Busca en el universo de Rivalize, el conjunto de datos entre clientes de empresas rastreadas | q, category (slug), layer, limit (1-100), offset |
get_universe_company | lectura | Perfil completo del universo para una empresa: identidad, precios, características, anuncios, redes sociales, reseñas, financiación y contrataciones, clasificaciones, señales, impulso | domain (obligatorio), layers |
list_projects | lectura | Los proyectos en tu cuenta; devuelve los project_id que toman otras herramientas | ninguno |
list_reports | lectura | Tus informes, del más reciente al más antiguo. Leer nunca genera un informe | project_id, limit (1-100), offset |
get_report | lectura | Un informe como Markdown, completo o una sección o un competidor a la vez | report_id (obligatorio), section, competitor, page |
list_competitors | lectura | Los 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 Brief | project_id, limit (1-100), offset |
get_competitor_intelligence | lectura | Última inteligencia almacenada para un competidor rastreado; un campo está presente solo cuando se midió | competitor_id (obligatorio) |
get_battlecard | lectura | Battlecard de ventas citado para un competidor rastreado. Requiere un plan Pro | competitor_id (obligatorio) |
get_strategic_timeline | lectura | Cronología vinculada a evidencia de movimientos de competidores en precios, producto, personas, financiación y contenido/redes sociales | project_id (obligatorio), days (30, 90, 180), competitor_id, lanes, format, page |
get_competitive_landscape | lectura | Posiciones semanales actuales o almacenadas de competidores por actividad e importancia estratégica | project_id (obligatorio), week (YYYY-MM-DD), format, page |
get_freshness | lectura | Cuándo se observó por última vez a cada competidor rastreado en un proyecto, y cómo | project_id (obligatorio) |
get_evidence | lectura | Las 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_competitor | escritura, opcional | Añade URLs de competidores a un proyecto. Gasta créditos y pone en cola el análisis | project_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ón | Contiene |
|---|---|
tldr, biggest-threat, blind-spots, actions | Las secciones principales del informe (actions es lo que tu producto debería hacer) |
battlecards | Los battlecards de ventas citados |
competitors | La sección de cada competidor en su totalidad |
pricing, momentum, app-store, strengths, weaknesses, key-findings, creators, ads, tech-stack | Un 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 conPage N of M, cuánto queda y la llamada exacta para la página siguiente. - Listas (
list_universe_companies,list_competitors,list_reports) devuelvenpagination.next_offset; continúa desde allí hasta que seanull. - 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_omittedcon 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_reportconsection: "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
| Variable | Obligatoria | Predeterminado | Descripción |
|---|---|---|---|
RIVALIZE_API_KEY | sí | ninguna | Tu 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_URL | no | https://rivalize.ai | Origen 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_WRITES | no | desactivado | 1, 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_PROXY | no | ninguna | Enruta 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:
RIVALIZE_API_KEYfalta o es inválida. El registro dicerivalize-mcp: RIVALIZE_API_KEY is required, o dice que la clave no parece una clave de API de Rivalize (debe comenzar conrk_live_). Pon la clave en el bloqueenvdel servidor y reinicia el cliente.- Node.js es anterior a la versión 22. Ejecuta
node --versione instala Node.js 22 o superior. Tu cliente usa elnodeynpxque aparecen primero en su propioPATH, que puede diferir de los de tu terminal. - Sin acceso a la red.
npxdescarga el paquete en la primera ejecución, y cada llamada de herramienta va ahttps://rivalize.ai(oRIVALIZE_API_URL). Detrás de un proxy corporativo, configuraHTTPS_PROXY. Un error de red nombra el servidor y el código de causa, comoECONNREFUSEDoENOTFOUND.
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 enRIVALIZE_API_URL. Una solicitud lleva tu clave de API como token Bearer, unUser-Agentderivalize-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 configurasHTTPS_PROXYoHTTP_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_competitorsahora 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 pormomentum_score.threat_levelse 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.stateesdeferred),list_competitorssolicita la misma página nuevamente, hasta 4 veces, con 1,5 segundos de diferencia. Contra una API que no devuelvebrief, 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 enserver.json.
Licencia
MIT, © 2026 Downshift LLC. Ver LICENSE.