MCP server

Give your AI agent website monitoring

The Verid MCP server adds 17 monitoring tools to Claude, Cursor, VS Code and any MCP client. Ask in plain language and your agent creates, runs and pauses website monitors and tells you what changed, with checks that keep running after the chat ends.

claude mcp add --transport http verid https://verid.dev/api/mcp --header "Authorization: Bearer vrd_your_key"
MCP tools
17
MCP tools
nothing to install
1 URL
nothing to install
free trial
14-day
free trial
alert channels
4
alert channels
An AI assistant connected to the Verid MCP server. The user asks what changed on their monitors since yesterday. The assistant shows it is searching, then runs three Verid tools in turn: list_monitors finds 6 active monitors, list_changes since yesterday finds 1 change, and get_run reads the price diff. It answers that the Widget price monitor dropped 10% overnight, shows a card with the price going from 20.00 to 18.00 on shop.example/widget checked at 06:00 UTC, and notes that an alert was sent to the Slack channel #pricing.

Works in

Any remote MCP client

  • >_Claude Code
  • ClClaude Desktop
  • CuCursor
  • {}VS Code
  • + any Streamable HTTP client

Why it exists

An agent can read a page once. Verid keeps reading it.

Ask a model to watch a page and the best it can do is look right now. With the MCP server connected, the same request becomes a monitor that checks on a schedule and alerts you when the page changes.

Without the server

One look

“Watch our competitor's pricing page and tell me when it changes.”

I can't keep checking a page over time. If you paste it in, I can read what it says now, but you'll need to come back and ask me again to spot a change.

With Verid MCP

Scheduled

“Watch our competitor's pricing page and tell me when it changes.”

create_monitor

Done. Verid checks competitor.example/pricing every hour and posts in Slack when the plan table changes. The first check is running now.

Checks keep running

Monitors run on Verid, every 60 seconds at the shortest, with or without the chat open.

Errors the agent can explain

A failed call returns the same code, message and details as the REST API, such as the date runs reset.

Nothing to install

The server runs on verid.dev. Your client needs the URL and a key, and the key decides read or write.

How it works

Four hops from a sentence to a running monitor

The server is a thin layer over the Verid API. It validates every call with the same rules as the REST endpoints and hands structured JSON back to the agent.

  1. 1

    You ask

    "Alert me in Slack when the Widget price drops 10%."

    Tell the agent what to watch in plain language, for example "Alert me in Slack when the Widget price drops 10%."

  2. 2

    The client picks a tool

    create_monitor url, extract_config, diff_predicate

    The MCP client reads the 17 tool descriptions and calls the one that fits, here create_monitor with the URL, extraction, alert rule and Slack delivery.

  3. 3

    Verid checks and saves it

    same checks as POST /v1/monitors

    The server runs the same validation, plan limits and run checks as POST /v1/monitors, saves the monitor and queues the first check.

  4. 4

    The agent answers

    id, status: "active", next_run_at

    The tool returns the new monitor as JSON, and the agent tells you it is live, how often it runs and where alerts go.

Setup

Running in about two minutes

Add one command or config block to your MCP client. No repo to clone, no package to install.

  • A Verid API key
  • Any MCP client
  • Nothing to install
  1. 01

    Get an API key

    Sign up free for a 14-day trial, then create a key on the API Keys page. Pick the read scope only if the agent should not change anything.
  2. 02

    Add the server to your client

    Pick your client in the panel and paste the command or config.
  3. 03

    Reload the client

    Most MCP clients read their server list when they start or when you reload it.
  4. 04

    Ask a question

    “What changed across my monitors since yesterday?”calls list_changes

Pick your client

Open Settings, then Developer, then Edit Config, and add this to claude_desktop_config.json.

claude_desktop_config.json
{
  "mcpServers": {
    "verid": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://verid.dev/api/mcp",
               "--header", "Authorization:${VERID_AUTH}"],
      "env": { "VERID_AUTH": "Bearer vrd_your_key" }
    }
  }
}

Restart Claude Desktop after saving. mcp-remote bridges it to the remote server.

