Rivalize

официальный

Конкурентная разведка для агентов: разборы конкурентов, цены, реклама, отзывы и динамика. По умолчанию только для чтения.

Что можно делать с Rivalize MCP?

  • Разбор конкурентов — Запросите разбор стратегии конкурента за один звонок: позиционирование, цены, реклама, присутствие в соцсетях, отзывы, найм и динамика — через teardown_competitor.
  • Поиск по всей базе — Ищите в межклиентском наборе данных Rivalize по отслеживаемым компаниям по ключевому слову, категории или уровню с помощью list_universe_companies.
  • Навигация по отчётам — Извлекайте конкретные разделы или детали о конкурентах из сохранённых отчётов, например цены или батлкарды, используя get_report.
  • Отслеживание конкурентов — Просматривайте показатели динамики, уровни угрозы и позиции в Brief для отслеживаемых конкурентов с помощью list_competitors.
  • Проверка доказательств — Проверяйте источники, стоящие за любым утверждением, и как давно наблюдался каждый конкурент, используя get_evidence и get_freshness.
  • Добавление конкурентов — Подключайтесь, чтобы добавить URL-адреса конкурентов в проект, что расходует кредиты и ставит анализ в очередь, через add_competitor.

Документация

Сервер MCP Rivalize

npm License: MIT

Проверенная конкурентная разведка с указанием дат для вашего ИИ-ассистента, через протокол Model Context Protocol.

Что он делает

Этот сервер подключает Claude, Cursor или любой другой MCP-клиент к Rivalize. Ваш ассистент может разобрать позиционирование конкурента, цены, рекламу, присутствие в соцсетях, отзывы, найм и динамику одним вызовом, искать в базе Rivalize отслеживаемые компании и читать проекты, отчёты, батлкарты, таймлайны и доказательства в вашем аккаунте Rivalize. Каждый ответ основан на данных, собранных Rivalize, с датами и источниками, а не на памяти модели.

Сервер по умолчанию доступен только для чтения. Один инструмент записи, add_competitor, доступен, если вы включите его с помощью RIVALIZE_MCP_ALLOW_WRITES=1.

Быстрый старт

Требуется Node.js 22 или новее (node --version).

  1. Создайте аккаунт на rivalize.ai.
  2. Создайте API-ключ в разделе Dashboard → Settings → API Keys. Ключи начинаются с rk_live_. Подойдёт ключ с любого тарифа, включая бесплатный, который получает ограниченные по скорости чтения.
  3. Добавьте сервер в ваш клиент, используя один из блоков ниже.

Claude Desktop

Отредактируйте ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) или %APPDATA%\Claude\claude_desktop_config.json (Windows), затем перезапустите 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

Добавьте в .cursor/mcp.json в вашем проекте или в ~/.cursor/mcp.json для всех проектов:

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

Cline

В Cline откройте панель MCP Servers, выберите Configure, затем Configure MCP Servers. Откроется cline_mcp_settings.json. Добавьте:

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

Сохраните файл. Сервер rivalize появится с зелёной точкой через 10–15 секунд (при первом запуске загружается пакет). В Windows, если он не запускается, используйте "command": "cmd" и "args": ["/c", "npx", "-y", "@rivalize/mcp"].

Если вы попросите Cline установить его за вас, укажите на llms-install.md.

Любой MCP-клиент (stdio)

Сервер работает через MCP по stdin и stdout. Настройте клиент на запуск:

ПараметрЗначение
Командаnpx
Аргументы-y @rivalize/mcp
Переменные окруженияRIVALIZE_API_KEY=rk_live_...
Транспортstdio

В Windows некоторые клиенты не могут запустить npx напрямую, потому что это npx.cmd. Вместо этого используйте cmd как команду и /c npx -y @rivalize/mcp как аргументы.

Инструменты

Тринадцать инструментов только для чтения доступны всегда. add_competitor регистрируется только когда RIVALIZE_MCP_ALLOW_WRITES установлен в 1, true или yes; без этого инструмент не существует для клиента.

