Bookeo MCP server. Check Bookeo availability and manage bookings, holds and customers; read payments.
Add to your MCP config, then reload & authorize:
{
"mcpServers": {
"bookeo": {
"url": "https://bookeo.usefulapi.io/mcp"
}
}
}| Tool | Type | What it does |
|---|---|---|
bookeo_get_api_key_info | read | Get API key info Show which Bookeo account the credentials belong to and which permissions were granted (e.g. bookings_rw_all, customers_r_all, availability_r). A cheap way to confirm the setup works. Bookeo: GET /settings/apikeyinfo. |
bookeo_get_business | read | Get the business Get the business's name, contact details, address, website and description. Bookeo: GET /settings/business. |
bookeo_list_products | read | List products List the bookable products (tours, classes, courses, appointments) with their ids, type (fixed, fixedCourse, flexibleTime), duration, participant limits per people category, default rates and options. Bookeo: GET /settings/products. |
bookeo_list_people_categories | read | List people categories List the participant categories the account uses (default Adults/Children/Infants plus custom ones like Students), with their ids and seats taken. Needed for peopleNumbers. Bookeo: GET /settings/peoplecategories. |
bookeo_list_resources | read | List resources List resource types and their resources (guides, instructors, rooms, boats...) with ids. Bookeo: GET /settings/resources. |
bookeo_get_availability_slots | read | Get availability slots List available slots (eventId, start/end, seats available) for fixed and fixedCourse products in a time window of at most 31 days. Not for flexibleTime products — use bookeo_search_matching_slots for those. Bookeo: GET /availability/slots. |
bookeo_search_matching_slots | read | Search matching slots Find slots that can take a given party (participant counts per category, options, resources), with an estimated price. Works for all product types, including flexibleTime appointments. Window max 31 days. To page through results pass only pageNavigationToken (+ pageNumber). Read-only. Bookeo: POST /availability/matchingslots, GET /availability/matchingslots/{pageNavigationToken}. |
bookeo_list_bookings | read | List bookings List bookings by start time (startTime+endTime) and/or by last change (lastUpdatedStartTime+lastUpdatedEndTime) — at least one pair is required, each spanning at most 31 days. Optionally filter by product, include canceled bookings, and expand customer/participant details. Bookeo: GET /bookings. |
bookeo_get_booking | read | Get a booking Get one booking by its booking number: product, times, participants, options, price, paid amount, status (canceled/accepted/noShow). Bookeo: GET /bookings/{bookingNumber}. |
bookeo_list_booking_payments | read | List a booking's payments List the payments (and refunds, as negative amounts) received for one booking. Bookeo: GET /bookings/{bookingNumber}/payments. |
bookeo_list_customers | read | List customers List or search customers — by name, firstName, lastName or emailAddress — optionally only members/non-members or those created since a date. Bookeo: GET /customers. |
bookeo_get_customer | read | Get a customer Get one customer: contact details, next/previous booking, number of bookings, cancellations and no-shows, membership and store credit. Bookeo: GET /customers/{id}. |
bookeo_list_customer_bookings | read | List a customer's bookings List one customer's bookings, optionally between two dates. Bookeo: GET /customers/{id}/bookings. |
bookeo_list_payments | read | List payments List payments received in a time period, optionally by payment method. Refunds are included with a negative amount. Bookeo: GET /payments. |
bookeo_get_payment | read | Get a payment Get one payment: amount, method, reason, received time, customer and gateway transaction id. Bookeo: GET /payments/{id}. |
bookeo_create_hold | write | Hold seats (price check) Temporarily reserve the seats/resources for a draft booking (default 300 s, max 600 s) and get the FINAL price, taxes and amount payable. The recommended step before bookeo_create_booking: pass the returned hold id as previousHoldId there. Holds expire automatically. Bookeo: POST /holds. |
bookeo_create_booking | write | Create a booking Create a confirmed booking for an existing customer (customerId) or a new one (customer). fixed/fixedCourse products need an eventId from the availability tools; flexibleTime products take eventId or startTime. Pass previousHoldId to convert a hold. Does NOT record any payment. Reversible with bookeo_cancel_booking. Bookeo: POST /bookings. |
bookeo_update_booking | write | Update a booking Change an existing booking — reschedule (eventId or startTime/endTime), change participant counts, options, resources or external reference. Fetches the current booking and sends it back with only your changes applied (Bookeo's PUT takes the full booking). Bookeo: GET then PUT /bookings/{bookingNumber}. |
bookeo_cancel_booking | write | Cancel a booking Cancel a booking. It stays in the system (visible with includeCanceled) but frees its seats. The account's cancellation policy is NOT applied, so no cancellation fee is charged. Bookeo: DELETE /bookings/{bookingNumber}. |
bookeo_create_customer | write | Create a customer Create a customer record. Not needed before booking — bookeo_create_booking can create the customer inline. Bookeo: POST /customers. |
bookeo_update_customer | write | Update a customer Update a customer's contact details. Fetches the current record and sends it back with only your changes applied (Bookeo's PUT takes the full customer). Bookeo: GET then PUT /customers/{id}. |
bookeo_usage_status | Usage status (free-tier meter) Report the caller's current free-tier usage this month: calls used, monthly limit, remaining, and whether the cap is reached. Read-only; does not count against the meter. | |
bookeo_upgrade | Upgrade to Pro (unlimited) Subscribe to the Pro plan for UNLIMITED Bookeo tool calls (the free tier caps monthly usage). Choose monthly ($9/month) or yearly ($90/year — 2 months free) billing. Returns a Stripe Checkout link to open in your browser; after payment your account upgrades automatically. Read-only; does not count against the meter. |
| Plan | Price | Limit |
|---|---|---|
| Free | $0 | 100 tool calls / month |
| Proper user | $9/mo · $90/yr | Unlimited |
This is a Model Context Protocol endpoint — meant to be connected from an AI client, not opened in a browser. An invalid_token response at the URL is the auth gate working as designed; clients authenticate automatically.