Tool reference

17 tools, each one a job you would do in the dashboard

Every tool maps to an action you can already take through the REST API, with the same fields. A key with only the read scope sees the read tools and nothing else.

Monitors9 tools
  • list_monitors(status?, visual?, q?, page?, limit?)

    read

    Page and visual monitors, newest first, with counts per status.

    GET /v1/monitors

  • get_monitor(id)

    read

    One monitor with its full configuration.

    GET /v1/monitors/{id}

  • create_monitor(name, url, schedule_interval_seconds, extract_config, diff_predicate, deliveries?)

    write

    A new monitor. The first check runs right away; the shortest interval is 60 seconds.

    POST /v1/monitors

  • create_monitor_from_template(slug, url?, name?, deliveries?)

    write

    A monitor from a ready-made template.

    POST /v1/monitors/from-template/{slug}

  • update_monitor(id, ...fields)

    write

    Change any field; send only what changes.

    PATCH /v1/monitors/{id}

  • pause_monitor(id)

    write

    Stop checks and alerts until resumed.

    POST /v1/monitors/{id}/pause

  • resume_monitor(id)

    write

    Resume a paused or auto-paused monitor; the next check runs right away.

    POST /v1/monitors/{id}/resume

  • delete_monitor(id)

    write

    Permanent. Marked destructive, so clients ask you first.

    DELETE /v1/monitors/{id}

  • run_monitor_now(id)

    write

    Queue an immediate check. Uses 1 run.

    POST /v1/monitors/{id}/run

Runs and changes3 tools
  • list_changes(since?, limit?)

    MCP onlyread

    Every change across all monitors since a time, default the last 24 hours, with before and after values. One call answers "what changed?".

  • list_runs(monitor_id, page?, limit?)

    read

    Recent checks of one monitor and whether each one alerted.

    GET /v1/monitors/{id}/runs

  • get_run(id)

    read

    One check in full: extracted data, field diff, visual change, page text.

    GET /v1/runs/{id}

SERP3 tools
  • list_serp_monitors(status?, page?, limit?)

    read

    Your search rank monitors.

    GET /v1/serp-monitors

  • create_serp_monitor(name, keyword, schedule_interval_seconds, engine?, target_domain?, ...)

    write

    Track a keyword on Google, Bing, Yahoo, DuckDuckGo or Yandex.

    POST /v1/serp-monitors

  • list_serp_runs(serp_monitor_id, page?, limit?)

    read

    Rank history, rank change, AI Overview and featured snippet presence.

    GET /v1/serp-monitors/{id}/runs

Account2 tools
  • get_usage()

    read

    Plan, runs used and left, reset date, run credits and limits.

    GET /v1/usage

  • list_templates(category?)

    read

    Ready-made monitor configs, optionally by category.

    GET /v1/templates

Try it

Plain language in, real tool calls underneath

Pick a prompt to see which tool the client calls, what Verid returns and how the agent puts it. Results are trimmed for space, and wording depends on the model.

verid connected

What changed across my monitors since yesterday?

Tool calllist_changessince: "2026-10-16T09:00:00Z"
{
  "since": "2026-10-16T09:00:00.000Z",
  "count": 1,
  "data": [{
    "monitor_name": "Widget price",
    "monitor_url": "https://shop.example/widget",
    "started_at": "2026-10-17T06:00:04.000Z",
    "fields_changed": ["price"],
    "changes": { "price": { "before": "20.00", "after": "18.00" } },
    "visual_change_pct": null
  }]
}

One change since yesterday: Widget price dropped from 20.00 to 18.00 at 06:00 UTC today. Nothing else moved.

More prompts to try

Copy one and paste it into your client.

  • “Pause every monitor that has been failing and tell me which ones.”

    list_monitors

  • “Run the Widget price monitor now and show me the result.”

    run_monitor_now

  • “Change the pricing monitor to check every 15 minutes.”

    update_monitor

  • “Track "best invoicing software" on Google in the US for our domain.”

    create_serp_monitor

  • “Show the last 10 checks of the docs monitor and which ones alerted.”

    list_runs

  • “Which monitor templates fit an ecommerce store?”

    list_templates

