bookd
Registry code: 608c873227fb61df
Bookd lets guests book independent stays directly (small hotels, B&Bs, guesthouses, and vacation rentals such as apartments, houses, villas and cabins), at the property's own direct price.
Flow: search_stays (or get_property / check_availability for a known property) -> confirm room, dates, guests, name and email with the guest -> request_booking -> show the payment_url (if any) and the booking_id -> booking_status later. To cancel: cancel_booking with confirm=false, tell the guest the refund, then confirm=true only if they agree.
- endpoint
- https://mcp.bookd.direct/mcp
- protocol
- http-sse ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is bookd live?
- Yes — it answered the hub's last check (checked 1h ago). It answered 100% of checks over the last 30 days.
- Is bookd free to use?
- Yes — the hub reached it with no key and no payment.
- What tools does bookd have?
- 6 tools: check_availability, request_booking, booking_status, cancel_booking, get_property, search_stays.
- Is bookd safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 100%· all time 100%
last good check
of 6 tools
- unknown → live
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Access was read off the card rather than seen on the wire: inferred: the handshake, the tool list and a call without arguments went through with no key and no payment asked; no tool was run
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.
check_availability unknown 1h ago
Read-only. Live availability for one Bookd property and dates (re-reads the owner's calendars first; nothing is booked or held), with room/unit prices, totals including any cleaning fee and taxes, cancellation policy and any deposit due.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "slug", "check_in", "check_out" ], "properties": { "slug": { "type": "string", "pattern": "^[a-z0-9-]{2,60}$", "description": "Property slug, e.g. \"seaview-house-doolin\"" }, "guests": { "type": "integer", "default": 1, "maximum": 20, "minimum": 1 }, "check_in": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "description": "YYYY-MM-DD" }, "check_out": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "description": "YYYY-MM-DD" } } }arguments 32 linesrequest_booking unknown never probed
Send a booking request to the property (hotel, B&B, guesthouse or vacation rental) for a room or unit and dates. The resulting stay contract is directly between the guest and the property; Bookd is only the booking platform. Only call after the guest has confirmed the room, dates, guests, and given their name and email. Returns a booking_id and, when online payments are on, a payment_url for the deposit (card held, charged only if the owner accepts). Side effects: sends the request to the property by email (the guest is emailed when the property answers) and holds the room until the owner answers or the request expires. Not idempotent: each call creates a new request, so do not retry after a booking_id is returned (use booking_status). The guest pays the property directly; Bookd never handles guest money.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "slug", "check_in", "check_out", "guests", "guest_name", "guest_email" ], "properties": { "room": { "type": "string", "maxLength": 100, "description": "Room name from check_availability; omit for the cheapest free room" }, "slug": { "type": "string", "pattern": "^[a-z0-9-]{2,60}$", "description": "Property slug, e.g. \"seaview-house-doolin\"" }, "guests": { "type": "integer", "maximum": 20, "minimum": 1 }, "message": { "type": "string", "maxLength": 1000, "description": "Note for the owner, e.g. arrival time" }, "check_in": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "description": "YYYY-MM-DD" }, "check_out": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "description": "YYYY-MM-DD" }, "guest_name": { "type": "string", "maxLength": 120, "minLength": 1 }, "guest_email": { "type": "string", "format": "email", "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", "maxLength": 200 }, "guest_phone": { "type": "string", "maxLength": 40 }, "creator_code": { "type": "string", "maxLength": 40, "description": "Optional: a creator or promo code the guest mentions (e.g. from a video). Only pass one the guest gave you; never invent or suggest one." } } }arguments 64 linesbooking_status unknown never probed
Read-only. Status of a Bookd booking by its booking_id (e.g. BKD-AB12CD3): requested, accepted, declined, expired or cancelled, with dates, room and price. Returns no guest personal data.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "booking_id" ], "properties": { "booking_id": { "type": "string", "maxLength": 20 } } }arguments 13 linescancel_booking unknown never probed
Cancel a Bookd booking for the guest. First call with confirm=false to see the refund under the property's policy and tell the guest; only call with confirm=true after the guest explicitly agrees. Needs the booking_id and the email used to book. confirm=false changes nothing. confirm=true cancels for good (it cannot be undone): it releases any card hold or refunds under the policy on the property's own Stripe account, frees the dates, and emails the property and the guest.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "booking_id", "guest_email" ], "properties": { "confirm": { "type": "boolean", "default": false }, "booking_id": { "type": "string", "maxLength": 20 }, "guest_email": { "type": "string", "format": "email", "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", "maxLength": 200 } } }arguments 24 linesget_property unknown 1h ago
Read-only. Full details of one Bookd property by its slug (from search_stays or a Bookd link): type, description, photos, amenities, house rules, check-in/out times, rooms or units (bedrooms, bathrooms, beds, cleaning fee) and prices from, taxes, cancellation policy and any damage deposit (held by the property).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "slug" ], "properties": { "slug": { "type": "string", "pattern": "^[a-z0-9-]{2,60}$", "description": "Property slug, e.g. \"seaview-house-doolin\"" } } }arguments 14 linessearch_stays unknown 1h ago
Find independent stays bookable direct on Bookd (hotels, B&Bs, guesthouses, apartments, houses, villas, cabins) for a location and dates. Read-only: nothing is booked or held. Bookd properties come first: only properties with a room or unit free for every night are returned, cheapest first (exact town matches first), paginated. Each result has nightly price, total_price (incl. any cleaning fee and taxes), cancellation policy, bedrooms/bathrooms/beds for whole homes, any information-only damage deposit held by the property, and any deposit due (only when the property takes card deposits; otherwise the guest pays the property directly). If no Bookd property matches a location, the result has partner_results instead: links to partner hotels (accommodation only) on Trip.com and a Stay22 map for that place, dates and guests, with min_price, max_price, stars and currency applied. Partner hotels are not Bookd properties: the guest books and pays on Trip.com or the partner site, under that site's terms, and Bookd may earn a commission. Never call request_booking for them. Finding the partner city sends only the location text to Trip.com.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "check_in", "check_out" ], "properties": { "page": { "type": "integer", "default": 1, "maximum": 100, "minimum": 1, "description": "Results page (see has_more / next_page)" }, "limit": { "type": "integer", "default": 10, "maximum": 25, "minimum": 1, "description": "Results per page" }, "stars": { "type": "integer", "maximum": 5, "minimum": 3, "description": "Minimum star rating (3, 4 or 5) for partner hotel links. Bookd properties have no star rating and are never hidden by it." }, "guests": { "type": "integer", "default": 2, "maximum": 20, "minimum": 1 }, "check_in": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "description": "YYYY-MM-DD" }, "currency": { "enum": [ "USD", "EUR", "GBP" ], "type": "string", "description": "Currency for partner hotel links and their price filter. Default: local currency of the place (EUR in the euro area, GBP in the UK, else USD)." }, "location": { "type": "string", "maxLength": 100, "description": "Town, county/state or country, e.g. \"Doolin\", \"County Clare\", \"Ireland\", \"UK\", \"North Carolina\", \"United States\". Empty = everywhere." }, "min_beds": { "type": "integer", "maximum": 100, "minimum": 0 }, "check_out": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "description": "YYYY-MM-DD" }, "max_price": { "type": "number", "maximum": 10000, "description": "Max price per room or unit per night. Bookd properties: in the property currency. Partner hotel links: in currency.", "exclusiveMinimum": 0 }, "min_price": { "type": "number", "maximum": 10000, "description": "Min price per room or unit per night. Bookd properties: in the property currency. Partner hotel links: in currency.", "exclusiveMinimum": 0 }, "whole_home": { "type": "boolean", "description": "true = only whole homes (apartment, condo, house, villa, cabin, cottage, chalet)" }, "min_bedrooms": { "type": "integer", "maximum": 50, "minimum": 0 }, "min_bathrooms": { "type": "number", "maximum": 50, "minimum": 0 }, "property_type": { "anyOf": [ { "type": "string", "maxLength": 40 }, { "type": "array", "items": { "type": "string", "maxLength": 40 }, "maxItems": 10 } ], "description": "Filter by type: hotel, bnb, guesthouse, inn, hostel, motel, lodge, apartment, condo, house, villa, cabin, cottage, chalet, other (\"B&B\" and \"vacation rental\" are understood)" } } }arguments 108 lines
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.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's id608c873227fb61df.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/608c873227fb61df/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/608c873227fb61df?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
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.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- 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.