Developers

One MCP server for local appointments.

OpenBookings speaks the Model Context Protocol over Streamable HTTP. Point your agent at the address below and it can search openings near a place, book one, look a booking up and cancel it. You don't need a key.

Endpoint

openbookings.ai/mcp

Transport: Streamable HTTP, stateless. Each POST carries one JSON-RPC message.

Tools

search_availability
Finds the top 3 openings near a city, neighbourhood or point. Accepts free text for the service and the time in English or French. Each result has an opening_id.
book_slot
Holds the opening while the business calendar is written, then confirms it. Send a unique idempotency_key per attempt and reuse it on retries. Needs a name and an email or phone.
get_booking
Returns a booking from its confirmation code and the email or phone used to book.
cancel_booking
Cancels a booking with the same code and contact. The business can set a cutoff before the start time.

How ranking works

Search keeps the first opening at each business, then sorts by start time in 15 minute steps, then by distance, then by exact start. The website search uses the same ranking, so your users see what your agent sees.

Limits

Each IP gets 60 requests per minute. Above that the server answers with HTTP 429 and a Retry-After header. Searches look at most 14 days ahead and return at most 3 openings.

Errors

Tool errors come back as a result with isError set and a JSON body holding a code and a message. The codes are:

  • INVALID_INPUT
  • SLOT_NOT_FOUND
  • SLOT_UNAVAILABLE
  • NOT_BOOKABLE
  • INVALID_CUSTOMER
  • INVALID_PARTY_SIZE
  • IDEMPOTENCY_CONFLICT
  • BOOKING_NOT_FOUND
  • ALREADY_CANCELLED
  • TOO_LATE_TO_CANCEL
  • PROVIDER_ERROR

Try it with curl

curl -s https://openbookings.ai/mcp \
  -H 'content-type: application/json' \
  -H 'accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{
    "name":"search_availability",
    "arguments":{"service":"haircut","city":"montreal","near":"Mile End",
                 "time_window":"saturday after 2pm"}}}'
{
  "mcpServers": {
    "openbookings": { "url": "https://openbookings.ai/mcp" }
  }
}

Listings marked example data are made-up businesses that let you test the flow. Bookings at them don't reach a real business.

A plain text summary for crawlers and agents lives at /llms.txt.

Want to use it yourself? Add it to your AI app →