Rivalize

官方

面向代理的竞争情报:竞争对手拆解、定价、广告、评论与势头。默认只读。

你可以用 Rivalize MCP 做什么?

  • 竞品拆解 — 通过 teardown_competitor,可要求对任何竞争对手的定位、定价、广告、社交媒体表现、评论、招聘动态及发展势头进行一次电话沟通式的策略拆解。
  • 全域搜索 — 使用 list_universe_companies,可按关键词、类别或层级搜索 Rivalize 跨客户数据库中已追踪的公司。
  • 报告导航 — 使用 get_report,可从已存储的报告中提取特定部分或竞争对手详情,例如定价或作战手册。
  • 竞争对手追踪 — 使用 list_competitors,查看您所追踪竞争对手的势头评分、威胁等级及简报排名。
  • 证据核验 — 使用 get_evidence 和 get_freshness,核查任何主张背后的来源,以及每位竞争对手最近被观察到的时间。
  • 添加竞争对手 — 通过 add_competitor,可选择将竞争对手的 URL 添加到项目中,这会消耗积分并排队进行分析。

文档

Rivalize MCP 服务器

npm License: MIT

为您的 AI 助手提供有来源、带日期的竞争情报,基于模型上下文协议(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 密钥 下创建 API 密钥。密钥以 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 服务器 面板,选择 配置,然后选择 配置 MCP 服务器。这将打开 cline_mcp_settings.json。添加:

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

保存文件。约 10 到 15 秒后,rivalize 服务器会显示绿点(首次启动会下载软件包)。在 Windows 上,如果无法启动,请使用 "command": "cmd" 和 "args": ["/c", "npx", "-y", "@rivalize/mcp"]。

如果您让 Cline 为您安装,请指向 llms-install.md。

任何 MCP 客户端(stdio)

服务器通过标准输入和标准输出(stdin/stdout)使用 MCP 协议。配置您的客户端启动:

设置值
命令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 提供时每个对手在您的简报中的排名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 是来自 list_projects 和 list_competitors 的 UUID。读取您账户的工具只能看到您自己的数据。

报告章节

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是无您的 Rivalize API 密钥。必须以 rk_live_ 开头;如果缺失或格式错误,服务器会在启动时退出并显示消息。
RIVALIZE_API_URL否https://rivalize.aiRivalize API 的来源。密钥只能在其签发的服务器上使用:对于 rivalize.ai 保持未设置,对于自托管或非生产环境的 Rivalize 服务器,设置为该服务器的来源,否则每次调用都会返回 401。
RIVALIZE_MCP_ALLOW_WRITES否关闭1、true 或 yes(任意大小写)会注册 add_competitor。任何其他值或未设置,则服务器保持只读。
HTTPS_PROXY / HTTP_PROXY否无通过企业代理路由请求。也读取小写形式,两者同时设置时 HTTPS_PROXY 优先。NO_PROXY 会被遵守。错误信息会指明代理主机,但绝不会包含其凭据。

故障排查

"连接已关闭"

当服务器无法启动时,许多客户端只显示"连接已关闭"或失败状态。服务器会将原因打印在 stderr 的第一行,前缀为 rivalize-mcp:,大多数客户端会将 stderr 保留在 MCP 日志中。常见原因:

  1. RIVALIZE_API_KEY 缺失或无效。 日志显示 rivalize-mcp: RIVALIZE_API_KEY is required,或提示密钥看起来不像 Rivalize API 密钥(必须以 rk_live_ 开头)。将密钥放入服务器的 env 配置块并重启客户端。
  2. Node.js 版本低于 22。 运行 node --version 并安装 Node.js 22 或更高版本。您的客户端使用其自身 PATH 中排在前面的 node 和 npx,这可能与您终端中的不同。
  3. 无网络访问。 npx 在首次运行时下载软件包,每次工具调用都会访问 https://rivalize.ai(或 RIVALIZE_API_URL)。在企业代理后面时,设置 HTTPS_PROXY。网络错误会指明服务器和原因代码,例如 ECONNREFUSED 或 ENOTFOUND。

要直接查看消息,请在终端中使用相同的密钥运行服务器:

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

健康的服务器会向 stderr 打印 rivalize-mcp-server connected via stdio 并等待输入(按 Ctrl+C 停止)。任何其他输出都是您的客户端无法连接的原因。

每次调用都返回 401

密钥被其发送到的服务器拒绝,错误信息会指明该服务器。检查密钥是否已被吊销,以及 RIVALIZE_API_URL 是否未设置(除非密钥由不同的 Rivalize 服务器签发)。

工具提示需要更高套餐

读取功能在所有套餐上均可用。某些功能(如对战卡和完整时间线或格局历史)需要更高套餐;错误信息会指明所需套餐并链接到 rivalize.ai/pricing。

Docker

仓库包含一个 Dockerfile,可在 Node 22 上构建相同的 stdio 服务器,并以非 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_..." }
    }
  }
}

