_ registry / mcp streamable-http · checked 3h ago

bookeo-mcp

https://bookeo.usefulapi.io

Registry code: 89df33f83674bc79

api record

Check Bookeo availability and manage bookings, holds and customers; read payments.

from a public catalogue that lists it, not from the operator

endpoint
https://bookeo.usefulapi.io/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing
karma
0 · newcomer
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
349ms

last good check

priced tools
0

of 21 tools

_ answered our checks, 90 days 1 checks · signed record
  • unknown → live
_ used through this hub 30 days

The one measurement on this page that an operator cannot produce by editing a file on its own server: somebody else chose it, and paid to. Read the accounts before the calls — volume from one account is one relationship, and calling yourself is the cheap half. Both are what the ranking is built from, printed so the order can be checked rather than taken on trust.

accounts
0

distinct, expensive to fake

calls served
0

successful, last 30 days

_ what it can do 21 tools
21 never probed 0 of 21 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • bookeo_list_customer_bookings unknown never probed

    List one customer's bookings, optionally between two dates. Bookeo: GET /customers/{id}/bookings.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The customer id."
        },
        "endDate": {
          "type": "string",
          "description": "Only bookings on/before this date (YYYY-MM-DD)."
        },
        "beginDate": {
          "type": "string",
          "description": "Only bookings on/after this date (YYYY-MM-DD)."
        },
        "pageNumber": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 1,
          "description": "Page to fetch (1-based). Used together with pageNavigationToken."
        },
        "itemsPerPage": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Items per page, 1-100 (Bookeo default 50)."
        },
        "expandParticipants": {
          "type": "boolean",
          "description": "Include full participant details."
        },
        "pageNavigationToken": {
          "type": "string",
          "description": "Token from a previous response's info.pageNavigationToken, to fetch another page. Search parameters need not be repeated."
        }
      }
    }
    arguments 41 lines
  • bookeo_list_payments unknown never probed

    List payments received in a time period, optionally by payment method. Refunds are included with a negative amount. Bookeo: GET /payments.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "endTime": {
          "type": "string",
          "description": "Period end — RFC 3339 date-time, e.g. 2026-10-01T09:00:00-04:00. The offset -00:00 means the account's local timezone."
        },
        "startTime": {
          "type": "string",
          "description": "Period start — RFC 3339 date-time, e.g. 2026-10-01T09:00:00-04:00. The offset -00:00 means the account's local timezone."
        },
        "pageNumber": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 1,
          "description": "Page to fetch (1-based). Used together with pageNavigationToken."
        },
        "itemsPerPage": {
          "type": "integer",
          "maximum": 300,
          "minimum": 1,
          "description": "Items per page, 1-300 (Bookeo default 50)."
        },
        "paymentMethod": {
          "enum": [
            "creditCard",
            "paypal",
            "bankTransfer",
            "cash",
            "checque",
            "debitCard",
            "existingCredit",
            "accountCredit",
            "moneyVoucher",
            "other"
          ],
          "type": "string",
          "description": "Only this payment method (Bookeo spells cheque \"checque\")."
        },
        "paymentMethodOther": {
          "type": "string",
          "description": "Custom method name — required when paymentMethod is \"other\"."
        },
        "pageNavigationToken": {
          "type": "string",
          "description": "Token from a previous response's info.pageNavigationToken, to fetch another page. Search parameters need not be repeated."
        }
      }
    }
    arguments 50 lines
  • bookeo_cancel_booking unknown never probed

    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}.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "bookingNumber"
      ],
      "properties": {
        "reason": {
          "type": "string",
          "description": "Why — included in the customer's cancellation email, if sent."
        },
        "notifyUsers": {
          "type": "boolean",
          "description": "Email/SMS the business's staff."
        },
        "bookingNumber": {
          "type": "string",
          "description": "The booking number."
        },
        "notifyCustomer": {
          "type": "boolean",
          "description": "Email the customer about the cancellation."
        },
        "cancelRemainingSeries": {
          "type": "boolean",
          "description": "If part of a recurring series, also cancel all following bookings."
        },
        "trackInCustomerHistory": {
          "type": "boolean",
          "description": "Count this in the customer's cancellation stats."
        }
      }
    }
    arguments 33 lines
  • bookeo_get_payment unknown never probed

    Get one payment: amount, method, reason, received time, customer and gateway transaction id. Bookeo: GET /payments/{id}.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The payment id."
        }
      }
    }
    arguments 13 lines
  • bookeo_get_api_key_info unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • bookeo_get_business unknown never probed

    Get the business's name, contact details, address, website and description. Bookeo: GET /settings/business.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • bookeo_list_products unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "lang": {
          "type": "string",
          "description": "Language for names/descriptions, e.g. en-US."
        },
        "type": {
          "enum": [
            "fixed",
            "fixedCourse",
            "flexibleTime"
          ],
          "type": "string",
          "description": "Only this product type. Omit for all."
        },
        "pageNumber": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 1,
          "description": "Page to fetch (1-based). Used together with pageNavigationToken."
        },
        "itemsPerPage": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Items per page, 1-100 (Bookeo default 50)."
        },
        "pageNavigationToken": {
          "type": "string",
          "description": "Token from a previous response's info.pageNavigationToken, to fetch another page. Search parameters need not be repeated."
        }
      }
    }
    arguments 35 lines
  • bookeo_list_people_categories unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • bookeo_list_resources unknown never probed

    List resource types and their resources (guides, instructors, rooms, boats...) with ids. Bookeo: GET /settings/resources.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "pageNumber": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 1,
          "description": "Page to fetch (1-based). Used together with pageNavigationToken."
        },
        "itemsPerPage": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Items per page, 1-100 (Bookeo default 50)."
        },
        "pageNavigationToken": {
          "type": "string",
          "description": "Token from a previous response's info.pageNavigationToken, to fetch another page. Search parameters need not be repeated."
        }
      }
    }
    arguments 22 lines
  • bookeo_get_availability_slots unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "mode": {
          "enum": [
            "backend"
          ],
          "type": "string",
          "description": "Set to \"backend\" to act as a manager, relaxing customer-facing limits (time in advance, participant limits, change windows)."
        },
        "endTime": {
          "type": "string",
          "description": "Search window end, max 31 days after start (required unless paging) — RFC 3339 date-time, e.g. 2026-10-01T09:00:00-04:00. The offset -00:00 means the account's local timezone."
        },
        "productId": {
          "type": "string",
          "description": "Only this product. Omit for all fixed/fixedCourse products bookable by customers."
        },
        "startTime": {
          "type": "string",
          "description": "Search window start (required unless paging) — RFC 3339 date-time, e.g. 2026-10-01T09:00:00-04:00. The offset -00:00 means the account's local timezone."
        },
        "pageNumber": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 1,
          "description": "Page to fetch (1-based). Used together with pageNavigationToken."
        },
        "itemsPerPage": {
          "type": "integer",
          "maximum": 300,
          "minimum": 1,
          "description": "Items per page, 1-300 (Bookeo default 50)."
        },
        "pageNavigationToken": {
          "type": "string",
          "description": "Token from a previous response's info.pageNavigationToken, to fetch another page. Search parameters need not be repeated."
        }
      }
    }
    arguments 41 lines
  • bookeo_search_matching_slots unknown never probed

    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}.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "mode": {
          "enum": [
            "backend"
          ],
          "type": "string",
          "description": "Set to \"backend\" to act as a manager, relaxing customer-facing limits (time in advance, participant limits, change windows)."
        },
        "endTime": {
          "type": "string",
          "description": "Search window end, max 31 days after start (required for a new search) — RFC 3339 date-time, e.g. 2026-10-01T09:00:00-04:00. The offset -00:00 means the account's local timezone."
        },
        "options": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "value"
            ],
            "properties": {
              "id": {
                "type": "string",
                "description": "Option id (from the product's choice/number/onOff/textOptions)."
              },
              "name": {
                "type": "string",
                "description": "Option name, as an alternative to id."
              },
              "value": {
                "type": "string",
                "description": "Option value: \"true\"/\"false\" for on/off options, a number as a string, the chosen value's name, or free text."
              }
            }
          },
          "description": "Product options (see bookeo_list_products)."
        },
        "productId": {
          "type": "string",
          "description": "Product id (required for a new search)."
        },
        "resources": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "description": "Resource id (see bookeo_list_resources)."
              }
            }
          },
          "description": "Resources (e.g. a specific guide or instructor) — for flexibleTime products."
        },
        "startTime": {
          "type": "string",
          "description": "Search window start (required for a new search) — RFC 3339 date-time, e.g. 2026-10-01T09:00:00-04:00. The offset -00:00 means the account's local timezone."
        },
        "pageNumber": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 1,
          "description": "Page to fetch (1-based). Used together with pageNavigationToken."
        },
        "itemsPerPage": {
          "type": "integer",
          "maximum": 300,
          "minimum": 1,
          "description": "Items per page, 1-300 (Bookeo default 50)."
        },
        "peopleNumbers": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "peopleCategoryId",
              "number"
            ],
            "properties": {
              "number": {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": 0,
                "description": "How many people of this category."
              },
              "peopleCategoryId": {
                "type": "string",
                "description": "People category id, e.g. Cadults, Cchildren, Cinfants or a custom id (see bookeo_list_people_categories)."
              }
            }
          },
          "minItems": 1,
          "description": "Participant counts per people category (required for a new search)."
        },
        "pageNavigationToken": {
          "type": "string",
          "description": "To fetch another page of a previous search: its info.pageNavigationToken. The other search fields are then ignored."
        }
      }
    }
    arguments 105 lines
  • bookeo_list_bookings unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "endTime": {
          "type": "string",
          "description": "Only bookings starting on/before this (max 31 days after startTime) — RFC 3339 date-time, e.g. 2026-10-01T09:00:00-04:00. The offset -00:00 means the account's local timezone."
        },
        "productId": {
          "type": "string",
          "description": "Only bookings for this product."
        },
        "startTime": {
          "type": "string",
          "description": "Only bookings starting on/after this (pair with endTime) — RFC 3339 date-time, e.g. 2026-10-01T09:00:00-04:00. The offset -00:00 means the account's local timezone."
        },
        "pageNumber": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 1,
          "description": "Page to fetch (1-based). Used together with pageNavigationToken."
        },
        "itemsPerPage": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Items per page, 1-100 (Bookeo default 50)."
        },
        "expandCustomer": {
          "type": "boolean",
          "description": "Include full customer details."
        },
        "includeCanceled": {
          "type": "boolean",
          "description": "Include canceled bookings (default false)."
        },
        "expandParticipants": {
          "type": "boolean",
          "description": "Include full participant details."
        },
        "lastUpdatedEndTime": {
          "type": "string",
          "description": "Only bookings changed/created on/before this (max 31 days) — RFC 3339 date-time, e.g. 2026-10-01T09:00:00-04:00. The offset -00:00 means the account's local timezone."
        },
        "pageNavigationToken": {
          "type": "string",
          "description": "Token from a previous response's info.pageNavigationToken, to fetch another page. Search parameters need not be repeated."
        },
        "lastUpdatedStartTime": {
          "type": "string",
          "description": "Only bookings changed/created on/after this (pair with lastUpdatedEndTime) — RFC 3339 date-time, e.g. 2026-10-01T09:00:00-04:00. The offset -00:00 means the account's local timezone."
        }
      }
    }
    arguments 54 lines
  • bookeo_get_booking unknown never probed

    Get one booking by its booking number: product, times, participants, options, price, paid amount, status (canceled/accepted/noShow). Bookeo: GET /bookings/{bookingNumber}.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "bookingNumber"
      ],
      "properties": {
        "bookingNumber": {
          "type": "string",
          "description": "The booking number (always a string)."
        },
        "expandCustomer": {
          "type": "boolean",
          "description": "Include full customer details."
        },
        "expandParticipants": {
          "type": "boolean",
          "description": "Include full participant details."
        }
      }
    }
    arguments 21 lines
  • bookeo_list_booking_payments unknown never probed

    List the payments (and refunds, as negative amounts) received for one booking. Bookeo: GET /bookings/{bookingNumber}/payments.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "bookingNumber"
      ],
      "properties": {
        "pageNumber": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 1,
          "description": "Page to fetch (1-based). Used together with pageNavigationToken."
        },
        "itemsPerPage": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Items per page, 1-100 (Bookeo default 50)."
        },
        "bookingNumber": {
          "type": "string",
          "description": "The booking number."
        },
        "pageNavigationToken": {
          "type": "string",
          "description": "Token from a previous response's info.pageNavigationToken, to fetch another page. Search parameters need not be repeated."
        }
      }
    }
    arguments 29 lines
  • bookeo_list_customers unknown never probed

    List or search customers — by name, firstName, lastName or emailAddress — optionally only members/non-members or those created since a date. Bookeo: GET /customers.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "pageNumber": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 1,
          "description": "Page to fetch (1-based). Used together with pageNavigationToken."
        },
        "searchText": {
          "type": "string",
          "description": "Text to search for. Omit to list all."
        },
        "searchField": {
          "enum": [
            "name",
            "firstName",
            "lastName",
            "emailAddress"
          ],
          "type": "string",
          "description": "Field searchText applies to (default name)."
        },
        "createdSince": {
          "type": "string",
          "description": "Only customers created since this time — RFC 3339 date-time, e.g. 2026-10-01T09:00:00-04:00. The offset -00:00 means the account's local timezone."
        },
        "itemsPerPage": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Items per page, 1-100 (Bookeo default 50)."
        },
        "currentMembers": {
          "type": "boolean",
          "description": "Include current members (default true)."
        },
        "currentNonMembers": {
          "type": "boolean",
          "description": "Include non-members (default true)."
        },
        "pageNavigationToken": {
          "type": "string",
          "description": "Token from a previous response's info.pageNavigationToken, to fetch another page. Search parameters need not be repeated."
        }
      }
    }
    arguments 48 lines
  • bookeo_get_customer unknown never probed

    Get one customer: contact details, next/previous booking, number of bookings, cancellations and no-shows, membership and store credit. Bookeo: GET /customers/{id}.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The customer id."
        }
      }
    }
    arguments 13 lines
  • bookeo_create_hold unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "productId",
        "peopleNumbers"
      ],
      "properties": {
        "endTime": {
          "type": "string",
          "description": "Optional forced end time for flexibleTime products (otherwise Bookeo computes the duration) — RFC 3339 date-time, e.g. 2026-10-01T09:00:00-04:00. The offset -00:00 means the account's local timezone."
        },
        "eventId": {
          "type": "string",
          "description": "Slot id from bookeo_get_availability_slots / bookeo_search_matching_slots. REQUIRED for fixed and fixedCourse products; optional for flexibleTime (use startTime instead)."
        },
        "options": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "value"
            ],
            "properties": {
              "id": {
                "type": "string",
                "description": "Option id (from the product's choice/number/onOff/textOptions)."
              },
              "name": {
                "type": "string",
                "description": "Option name, as an alternative to id."
              },
              "value": {
                "type": "string",
                "description": "Option value: \"true\"/\"false\" for on/off options, a number as a string, the chosen value's name, or free text."
              }
            }
          },
          "description": "Product options (see bookeo_list_products)."
        },
        "customer": {
          "type": "object",
          "required": [
            "firstName",
            "lastName"
          ],
          "properties": {
            "lastName": {
              "type": "string"
            },
            "firstName": {
              "type": "string"
            },
            "emailAddress": {
              "type": "string"
            },
            "phoneNumbers": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "number",
                  "type"
                ],
                "properties": {
                  "type": {
                    "enum": [
                      "mobile",
                      "work",
                      "home",
                      "fax"
                    ],
                    "type": "string"
                  },
                  "number": {
                    "type": "string"
                  }
                }
              }
            },
            "streetAddress": {
              "type": "object",
              "properties": {
                "city": {
                  "type": "string"
                },
                "state": {
                  "type": "string"
                },
                "address1": {
                  "type": "string"
                },
                "address2": {
                  "type": "string"
                },
                "postcode": {
                  "type": "string"
                },
                "countryCode": {
                  "type": "string",
                  "description": "ISO 3166-1 alpha-2, e.g. US."
                }
              }
            }
          },
          "description": "A NEW customer to create together with the booking. Use customerId instead for an existing customer."
        },
        "productId": {
          "type": "string",
          "description": "Product id (see bookeo_list_products)."
        },
        "resources": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "description": "Resource id (see bookeo_list_resources)."
              }
            }
          },
          "description": "Resources (e.g. a specific guide or instructor) — for flexibleTime products."
        },
        "startTime": {
          "type": "string",
          "description": "Start time, for flexibleTime products when no eventId is given — RFC 3339 date-time, e.g. 2026-10-01T09:00:00-04:00. The offset -00:00 means the account's local timezone."
        },
        "customerId": {
          "type": "string",
          "description": "Id of an EXISTING customer (see bookeo_list_customers)."
        },
        "externalRef": {
          "type": "string",
          "maxLength": 64,
          "description": "Your own reference for this booking (max 64 chars)."
        },
        "privateEvent": {
          "type": "boolean",
          "description": "Reserve the entire event, if the product allows it."
        },
        "peopleNumbers": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "peopleCategoryId",
              "number"
            ],
            "properties": {
              "number": {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": 0,
                "description": "How many people of this category."
              },
              "peopleCategoryId": {
                "type": "string",
                "description": "People category id, e.g. Cadults, Cchildren, Cinfants or a custom id (see bookeo_list_people_categories)."
              }
            }
          },
          "minItems": 1,
          "description": "Participant counts per people category."
        },
        "previousHoldId": {
          "type": "string",
          "description": "A previous hold in the same session, replaced by this one."
        },
        "promotionCodeInput": {
          "type": "string",
          "description": "Promotion code(s), comma-separated."
        },
        "holdDurationSeconds": {
          "type": "integer",
          "maximum": 600,
          "minimum": 1,
          "description": "How long to hold, in seconds (default 300, max 600)."
        }
      }
    }
    arguments 184 lines
  • bookeo_create_booking unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "productId",
        "peopleNumbers"
      ],
      "properties": {
        "mode": {
          "enum": [
            "backend"
          ],
          "type": "string",
          "description": "Set to \"backend\" to act as a manager, relaxing customer-facing limits (time in advance, participant limits, change windows)."
        },
        "endTime": {
          "type": "string",
          "description": "Optional forced end time for flexibleTime products (otherwise Bookeo computes the duration) — RFC 3339 date-time, e.g. 2026-10-01T09:00:00-04:00. The offset -00:00 means the account's local timezone."
        },
        "eventId": {
          "type": "string",
          "description": "Slot id from bookeo_get_availability_slots / bookeo_search_matching_slots. REQUIRED for fixed and fixedCourse products; optional for flexibleTime (use startTime instead)."
        },
        "options": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "value"
            ],
            "properties": {
              "id": {
                "type": "string",
                "description": "Option id (from the product's choice/number/onOff/textOptions)."
              },
              "name": {
                "type": "string",
                "description": "Option name, as an alternative to id."
              },
              "value": {
                "type": "string",
                "description": "Option value: \"true\"/\"false\" for on/off options, a number as a string, the chosen value's name, or free text."
              }
            }
          },
          "description": "Product options (see bookeo_list_products)."
        },
        "customer": {
          "type": "object",
          "required": [
            "firstName",
            "lastName"
          ],
          "properties": {
            "lastName": {
              "type": "string"
            },
            "firstName": {
              "type": "string"
            },
            "emailAddress": {
              "type": "string"
            },
            "phoneNumbers": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "number",
                  "type"
                ],
                "properties": {
                  "type": {
                    "enum": [
                      "mobile",
                      "work",
                      "home",
                      "fax"
                    ],
                    "type": "string"
                  },
                  "number": {
                    "type": "string"
                  }
                }
              }
            },
            "streetAddress": {
              "type": "object",
              "properties": {
                "city": {
                  "type": "string"
                },
                "state": {
                  "type": "string"
                },
                "address1": {
                  "type": "string"
                },
                "address2": {
                  "type": "string"
                },
                "postcode": {
                  "type": "string"
                },
                "countryCode": {
                  "type": "string",
                  "description": "ISO 3166-1 alpha-2, e.g. US."
                }
              }
            }
          },
          "description": "A NEW customer to create together with the booking. Use customerId instead for an existing customer."
        },
        "productId": {
          "type": "string",
          "description": "Product id (see bookeo_list_products)."
        },
        "resources": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "description": "Resource id (see bookeo_list_resources)."
              }
            }
          },
          "description": "Resources (e.g. a specific guide or instructor) — for flexibleTime products."
        },
        "startTime": {
          "type": "string",
          "description": "Start time, for flexibleTime products when no eventId is given — RFC 3339 date-time, e.g. 2026-10-01T09:00:00-04:00. The offset -00:00 means the account's local timezone."
        },
        "customerId": {
          "type": "string",
          "description": "Id of an EXISTING customer (see bookeo_list_customers)."
        },
        "externalRef": {
          "type": "string",
          "maxLength": 64,
          "description": "Your own reference for this booking (max 64 chars)."
        },
        "notifyUsers": {
          "type": "boolean",
          "description": "Email/SMS the business's staff."
        },
        "privateEvent": {
          "type": "boolean",
          "description": "Reserve the entire event, if the product allows it."
        },
        "peopleNumbers": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "peopleCategoryId",
              "number"
            ],
            "properties": {
              "number": {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": 0,
                "description": "How many people of this category."
              },
              "peopleCategoryId": {
                "type": "string",
                "description": "People category id, e.g. Cadults, Cchildren, Cinfants or a custom id (see bookeo_list_people_categories)."
              }
            }
          },
          "minItems": 1,
          "description": "Participant counts per people category."
        },
        "notifyCustomer": {
          "type": "boolean",
          "description": "Send the customer a confirmation email."
        },
        "previousHoldId": {
          "type": "string",
          "description": "Hold id from bookeo_create_hold; it is released on success."
        },
        "promotionCodeInput": {
          "type": "string",
          "description": "Promotion code(s), comma-separated."
        },
        "sendCustomerThankyou": {
          "type": "boolean",
          "description": "Send the customer a thank-you after the booking."
        },
        "sendCustomerReminders": {
          "type": "boolean",
          "description": "Send the customer reminders before the booking."
        }
      }
    }
    arguments 201 lines
  • bookeo_update_booking unknown never probed

    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}.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "bookingNumber"
      ],
      "properties": {
        "mode": {
          "enum": [
            "backend"
          ],
          "type": "string",
          "description": "Set to \"backend\" to act as a manager, relaxing customer-facing limits (time in advance, participant limits, change windows)."
        },
        "endTime": {
          "type": "string",
          "description": "New end time (flexibleTime) — RFC 3339 date-time, e.g. 2026-10-01T09:00:00-04:00. The offset -00:00 means the account's local timezone."
        },
        "eventId": {
          "type": "string",
          "description": "New slot id (reschedule a fixed/fixedCourse booking)."
        },
        "options": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "value"
            ],
            "properties": {
              "id": {
                "type": "string",
                "description": "Option id (from the product's choice/number/onOff/textOptions)."
              },
              "name": {
                "type": "string",
                "description": "Option name, as an alternative to id."
              },
              "value": {
                "type": "string",
                "description": "Option value: \"true\"/\"false\" for on/off options, a number as a string, the chosen value's name, or free text."
              }
            }
          },
          "description": "Product options (see bookeo_list_products)."
        },
        "resources": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "description": "Resource id (see bookeo_list_resources)."
              }
            }
          },
          "description": "Resources (e.g. a specific guide or instructor) — for flexibleTime products."
        },
        "startTime": {
          "type": "string",
          "description": "New start time (flexibleTime) — RFC 3339 date-time, e.g. 2026-10-01T09:00:00-04:00. The offset -00:00 means the account's local timezone."
        },
        "externalRef": {
          "type": "string",
          "maxLength": 64
        },
        "notifyUsers": {
          "type": "boolean",
          "description": "Email/SMS the business's staff about the change."
        },
        "bookingNumber": {
          "type": "string",
          "description": "The booking number."
        },
        "peopleNumbers": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "peopleCategoryId",
              "number"
            ],
            "properties": {
              "number": {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": 0,
                "description": "How many people of this category."
              },
              "peopleCategoryId": {
                "type": "string",
                "description": "People category id, e.g. Cadults, Cchildren, Cinfants or a custom id (see bookeo_list_people_categories)."
              }
            }
          },
          "minItems": 1,
          "description": "New participant counts per category (replaces the current ones)."
        },
        "notifyCustomer": {
          "type": "boolean",
          "description": "Email the customer about the change."
        },
        "promotionCodeInput": {
          "type": "string"
        }
      }
    }
    arguments 111 lines
  • bookeo_create_customer unknown never probed

    Create a customer record. Not needed before booking — bookeo_create_booking can create the customer inline. Bookeo: POST /customers.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "firstName",
        "lastName"
      ],
      "properties": {
        "gender": {
          "enum": [
            "male",
            "female",
            "unknown"
          ],
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "firstName": {
          "type": "string"
        },
        "middleName": {
          "type": "string"
        },
        "dateOfBirth": {
          "type": "string",
          "description": "RFC 3339 full-date, e.g. 1990-04-23."
        },
        "emailAddress": {
          "type": "string"
        },
        "languageCode": {
          "type": "string",
          "description": "Preferred language, e.g. en_US (underscore, not dash)."
        },
        "phoneNumbers": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "number",
              "type"
            ],
            "properties": {
              "type": {
                "enum": [
                  "mobile",
                  "work",
                  "home",
                  "fax"
                ],
                "type": "string"
              },
              "number": {
                "type": "string"
              }
            }
          }
        },
        "streetAddress": {
          "type": "object",
          "properties": {
            "city": {
              "type": "string"
            },
            "state": {
              "type": "string"
            },
            "address1": {
              "type": "string"
            },
            "address2": {
              "type": "string"
            },
            "postcode": {
              "type": "string"
            },
            "countryCode": {
              "type": "string",
              "description": "ISO 3166-1 alpha-2, e.g. US."
            }
          }
        },
        "acceptSmsReminders": {
          "type": "boolean"
        }
      }
    }
    arguments 89 lines
  • bookeo_update_customer unknown never probed

    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}.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The customer id."
        },
        "gender": {
          "enum": [
            "male",
            "female",
            "unknown"
          ],
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "firstName": {
          "type": "string"
        },
        "middleName": {
          "type": "string"
        },
        "dateOfBirth": {
          "type": "string",
          "description": "RFC 3339 full-date, e.g. 1990-04-23."
        },
        "emailAddress": {
          "type": "string"
        },
        "languageCode": {
          "type": "string",
          "description": "Preferred language, e.g. en_US (underscore, not dash)."
        },
        "phoneNumbers": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "number",
              "type"
            ],
            "properties": {
              "type": {
                "enum": [
                  "mobile",
                  "work",
                  "home",
                  "fax"
                ],
                "type": "string"
              },
              "number": {
                "type": "string"
              }
            }
          }
        },
        "streetAddress": {
          "type": "object",
          "properties": {
            "city": {
              "type": "string"
            },
            "state": {
              "type": "string"
            },
            "address1": {
              "type": "string"
            },
            "address2": {
              "type": "string"
            },
            "postcode": {
              "type": "string"
            },
            "countryCode": {
              "type": "string",
              "description": "ISO 3166-1 alpha-2, e.g. US."
            }
          }
        },
        "acceptSmsReminders": {
          "type": "boolean"
        }
      }
    }
    arguments 92 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/89df33f83674bc79/badge.svg)](https://brick.blue/agent/89df33f83674bc79)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Own the domain? Prove it and the listing carries a verified badge here too: passport.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.

_ also on usefulapi.io 62 entries

Served from the same domain, which is what was measured. Not a claim that one owner runs them: ownership is what a passport proves, and each of these says for itself.

54 more sit on this domain. All of them.