Plans

Every tool on every plan, from the free trial up

The MCP server costs nothing extra. Plans differ by how many tool calls a minute and checks a month you get, the same as on the REST API.

Compare plans →
Tool or limitFree trial14 daysLite$9/moStarter$19/moPro$49/moScale$149/mo
All monitor, run, usage and template toolsIncludedIncludedIncludedIncludedIncluded
list_serp_monitors, list_serp_runsIncludedIncludedIncludedIncludedIncluded
create_serp_monitorIncluded+ SERP plan+ SERP plan+ SERP plan+ SERP plan
Tool calls per minute30601206003,000
Runs per month200 + 100 visual + 100 SERP1,0005,00015,000100,000

+ SERP plans ($14 to $224/mo) have the same tool calls and runs as their base plan and add SERP tracking. On a base plan, SERP checks can also run on run credits.

Error handling

A failed call still tells the agent what to do next

Errors come back as tool results with the same code, message and details as the REST API, so your agent can explain the problem or fix it instead of retrying blindly.

429tool result · run_monitor_now
{
  "code": "RUN_LIMIT_REACHED",
  "message": "Monthly run limit reached: you've used 1,000 of 1,000 runs on the lite plan. Checks are paused until runs reset on November 1. Upgrade your plan or buy run credits to resume now.",
  "details": {
    "used": 1000,
    "limit": 1000,
    "resets_at": "2026-11-01T00:00:00.000Z",
    "credits_remaining": 0
  }
}

What your agent says

Run the Widget price monitor now.

I couldn't: this month's 1,000 runs on your Lite plan are used up, so checks are paused until they reset on 1 November. You can upgrade or buy run credits to resume now.

Built from the message and resets_at. Exact wording depends on the model.

  • 401UNAUTHORIZEDMissing, invalid or expired API key
  • 403FORBIDDENThe key or role cannot do this
  • 404NOT_FOUNDNo monitor or run with that id
  • 422VALIDATION_ERRORA field is wrong, with details per field
  • 429RUN_LIMIT_REACHEDMonthly runs used up, with the reset date
  • 429RATE_LIMIT_EXCEEDEDToo many tool calls this minute

FAQ

Questions developers ask first

Short answers on cost, clients, keys and runs.

Didn't find your answer?

Ask us about your setup, or tell us which tool or client you want next.

  1. 01

    What is an MCP server?

    MCP (Model Context Protocol) is an open standard that lets AI clients such as Claude Code, Cursor and VS Code call tools outside the model. An MCP server is the program that offers those tools. The Verid MCP server offers 17 tools for creating, running and reading website monitors, backed by the same services as the Verid REST API.

  2. 02

    Is the Verid MCP server free?

    It is included on every plan at no extra cost, including the 14-day free trial. Checks an agent starts use runs from your plan like scheduled checks do, and each tool call counts against your per-minute API budget, from 30 calls a minute on the trial to 3,000 on Scale.

  3. 03

    Which AI clients does it work with?

    Claude Code, Cursor and VS Code connect to it directly, and Claude Desktop connects through mcp-remote. Any other client that supports remote MCP servers over Streamable HTTP works with the URL and an Authorization header.

  4. 04

    Where does my API key go?

    Into your MCP client config, and from there only to verid.dev in the Authorization header. Use a key with only the read scope if the agent should look but never change anything. A signed-in browser session is never accepted on the MCP endpoint.

  5. 05

    Does every prompt use runs?

    No. Reading monitors, runs, changes, usage and templates uses no runs, only your per-minute tool call budget. A run is used when a check happens: on the schedule, when you create or resume a monitor, or when the agent calls run_monitor_now.

  6. 06

    Can an agent delete my monitors?

    Only with a key that has the write scope. delete_monitor is marked destructive so clients that support the hint ask you first, and every change an agent makes is written to the team audit log with the API key as the actor and "via": "mcp".

Connect an agent

A free 14-day trial, one command or config block, and your agent can create its first monitor. The MCP server is included on every plan.