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
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.