ИнструментДоступЧто делаетКлючевые аргументы
teardown_competitorчтениеПолный стратегический разбор конкурента одним вызовом в Markdown: позиционирование, цены, реклама, соцсети, отзывы, найм, динамика и слабые места для атаки, с указанием даты последнего обновления данныхdomain (обязательно)
list_universe_companiesчтениеПоиск по базе Rivalize — межклиентскому набору отслеживаемых компанийq, category (slug), layer, limit (1–100), offset
get_universe_companyчтениеПолный профиль компании из базы: идентификация, цены, функции, реклама, соцсети, отзывы, финансирование и найм, рейтинги, сигналы, динамикаdomain (обязательно), layers
list_projectsчтениеПроекты в вашем аккаунте; возвращает project_id, которые принимают другие инструментынет
list_reportsчтениеВаши отчёты, сначала новые. Чтение никогда не создаёт отчётproject_id, limit (1–100), offset
get_reportчтениеОдин отчёт в Markdown, целиком или по одному разделу или конкурентуreport_id (обязательно), section, competitor, page
list_competitorsчтениеОтслеживаемые конкуренты с оценкой динамики, уровнем угрозы и, где API предоставляет, позицией каждого соперника в вашем Briefproject_id, limit (1–100), offset
get_competitor_intelligenceчтениеПоследние сохранённые данные по одному отслеживаемому конкуренту; поле присутствует только если оно было измереноcompetitor_id (обязательно)
get_battlecardчтениеБатлкарта для продаж с источниками по одному отслеживаемому конкуренту. Требуется тариф Procompetitor_id (обязательно)
get_strategic_timelineчтениеТаймлайн действий конкурента с доказательствами: цены, продукт, люди, финансирование и контент/соцсетиproject_id (обязательно), days (30, 90, 180), competitor_id, lanes, format, page
get_competitive_landscapeчтениеТекущие или сохранённые недельные позиции конкурентов по активности и стратегической важностиproject_id (обязательно), week (YYYY-MM-DD), format, page
get_freshnessчтениеКогда каждый отслеживаемый конкурент в проекте был фактически замечен в последний раз и каким образомproject_id (обязательно)
get_evidenceчтениеИсточники фактов по вашему продукту или одному конкуренту: URL, что подтверждает и когда был прочитанproject_id (обязательно), competitor_id
add_competitorзапись, по согласиюДобавление URL конкурентов в проект. Тратит кредиты и ставит анализ в очередьproject_id (обязательно), urls (1–10, обязательно)

project_id и competitor_id — это UUID из list_projects и list_competitors. Инструменты, читающие ваш аккаунт, видят только ваши данные.

Разделы отчёта

get_report принимает section, чтобы ваш ассистент мог прочитать часть, нужную для ответа, а не весь отчёт:

РазделСодержимое
tldr, biggest-threat, blind-spots, actionsОсновные разделы отчёта (actions — что должен делать ваш продукт)
battlecardsБатлкарты для продаж с источниками
competitorsРаздел каждого конкурента полностью
pricing, momentum, app-store, strengths, weaknesses, key-findings, creators, ads, tech-stackОдна тема, собранная из разделов всех конкурентов

В отчёте есть только те разделы, по которым есть данные; запрос любого другого имени возвращает ошибку со списком доступных разделов. section сочетается с competitor, поэтому section: "pricing" с competitor: "Acme" возвращает цены Acme. Утверждения, удалённые проверкой на фабрикацию в отчёте, отображаются как [removed — unverified], точно так же, как в отчёте.

Длинные ответы

Каждый ответ остаётся в пределах 25 000 символов, и ничего не обрезается молча:

  • Markdown (get_report, get_strategic_timeline, get_competitive_landscape) разбивается на страницы по границам разделов. Каждая страница начинается с Page N of M, сколько осталось и точного вызова для следующей страницы.
  • Списки (list_universe_companies, list_competitors, list_reports) возвращают pagination.next_offset; продолжайте с него, пока он не станет null.
  • Объекты (get_universe_company, а также JSON таймлайна или ландшафта) ограничивают длинные массивы и фиксируют ограничение в _capped. Поле, которое всё ещё не помещается, перечисляется в _omitted с вызовом, который его получает.

