watch
Monitor URLs for changes and get diffs. Schedule lazy checks that trigger on next tool call or manually. Persist jobs across server restarts.
Instructions
Schedule lazy re-checks of a URL and surface diffs on change. Persistent across sessions — jobs survive MCP server restarts.
LAZY EXECUTION — NOT CRON. There is no background daemon. Checks fire ONLY when:
You explicitly call
watch({ action: 'check', job_id }), ORAny OTHER wigolo tool runs and the job's interval has elapsed (overdue jobs are triggered fire-and-forget in the background). A job on an idle MCP server will not fire until the next tool call. Do not expect cron-like accuracy.
Key parameters:
action: 'create' | 'list' | 'check' | 'pause' | 'resume' | 'delete'.
url (create-only): must be a public http/https URL. Loopback, RFC 1918 ranges, link-local, and non-http(s) schemes are rejected at registration.
interval_seconds (create-only): minimum 60 — sub-minute polling is refused to respect target-site rate limits.
selector (create-only, optional): CSS selector for future selector-scoped diffs. Persisted now for forward compatibility; the diff is currently full-page.
notification (create-only, optional): 'inline' (default — change reports come back on the next
action: 'check') or a public webhook URL. Same SSRF guard asurl. Webhook delivery is best-effort POST — no retry / no queue / no backoff.job_id (check/pause/resume/delete).
list returns each job's staleness_seconds so you can see how overdue each check is: negative = not yet due, positive = overdue by N seconds. Pair with action: 'check' to force one immediately.
Idempotent create: identical url + interval + selector returns the existing job_id — does not duplicate the row.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Single-URL create: the URL to watch. Response carries `job` (singular) and `jobs:[job]` (legacy). Mutually exclusive with `urls`. | |
| urls | No | Batch create: register multiple jobs in one call. Response carries `jobs[]` only (no `job`). Mutually exclusive with `url`. | |
| action | Yes | Watch-job action. | |
| job_id | No | Required for action=check|pause|resume|delete. | |
| selector | No | Optional CSS selector to scope the diff to a subtree (create-only). | |
| notification | No | "inline" (return on next check) or a webhook URL. Default: inline. | |
| interval_seconds | No | Required for action=create. Minimum check interval (min 60). |