使用 -i 且不带 TTY 运行容器,因为 MCP 使用标准输入和标准输出。不带值的 -e RIVALIZE_API_KEY 会将密钥从客户端环境传递进来,因此它永远不会出现在 docker run 命令行上。如需 -e RIVALIZE_API_URL 或 -e RIVALIZE_MCP_ALLOW_WRITES,请以相同方式添加。

隐私政策

该服务器是 Rivalize API 的轻量客户端。

  • 发送内容及发送位置。 每次工具调用都会向 Rivalize API 发送一个 HTTPS 请求,地址为 https://rivalize.ai,或你在 RIVALIZE_API_URL 中设置的目标地址。请求携带你的 API 密钥作为 Bearer 令牌、一个值为 rivalize-mcp/<version> 的 User-Agent,以及工具的参数:例如公司域名、搜索词、项目、报告或竞争对手 ID,以及在启用写入功能时你添加的竞争对手 URL。如果你设置了 HTTPS_PROXY 或 HTTP_PROXY,请求将通过该代理发送。除此之外,不会向任何其他地方发送任何内容。
  • 不发送的内容。 不发送遥测数据、分析数据或崩溃报告。它不会读取你机器上的文件、你的对话或其他工具的输出;它只看到你的 MCP 客户端传递给其自身工具的参数。
  • 本地存储的内容。 不存储任何内容。它不写入文件、不保留缓存,也不在运行之间保持任何状态。你的密钥存放在你的 MCP 客户端配置中,而不是此服务器中。诊断消息发送到 stderr,你的 MCP 客户端可能会记录这些消息;它们绝不会包含你的 API 密钥。
  • Rivalize 如何处理请求。 API 根据 rivalize.ai/privacy 中的 Rivalize 隐私政策处理这些请求。Rivalize 由 Downshift LLC 运营,该公司是该数据的数据控制者。隐私问题请发送至 privacy@rivalize.ai。

安全性

请私下向 support@rivalize.ai 报告漏洞,并在主题行中注明“security”,不要公开发布问题。请附上包版本(npm view @rivalize/mcp version,或上面的 User-Agent)、你执行的操作以及发生的情况。我们将确认你的报告,并在问题解决前持续向你更新进展。

请将你的 API 密钥视为凭据。将其保存在客户端的 env 块或 shell 环境中,切勿放入共享或已提交的文件中,并在 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 现在会告诉你的助手如何选择顶级竞争对手:当 API 返回竞争对手在你的 Brief 上的排名(brief.standing)时,按该排名选择;否则按 momentum_score 选择。threat_level 被描述为其实际含义,即动量分数的区间,不再作为排名提供。
  • 当某行的排名仍在读取中(brief.state 为 deferred)时,list_competitors 会再次请求同一页面,最多 4 次,每次间隔 1.5 秒。对于不返回 brief 的 API,它每次调用只发出一个请求,与之前相同。
  • 针对自托管或非生产环境的 Rivalize 服务器,401 提示以及 add_competitor 描述中的措辞更加清晰。

0.3.1

  • 此仓库历史起始的版本:十三个只读工具、可选的 add_competitor 写入工具、响应保持在 25,000 字符以内并带有显式分页、代理支持,以及 server.json 中的 MCP Registry 条目。

许可证

MIT,© 2026 Downshift LLC。参见 LICENSE。