Примеры запросов

  • «Разбери linear.app.» (teardown_competitor)
  • «Кто игроки в AI-инструментах для разработчиков?» (list_universe_companies)
  • «Суммируй мой последний отчёт, затем покажи, сколько берут мои конкуренты.» (list_reports, get_report с section: "pricing")
  • «Кто из моих конкурентов двигался больше всего в этом квартале и что они делали?» (get_competitive_landscape, get_strategic_timeline)
  • «Дай мне аргументы для продаж против моего главного конкурента.» (list_competitors, get_battlecard)
  • «Откуда это утверждение о цене и насколько оно свежее?» (get_evidence, get_freshness)

Конфигурация

ПеременнаяОбязательнаяПо умолчаниюОписание
RIVALIZE_API_KEYданетВаш API-ключ Rivalize. Должен начинаться с rk_live_; сервер завершает работу при запуске с сообщением, если ключ отсутствует или некорректен.
RIVALIZE_API_URLнетhttps://rivalize.aiИсточник API Rivalize. Ключ работает только на сервере, который его выдал: оставьте пустым для rivalize.ai, а для самостоятельного или непродакшн-сервера Rivalize укажите его источник, иначе каждый вызов вернёт 401.
RIVALIZE_MCP_ALLOW_WRITESнетвыкл1, true или yes (в любом регистре) регистрирует add_competitor. Любое другое значение или отсутствие оставляет сервер только для чтения.
HTTPS_PROXY / HTTP_PROXYнетнетМаршрутизация запросов через корпоративный прокси. Также читаются формы в нижнем регистре, и HTTPS_PROXY имеет приоритет, если заданы оба. Учитывается NO_PROXY. Ошибки называют хост прокси, но никогда его учётные данные.

Устранение неполадок

«Connection closed»

Когда сервер не может запуститься, многие клиенты показывают только «Connection closed» или статус сбоя. Сервер печатает причину первой строкой в stderr с префиксом rivalize-mcp:, и большинство клиентов хранят stderr в своём MCP-логе. Обычные причины:

  1. RIVALIZE_API_KEY отсутствует или недействителен. В логе читается rivalize-mcp: RIVALIZE_API_KEY is required или говорится, что ключ не похож на API-ключ Rivalize (он должен начинаться с rk_live_). Поместите ключ в блок env сервера и перезапустите клиент.
  2. Node.js старше 22. Выполните node --version и установите Node.js 22 или новее. Ваш клиент использует те node и npx, которые первыми находятся в его собственном PATH, что может отличаться от вашего терминала.
  3. Нет доступа к сети. npx загружает пакет при первом запуске, и каждый вызов инструмента идёт на https://rivalize.ai (или RIVALIZE_API_URL). За корпоративным прокси установите HTTPS_PROXY. Сетевая ошибка называет сервер и код причины, например ECONNREFUSED или ENOTFOUND.

Чтобы увидеть сообщение напрямую, запустите сервер в терминале с тем же ключом:

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

Здоровый сервер печатает rivalize-mcp-server connected via stdio в stderr и ждёт ввода (нажмите Ctrl+C для остановки). Всё остальное — причина, по которой ваш клиент не смог подключиться.

Каждый вызов возвращает 401

Ключ был отклонён сервером, на который он был отправлен, и ошибка называет этот сервер. Проверьте, что ключ не отозван и что RIVALIZE_API_URL не задан, если только ключ не был выдан другим сервером Rivalize.

Инструмент сообщает, что нужен более высокий тариф

Чтение доступно на любом тарифе. Некоторые возможности, такие как батлкарты и полная история таймлайна или ландшафта, требуют более высокого тарифа; ошибка сообщает, какого именно, и даёт ссылку на rivalize.ai/pricing.

Docker

В репозитории есть Dockerfile, который собирает тот же stdio-сервер на Node 22 и запускает его от непривилегированного пользователя.

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_..." }
    }
  }
}

