Competiflow MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| COMPETIFLOW_API_KEY | Yes | Your Competiflow API key (sk_live_...) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_workspacesA | List all your workspaces with competitor and monitor counts, needs_review_count, and the highest unreviewed severity. Start here to find a workspace_id. For one workspace's recent activity, use get_digest. |
| create_workspaceA | Create a workspace for one product or market. Set product_url to your own product so why_it_matters explains each change relative to it. Returns 422 when your plan's workspace limit is reached. To rename or change an existing workspace, use update_workspace. |
| update_workspaceA | Rename a workspace, set or clear its product_url, or pause/resume every monitor in it. Send only the fields to change; nothing is written if any field is invalid. Pausing keeps all history, so prefer it over delete_workspace. To pause one competitor, use update_competitor. |
| delete_workspaceA | Permanently delete a workspace with all its competitors, monitors, snapshots, and changes. Cannot be undone. Returns 409 discovery_in_progress while a competitor is still being discovered. To stop checks and keep history, use update_workspace with status paused. |
| add_competitorA | Add a competitor to a workspace by homepage URL and start discovering its pricing, docs, blog, and changelog pages. Discovery is async: poll get_competitor until discovery_status is completed. Re-adding the same URL returns the existing competitor. Returns 409 with active_competitor_id while another discovery runs in the workspace. To watch one specific page, use create_monitor. |
| list_competitorsA | List the competitors in a workspace with discovery_status and their monitors, each with last_run. Use it for an overview of what is tracked. To list monitors alone or filter them by competitor, use list_monitors. |
| get_competitorA | Get one competitor with its monitors and discovery fields. Use it to poll discovery after add_competitor until discovery_status is completed or failed. |
| update_competitorA | Set the check cadence or pause/resume every monitor of one competitor. History is kept. To change a single monitor, use update_monitor; for a whole workspace, use update_workspace. |
| delete_competitorA | Permanently delete a competitor with its monitors, snapshots, and changes. Cannot be undone. To stop checks and keep history, use update_competitor with status paused. |
| list_monitorsA | List the monitors in a workspace, optionally for one competitor, with URL, type, cadence, status, health, and last_run. Use it to find a monitor_id or spot failing monitors. For competitors with their monitors nested, use list_competitors. |
| get_monitorA | Get one monitor's settings, health, and last run. Set include to also return the latest successful capture as structured data or markdown. |
| create_monitorA | Watch one specific page of an existing competitor, such as a pricing or docs URL that discovery missed. To add a new competitor and discover its pages automatically, use add_competitor. |
| update_monitorA | Change one monitor's URL, type, cadence, status, or min_severity. Use status paused to stop checks and keep history. To change every monitor of a competitor at once, use update_competitor. |
| delete_monitorA | Permanently delete one monitor with its snapshots and changes. Cannot be undone. To stop checks and keep history, use update_monitor with status paused. |
| check_monitorA | Queue an immediate check of one monitor. Uses one of your monthly checks and returns 429 refresh_throttled if the monitor was checked too recently. Results arrive asynchronously: read them later with list_changes or get_monitor. To check every monitor in a workspace, use refresh_workspace. |
| refresh_workspaceA | Queue immediate checks for every active monitor in a workspace, or for one competitor when competitor_id is set. Each monitor checked uses one monthly check; recently checked monitors are skipped and listed in skipped_ids. Returns 409 while discovery is running. For a single monitor, use check_monitor. |
| list_changesA | List detected competitor changes in a workspace, newest first, with summary, severity, why_it_matters, monitor_type, and review_status. meta.counts gives inbox totals; page with after set to next_cursor. For a summarized period, use get_digest; for evidence on one change, use get_change. |
| get_changeA | Get one change with why_it_matters, field-level diffs, and related clusters. Set include to add the captured page or the raw diff as evidence. |
| update_changeA | Triage a change by setting its review_status: acknowledged when it is relevant, dismissed when it is noise, or unreviewed to put it back in the inbox. |
| get_digestA | Get a workspace summary for a period: changes needing review with why_it_matters, an activity map by competitor, and top opportunities. Use it for briefings; to page through individual changes, use list_changes. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| weekly_briefing | Summarize what competitors changed in a workspace over a period, most important first. |
| triage_changes | Walk the unreviewed change inbox and propose acknowledge or dismiss for each change. |
| track_competitor | Add a competitor by URL, wait for discovery, and report which pages are monitored. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| guide | How to use the Competiflow tools: the typical flow, async discovery, evidence, triage, and delete versus pause. |
TDQS
Scored across 20 tools
Each tool maps to a distinct resource+action pair, and the descriptions actively disambiguate the closest neighbours (check_monitor vs refresh_workspace, list_competitors vs list_monitors, list_changes vs get_digest vs get_change, add_competitor vs create_monitor) with explicit 'use X instead' pointers. Pause-vs-delete semantics are also spelled out consistently across the three hierarchies, so an agent can select confidently.
The set follows a predictable verb_noun pattern (list_/get_/create_/update_/delete_ + resource, plus check_/refresh_ actions), which reads cleanly. The only wrinkle is that creation uses two verbs — add_competitor alongside create_monitor/create_workspace — a minor inconsistency rather than a real hazard.
Twenty tools is on the heavy side of the rubric, but it decomposes cleanly: near-complete CRUD across three resources (workspace, competitor, monitor) plus four change/digest tools and two on-demand check tools. Each tool earns its place; nothing looks like a redundant duplicate.
The surface covers full lifecycle management of workspaces, competitors, and monitors, plus change reading (list_changes, get_change), triage (update_change), and briefing (get_digest) with async discovery/refresh flows handled via polling and explicit status codes. Minor gaps remain: there is no get_workspace for a single workspace by id (only list_workspaces), and change triage is one-at-a-time with no bulk operation.