Rivalize
oficialInteligência competitiva para agentes: análises de concorrentes, preços, anúncios, avaliações e momentum. Somente leitura por padrão.
O que você pode fazer com Rivalize MCP?
- Análise de concorrente — Solicite uma análise estratégica em uma única chamada do posicionamento, preços, anúncios, presença social, avaliações, contratações e momentum de qualquer concorrente via
teardown_competitor. - Busca no universo — Pesquise o conjunto de dados entre clientes da Rivalize de empresas rastreadas por palavra-chave, categoria ou camada com
list_universe_companies. - Navegação de relatórios — Extraia seções específicas ou detalhes de concorrentes dos seus relatórios armazenados, como preços ou battlecards, usando
get_report. - Rastreamento de concorrentes — Visualize as pontuações de momentum, níveis de ameaça e posições no Brief dos seus concorrentes rastreados com
list_competitors. - Verificação de evidências — Verifique as fontes por trás de qualquer afirmação e há quanto tempo cada concorrente foi observado usando
get_evidenceeget_freshness. - Adicionar concorrentes — Opte por adicionar URLs de concorrentes a um projeto, o que gasta créditos e enfileira a análise, via
add_competitor.
Documentação
Servidor MCP Rivalize
Inteligência competitiva com fonte e data para seu assistente de IA, através do Model Context Protocol.
O que ele faz
Este servidor conecta Claude, Cursor ou qualquer outro cliente MCP ao Rivalize. Seu assistente pode analisar o posicionamento, preços, anúncios, presença social, avaliações, contratações e momentum de um concorrente em uma única chamada, pesquisar o universo Rivalize de empresas rastreadas e ler os projetos, relatórios, battlecards, cronologias e evidências da sua própria conta Rivalize. Cada resposta vem de dados que a Rivalize coletou, com datas e fontes, em vez da memória de um modelo.
O servidor é somente leitura por padrão. Uma ferramenta de escrita, add_competitor, está
disponível quando você opta por ativá-la com RIVALIZE_MCP_ALLOW_WRITES=1.
Início rápido
Requer Node.js 22 ou mais recente (node --version).
- Crie uma conta em rivalize.ai.
- Crie uma chave de API em Painel → Configurações → Chaves de API. As chaves começam com
rk_live_. Uma chave de qualquer plano funciona, incluindo o plano gratuito, que tem leituras com limite de taxa. - Adicione o servidor ao seu cliente usando um dos blocos abaixo.
Claude Desktop
Edite ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
ou %APPDATA%\Claude\claude_desktop_config.json (Windows) e reinicie o 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
Adicione a .cursor/mcp.json no seu projeto, ou ~/.cursor/mcp.json para todos
os projetos:
{
"mcpServers": {
"rivalize": {
"command": "npx",
"args": ["-y", "@rivalize/mcp"],
"env": { "RIVALIZE_API_KEY": "rk_live_..." }
}
}
}
Cline
No Cline, abra o painel Servidores MCP, escolha Configurar e depois Configurar Servidores MCP. Isso abre cline_mcp_settings.json. Adicione:
{
"mcpServers": {
"rivalize": {
"command": "npx",
"args": ["-y", "@rivalize/mcp"],
"env": { "RIVALIZE_API_KEY": "rk_live_..." }
}
}
}
Salve o arquivo. O servidor rivalize aparece com um ponto verde após cerca de 10 a 15 segundos (a primeira inicialização baixa o pacote). No Windows, se não iniciar, use "command": "cmd" e "args": ["/c", "npx", "-y", "@rivalize/mcp"].
Se você pedir ao Cline para instalá-lo para você, aponte para llms-install.md.
Qualquer cliente MCP (stdio)
O servidor fala MCP via stdin e stdout. Configure seu cliente para iniciar:
| Configuração | Valor |
|---|---|
| Comando | npx |
| Argumentos | -y @rivalize/mcp |
| Ambiente | RIVALIZE_API_KEY=rk_live_... |
| Transporte | stdio |
No Windows, alguns clientes não conseguem iniciar npx diretamente porque ele é npx.cmd.
Use cmd como comando e /c npx -y @rivalize/mcp como argumentos
em vez disso.
Ferramentas
Treze ferramentas somente leitura estão sempre disponíveis. add_competitor é registrada
apenas quando RIVALIZE_MCP_ALLOW_WRITES está definido como 1, true ou yes; sem
isso, a ferramenta não existe para o cliente.
| Ferramenta | Acesso | O que faz | Argumentos principais |
|---|---|---|---|
teardown_competitor | leitura | Análise estratégica completa de um concorrente em uma chamada como Markdown: posicionamento, preços, anúncios, redes sociais, avaliações, contratações, momentum e pontos fracos para atacar, com quando os dados foram atualizados pela última vez | domain (obrigatório) |
list_universe_companies | leitura | Pesquisar o universo Rivalize, o conjunto de dados entre clientes de empresas rastreadas | q, category (slug), layer, limit (1-100), offset |
get_universe_company | leitura | Perfil completo do universo para uma empresa: identidade, preços, recursos, anúncios, redes sociais, avaliações, financiamento e contratações, classificações, sinais, momentum | domain (obrigatório), layers |
list_projects | leitura | Os projetos na sua conta; retorna os project_id que outras ferramentas recebem | nenhum |
list_reports | leitura | Seus relatórios, do mais recente ao mais antigo. Ler nunca gera um relatório | project_id, limit (1-100), offset |
get_report | leitura | Um relatório como Markdown, inteiro ou uma seção ou um concorrente por vez | report_id (obrigatório), section, competitor, page |
list_competitors | leitura | Os concorrentes que você rastreia, com pontuação de momentum, sua faixa de nível de ameaça e, onde a API fornece, a posição de cada rival no seu Brief | project_id, limit (1-100), offset |
get_competitor_intelligence | leitura | Inteligência armazenada mais recente para um concorrente rastreado; um campo está presente apenas quando foi medido | competitor_id (obrigatório) |
get_battlecard | leitura | Battlecard de vendas citado para um concorrente rastreado. Requer plano Pro | competitor_id (obrigatório) |
get_strategic_timeline | leitura | Cronologia com evidências dos movimentos do concorrente em preços, produto, pessoas, financiamento e conteúdo/redes sociais | project_id (obrigatório), days (30, 90, 180), competitor_id, lanes, format, page |
get_competitive_landscape | leitura | Posições semanais atuais ou armazenadas dos concorrentes por atividade e importância estratégica | project_id (obrigatório), week (YYYY-MM-DD), format, page |
get_freshness | leitura | Quando cada concorrente rastreado em um projeto foi realmente observado pela última vez e como | project_id (obrigatório) |
get_evidence | leitura | As fontes por trás dos fatos para seu produto ou um concorrente: URL, o que suporta e quando foi lida | project_id (obrigatório), competitor_id |
add_competitor | escrita, opcional | Adicionar URLs de concorrentes a um projeto. Gasta créditos e enfileira análise | project_id (obrigatório), urls (1-10, obrigatório) |
project_id e competitor_id são UUIDs de list_projects e
list_competitors. Ferramentas que leem sua conta só veem seus próprios dados.
Seções do relatório
get_report recebe um section para que seu assistente possa ler a parte que uma pergunta
precisa em vez do relatório inteiro:
| Seção | Contém |
|---|---|
tldr, biggest-threat, blind-spots, actions | As seções principais do relatório (actions é o que seu produto deve fazer) |
battlecards | Os battlecards de vendas citados |
competitors | A seção de cada concorrente na íntegra |
pricing, momentum, app-store, strengths, weaknesses, key-findings, creators, ads, tech-stack | Um tópico reunido da seção de cada concorrente |
Um relatório tem apenas as seções para as quais tem dados; pedir qualquer outro nome
retorna um erro que lista as seções que ele tem. section combina com
competitor, então section: "pricing" com competitor: "Acme" retorna os preços da Acme.
Alegações que a verificação de fabricação do relatório removeu aparecem como
[removed — unverified], exatamente como no relatório.
Respostas longas
Toda resposta fica abaixo de 25.000 caracteres e nada é cortado silenciosamente:
- Markdown (
get_report,get_strategic_timeline,get_competitive_landscape) é dividido em páginas nos limites de seção. Cada página começa comPage N of M, quanto resta e a chamada exata para a próxima página. - Listas (
list_universe_companies,list_competitors,list_reports) retornampagination.next_offset; continue a partir dele até que sejanull. - Objetos (
get_universe_company, e JSON de cronologia ou panorama) limitam arrays longos e registram o limite em_capped. Um campo que ainda não cabe é listado em_omittedcom a chamada que o busca.
Exemplos de prompts
- "Analise a linear.app." (
teardown_competitor) - "Quem são os players em ferramentas de desenvolvedor de IA?" (
list_universe_companies) - "Resuma meu relatório mais recente e depois mostre o que meus concorrentes cobram."
(
list_reports,get_reportcomsection: "pricing") - "Qual dos meus concorrentes mais se moveu neste trimestre e o que eles fizeram?"
(
get_competitive_landscape,get_strategic_timeline) - "Dê-me argumentos de vendas contra meu principal concorrente." (
list_competitors,get_battlecard) - "De onde vem essa alegação de preço e quão recente ela é?"
(
get_evidence,get_freshness)
Configuração
| Variável | Obrigatória | Padrão | Descrição |
|---|---|---|---|
RIVALIZE_API_KEY | sim | nenhum | Sua chave de API Rivalize. Deve começar com rk_live_; o servidor sai na inicialização com uma mensagem se estiver ausente ou malformada. |
RIVALIZE_API_URL | não | https://rivalize.ai | Origem da API Rivalize. Uma chave só funciona no servidor que a emitiu: deixe isso não definido para rivalize.ai e, para um servidor Rivalize auto-hospedado ou não produção, defina para a origem desse servidor, ou toda chamada retorna 401. |
RIVALIZE_MCP_ALLOW_WRITES | não | desativado | 1, true ou yes (qualquer maiúscula/minúscula) registra add_competitor. Qualquer outro valor, ou não definido, mantém o servidor somente leitura. |
HTTPS_PROXY / HTTP_PROXY | não | nenhum | Roteie solicitações por um proxy corporativo. Formas minúsculas também são lidas, e HTTPS_PROXY vence quando ambos estão definidos. NO_PROXY é respeitado. Erros nomeiam o host do proxy, nunca suas credenciais. |
Solução de problemas
"Conexão fechada"
Quando o servidor não consegue iniciar, muitos clientes mostram apenas "Conexão fechada" ou um
status de falha. O servidor imprime o motivo como a primeira linha do seu stderr,
prefixado com rivalize-mcp:, e a maioria dos clientes mantém o stderr no log do MCP. As
causas usuais:
RIVALIZE_API_KEYestá ausente ou inválida. O log lêrivalize-mcp: RIVALIZE_API_KEY is required, ou diz que a chave não parece uma chave de API Rivalize (deve começar comrk_live_). Coloque a chave no blocoenvdo servidor e reinicie o cliente.- Node.js é mais antigo que 22. Execute
node --versione instale Node.js 22 ou mais recente. Seu cliente usa onodeenpxque vêm primeiro no seu próprioPATH, que pode diferir do seu terminal. - Sem acesso à rede.
npxbaixa o pacote na primeira execução, e toda chamada de ferramenta vai parahttps://rivalize.ai(ouRIVALIZE_API_URL). Atrás de um proxy corporativo, definaHTTPS_PROXY. Um erro de rede nomeia o servidor e o código de causa, comoECONNREFUSEDouENOTFOUND.
Para ver a mensagem diretamente, execute o servidor em um terminal com a mesma chave:
RIVALIZE_API_KEY=rk_live_... npx -y @rivalize/mcp
Um servidor saudável imprime rivalize-mcp-server connected via stdio no stderr
e aguarda entrada (pressione Ctrl+C para parar). Qualquer outra coisa é o motivo pelo qual seu
cliente não conseguiu conectar.
Toda chamada retorna 401
A chave foi rejeitada pelo servidor para o qual foi enviada, e o erro nomeia esse
servidor. Verifique se a chave não foi revogada e se RIVALIZE_API_URL está
não definido, a menos que a chave tenha sido emitida por um servidor Rivalize diferente.
Uma ferramenta diz que precisa de um plano superior
Leituras estão disponíveis em todos os planos. Alguns recursos, como battlecards e histórico completo de cronologia ou panorama, precisam de um plano superior; o erro diz qual e linka para rivalize.ai/pricing.
Docker
O repositório inclui um Dockerfile que constrói o mesmo servidor stdio no
Node 22 e o executa como um usuário não 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_..." }
}
}
}
Execute o contêiner com -i e sem um TTY, já que o MCP usa stdin e
stdout. -e RIVALIZE_API_KEY sem valor passa a chave do
ambiente do cliente, então ela nunca aparece na linha de comando do docker run.
Adicione -e RIVALIZE_API_URL ou -e RIVALIZE_MCP_ALLOW_WRITES da mesma forma se você
precisar deles.
Política de Privacidade
Este servidor é um cliente leve para a API Rivalize.
- O que ele envia e para onde. Cada chamada de ferramenta se torna uma solicitação HTTPS para a API da Rivalize em
https://rivalize.ai, ou a origem que você definiu emRIVALIZE_API_URL. Uma solicitação carrega sua chave de API como um token Bearer, umUser-Agentderivalize-mcp/<version>e os argumentos da ferramenta: por exemplo, um domínio de empresa, um termo de busca, um projeto, relatório ou ID de concorrente e, com gravações habilitadas, as URLs de concorrentes que você adiciona. Se você definirHTTPS_PROXYouHTTP_PROXY, as solicitações passam por esse proxy. Nada é enviado para qualquer outro lugar. - O que ele não envia. Sem telemetria, análises ou relatórios de falhas. Ele não lê arquivos na sua máquina, sua conversa ou a saída de outras ferramentas; ele vê apenas os argumentos que seu cliente MCP passa para suas próprias ferramentas.
- O que ele armazena localmente. Nada. Ele não grava arquivos, não mantém cache e não retém estado entre execuções. Sua chave vive na configuração do seu cliente MCP, não neste servidor. Mensagens de diagnóstico vão para o stderr, que seu cliente MCP pode registrar; elas nunca incluem sua chave de API.
- O que a Rivalize faz com as solicitações. A API as processa sob a Política de Privacidade da Rivalize em rivalize.ai/privacy. A Rivalize é operada pela Downshift LLC, a controladora de dados desses dados. Perguntas sobre privacidade vão para privacy@rivalize.ai.
Segurança
Por favor, relate vulnerabilidades em particular para support@rivalize.ai com "security" na linha de assunto, não em uma issue pública. Inclua a versão do pacote (npm view @rivalize/mcp version, ou o User-Agent acima), o que você fez e o que aconteceu. Vamos reconhecer seu relatório e mantê-lo atualizado até que seja resolvido.
Trate sua chave de API como uma credencial. Mantenha-a no bloco env do seu cliente ou no ambiente do seu shell, nunca em um arquivo compartilhado ou versionado, e revogue uma chave vazada em Dashboard → Settings → API Keys.
Contribuindo
Relatórios de bugs e solicitações de recursos são bem-vindos em github.com/Downshift/rivalize-mcp/issues. Para dúvidas sobre conta e cobrança, envie um e-mail para support@rivalize.ai.
Para trabalhar no 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 é a entrada do MCP Registry. Os testes a validam contra o esquema oficial (incluído em schema/) e verificam se nome, versão e pacote correspondem a package.json.
Changelog
0.3.2
list_competitorsagora informa ao seu assistente como escolher um concorrente principal: pela posição do rival no seu Brief (brief.standing) quando a API a retorna, caso contrário, pormomentum_score.threat_levelé descrito como o que é, a faixa da pontuação de momentum, e não é mais oferecido como um ranking.- Quando a posição de uma linha ainda está sendo lida (
brief.stateédeferred),list_competitorssolicita a mesma página novamente, até 4 vezes, com 1,5 segundos de intervalo. Contra uma API que não retornabrief, ele faz uma solicitação por chamada como antes. - Redação mais clara na dica de 401 para um servidor Rivalize auto-hospedado ou não-produção, e na descrição de
add_competitor.
0.3.1
- A versão a partir da qual o histórico deste repositório começa: treze ferramentas somente leitura, a ferramenta de gravação opcional
add_competitor, respostas mantidas abaixo de 25.000 caracteres com paginação explícita, suporte a proxy e a entrada do MCP Registry emserver.json.
Licença
MIT, © 2026 Downshift LLC. Veja LICENSE.