Запускайте контейнер с -i и без TTY, так как MCP использует stdin и stdout. -e RIVALIZE_API_KEY без значения передаёт ключ из окружения клиента, поэтому он никогда не появляется в командной строке docker run. Добавьте -e RIVALIZE_API_URL или -e RIVALIZE_MCP_ALLOW_WRITES аналогичным образом, если они нужны.

Политика конфиденциальности

Этот сервер — тонкий клиент для API Rivalize.

  • Что отправляется и куда. Каждый вызов инструмента превращается в HTTPS-запрос к API Rivalize по адресу https://rivalize.ai или к источнику, указанному в RIVALIZE_API_URL. Запрос содержит ваш API-ключ как Bearer-токен, User-Agent со значением rivalize-mcp/<version> и аргументы инструмента: например, домен компании, поисковый запрос, идентификатор проекта, отчёта или конкурента, а при включённой записи — добавляемые URL конкурентов. Если вы задали HTTPS_PROXY или HTTP_PROXY, запросы идут через этот прокси. Больше ничего никуда не отправляется.
  • Что не отправляется. Никакой телеметрии, аналитики или отчётов о сбоях. Сервер не читает файлы на вашем компьютере, вашу переписку или вывод других инструментов; он видит только аргументы, которые ваш MCP-клиент передаёт его собственным инструментам.
  • Что хранится локально. Ничего. Сервер не записывает файлы, не ведёт кэш и не сохраняет состояние между запусками. Ваш ключ хранится в конфигурации MCP-клиента, а не в этом сервере. Диагностические сообщения выводятся в stderr, который ваш MCP-клиент может логировать; они никогда не содержат ваш API-ключ.
  • Что Rivalize делает с запросами. API обрабатывает их в соответствии с Политикой конфиденциальности Rivalize по адресу rivalize.ai/privacy. Rivalize управляется компанией Downshift LLC, которая является контролёром данных. Вопросы о конфиденциальности направляйте на privacy@rivalize.ai.

Безопасность

Пожалуйста, сообщайте об уязвимостях конфиденциально на support@rivalize.ai с указанием «security» в теме письма, а не в публичном issue. Укажите версию пакета (npm view @rivalize/mcp version или User-Agent выше), что вы делали и что произошло. Мы подтвердим получение вашего сообщения и будем держать вас в курсе до устранения проблемы.

Относитесь к вашему API-ключу как к учётным данным. Храните его в блоке env вашего клиента или в переменных окружения, никогда не в общем или закоммиченном файле, и отзывайте скомпрометированный ключ в разделе Dashboard → Settings → API Keys.

Участие в разработке

Отчёты об ошибках и запросы функций приветствуются по адресу github.com/Downshift/rivalize-mcp/issues. По вопросам учётной записи и оплаты пишите на support@rivalize.ai.

Для локальной работы с сервером:

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 — это запись в MCP Registry. Тесты проверяют её соответствие официальной схеме (включённой в schema/) и сверяют имя, версию и пакет с package.json.

Журнал изменений

0.3.2

  • list_competitors теперь подсказывает вашему ассистенту, как выбрать главного конкурента: по позиции соперника в вашем Brief (brief.standing), если API возвращает её, иначе — по momentum_score. threat_level описан как есть, как диапазон показателя momentum, и больше не предлагается в качестве ранжирования.
  • Когда позиция строки ещё считывается (brief.state равно deferred), list_competitors повторяет запрос той же страницы до 4 раз с интервалом 1,5 секунды. Если API не возвращает brief, выполняется один запрос на вызов, как и раньше.
  • Уточнены формулировки в подсказке 401 для самостоятельного размещения или непродакшн-сервера Rivalize, а также в описании add_competitor.

0.3.1

  • Версия, с которой начинается история этого репозитория: тринадцать инструментов только для чтения, опциональный инструмент записи add_competitor, ответы объёмом до 25 000 символов с явной постраничной навигацией, поддержка прокси и запись в MCP Registry в server.json.

Лицензия

MIT, © 2026 Downshift LLC. См. LICENSE.