Competiflow MCP Server
Track competitors, run discovery, read the interpreted change feed, triage items, and pull workspace digests without leaving your AI client.
README
Competiflow MCP Server
MCP (Model Context Protocol) server for Competiflow. Use competitor monitoring as tools in Cursor, Claude Desktop, Windsurf, and any MCP-compatible client.
Track competitors, run discovery, read the interpreted change feed, triage items, and pull workspace digests without leaving your AI client.
Setup
Create an API key in the Competiflow dashboard under API keys, then add the server to your client config. COMPETIFLOW_API_KEY is the only variable you need.
Cursor
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"competiflow": {
"command": "npx",
"args": ["-y", "@competiflow/mcp-server"],
"env": {
"COMPETIFLOW_API_KEY": "sk_live_your_key_here"
}
}
}
}
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"competiflow": {
"command": "npx",
"args": ["-y", "@competiflow/mcp-server"],
"env": {
"COMPETIFLOW_API_KEY": "sk_live_your_key_here"
}
}
}
}
Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"competiflow": {
"command": "npx",
"args": ["-y", "@competiflow/mcp-server"],
"env": {
"COMPETIFLOW_API_KEY": "sk_live_your_key_here"
}
}
}
}
Available Tools
| Tool | API | Description |
|---|---|---|
list_workspaces |
GET /v1/workspaces |
List workspaces with review counts |
create_workspace |
POST /v1/workspaces |
Create a workspace |
add_competitor |
POST /v1/workspaces/:id/competitors |
Add a competitor by homepage URL. Async discovery, idempotent on duplicate URL |
list_competitors |
GET /v1/workspaces/:id/competitors |
List competitors with monitors and last_run |
get_competitor |
GET /v1/competitors/:id |
Read one competitor |
update_competitor |
PATCH /v1/competitors/:id |
Set cadence or status on all its monitors |
delete_competitor |
DELETE /v1/competitors/:id |
Remove a competitor and all its history |
list_monitors |
GET /v1/monitors |
List monitors with status, cadence, and last_run |
get_monitor |
GET /v1/monitors/:id |
Read one monitor. Pass include for capture evidence |
create_monitor |
POST /v1/monitors |
Add a manual monitor on a specific URL |
update_monitor |
PATCH /v1/monitors/:id |
Update URL, cadence, status, or min_severity |
delete_monitor |
DELETE /v1/monitors/:id |
Remove a monitor and all its history |
check_monitor |
POST /v1/monitors/:id/check |
Queue an on-demand check |
refresh_workspace |
POST /v1/workspaces/:id/refresh |
Queue checks for active monitors |
list_changes |
GET /v1/changes |
Change feed with since, filters, and meta counts |
get_change |
GET /v1/changes/:id |
Full change. Pass include for capture or raw diff |
update_change |
PATCH /v1/changes/:id |
Set review_status |
get_digest |
GET /v1/workspaces/:id/digest |
Weekly workspace summary |
Typical flow
list_workspacesorcreate_workspace.add_competitorwith a homepage URL.get_competitoruntildiscovery_statusiscompleted.refresh_workspaceorcheck_monitorto pull fresh data.list_changeswithsince=7dandmin_severity, orget_digestfor a summary.get_changewithincludewhen you need evidence.update_changeto acknowledge or dismiss items.
Discovery and idempotency
add_competitor starts discovery in the background and returns an acknowledgement, not the finished result. Poll get_competitor until discovery_status is completed.
A workspace runs one discovery at a time. Posting the same homepage URL again returns the existing competitor without starting a second run. If a different competitor is still discovering, the call returns 409 discovery_in_progress with active_competitor_id so you know which one to poll.
Evidence with include
get_change and get_monitor accept an include array to attach the underlying capture in one call:
| Token | Available on | Returns |
|---|---|---|
capture |
get_change, get_monitor |
Extracted fields from the snapshot |
capture_markdown |
get_change, get_monitor |
Page markdown from the snapshot |
raw_diff |
get_change |
Before and after diff for the change |
For a change the capture is the post-change page. For a monitor it is the latest successful check, which is the current baseline.
Delete versus pause
delete_monitor and delete_competitor are permanent. They remove the monitor or competitor along with its check runs, snapshots, and changes. To stop checks while keeping intel history, call update_monitor or update_competitor with status: paused instead.
Agent guidelines (for AI clients)
- Poll discovery, do not assume: after
add_competitor, pollget_competitoruntildiscovery_statusiscompletedbefore reading changes. On409, poll theactive_competitor_idfrom the error. - Filter the feed: pass
since(1d,7d,30d, or ISO8601),min_severity,monitor_type, andreview_statustolist_changesinstead of pulling everything. Usemeta.countsfor inbox totals andnext_cursorto page. - Fetch evidence on demand: only add
includetoget_changeorget_monitorwhen you need the underlying capture. It adds payload. - Prefer pause over delete: default to
status: pausedwhen a user wants to stop a monitor. Reservedelete_*for permanent removal, since it drops history.
How it works
The server translates each tool call into a Competiflow v1 API request and returns structured JSON. Your agent sees interpreted changes, severity, and recommended actions instead of raw page scrapes.
AI Agent → MCP Tool Call → Competiflow API → Interpreted Change Feed → Structured Response → AI Agent
Environment variables
| Variable | Required | Description |
|---|---|---|
COMPETIFLOW_API_KEY |
Yes | Your Competiflow API key (sk_live_...) |
Get an API key
Sign up at competiflow.com and create a key under API keys.
Development
npm install
npm run build
COMPETIFLOW_API_KEY=sk_live_... node dist/index.js
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.