BookingMaven speaks the Model Context Protocol. Connect an assistant and it finds the business, checks real openings, and books. No app, no form.
https://mcp.bookingmaven.com/mcpclaude mcp add --transport http bookingmaven https://mcp.bookingmaven.com/mcpAdd a custom connector in Settings, then paste the endpoint URL. No authentication fields are needed.
https://mcp.bookingmaven.com/mcp{
"mcpServers": {
"bookingmaven": {
"type": "http",
"url": "https://mcp.bookingmaven.com/mcp"
}
}
}Four tool calls take an agent from "find me a barber" to a confirmed appointment.
search_businessesThe agent finds businesses near the customer.
get_businessIt picks a business and reads services, prices, and staff.
get_availabilityIt checks real open slots for the requested date.
book_appointmentIt books the slot. The business and customer are notified.
Bookings are idempotent: a timed-out request retried with the same idempotency key never double‑books. And book_appointment returns a booking_id and lookup_token, so the agent can check, reschedule, or cancel the booking later.
Once connected, just talk to your assistant. Things like:
"Find me a barbershop in San Jose and book a haircut Friday afternoon."
"What times does Clipper King have open this Saturday?"
"Reschedule my Friday appointment to Tuesday morning instead."
"Cancel my Tuesday booking."
Each tool's output feeds the next. The first three responses are captured from the live server; the booking response shows the documented shape.
{
"method": "tools/call",
"params": {
"name": "search_businesses",
"arguments": { "location": "San Jose, CA" }
}
}{
"businesses": [
{ "slug": "clipper-king",
"name": "Clipper King",
"category": "barbershop",
"city": "San Jose",
"booking_url":
".../business/clipper-king" },
{ "slug": "bombastic-tattoos", ... }
],
"count": 2
}The server is stateless, so a single tools/call works with no handshake. This exact request runs against live data:
curl -X POST https://mcp.bookingmaven.com/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_businesses",
"arguments":{"location":"San Jose, CA","category":"barbershop"}}}'The core flow. No sign-in needed.
search_businessesSearch for businesses by location. Returns booking URLs, ratings, and descriptions.
locationrequiredCity, city + state, or zip code. E.g. 'Brooklyn NY', 'Austin, TX', '90210'.categoryoptionalFilter by business type (see accepted categories below).limitoptionalMax results, 1 to 20. Defaults to 10.get_businessFull details for one business: services with IDs and prices, staff, and hours.
business_slugrequiredThe business slug from search_businesses results (slug also accepted).get_availabilityOpen appointment slots for a business on a specific date, as ISO timestamps.
business_slugrequiredThe business slug from search_businesses results.daterequiredDate to check, in YYYY-MM-DD format.staff_idoptionalSpecific staff member ID. Omit to check any available staff.timezoneoptionalIANA timezone, e.g. 'America/New_York'. Defaults to business local time.book_appointmentReserve a slot. Idempotent: retrying with the same key never double-books. Returns a booking_id and lookup_token for managing the booking later.
business_slugrequiredThe business slug from search_businesses results.service_idrequiredThe service ID from get_business results.start_timerequiredISO 8601 start, from get_availability.end_timerequiredISO 8601 end, from get_availability.customer_namerequiredCustomer full name.customer_emailrequiredCustomer email address.idempotency_keyrequiredUnique key (e.g. a UUID). Reuse the same key to retry safely.customer_phoneoptionalCustomer phone number.staff_idoptionalStaff member ID. Omit to auto-assign.notesoptionalSpecial requests or notes for the business.Everything after the booking, using the booking_id and lookup_token from book_appointment. No account needed.
get_bookingLook up the current status and time of a booking.
booking_idrequiredThe booking_id returned from book_appointment.lookup_tokenrequiredThe lookup_token returned from book_appointment.reschedule_appointmentMove a booking to a new time. The new slot is checked for conflicts.
booking_idrequiredThe booking_id returned from book_appointment.lookup_tokenrequiredThe lookup_token returned from book_appointment.new_start_timerequiredISO 8601 start for the new slot, from get_availability.new_end_timerequiredISO 8601 end for the new slot, from get_availability.cancel_appointmentCancel a booking. Safe to retry.
booking_idrequiredThe booking_id returned from book_appointment.lookup_tokenrequiredThe lookup_token returned from book_appointment.Optional. Bookings work as a guest; these link them to accounts.
create_accountReturns a pre-filled signup link so the customer can activate an account that links their past bookings.
emailrequiredCustomer email (same one used for booking).namerequiredCustomer full name.phoneoptionalCustomer phone number.list_my_bookingssigned-inList all appointments booked with your email, upcoming and past.
No parameters. Requires connecting with a signed-in, verified-email account.
link_accountsigned-inLink guest bookings made with your email to your signed-in account.
No parameters. Requires connecting with a signed-in, verified-email account.
start_business_signupReturns a signup link for a business owner to get their booking page, with optional pre-filled details.
business_nameoptionalName of the business.categoryoptionalType of business (see accepted categories below).emailoptionalBusiness owner email.category filtersbarbershophair_salontattoo_piercingnail_salonmobile_servicesfitness_trainingcar_detailingspa_wellnessyogapersonal_trainerEvery BookingMaven business can take bookings through the MCP server automatically. One calendar, filled from your booking page, your website embed, and now AI assistants.