# Bookd

> Search and request stays at independent hotels, B&Bs, guesthouses and vacation rentals, direct.

- name: direct.bookd/stays
- version: 0.2.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 85/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/direct.bookd%2Fstays
- tools: https://api.protogrid.dev/v1/servers/direct.bookd%2Fstays/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "stays": {
      "type": "http",
      "url": "https://mcp.bookd.direct/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-2d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 85/100 (new)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 93 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 2 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 6 of 6 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 2,349 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 1 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 6, about 2,349 tokens to load them all
- tool set hash: 34736ea59df01aa66c261653cc5acf80
- tools last changed: 2026-10-18T18:11:47.208Z
- badge: [![protogrid quality](https://protogrid.dev/badge/direct.bookd/stays.svg)](https://protogrid.dev/servers/direct.bookd/stays)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-18 `cancel_booking` changed (description)
  - before: 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.
  - after: 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 cancels it in the property's booking system when it is connected), and emails the property and the guest.
- 2026-10-18 `booking_status` changed (description)
  - before: 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.
  - after: Read-only. Status of a Bookd booking by its booking_id (e.g. BKD-AB12CD3): requested, accepted (= confirmed, including instant bookings), declined, expired or cancelled, with dates, room and price. Returns no guest personal data.
- 2026-10-18 `request_booking` changed (description)
  - before: 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.
  - after: 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). Usually status is "requested": the request is emailed to the property (the guest is emailed when it answers) and the room is held until the owner answers or the request expires. Instant booking: for properties with instant_booking=true, Bookd checks the room live in the property's own booking system; if it is available, the booking is made there at once and status is "confirmed" (with the booking_id; the guest and property are emailed). With a deposit, the reply has instant_booking=true and a payment_url, and the booking is confirmed as soon as the deposit is paid (check booking_status). If the live check or write fails it stays a normal request; if the room was just taken, an error says nothing was booked. Only tell the guest it is confirmed when status is "confirmed". 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.

Full history: https://api.protogrid.dev/v1/servers/direct.bookd%2Fstays/changes

## Remotes

- https://mcp.bookd.direct/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (6)

- `booking_status`: Read-only. Status of a Bookd booking by its booking_id (e.g. BKD-AB12CD3): requested, accepted (= confirmed, including instant bookings), declined, expired or cancelled, with dates, room and price. Returns no guest personal data.
- `cancel_booking`: 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 cancels it in the property's booking system when it is connected), and emails the property and the guest.
- `check_availability`: 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.
- `get_property`: 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).
- `request_booking`: 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). Usually status is "requested": the request is emailed to the property (the guest is emailed when it answers) and the room is held until the owner answers or the request expires. Instant booking: for properties with instant_booking=true, Bookd checks the room live in the property's own booking system; if it is available, the booking is made there at once and status is "confirmed" (with the booking_id; the guest and property are emailed). With a deposit, the reply has instant_booking=true and a payment_url, and the booking is confirmed as soon as the deposit is paid (check booking_status). If the live check or write fails it stays a normal request; if the room was just taken, an error says nothing was booked. Only tell the guest it is confirmed when status is "confirmed". 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.
- `search_stays`: 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.
