MCP

Page Deltas speaks the Model Context Protocol, so AI agents can create monitors, read detected changes, and manage alert channels with the same organisation-scoped access as the REST API.

Endpoint

Production: https://api.pagedeltas.com/mcp. Streamable HTTP, JSON responses, no session affinity required. CORS is enabled for browser-based clients.

Authentication

The same API keys as the REST API. Create one from Settings → API keys (editor or admin). Send it on every request:

Authorization: Bearer pdt_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Keys are scoped to the organisation that created them and act with admin-level access within that organisation. Cookie sessions are not accepted on this endpoint — agents must use a Bearer key.

Connect a client

Point any MCP client that supports remote Streamable HTTP at the endpoint, and pass the Bearer header. Examples:

Claude Code — ~/.claude.json (or project .mcp.json):

{
  "mcpServers": {
    "pagedeltas": {
      "type": "http",
      "url": "https://api.pagedeltas.com/mcp",
      "headers": {
        "Authorization": "Bearer pdt_xxxxxxxx"
      }
    }
  }
}

Cursor — ~/.cursor/mcp.json:

{
  "mcpServers": {
    "pagedeltas": {
      "url": "https://api.pagedeltas.com/mcp",
      "headers": {
        "Authorization": "Bearer pdt_xxxxxxxx"
      }
    }
  }
}

VS Code Copilot — .vscode/mcp.json:

{
  "servers": {
    "pagedeltas": {
      "url": "https://api.pagedeltas.com/mcp",
      "headers": {
        "Authorization": "Bearer ${input:pagedeltas-api-key}"
      }
    }
  }
}

Claude Desktop still prefers a local stdio process. Bridge with mcp-remote:

{
  "mcpServers": {
    "pagedeltas": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://api.pagedeltas.com/mcp",
        "--header",
        "Authorization: Bearer ${PAGEDELTAS_API_KEY}"
      ]
    }
  }
}

Tools

Tools wrap the REST API. Destructive tools (deletes) are marked as such. Check-now and channel tests are rate-limited the same way as the HTTP endpoints.

ToolDescription
list_monitorsList page monitors.
get_monitorGet one page monitor.
create_monitorCreate a page monitor (url required; set nl_description so the LLM filter knows what matters).
update_monitorPatch URL, descriptions, selectors, or status.
delete_monitorDelete a page monitor and its history.
check_monitor_nowEnqueue an immediate check (1/minute/monitor).
list_monitor_changesList detected changes (optional limit, max 100).
list_monitor_alert_channels / set_monitor_alert_channelsRead or replace a monitor's channel overrides.
bulk_pause_monitors, bulk_resume_monitors, bulk_delete_monitorsPause, resume, or delete many page monitors.
list_sitemap_monitors, create_sitemap_monitor, …List, create, get, update, delete, and check sitemap monitors.
list_sitemap_discoveriesList newly discovered URLs for a sitemap monitor.
list_sitemap_alert_channels / set_sitemap_alert_channelsRead or replace a sitemap's channel overrides.
bulk_pause_sitemap_monitors, bulk_resume_sitemap_monitors, bulk_delete_sitemap_monitorsPause, resume, or delete many sitemap monitors.
list_alert_channelsList notification channels.
create_alert_channelCreate a channel (type, name, config).
update_alert_channel / delete_alert_channelUpdate or delete a channel.
test_alert_channelSend a test payload.
get_planCurrent plan, URL limit, retention, and priority.

Resources

JSON resources the client can read without picking a tool:

  • pagedeltas://plan — current plan and limits.
  • pagedeltas://monitors — all page monitors.
  • docsMcp.resources.monitor
  • docsMcp.resources.changes

Prompts

Optional starter prompts the client can offer:

  • create_monitor — draft a monitor from a URL and a goal.
  • review_changes — summarise recent changes for a monitor.

Errors

Auth failures are HTTP 401 with a WWW-Authenticate: Bearer header — they never become JSON-RPC. Tool-level failures (unknown id, plan limit, rate limit) come back as a tool result with isError: true and the same message the REST API would have returned, prefixed with the HTTP status.

What is not exposed

CSV import, API-key management, team invites, and Stripe checkout/portal stay on the REST API and the dashboard. Those flows need a browser or a multipart upload, which agents should not drive.

MCP · Documentation · Page Deltas