Rivalize
공식에이전트를 위한 경쟁 정보: 경쟁사 분석, 가격, 광고, 리뷰 및 모멘텀. 기본적으로 읽기 전용입니다.
Rivalize MCP(으)로 무엇을 할 수 있나요?
- 경쟁사 분석 —
teardown_competitor를 통해 모든 경쟁사의 포지셔닝, 가격, 광고, 소셜 프레즌스, 리뷰, 채용, 모멘텀에 대한 원콜 전략 분석을 요청하세요. - 유니버스 검색 —
list_universe_companies로 Rivalize의 추적 기업 교차 고객 데이터셋을 키워드, 카테고리 또는 레이어별로 검색하세요. - 보고서 탐색 —
get_report를 사용하여 저장된 보고서에서 가격이나 배틀카드 같은 특정 섹션이나 경쟁사 세부 정보를 불러오세요. - 경쟁사 추적 —
list_competitors로 추적 중인 경쟁사의 모멘텀 점수, 위협 수준, Brief 순위를 확인하세요. - 근거 검증 —
get_evidence와get_freshness를 사용하여 모든 주장의 출처와 각 경쟁사가 마지막으로 관찰된 시점을 확인하세요. - 경쟁사 추가 —
add_competitor를 통해 프로젝트에 경쟁사 URL을 추가하여 크레딧을 사용하고 분석을 대기열에 넣을 수 있습니다.
문서
Rivalize MCP 서버
출처가 명시되고 날짜가 표시된 경쟁 정보를 Model Context Protocol을 통해 AI 어시스턴트에 제공합니다.
기능
이 서버는 Claude, Cursor 또는 기타 MCP 클라이언트를 Rivalize에 연결합니다. 어시스턴트는 한 번의 호출로 경쟁사의 포지셔닝, 가격, 광고, 소셜 활동, 리뷰, 채용, 모멘텀을 분석하고, Rivalize가 추적하는 기업 검색, 그리고 Rivalize 계정의 프로젝트, 보고서, 배틀카드, 타임라인, 증거 자료를 읽을 수 있습니다. 모든 답변은 모델의 기억이 아닌 Rivalize가 수집한 날짜와 출처가 포함된 데이터에서 나옵니다.
서버는 기본적으로 읽기 전용입니다. RIVALIZE_MCP_ALLOW_WRITES=1로 옵트인하면 add_competitor라는 하나의 쓰기 도구를 사용할 수 있습니다.
빠른 시작
Node.js 22 이상 필요 (node --version).
- rivalize.ai에서 계정을 만듭니다.
- 대시보드 → 설정 → API 키에서 API 키를 생성합니다. 키는
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 서버 패널을 열고 구성을 선택한 다음 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를 사용하세요.
도구
13개의 읽기 전용 도구가 항상 사용 가능합니다. add_competitor는 RIVALIZE_MCP_ALLOW_WRITES가 1, true 또는 yes로 설정된 경우에만 등록됩니다. 그렇지 않으면 해당 도구는 클라이언트에 존재하지 않습니다.
| 도구 | 접근 | 기능 | 주요 인수 |
|---|---|---|---|
teardown_competitor | 읽기 | 경쟁사의 원샷 전략 분석을 Markdown으로 제공: 포지셔닝, 가격, 광고, 소셜, 리뷰, 채용, 모멘텀, 공격할 약점, 데이터 마지막 업데이트 시점 | domain (필수) |
list_universe_companies | 읽기 | Rivalize 유니버스, 즉 추적 기업의 교차 고객 데이터셋 검색 | q, category (슬러그), 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는 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과 결합되므로, competitor: "Acme"이 있는 section: "pricing"는 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,section: "pricing"이 있는get_report) - "이번 분기에 가장 많이 움직인 경쟁사는 누구이고, 무엇을 했어?" (
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.ai | Rivalize 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: 접두사와 함께 이유를 출력하며, 대부분의 클라이언트는 MCP 로그에 stderr를 유지합니다. 일반적인 원인:
RIVALIZE_API_KEY가 누락되었거나 잘못되었습니다. 로그에rivalize-mcp: RIVALIZE_API_KEY is required가 표시되거나 키가 Rivalize API 키처럼 보이지 않는다고 표시됩니다 (rk_live_로 시작해야 합니다). 서버의env블록에 키를 넣고 클라이언트를 다시 시작하세요.- Node.js가 22보다 오래되었습니다.
node --version를 실행하고 Node.js 22 이상을 설치하세요. 클라이언트는 자체PATH에서 가장 먼저 나오는node및npx를 사용하며, 이는 터미널의 것과 다를 수 있습니다. - 네트워크 접근이 없습니다.
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 서버에서 발급되지 않은 경우 RIVALIZE_API_URL가 설정되지 않았는지 확인하세요.
도구가 더 높은 플랜이 필요하다고 표시
읽기는 모든 플랜에서 사용 가능합니다. 배틀카드, 전체 타임라인 또는 랜드스케이프 기록과 같은 일부 기능은 더 높은 플랜이 필요합니다. 오류는 어떤 플랜이 필요한지 명시하고 rivalize.ai/pricing에 링크합니다.
Docker
저장소에는 Node 22에서 동일한 stdio 서버를 빌드하고 비루트 사용자로 실행하는 Dockerfile가 포함되어 있습니다.
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_..." }
}
}
}
MCP가 stdin과 stdout을 사용하므로 -i로 컨테이너를 실행하고 TTY 없이 실행하세요. 값이 없는 -e RIVALIZE_API_KEY는 클라이언트 환경에서 키를 전달하므로 docker run 명령줄에 나타나지 않습니다. 필요하면 -e RIVALIZE_API_URL 또는 -e RIVALIZE_MCP_ALLOW_WRITES도 같은 방식으로 추가하세요.
개인정보 보호정책
이 서버는 Rivalize API의 얇은 클라이언트입니다.
- 전송되는 내용과 위치. 각 도구 호출은
https://rivalize.ai의 Rivalize API 또는RIVALIZE_API_URL에서 설정한 오리진으로 HTTPS 요청이 됩니다. 요청에는 Bearer 토큰으로 API 키,User-Agent의rivalize-mcp/<version>, 그리고 도구의 인수가 포함됩니다. 예를 들어 회사 도메인, 검색어, 프로젝트, 보고서 또는 경쟁업체 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 블록 또는 셸 환경에 보관하고, 공유되거나 커밋된 파일에는 절대 넣지 마세요. 유출된 키는 대시보드 → 설정 → API 키에서 폐기하세요.
기여
버그 신고 및 기능 요청은 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 레지스트리 항목입니다. 테스트는 공식 스키마(schema/에 벤더링됨)에 대해 검증하고 이름, 버전 및 패키지가 package.json와 일치하는지 확인합니다.
변경 로그
0.3.2
list_competitors은(는) 이제 API가 반환할 때 브리프(brief.standing)에서 라이벌의 순위로, 그렇지 않으면momentum_score으로 상위 경쟁업체를 선택하는 방법을 어시스턴트에게 알려줍니다.threat_level은(는) 모멘텀 점수의 범위로 설명되며 더 이상 순위로 제공되지 않습니다.- 행의 순위가 아직 읽히는 중일 때(
brief.state이(가)deferred인 경우),list_competitors은(는) 1.5초 간격으로 최대 4회 동일한 페이지를 요청합니다.brief을(를) 반환하지 않는 API에 대해서는 이전과 같이 호출당 한 번의 요청을 수행합니다. - 자체 호스팅 또는 비프로덕션 Rivalize 서버에 대한 401 힌트와
add_competitor설명에서 더 명확한 문구.
0.3.1
- 이 저장소의 기록이 시작되는 버전: 13개의 읽기 전용 도구, 옵트인
add_competitor쓰기 도구, 명시적 페이징으로 25,000자 미만으로 유지되는 응답, 프록시 지원,server.json의 MCP 레지스트리 항목.
라이선스
MIT, © 2026 Downshift LLC. LICENSE를 참조하세요.