Skip to main content

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โ€‹

ToolWhat it does
find_businessesBusinesses 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_infoOne business's public details: website, country, currency, time zone, whether it offers rentals or experiences, whether it delivers.
search_experiencesIts 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_productsIts 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_detailsOne item in full: description, what is included, options such as sizes, price.
get_availabilityLive 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_questionsAnswers from the business's own information: policies, what to bring, parking, cancellation, age limits.
prepare_bookingChecks the choice and returns a checkout_url.

Every tool except find_businesses takes a business_id from find_businesses.

Booking flowโ€‹

  1. find_businesses with the customer's words and their location.
  2. search_experiences or search_products at one business.
  3. get_availability for the date. Never offer a time this did not return.
  4. prepare_booking with the item and the chosen time (schedule_id for an experience, pickup_date for a rental).
  5. 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_businesses returns at most 10 businesses; search_* at most 10 items.
  • An availability question covers at most 90 days.
  • A question to search_business_questions is 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.").