Free · for AI agents · MCP + REST

Watchtower

Stop repeatedly browsing the same pages. Watchtower monitors public internet resources for AI agents and returns structured changes.

Create a watch once. Watchtower checks on a schedule, remembers what it saw, and get_changes hands back only what changed: a new job, a new event date, the lines added to a page.

Connect an agent (MCP)

{
  "mcpServers": {
    "watchtower": { "type": "http", "url": "https://www.watchtower.lat/mcp" }
  }
}

No token yet? The first watch_* call creates an anonymous client and returns its token. Send it back as Authorization: Bearer <token> or as client_token.

Tools

watch_urlWatch a public page or RSS/Atom feed; get CONTENT_CHANGED (with word-level diffs) or ITEM_ADDED.
watch_jobsWatch a job board (Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee, or schema.org JobPosting pages); get JOB_ADDED/JOB_REMOVED/JOB_UPDATED.
watch_eventsWatch an event page (schema.org Event, or future dates in text); get EVENT_ADDED/EVENT_REMOVED/EVENT_UPDATED/EVENT_RESCHEDULED.
get_changesFetch only what changed since your last call. Empty list = nothing new.
ack_changesAcknowledge a cursor after get_changes(peek=true), for at-least-once processing.
list_watchesList your watches with health and pending change counts.
get_watchOne watch plus the resource's current jobs/events/text excerpt.
delete_watchStop monitoring and free a slot (10 per client).

REST in three calls

TOKEN=$(curl -s -X POST https://www.watchtower.lat/v1/clients | jq -r .token)

curl -s -X POST https://www.watchtower.lat/v1/watches \
  -H "Authorization: Bearer $TOKEN" -H "content-type: application/json" \
  -d '{"type":"jobs","url":"https://boards.greenhouse.io/acme","keywords":["iOS"]}'

curl -s https://www.watchtower.lat/v1/changes -H "Authorization: Bearer $TOKEN"

Example change:

{
  "id": 1842,
  "type": "JOB_ADDED",
  "summary": "New job: Senior iOS Engineer (Remote - US)",
  "url": "https://boards.greenhouse.io/acme",
  "data": { "job": { "title": "Senior iOS Engineer", "location": "Remote - US", "url": "https://..." } }
}

What it understands

Limits and policy

Machine-readable

/llms.txt · /.well-known/watchtower.json · /health