MCP Integration
Connect Claude, Cursor, Windsurf, or any MCP-compatible AI agent directly to your RivalCheck data. Ask questions in plain English, get competitive intelligence instantly.
On this page
Background
The short version
Model Context Protocol (MCP) is an open standard that lets AI assistants like Claude connect directly to your tools and data. Instead of copying data from RivalCheck and pasting it into ChatGPT, you simply ask your AI assistant about your competitors and it pulls the data itself.
Think of MCP as a universal adapter between AI assistants and software tools. Just as USB-C lets you connect any device to any computer, MCP lets any AI assistant connect to any compatible application, including RivalCheck.
Before MCP, getting competitive intelligence into an AI conversation meant manually exporting data, copying text, or taking screenshots. With MCP, your AI assistant can query RivalCheck directly, in real time, as part of a natural conversation.
Competitive intelligence is most valuable when it is available at the moment of decision. MCP makes that possible. Instead of logging into RivalCheck, finding the right competitor, navigating to the right change, and then summarising it for your team, you can simply ask:
"What pricing changes have our competitors made in the last two weeks?"
Your AI assistant calls RivalCheck's MCP server behind the scenes, retrieves the data, and presents a clear summary, all within seconds. This transforms competitive intelligence from a periodic research task into an always-available resource embedded in your daily workflow.
| REST API | MCP Server | |
|---|---|---|
| Who uses it | Developers writing code | AI assistants on your behalf |
| How you interact | HTTP requests with JSON | Natural language questions |
| Integration effort | Write and maintain code | Add config file, done |
| Best for | Custom integrations, dashboards | Ad-hoc analysis, brainstorming, prep |
RivalCheck provides both. Use the REST API for programmatic integrations and the MCP server for AI-powered workflows. They share the same API key.
With MCP, competitive intelligence becomes a capability your AI assistant simply has. Preparing for a sales call? Your assistant already knows the prospect uses a competitor and what that competitor just changed. Writing a product brief? It can pull in competitive positioning data without you lifting a finger. This is the future of AI-powered competitive intelligence, and RivalCheck's MCP server makes it available today.
Getting Started
Before you begin, you will need a RivalCheck API key. Go to Settings and click "Generate API Key". Your key will start with rc_live_.
Step 1: Open your Claude Desktop config file
On macOS, open this file in any text editor (create it if it does not exist):
~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%\Claude\claude_desktop_config.json
Step 2: Add the RivalCheck MCP server
Add the following to your config file. Replace rc_live_YOUR_KEY with your actual API key:
{
"mcpServers": {
"rivalcheck": {
"command": "npx",
"args": ["-y", "@rivalcheck/mcp-server"],
"env": {
"RIVALCHECK_API_KEY": "rc_live_YOUR_KEY"
}
}
}
}
Step 3: Restart Claude Desktop
Quit and reopen Claude Desktop. You should see a hammer icon in the bottom-right corner of the input area, indicating MCP tools are available.
Step 4: Verify the connection
Click the hammer icon to see available RivalCheck tools. Then test with a prompt:
"List all my monitored competitors"
Claude will ask for permission to use the list_competitors tool the first time. Click "Allow" to proceed.
Option A: Add via command line
The quickest way to add RivalCheck to Claude Code:
claude mcp add rivalcheck -- npx -y @rivalcheck/mcp-server \ --env RIVALCHECK_API_KEY=rc_live_YOUR_KEY
Option B: Edit settings directly
Add the following to .claude/settings.json in your project root or home directory:
{
"mcpServers": {
"rivalcheck": {
"command": "npx",
"args": ["-y", "@rivalcheck/mcp-server"],
"env": {
"RIVALCHECK_API_KEY": "rc_live_YOUR_KEY"
}
}
}
}
Verify the connection
Start Claude Code and ask:
"What competitors am I tracking in RivalCheck?"
Workspace setup (recommended)
Create a file at .cursor/mcp.json in your project root:
{
"mcpServers": {
"rivalcheck": {
"command": "npx",
"args": ["-y", "@rivalcheck/mcp-server"],
"env": {
"RIVALCHECK_API_KEY": "rc_live_YOUR_KEY"
}
}
}
}
Global setup
To make RivalCheck available in every Cursor project, add the same config to:
~/.cursor/mcp.json
Verify the connection
Open Cursor Settings, navigate to the MCP section, and confirm that "rivalcheck" appears as a connected server with a green status indicator. Then test in Cursor's AI chat by asking about your competitors.
Add to Windsurf config
Open your Windsurf MCP configuration file at ~/.windsurf/mcp.json and add:
{
"mcpServers": {
"rivalcheck": {
"command": "npx",
"args": ["-y", "@rivalcheck/mcp-server"],
"env": {
"RIVALCHECK_API_KEY": "rc_live_YOUR_KEY"
}
}
}
}
Verify
Restart Windsurf and use the Cascade AI chat to ask about your competitive landscape. The RivalCheck tools will appear when Cascade needs to fetch competitor data.
Any application that supports MCP can connect to RivalCheck. The server is distributed as an npm package that runs as a stdio transport.
Command
npx -y @rivalcheck/mcp-server
Environment variables
| Variable | Required | Description |
|---|---|---|
| RIVALCHECK_API_KEY | Yes | Your RivalCheck API key (starts with rc_live_) |
| RIVALCHECK_API_URL | No | API base URL. Defaults to https://app.rivalcheck.com/api/v1 |
Reference
These are the tools your AI assistant can invoke when connected to RivalCheck via MCP. You do not need to call them directly. Simply ask a question and the AI will choose the right tool.
list_competitors
Returns all competitors your organisation is monitoring, including their status, number of tracked pages, and when they were last checked.
Parameters
None
Example prompt
"Show me all the competitors we're tracking"
Example response
{
"competitors": [
{
"id": 42,
"name": "Acme Corp",
"website_url": "https://acme.com",
"status": "active",
"monitored_pages_count": 5,
"changes_count": 23,
"last_checked_at": "2026-03-23T14:30:00Z"
},
{
"id": 43,
"name": "Globex Inc",
"website_url": "https://globex.io",
"status": "active",
"monitored_pages_count": 3,
"changes_count": 8,
"last_checked_at": "2026-03-23T14:32:00Z"
}
]
}
get_competitor
Returns detailed information about a specific competitor including all monitored pages, recent changes, and battle card availability.
Parameters
| competitor_id | integer — Required. The ID of the competitor. |
Example prompt
"Tell me everything about Acme Corp as a competitor"
Example response
{
"competitor": {
"id": 42,
"name": "Acme Corp",
"website_url": "https://acme.com",
"status": "active",
"monitored_pages": [
{ "url": "https://acme.com/pricing", "label": "Pricing" },
{ "url": "https://acme.com/about", "label": "About" },
{ "url": "https://acme.com/products", "label": "Products" }
],
"recent_changes_count": 5,
"has_battle_card": true,
"battle_card_updated_at": "2026-03-20T10:00:00Z",
"created_at": "2026-01-15T09:00:00Z"
}
}
get_changes
Retrieves detected changes across all competitors or filtered by specific criteria. This is the primary tool for understanding what has changed in your competitive landscape.
Parameters
| severity | string — Optional. Filter by severity: minor, moderate, major |
| type | string — Optional. Filter by change type: pricing, messaging, product, positioning, team, other |
| competitor_id | integer — Optional. Filter to a specific competitor. |
| since | string — Optional. ISO 8601 date. Only return changes after this date. |
| search | string — Optional. Full-text search query. |
| limit | integer — Optional. Maximum results to return (default: 25, max: 100). |
Example prompt
"What major changes have our competitors made to their pricing in the last month?"
Example response
{
"changes": [
{
"id": 301,
"competitor": "Acme Corp",
"competitor_id": 42,
"page_url": "https://acme.com/pricing",
"change_type": "pricing",
"severity": "major",
"summary": "Increased Pro plan from $49/mo to $79/mo. Added new Enterprise tier at $199/mo.",
"detected_at": "2026-03-18T08:15:00Z"
}
],
"total_count": 1
}
get_change_detail
Returns the full analysis of a specific change including the AI-generated strategic assessment, before/after details, and recommended actions.
Parameters
| change_id | integer — Required. The ID of the change to inspect. |
Example prompt
"Give me the full details on that Acme pricing change"
Example response
{
"change": {
"id": 301,
"competitor": "Acme Corp",
"page_url": "https://acme.com/pricing",
"change_type": "pricing",
"severity": "major",
"summary": "Increased Pro plan from $49/mo to $79/mo...",
"analysis": "Acme is moving upmarket. The 61% price increase on their Pro plan and the new Enterprise tier at $199/mo suggest they are shifting focus toward larger customers. This creates an opportunity to capture price-sensitive SMBs who may churn from Acme.",
"recommended_actions": [
"Consider launching a competitive migration offer targeting Acme Pro customers",
"Update battle cards to highlight pricing advantage",
"Monitor for customer churn signals on social media"
],
"detected_at": "2026-03-18T08:15:00Z"
}
}
get_battle_card
Retrieves the AI-generated battle card for a competitor. Battle cards include competitive positioning, strengths and weaknesses, objection handling, and win strategies. See the battle cards guide for more.
Parameters
| competitor_id | integer — Required. The competitor to get a battle card for. |
| format | string — Optional. One of full, markdown, or structured. Defaults to full. |
Example prompt
"Get me the battle card for Acme Corp in markdown format"
Example response
{
"battle_card": {
"competitor": "Acme Corp",
"updated_at": "2026-03-20T10:00:00Z",
"format": "markdown",
"content": "# Acme Corp Battle Card\n\n## Overview\nAcme Corp is a mid-market SaaS platform...\n\n## Key Strengths\n- Strong brand recognition...\n\n## Weaknesses\n- Recent 61% price increase on Pro plan...\n\n## Win Strategy\n- Lead with pricing advantage...\n\n## Common Objections\n- \"Acme has more integrations\"..."
}
}
generate_battle_card
Triggers generation or refresh of a battle card for a competitor. This uses AI to analyse all collected data and produce an up-to-date battle card. The generation happens asynchronously; the tool returns immediately with a status.
Parameters
| competitor_id | integer — Required. The competitor to generate a battle card for. |
Example prompt
"Regenerate the battle card for Acme Corp with the latest data"
Example response
{
"status": "generating",
"message": "Battle card generation started for Acme Corp. It will be ready in approximately 30 seconds.",
"competitor_id": 42
}
get_landscape
Returns a high-level overview of your entire competitive landscape, including activity scores, change trends, and a competitive positioning summary across all monitored competitors.
Parameters
None
Example prompt
"Give me an overview of the competitive landscape"
Example response
{
"landscape": {
"total_competitors": 6,
"total_changes_30d": 34,
"most_active_competitor": "Acme Corp",
"competitors": [
{
"name": "Acme Corp",
"activity_score": 8.5,
"changes_30d": 12,
"top_change_type": "pricing"
},
{
"name": "Globex Inc",
"activity_score": 5.2,
"changes_30d": 8,
"top_change_type": "messaging"
}
]
}
}
search_changes
Full-text search across all detected changes. Useful for finding specific topics, features, or patterns across your entire competitive data set.
Parameters
| query | string — Required. The search query. |
| severity | string — Optional. Filter by severity. |
| type | string — Optional. Filter by change type. |
Example prompt
"Search for any competitor changes related to AI or machine learning features"
Example response
{
"results": [
{
"id": 289,
"competitor": "Globex Inc",
"summary": "Added 'AI-Powered Analytics' section to product page...",
"change_type": "product",
"severity": "moderate",
"detected_at": "2026-03-15T11:20:00Z"
}
],
"total_count": 3,
"query": "AI machine learning"
}
add_competitor
Adds a new competitor to your monitoring list. RivalCheck will automatically discover key pages (pricing, about, products) and begin monitoring. Subject to your plan's competitor limit.
Parameters
| website_url | string — Required. The competitor's website URL. |
| name | string — Optional. Display name. Auto-detected if omitted. |
Example prompt
"Start monitoring newcompetitor.com"
Example response
{
"competitor": {
"id": 55,
"name": "New Competitor",
"website_url": "https://newcompetitor.com",
"status": "discovering",
"message": "Discovery started. Key pages will be identified within a few minutes."
}
}
get_account
Returns information about your RivalCheck account including current plan, usage limits, and remaining API quota.
Parameters
None
Example prompt
"How many API requests do I have left today?"
Example response
{
"account": {
"organisation": "My Company",
"plan": "Pro",
"competitors_limit": 25,
"competitors_used": 6,
"api_requests_today": 142,
"api_requests_limit": 1000
}
}
MCP Resources
MCP resources provide read-only data that AI assistants can access as context without explicitly calling a tool. Think of them as background knowledge your AI always has available.
rivalcheck://competitors
A list of all monitored competitors with their current status and activity level. This resource is automatically included as context when relevant, so your AI assistant always knows which competitors you are tracking without needing to make a separate tool call.
rivalcheck://landscape
A summary of your competitive landscape including aggregate statistics, most active competitors, and trending change types. Gives your AI assistant a high-level understanding of what is happening competitively without requiring a detailed query.
rivalcheck://changes/recent
The most recent changes detected across all competitors (last 7 days). Provides immediate context so your AI assistant can proactively reference recent competitive developments when relevant to your conversation.
Use Cases
Here is how teams are using RivalCheck's MCP server in practice. Each workflow shows the natural language prompt, which tools are invoked, and what you get back.
You have a demo with a prospect who currently uses a competitor. Get everything you need in 30 seconds.
Your prompt
"I have a sales call with a prospect that uses Acme Corp. Give me the latest battle card and any recent changes to their pricing or product pages."
Result: Your AI assistant presents the battle card with win strategies and objection handling, plus a summary of Acme's recent pricing increase, giving you a clear advantage going into the conversation.
Generate a formatted competitive update to share in your team's Slack channel every Monday morning.
Your prompt
"Write a weekly competitive briefing covering all changes from the past 7 days. Format it for Slack with emoji headers and bullet points. Group by competitor."
Result: A ready-to-paste Slack message organised by competitor with severity indicators, change summaries, and strategic implications, ready to be posted in your competitive intelligence channel.
Your product team wants to adjust pricing. Get a complete view of competitor pricing movements to inform the decision.
Your prompt
"Compile a pricing intelligence report. Show me all pricing changes across all competitors in the last 90 days, their current pricing structures, and identify any trends."
Result: A structured report showing pricing trends, who raised prices, who lowered them, the average price movement, and strategic implications for your own pricing decision.
Quickly draft the competitive landscape section for a board presentation.
Your prompt
"I need a competitive landscape summary for our board deck. Include the top 3 competitor moves this quarter, our positioning relative to competitors, and key risks to flag."
Result: Three concise slides' worth of content covering competitive movements, market positioning, and strategic risks, formatted and ready for your presentation.
Inform your next quarter's roadmap with intelligence about what competitors are building.
Your prompt
"What product and feature changes have competitors made recently? I want to identify feature gaps and decide what to prioritise for Q2."
Result: A feature-by-feature competitive analysis showing what competitors launched, what they are signalling, and where the gaps and opportunities lie for your product roadmap.
After losing a deal to a competitor, understand what might have influenced the outcome.
Your prompt
"We just lost a deal to Globex Inc. What has Globex changed on their site in the last 60 days that might explain why prospects are choosing them?"
Result: A detailed analysis of Globex's recent improvements including messaging changes, new features highlighted, pricing adjustments, and their current competitive positioning, helping you identify patterns in deal losses.
You are expanding into a new market segment and need to understand the competitive dynamics quickly.
Your prompt
"Start monitoring these three new competitors in the enterprise segment: enterprise-rival1.com, enterprise-rival2.com, and enterprise-rival3.com. Then give me an initial landscape overview once discovery completes."
Result: Three new competitors added and discovery initiated. Within minutes, RivalCheck identifies their key pages and begins monitoring. Your AI assistant can then summarise their positioning, pricing, and messaging for your market entry strategy.
Identify messaging and positioning gaps you can exploit in your content marketing.
Your prompt
"Analyse how our competitors are positioning themselves on their about and product pages. What messaging themes are they all using? Where are the gaps we could own?"
Result: A messaging matrix showing common competitor themes (e.g., "AI-powered", "enterprise-ready"), messaging trends (what is gaining emphasis), and whitespace opportunities, giving your content team clear differentiation angles.
Draft a concise competitive update for your monthly investor report.
Your prompt
"Write a 3-paragraph competitive update for our investor report. Cover the most significant moves, our relative position, and what it means for our strategy."
Result: A polished, executive-level competitive summary written in investor-friendly language, citing specific competitor actions and their strategic implications.
Start your day by quickly reviewing overnight competitive changes and deciding what needs attention.
Your prompt
"What competitive changes were detected overnight? Rank them by impact and tell me which ones need immediate attention."
Result: A prioritised list of overnight changes with severity ratings, quick summaries, and clear recommendations for which ones to escalate, review, or skip, completing your competitive triage in under a minute.
Power User
AI assistants connected via MCP can chain multiple RivalCheck tools in a single conversation turn. For example, asking "Give me a competitive briefing for my meeting with Acme's ex-customer" might trigger get_battle_card, then get_changes filtered for the competitor, then synthesise everything into a briefing document. You do not need to orchestrate this; the AI handles tool selection and sequencing automatically.
For complex analyses, be specific about what you want. The more context you give in your prompt, the better the AI can select and combine the right tools.
RivalCheck's MCP server works alongside other MCP servers, unlocking powerful combined workflows. Add multiple servers to your config to enable cross-tool workflows:
{
"mcpServers": {
"rivalcheck": {
"command": "npx",
"args": ["-y", "@rivalcheck/mcp-server"],
"env": { "RIVALCHECK_API_KEY": "rc_live_YOUR_KEY" }
},
"slack": {
"command": "npx",
"args": ["-y", "@anthropic/mcp-slack"],
"env": { "SLACK_BOT_TOKEN": "xoxb-..." }
},
"notion": {
"command": "npx",
"args": ["-y", "@anthropic/mcp-notion"],
"env": { "NOTION_API_KEY": "secret_..." }
}
}
}
Example combined workflows:
For recurring competitive intelligence tasks, combine MCP with RivalCheck's webhook notifications and REST API. See our automation guide for detailed patterns.
A common pattern: use webhooks to trigger a notification when a major change is detected, then use MCP in your AI assistant to investigate and draft a response. The webhook gives you immediacy; MCP gives you depth.
MCP tool calls count against your API rate limit of 1,000 requests per day. Each tool invocation is one request. In normal conversational usage this is more than sufficient. A typical competitive briefing workflow uses 3-5 API calls.
If you are building automated systems that make many requests, consider using the REST API directly for bulk operations and reserving MCP for interactive, conversational use. You can check your current usage with the get_account tool.
Support
Cause: The MCP server process failed to start, usually because Node.js is not installed or npx is not available in your PATH.
Fix:
node --version in your terminalnpx --version.zshrc or .bash_profile)Cause: Your API key is missing, invalid, or expired.
Fix:
rc_live_Cause: You have exceeded the 1,000 requests/day API limit.
Fix:
get_account to check your current usageCause: Your RivalCheck account may not have any competitors added, or competitors are still in discovery.
Fix:
add_competitor toolCause: The RIVALCHECK_API_KEY environment variable is not being passed to the MCP server process.
Fix:
env block is inside the rivalcheck server config, not at the top levelRIVALCHECK_API_KEY=rc_live_YOUR_KEY npx -y @rivalcheck/mcp-serverCommon Questions
No. When you use MCP with Claude, Cursor, or any other client, the MCP server runs locally on your machine and communicates directly with the RivalCheck API. Your data flows from RivalCheck's servers to the MCP server on your machine to your AI assistant. No competitive intelligence data is stored by or shared with the MCP client provider. The AI assistant processes the data in-context but does not retain it after the conversation. See our privacy policy for details.
MCP tools return live data from RivalCheck's API. The data is as fresh as your latest monitoring cycle. RivalCheck checks competitor pages on a regular schedule (frequency depends on your plan), so data is typically no more than 24 hours old. When you call a tool like get_changes, you are getting real-time results from RivalCheck's database, not cached data.
If you exceed 1,000 API requests in a day, subsequent MCP tool calls will return a rate limit error. Your AI assistant will inform you that the limit has been reached. The limit resets at midnight UTC. In practice, most teams use between 50-200 API requests per day through MCP. If you need higher limits, contact us or check our pricing page for plans with higher quotas.
Yes, but we recommend generating individual API keys for each team member. API keys are scoped to your organisation, so all team members see the same competitive data. Individual keys make it easier to track usage, revoke access when someone leaves, and debug issues. You can generate and manage keys in your Settings.
MCP access requires an active RivalCheck account with API access enabled. API access is included in all paid plans. Check our pricing page for details on which plans include API and MCP access.
MCP is an open protocol supported by a growing number of AI applications. Currently, Claude (Desktop and Code), Cursor, and Windsurf have production-quality MCP support. Any application that implements the MCP client specification can connect to RivalCheck. As more AI tools adopt MCP, they will automatically be able to use RivalCheck's competitive intelligence data.
Absolutely. MCP and the REST API share the same underlying data and the same API key. Use MCP for interactive, conversational workflows and the REST API for programmatic integrations, dashboards, and automated pipelines. They complement each other. See the API documentation and competitive intelligence API guide for more.
Get started in under two minutes. Generate an API key, add the MCP config, and start asking your AI assistant about your competitors.
We use essential cookies to keep the site working. With your consent, we may also use analytics cookies to improve the experience. Privacy policy.