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
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
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
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
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
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
- 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. - 02
Add the server to your client
Pick your client in the panel and paste the command or config. - 03
Reload the client
Most MCP clients read their server list when they start or when you reload it. - 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.
{
"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.
Run this once in a terminal. Then type /mcp inside Claude Code to see verid connected.
claude mcp add --transport http verid https://verid.dev/api/mcp \
--header "Authorization: Bearer vrd_your_key"Available in new Claude Code sessions.
Add this to .cursor/mcp.json in your project, or to ~/.cursor/mcp.json for every project.
{
"mcpServers": {
"verid": {
"url": "https://verid.dev/api/mcp",
"headers": { "Authorization": "Bearer vrd_your_key" }
}
}
}Cursor lists the server and its tools in its MCP settings.
Add this to .vscode/mcp.json. VS Code asks for the key once and stores it, so it never sits in the file.
{
"inputs": [
{ "type": "promptString", "id": "verid-api-key",
"description": "Verid API key", "password": true }
],
"servers": {
"verid": {
"type": "http",
"url": "https://verid.dev/api/mcp",
"headers": { "Authorization": "Bearer ${input:verid-api-key}" }
}
}
}Start the server from the MCP view when VS Code offers it.
Any client that supports remote MCP servers over Streamable HTTP needs only these three values.
URL: https://verid.dev/api/mcp
Type: Streamable HTTP (POST, JSON-RPC)
Header: Authorization: Bearer vrd_your_keyClients that only start local servers can use npx mcp-remote, as in the Claude Desktop tab.
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.
list_monitors(status?, visual?, q?, page?, limit?)
readPage and visual monitors, newest first, with counts per status.
GET /v1/monitors
get_monitor(id)
readOne monitor with its full configuration.
GET /v1/monitors/{id}
create_monitor(name, url, schedule_interval_seconds, extract_config, diff_predicate, deliveries?)
writeA 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?)
writeA monitor from a ready-made template.
POST /v1/monitors/from-template/{slug}
update_monitor(id, ...fields)
writeChange any field; send only what changes.
PATCH /v1/monitors/{id}
pause_monitor(id)
writeStop checks and alerts until resumed.
POST /v1/monitors/{id}/pause
resume_monitor(id)
writeResume a paused or auto-paused monitor; the next check runs right away.
POST /v1/monitors/{id}/resume
delete_monitor(id)
writePermanent. Marked destructive, so clients ask you first.
DELETE /v1/monitors/{id}
run_monitor_now(id)
writeQueue an immediate check. Uses 1 run.
POST /v1/monitors/{id}/run
list_changes(since?, limit?)
MCP onlyreadEvery 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?)
readRecent checks of one monitor and whether each one alerted.
GET /v1/monitors/{id}/runs
get_run(id)
readOne check in full: extracted data, field diff, visual change, page text.
GET /v1/runs/{id}
list_serp_monitors(status?, page?, limit?)
readYour search rank monitors.
GET /v1/serp-monitors
create_serp_monitor(name, keyword, schedule_interval_seconds, engine?, target_domain?, ...)
writeTrack a keyword on Google, Bing, Yahoo, DuckDuckGo or Yandex.
POST /v1/serp-monitors
list_serp_runs(serp_monitor_id, page?, limit?)
readRank history, rank change, AI Overview and featured snippet presence.
GET /v1/serp-monitors/{id}/runs
get_usage()
readPlan, runs used and left, reset date, run credits and limits.
GET /v1/usage
list_templates(category?)
readReady-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.
What changed across my monitors since yesterday?
{
"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.
Watch shop.example/widget hourly and post in Slack when the price drops 10%.
{
"id": "6f1c2a9e-...",
"name": "Widget price",
"url": "https://shop.example/widget",
"schedule_interval_seconds": 3600,
"diff_predicate": {
"type": "field_decreases_by_percent",
"field": "price", "threshold": 10
},
"status": "active"
}Done. Widget price is live, checks every hour, and posts to your Slack channel when the price falls 10% or more. The first check is running now.
Set up a monitor for the AWS status page and email me when it changes.
{
"id": "0b7d41f3-...",
"name": "AWS Service Health",
"template_slug": "aws-status-page",
"deliveries": [{ "type": "email", "to": "you@example.com" }],
"status": "active"
}I used the AWS Service Health template. It is active and emails you@example.com when the status page changes.
How many runs do I have left this month?
{
"tier": "lite",
"runs": { "used": 412, "limit": 1000 },
"runsResetAt": "2026-11-01T00:00:00.000Z",
"runCredits": 0,
"monitorsActive": 6
}You have used 412 of 1,000 runs on the Lite plan, so 588 are left. They reset on 1 November.
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.
| Tool or limit | Free trial14 days | Lite$9/mo | Starter$19/mo | Pro$49/mo | Scale$149/mo |
|---|---|---|---|---|---|
| All monitor, run, usage and template tools | Included | Included | Included | Included | Included |
| list_serp_monitors, list_serp_runs | Included | Included | Included | Included | Included |
| create_serp_monitor | Included | + SERP plan | + SERP plan | + SERP plan | + SERP plan |
| Tool calls per minute | 30 | 60 | 120 | 600 | 3,000 |
| Runs per month | 200 + 100 visual + 100 SERP | 1,000 | 5,000 | 15,000 | 100,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.
{
"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.
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.
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.
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.
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.
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.
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".