> SpecStream is the live web data engine for teams and agents. This is the Markdown copy of https://specstream.ai/blog/competitor-monitoring-with-mcp. Every page, with what SpecStream does and costs: https://specstream.ai/llms.txt

# Competitor monitoring with MCP: a table your agent rechecks on a schedule

SpecStream

[Monitoring](https://specstream.ai/blog.md) · Nov 12, 2026 · 7 min read

Competitor monitoring over MCP works best when your agent owns a table of facts instead of a pile of page diffs. Connect the agent to SpecStream's MCP server at `https://api.specstream.ai/mcp`, describe the facts you track for each competitor, approve the price, and turn the table into a monitor. Each run reads the live web again, labels every row changed, unchanged or no longer matching, and sends only the new and changed rows to Slack, a sheet, your CRM or a signed webhook.

Below: what Visualping's monitoring study says to watch, the setup in six steps, the prompts to paste, how the agent reads what changed, and what each run costs.

## What 14,678 competitor monitors show

Visualping published the largest public count of what competitor watchers track: its [H1 2026 competitor monitoring report](https://visualping.io/blog/competitor-monitoring-report-h1-2026) covers 14,678 competitor page monitors run by 8,161 of its self-serve users from January 1 to June 30, 2026. Four numbers from it shape a monitor:

| Finding | Number |
| --- | --- |
| Monitors that saw at least one change in six months | 77.5% (11,381 of 14,678) |
| Share of monitors on homepages and top-level pages | 38.4% |
| Share of monitors on pricing and plans pages | 1.4% |
| Pricing monitors that saw at least one change | 84.5% |

A separate Visualping analysis of more than 17 million checks in March 2026 found that 11.5% of checks detected a change worth an alert. The report counts a monitor once whether its page changed one time or twenty, and its rates are not adjusted for how often each monitor checks, so read them as six-month incidence, as Visualping says.

What follows for your monitor:

-   **Watch the facts that move.** 84.5% of pricing monitors saw a change in six months, yet pricing pages hold 1.4% of the monitors. Plan names, prices and limits are the rows to track first.
-   **Expect noise from whole pages.** Most competitor pages change at some point, and most checks find nothing worth an alert. An alert that names the fact that moved is the one your team reads.
-   **Check on a calendar that fits the fact.** A weekly recheck of prices catches a change within seven days; a daily one runs seven times as many rechecks.

## Why a table and not a page diff

A page watcher counts pages and checks. Visualping's paid plans start at $14 a month for 1,000 checks across 10 pages, and changedetection.io's $8.99 monthly subscription includes 5,000 page watches. Each alert says a page moved, and your agent still has to work out which fact moved with it.

A SpecStream monitor counts rows. A row is one set of facts about one competitor, for example a plan with its monthly price, its seat limit and the page that prints them. When a run rechecks the row, a changed value comes back with its earlier value and the page where the new one was seen. Values that did not change keep the date they were first read, so the agent never mistakes a recheck for news.

|  | A page watcher | A SpecStream monitor |
| --- | --- | --- |
| What it tracks | Pages you list | Facts you describe, on pages SpecStream finds |
| What an alert holds | The page changed | The fact, its value before and now, and the page |
| New competitors | Only pages you add | New matches for the request arrive as new rows |
| Where it lands | Email or a feed of diffs | Slack, a sheet, your CRM, a signed webhook or your agent |

## Set it up

1.  **Connect your agent.** Add the MCP server `https://api.specstream.ai/mcp` (Streamable HTTP). A client that supports OAuth signs you in; any other client sends your API key as `Authorization: Bearer <key>`. [Setup for each client](https://specstream.ai/docs/mcp/clients.md) has the exact lines. In a client that reads `mcpServers`, the entry is:

```json
{
  "mcpServers": {
    "specstream": {
      "url": "https://api.specstream.ai/mcp",
      "headers": { "Authorization": "Bearer YOUR_SPECSTREAM_API_KEY" }
    }
  }
}
```

2.  **Describe the table.** Write it the way you would brief an analyst: the competitors, the facts per row, and the conditions every row must meet. The agent sends it to `compile`, which reads it back as conditions and facts you can edit.
3.  **Price it.** `quote_capacity_work` returns the most the run can cost. It spends nothing, and the quote lasts 30 minutes.
4.  **Approve and run.** `authorize_capacity_work` starts the work with the maximum you approved in `confirm_max_cents`. `get_find` follows it, and `list_find_rows` reads the rows with their sources.
5.  **Make it a monitor.** `create_capacity_schedule` repeats the work hourly to yearly, in your timezone, with a limit per run and a limit per month (`monthly_maximum_cents`). A run that would go past either limit, or past the balance, is blocked: nothing runs and nothing is charged.
6.  **Choose where changes go.** `set_schedule_delivery` sends new and changed rows to notifications, a Slack channel, a connected tool such as Google Sheets or HubSpot, or a signed webhook. `create_webhook` adds the webhook and shows its signing secret once.

## Prompts to paste

Paste these into an agent connected over MCP, one at a time:

```text
Use SpecStream. Build a table of the paid plans of linear.app, notion.so and asana.com: plan name, monthly price per seat, seat limit, and the page that prints them. Show me the price before you run it.
```

```text
Make that table a monitor: recheck it every Monday at 9am Paris time, up to $2 a run and $10 a month, and post new and changed rows in #competitors on Slack.
```

```text
What changed in the competitor plans table since last week? Give me each changed value, before and now, with its page.
```

## How the agent reads what changed

-   `get_collection_changes` compares the table with its earlier results: each changed fact, before and after, and where it was seen.
-   `get_revisit` reads what one recheck looked at: what still holds, what changed, and what it could not reach. It pages with `next_after` until that is null.
-   `list_capacity_occurrences` lists each run of the monitor, completed, blocked or missed, with the reason.
-   `update_capacity_schedule` pauses, resumes or deletes the monitor. Missed runs are never bought later.

A page that could not be read on a run leaves its row as it was, and the run says so. Your agent never reports a fetch failure as a price cut.

## What it costs

Building the table is billed per delivered row: 5¢, 15¢ or $1 depending on what the row needs, plus 5¢ for a person's email and 15¢ for a phone. A recheck charges half the row rate for a row that changed or is new, and 1¢ for a row that comes back unchanged.

Take 3 competitors with 4 paid plans each: 12 rows. If the quote prices them at the 5¢ rate, the table costs 60¢ to build. A weekly recheck that finds nothing new costs 12¢, so a quiet month of Mondays costs under 50¢. Duplicates and rows a page contradicts are not charged, and a run that finds nothing costs nothing. New accounts get $10 of credit, no card. [Billing](https://specstream.ai/docs/billing.md) has the details.

## Signals you do not have to build

Some competitor news is filed before it is announced. SpecStream reads SEC Form D filings (funding rounds), Form 8-K filings (new executives) and state WARN notices (layoffs), and on [Signals](https://specstream.ai/signals.md) each one becomes a request your agent can watch. For records SpecStream already holds, [lists](https://specstream.ai/data/lists) come with a monthly feed of the rows the source adds each week, $19 a month minimum.

## For a single question, use search

When the agent needs one fact now, not a table kept up to date, `search_web` answers from the live web at $5 per 1,000 searches of up to 10 results, and `read_pages` returns the main text of the pages you name at $0.80 per 1,000 pages. Both are on the same MCP server and key. See the [Search API](https://specstream.ai/search-api.md) and the [Extract API](https://specstream.ai/extract-api.md).

More on monitors: [Monitoring](https://specstream.ai/monitoring.md) and [keeping data up to date](https://specstream.ai/docs/schedules.md).

## More from the blog

[Every post](https://specstream.ai/blog.md)

[### dzhng/deep-research without a Firecrawl key: set FIRECRAWL\_BASE\_URL dzhng's deep-research makes every web search through Firecrawl's v1 search Nov 12, 2026 · SpecStream · 4 min read](https://specstream.ai/blog/dzhng-deep-research-firecrawl-base-url.md)[### Exa Websets vs Clay in 2026: what 500 accounts cost on each, and the price per row Exa Websets checks companies against a query in plain words, and Clay buys each column from its providers Nov 12, 2026 · SpecStream · 8 min read](https://specstream.ai/blog/exa-websets-vs-clay.md)[### Google Maps stops at 120 results: how to build the full lead list A Google Maps search shows about 120 places, and the Places API returns at most 60 Nov 12, 2026 · SpecStream · 7 min read](https://specstream.ai/blog/google-maps-120-results-lead-list.md)
