marketplace
Book, reschedule and cancel appointments at any business on the BookingMaven marketplace.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"marketplace": {
"url": "https://mcp.bookingmaven.com/mcp"
}
}
}Remote endpoints
https://mcp.bookingmaven.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (11)
🟢search_businesses(location, category, limit)
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",
"properties": {
"location": {
"type": "string",
"description": "City, city+state, or zip code. E.g. 'Brooklyn NY', 'Austin, TX', '90210'"
},
"category": {
"description": "Filter by business type",
"type": "string",
"enum": [
"barbershop",
"hair_salon",
"tattoo_piercing",
"nail_salon",
"mobile_services",
"fitness_training",
"car_detailing",
"spa_wellness",
"yoga",
"personal_trainer"
]
},
"limit": {
"description": "Max results (default 10)",
"default": 10,
"type": "number",
"minimum": 1,
"maximum": 20
}
},
"required": [
"location"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_business(slug, business_slug)
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",
"properties": {
"slug": {
"description": "The business slug from search_businesses results",
"type": "string"
},
"business_slug": {
"description": "Alias for slug — the business slug from search_businesses results",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_availability(business_slug, date, staff_id, timezone)
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",
"properties": {
"business_slug": {
"type": "string",
"description": "The business slug from search_businesses results"
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date to check in YYYY-MM-DD format"
},
"staff_id": {
"description": "Specific staff member ID (from get_business). Omit to check any available staff.",
"type": "string"
},
"timezone": {
"description": "IANA timezone string (e.g. 'America/New_York'). Defaults to business local time.",
"type": "string"
}
},
"required": [
"business_slug",
"date"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢book_appointment(business_slug, service_id, start_time, end_time, customer_name, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"business_slug": {
"type": "string",
"description": "The business slug from search_businesses results"
},
"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)"
},
"end_time": {
"type": "string",
"description": "ISO 8601 datetime for the appointment end (from get_availability)"
},
"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": {
"description": "Customer phone number (optional)",
"type": "string"
},
"staff_id": {
"description": "Staff member ID (from get_business). Omit to auto-assign.",
"type": "string"
},
"notes": {
"description": "Any special requests or notes for the business",
"type": "string"
},
"idempotency_key": {
"type": "string",
"description": "Unique key to prevent duplicate bookings (e.g. UUID). Reuse the same key to safely retry."
}
},
"required": [
"business_slug",
"service_id",
"start_time",
"end_time",
"customer_name",
"customer_email",
"idempotency_key"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_booking(booking_id, lookup_token)
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.
Input Schema
{
"type": "object",
"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"
}
},
"required": [
"booking_id",
"lookup_token"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴cancel_appointment(booking_id, lookup_token)
Cancel a booking you made. Requires booking_id and the lookup_token from book_appointment. Safe to retry (idempotent). No account needed.
Input Schema
{
"type": "object",
"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"
}
},
"required": [
"booking_id",
"lookup_token"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴reschedule_appointment(booking_id, lookup_token, new_start_time, new_end_time)
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.
Input Schema
{
"type": "object",
"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_start_time": {
"type": "string",
"description": "ISO 8601 datetime for the new appointment start (from get_availability)"
},
"new_end_time": {
"type": "string",
"description": "ISO 8601 datetime for the new appointment end (from get_availability)"
}
},
"required": [
"booking_id",
"lookup_token",
"new_start_time",
"new_end_time"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_account(email, name, phone)
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",
"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": "Customer email (use the same email used for booking)"
},
"name": {
"type": "string",
"description": "Customer full name"
},
"phone": {
"description": "Customer phone number (optional)",
"type": "string"
}
},
"required": [
"email",
"name"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢start_business_signup(business_name, category, email)
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",
"properties": {
"business_name": {
"description": "Name of the business",
"type": "string"
},
"category": {
"description": "Type of business",
"type": "string",
"enum": [
"barbershop",
"hair_salon",
"tattoo_piercing",
"nail_salon",
"mobile_services",
"fitness_training",
"car_detailing",
"spa_wellness",
"yoga",
"personal_trainer"
]
},
"email": {
"description": "Business owner 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,}$"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢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.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪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.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence