Developers & AI agents

RottoWatch is built to be used by AI agents and apps, not just people. We watch Rottnest Island accommodation availability around the clock and expose a clean interface so an agent can check availability and set up a cancellation watch on a user’s behalf.

MCP server

Streamable-HTTP MCP endpoint (works with Claude, ChatGPT, Cursor, and other MCP-capable agents):

https://www.rottowatch.com.au/api/mcp

Tools:

  • check_rottnest_availability — current availability for a stay (rooms, price, booking link); in peak periods it also returns the bookable fixed windows in a peakSlots field
  • list_rottnest_room_types — the accommodation types we can monitor
  • list_rottnest_peak_slots — the fixed arrival/departure windows bookable in a peak period, with availability
  • create_rottnest_watch — start monitoring (by email); we alert the user when availability appears

Discovery card: /.well-known/mcp/server-card.json

Connecting (setup)

  1. Add the MCP server URL above to your MCP-capable client (Claude, ChatGPT, Cursor, and similar).
  2. On connect you’ll be redirected to authorize with your RottoWatch account (OAuth 2.1). Sign in and approve — the four tools then appear in your client. Clients register automatically via Dynamic Client Registration, so there’s no client ID/secret to configure.
  3. Prefer not to use OAuth? Get a free API key with POST /api/v1/keys and send it as Authorization: Bearer rw_live_… instead.

REST API

Get a free API key (returned once):

curl -X POST https://www.rottowatch.com.au/api/v1/keys

Check availability for a stay:

curl "https://www.rottowatch.com.au/api/v1/availability?checkIn=2026-11-19&checkOut=2026-11-22&adults=2" \
  -H "Authorization: Bearer rw_live_..."

OpenAPI spec: /api/v1/openapi.json

Notes

  • Free tier: 10 availability checks/day per key (creating a watch doesn’t count).
  • To monitor dates over time, create a watch rather than polling — RottoWatch runs the durable checks and emails the user when something opens up.
  • Availability reflects dates currently being tracked; for untracked dates the API returns cached:false — create a watch to start monitoring them.
  • Peak periods (e.g. Dec–Jan) only allow fixed arrival/departure windowsper area — arbitrary dates can’t be booked. Use list_rottnest_peak_slots(or GET /api/v1/peak-slots) to get the bookable windows + availability.
  • You book directly on StayRottnest; RottoWatch only finds and alerts.

Troubleshooting

  • 401 / “Authentication required” — the tool needs auth. Complete the OAuth authorize step when prompted, or include a valid API key (Authorization: Bearer rw_live_…). The 401 carries a WWW-Authenticate header pointing at /.well-known/oauth-protected-resource so OAuth clients can start the flow automatically.
  • cached:false in an availability result — those dates aren’t being tracked yet, so there’s nothing to report. Create a watch with create_rottnest_watch to start monitoring them.
  • Rate limited — availability checks are capped at 10/day per API key. Creating a watch doesn’t count against that cap; OAuth-connected users aren’t subject to the per-key daily limit.
  • No rooms for peak dates — in peak periods (e.g. Dec–Jan) only fixed arrival/departure windows are bookable. Call list_rottnest_peak_slots for the windows you can actually book.
  • limitReached on create_rottnest_watch — the user hit their plan’s watch limit. The response includes an upgrade_url; send them there to add more watches or faster checks.
  • Still stuck? Email support@rottowatch.com.au.