Rivalize
официальныйКонкурентная разведка для агентов: разборы конкурентов, цены, реклама, отзывы и динамика. По умолчанию только для чтения.
Что можно делать с Rivalize MCP?
- Разбор конкурентов — Запросите разбор стратегии конкурента за один звонок: позиционирование, цены, реклама, присутствие в соцсетях, отзывы, найм и динамика — через
teardown_competitor. - Поиск по всей базе — Ищите в межклиентском наборе данных Rivalize по отслеживаемым компаниям по ключевому слову, категории или уровню с помощью
list_universe_companies. - Навигация по отчётам — Извлекайте конкретные разделы или детали о конкурентах из сохранённых отчётов, например цены или батлкарды, используя
get_report. - Отслеживание конкурентов — Просматривайте показатели динамики, уровни угрозы и позиции в Brief для отслеживаемых конкурентов с помощью
list_competitors. - Проверка доказательств — Проверяйте источники, стоящие за любым утверждением, и как давно наблюдался каждый конкурент, используя
get_evidenceиget_freshness. - Добавление конкурентов — Подключайтесь, чтобы добавить URL-адреса конкурентов в проект, что расходует кредиты и ставит анализ в очередь, через
add_competitor.
Документация
Сервер MCP Rivalize
Проверенная конкурентная разведка с указанием дат для вашего ИИ-ассистента, через протокол Model Context Protocol.
Что он делает
Этот сервер подключает Claude, Cursor или любой другой MCP-клиент к Rivalize. Ваш ассистент может разобрать позиционирование конкурента, цены, рекламу, присутствие в соцсетях, отзывы, найм и динамику одним вызовом, искать в базе Rivalize отслеживаемые компании и читать проекты, отчёты, батлкарты, таймлайны и доказательства в вашем аккаунте Rivalize. Каждый ответ основан на данных, собранных Rivalize, с датами и источниками, а не на памяти модели.
Сервер по умолчанию доступен только для чтения. Один инструмент записи, add_competitor, доступен, если вы включите его с помощью RIVALIZE_MCP_ALLOW_WRITES=1.
Быстрый старт
Требуется Node.js 22 или новее (node --version).
- Создайте аккаунт на rivalize.ai.
- Создайте API-ключ в разделе Dashboard → Settings → API Keys. Ключи начинаются с
rk_live_. Подойдёт ключ с любого тарифа, включая бесплатный, который получает ограниченные по скорости чтения. - Добавьте сервер в ваш клиент, используя один из блоков ниже.
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 предоставляет, позицией каждого соперника в вашем Brief | project_id, limit (1–100), offset |
get_competitor_intelligence | чтение | Последние сохранённые данные по одному отслеживаемому конкуренту; поле присутствует только если оно было измерено | competitor_id (обязательно) |
get_battlecard | чтение | Батлкарта для продаж с источниками по одному отслеживаемому конкуренту. Требуется тариф Pro | competitor_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-логе. Обычные причины:
RIVALIZE_API_KEYотсутствует или недействителен. В логе читаетсяrivalize-mcp: RIVALIZE_API_KEY is requiredили говорится, что ключ не похож на API-ключ Rivalize (он должен начинаться сrk_live_). Поместите ключ в блокenvсервера и перезапустите клиент.- Node.js старше 22. Выполните
node --versionи установите Node.js 22 или новее. Ваш клиент использует теnodeиnpx, которые первыми находятся в его собственномPATH, что может отличаться от вашего терминала. - Нет доступа к сети.
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.