Public Booking MCP Server
A second MCP server, for outside AI assistants acting on behalf of a customer rather than a shop owner. It finds businesses that use EquipDash, answers what they sell and when they are free, and hands the customer a link that opens that business's own checkout with their choice already in the cart.
Endpoint: https://app.equipdash.com/mcp/muse
Transport: JSON-RPC 2.0 over HTTP POST (streamable HTTP). GET returns 405 with an Allow: POST header.
Authentication: none. Every tool is read-only and reaches only what a visitor can already see on a business's public booking page.
Protocol versions: 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05.
This is not the owner-facing MCP server, which needs an API key and exposes the whole account.
Toolsโ
| Tool | What it does |
|---|---|
find_businesses | Businesses matching what the customer wants (what) and where (place). Returns business_id, name, city, state, country, currency, a few of the things it offers, and its booking page. Up to 10 per call. |
get_business_info | One business's public details: website, country, currency, time zone, whether it offers rentals or experiences, whether it delivers. |
search_experiences | Its lessons, classes, tours, trips and other scheduled activities: item_id, name, duration, capacity, price, and ages when the business states an age limit. Pass age and each limited row says fits_age true or false. |
search_products | Its rentals: item_id, name, category, price, and ages when the business states an age limit. Pass age to get fits_age on each limited row. |
get_item_details | One item in full: description, what is included, options such as sizes, price. |
get_availability | Live availability. For an experience, the times on a date with a schedule_id and the spaces left. For a rental, whether it is free over a date range. |
search_business_questions | Answers from the business's own information: policies, what to bring, parking, cancellation, age limits. |
prepare_booking | Checks the choice and returns a checkout_url. |
Every tool except find_businesses takes a business_id from find_businesses.
Booking flowโ
find_businesseswith the customer's words and their location.search_experiencesorsearch_productsat one business.get_availabilityfor the date. Never offer a time this did not return.prepare_bookingwith the item and the chosen time (schedule_idfor an experience,pickup_datefor a rental).- Give the customer the
checkout_url.
prepare_booking runs the same checks the business's own booking page runs, so a full departure, a past one, or a rental that needs a size chosen comes back as an error the assistant can act on rather than a broken link.
The link is signed, lasts 14 days, and fills the cart in the customer's own browser when they open it. Availability and price are re-checked at that moment: if the time has gone, they land on the item to pick another. The customer then enters their details and pays on the business's own checkout, where its deposit rules, waivers and taxes apply. The connector never takes payment and never sees card details.
What is reachableโ
A business is reachable when it can take bookings, has something bookable on its public booking page, and has not switched the listing off. A business_id that is not reachable reads as not found, whatever the id.
No tool returns customers, other bookings, staff, settings, or any figure the business does not already publish. Nothing writes to an account.
Limitsโ
- Rate limit: 300 requests per minute per caller.
find_businessesreturns at most 10 businesses;search_*at most 10 items.- An availability question covers at most 90 days.
- A question to
search_business_questionsis capped at 300 characters.
Errorsโ
JSON-RPC errors for a malformed call; a tool result with isError: true and a plain sentence for anything the assistant should act on ("That time is full now. Call get_availability again and offer the next one with room.").