MCP Server

marketplace

com.bookingmaven/marketplace
Business & Operations Productivity Public & reachable MCP 2025-11-25

What this MCP does

Searches service businesses, checks appointment availability, and books, reschedules, cancels, and retrieves appointment records.

book_appointment
Reserve an appointment slot at a service business. Provide a unique idempotency_key to safely retry without double-booking. Get service_id from get_business and start_time/end_time from get_availability.
Open world Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['business_slug', 'service_id', 'start_time', 'end_time', 'customer_name', 'customer_email', 'idempotency_key'], 'properties': {'notes': {'type': 'string', 'description': 'Any special requests or notes for the business'}, 'end_time': {'type': 'string', 'description': 'ISO 8601 datetime for the appointment end (from get_availability)'}, 'staff_id': {'type': 'string', 'description': 'Staff member ID (from get_business). Omit to auto-assign.'}, 'service_id': {'type': 'string', 'description': 'The service ID from get_business results'}, 'start_time': {'type': 'string', 'description': 'ISO 8601 datetime for the appointment start (from get_availability)'}, 'business_slug': {'type': 'string', 'description': 'The business slug from search_businesses results'}, 'customer_name': {'type': 'string', 'description': 'Customer full name'}, 'customer_email': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': 'Customer email address'}, 'customer_phone': {'type': 'string', 'description': 'Customer phone number (optional)'}, 'idempotency_key': {'type': 'string', 'description': 'Unique key to prevent duplicate bookings (e.g. UUID). Reuse the same key to safely retry.'}}}
cancel_appointment
Cancel a booking you made. Requires booking_id and the lookup_token from book_appointment. Safe to retry (idempotent). No account needed.
Destructive Open world Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['booking_id', 'lookup_token'], 'properties': {'booking_id': {'type': 'string', 'description': 'The booking_id returned from book_appointment'}, 'lookup_token': {'type': 'string', 'description': 'The lookup_token returned from book_appointment for this booking'}}}
create_account
Get a BookingMaven signup link pre-filled with the customer's details. The customer visits the link to set their password and activate their account, which links their past bookings.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['email', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Customer full name'}, 'email': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': 'Customer email (use the same email used for booking)'}, 'phone': {'type': 'string', 'description': 'Customer phone number (optional)'}}}
get_availability
Get open appointment slots for a business on a specific date. Returns ISO timestamps for each available slot. Use these start_time/end_time values when calling book_appointment.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['business_slug', 'date'], 'properties': {'date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Date to check in YYYY-MM-DD format'}, 'staff_id': {'type': 'string', 'description': 'Specific staff member ID (from get_business). Omit to check any available staff.'}, 'timezone': {'type': 'string', 'description': "IANA timezone string (e.g. 'America/New_York'). Defaults to business local time."}, 'business_slug': {'type': 'string', 'description': 'The business slug from search_businesses results'}}}
get_booking
Look up the current status/time of a booking you made. Requires the booking_id and the lookup_token that book_appointment returned. No account needed.
Read only Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['booking_id', 'lookup_token'], 'properties': {'booking_id': {'type': 'string', 'description': 'The booking_id returned from book_appointment'}, 'lookup_token': {'type': 'string', 'description': 'The lookup_token returned from book_appointment for this booking'}}}
get_business
Get full details for a business including services (with IDs and prices), staff, and hours. You need service_id and optionally staff_id before calling book_appointment.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'slug': {'type': 'string', 'description': 'The business slug from search_businesses results'}, 'business_slug': {'type': 'string', 'description': 'Alias for slug â\x80\x94 the business slug from search_businesses results'}}}
link_account
Link the guest bookings you made with your email to your signed-in account so you can manage them from your account. Requires signing in (OAuth) with a verified email.
Open world Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
list_my_bookings
List all appointments booked with your email address. Requires signing in (OAuth) — your AI must be connected with an authenticated account that has a verified email. Returns your upcoming and past bookings.
Read only Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
reschedule_appointment
Move a booking you made to a new time. Requires booking_id, the lookup_token from book_appointment, and new_start_time/new_end_time (ISO 8601, from get_availability). The new slot is checked for conflicts. No account needed.
Destructive Open world Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['booking_id', 'lookup_token', 'new_start_time', 'new_end_time'], 'properties': {'booking_id': {'type': 'string', 'description': 'The booking_id returned from book_appointment'}, 'lookup_token': {'type': 'string', 'description': 'The lookup_token returned from book_appointment for this booking'}, 'new_end_time': {'type': 'string', 'description': 'ISO 8601 datetime for the new appointment end (from get_availability)'}, 'new_start_time': {'type': 'string', 'description': 'ISO 8601 datetime for the new appointment start (from get_availability)'}}}
search_businesses
Search for service businesses by location. Returns businesses with their booking URLs, ratings, and descriptions. Use get_business to see services and get_availability to check open slots.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['location'], 'properties': {'limit': {'type': 'number', 'default': 10, 'maximum': 20, 'minimum': 1, 'description': 'Max results (default 10)'}, 'category': {'enum': ['barbershop', 'hair_salon', 'tattoo_piercing', 'nail_salon', 'mobile_services', 'fitness_training', 'car_detailing', 'spa_wellness', 'yoga', 'personal_trainer'], 'type': 'string', 'description': 'Filter by business type'}, 'location': {'type': 'string', 'description': "City, city+state, or zip code. E.g. 'Brooklyn NY', 'Austin, TX', '90210'"}}}
start_business_signup
Get a link for a business owner to sign up and list their business on BookingMaven. Returns a URL with optional pre-filled details.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'email': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': 'Business owner email'}, 'category': {'enum': ['barbershop', 'hair_salon', 'tattoo_piercing', 'nail_salon', 'mobile_services', 'fitness_training', 'car_detailing', 'spa_wellness', 'yoga', 'personal_trainer'], 'type': 'string', 'description': 'Type of business'}, 'business_name': {'type': 'string', 'description': 'Name of the business'}}}
Added
link_account
Sept. 17, 2026, 12:34 p.m.
Added
list_my_bookings
Sept. 17, 2026, 12:34 p.m.
Added
start_business_signup
Sept. 17, 2026, 12:34 p.m.
Added
create_account
Sept. 17, 2026, 12:34 p.m.
Added
reschedule_appointment
Sept. 17, 2026, 12:34 p.m.
Added
cancel_appointment
Sept. 17, 2026, 12:34 p.m.
Added
get_booking
Sept. 17, 2026, 12:34 p.m.
Added
book_appointment
Sept. 17, 2026, 12:34 p.m.
Added
get_availability
Sept. 17, 2026, 12:34 p.m.
Added
get_business
Sept. 17, 2026, 12:34 p.m.
Added
search_businesses
Sept. 17, 2026, 12:34 p.m.