Skip to main content
Glama

Server Details

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

Ownership verified
Status
Healthy
Uptime
100.0% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4.2/5.0

Scored across 6 tools

Disambiguation4/5

search_stays, check_availability, and get_property all expose property/date information, so there is some potential overlap, but the descriptions distinguish discovery, live availability for one property, and property detail. The booking lifecycle tools request_booking, booking_status, and cancel_booking are clearly distinct.

Naming Consistency4/5

Snake_case is used consistently and five of six names follow a verb_noun pattern. booking_status is the lone noun-first exception; get_booking_status would make the convention uniform.

Tool Count5/5

Six tools cover the core booking journey without obvious redundancy: search, inspect property, check availability, request booking, check status, and cancel. This is well within the appropriate 3-15 range for a focused booking server.

Completeness4/5

The core lifecycle is covered from discovery through booking, status checking, and cancellation, including payment URLs and partner fallback results. The main gap is no modify/change-booking operation or list-bookings-by-guest tool, but these are minor for the stated direct-booking scope.

Available Tools

6 tools
booking_statusBooking statusA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
booking_idYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly, idempotent and non-destructive semantics, so the bar is lower; the description nonetheless adds real value by enumerating the returnable statuses (including the non-obvious 'accepted = confirmed, including instant bookings') and by disclosing that no guest personal data is returned. It stops short of noting anything about lookup failure behavior for unknown IDs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences plus a lead-in, front-loaded with the read-only nature and the key noun, then the status enumeration. Every clause carries information; nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description correctly carries the return-value burden by listing statuses and the fields returned (dates, room, price) plus a privacy caveat. For a single-parameter read tool this is complete enough to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With one parameter and 0% schema description coverage, the description compensates by naming the parameter's purpose ('by its booking_id') and supplying a concrete format example (BKD-AB12CD3), which the schema's maxLength alone does not convey. It does not state whether the ID is case-sensitive or how to obtain it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (read, retrieve status) and resource (Bookd booking) with an ID format example, and enumerates the exact status values returned. It is clearly distinguishable from siblings like cancel_booking or request_booking, which mutate state.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Read-only' opener and the status lookup framing imply the use case (checking an existing booking's state), but the description never states when to prefer this over siblings or what preconditions apply (e.g. that the booking must already exist). Adequate but with an explicit-guidance gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cancel_bookingCancel a bookingA
DestructiveIdempotent
Inspect

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.

NameRequiredDescriptionDefault
confirmNo
booking_idYes
guest_emailYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructive=true and idempotent=true, but the description adds substantial detail beyond them: confirm=false is a pure preview that changes nothing, confirm=true is irreversible, releases card holds/refunds via the property's own Stripe account, frees the dates, cancels in the connected booking system, and notifies property and guest. This is exactly the extra behavioral context the annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action and the safe-call protocol, and every clause adds operational meaning (refund preview, irreversibility, side effects). The final sentence is long and packs many effects together, but no sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and only 3 params, the description covers the call protocol, prerequisites, and all side effects of the destructive path, which is everything an agent needs to invoke it safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry the load, and it does: confirm is explained as preview-vs-commit, and both required parameters are named ('Needs the booking_id and the email used to book'), with the email disambiguated as the one used at booking time. It does not give formats or edge cases (e.g., email mismatch handling), keeping it below a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Cancel a Bookd booking') with scope ('for the guest'), and no sibling tool offers cancellation, so it is unambiguous against booking_status/request_booking/search_stays.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit two-step protocol: call with confirm=false first to see the refund under the property's policy, then only confirm=true after the guest explicitly agrees. This is a clear when-to-use and when-not-to-use instruction with a named prerequisite (guest consent).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_availabilityCheck availabilityA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
slugYesProperty slug, e.g. "seaview-house-doolin"
guestsNo
check_inYesYYYY-MM-DD
check_outYesYYYY-MM-DD

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the opening "Read-only" is largely redundant. What earns credit is behavior annotations do not cover: it re-reads the owner's calendars on each call and holds nothing, and it discloses the response contents (room/unit prices, totals with cleaning fee and taxes, cancellation policy, deposit due).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence that leads with the safety profile and then the payload; every clause carries information. It is a dense run-on list of return fields, but nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly compensates by enumerating what comes back, and the calendar re-read clarifies freshness. The main gap is the undocumented guests parameter and the absence of any hint about failure modes (unavailable dates, unknown slug).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%, with slug, check_in and check_out each already described (including formats) in the schema. The description only restates "one property and dates" and says nothing about the guests parameter or its bounds, so it adds little beyond structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: live availability for one property across a date range, with the return contents enumerated (prices, totals, fees, cancellation policy, deposit). The clause "nothing is booked or held" implicitly separates it from request_booking, but no sibling is named outright, so an agent still has to infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: read-only plus "nothing is booked or held" signals this is the pre-booking quote step before request_booking, but the description never says when to prefer it over search_stays or get_property, nor that a slug must first be discovered elsewhere. Adequate but leaves routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_propertyGet a Bookd propertyA
Read-onlyIdempotent
Inspect

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

NameRequiredDescriptionDefault
slugYesProperty slug, e.g. "seaview-house-doolin"

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/destructiveHint, so 'Read-only' is mildly redundant, but the description adds genuinely useful behavioral detail: deposits are 'held by the property' and taxes and cancellation policy are part of the payload. No permission or failure-mode context is given, which keeps it below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the mode and the one-line purpose before the field inventory. The enumeration is long but earns its place because there is no output schema to describe the response, and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by listing the returned fields (type, photos, amenities, house rules, rooms/units, fees, taxes, cancellation, deposit), and it covers the single input's source. Missing only minor operational detail such as error behavior for an unknown slug.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (pattern plus example), so the baseline is 3, but the description adds origin semantics for the slug value — it comes from search_stays or a Bookd link — which the schema does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (get) and a precisely scoped resource (one Bookd property, by slug), then enumerates the payload contents. It is clearly distinguishable from sibling search_stays, whose results feed the slug input.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells the agent where the slug originates ('from search_stays or a Bookd link'), which establishes the natural call sequence. It does not state when not to use it or name alternatives for other lookups, but the entry condition is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

request_bookingRequest a bookingA
Destructive
Inspect

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.

NameRequiredDescriptionDefault
roomNoRoom name from check_availability; omit for the cheapest free room
slugYesProperty slug, e.g. "seaview-house-doolin"
guestsYes
messageNoNote for the owner, e.g. arrival time
check_inYesYYYY-MM-DD
check_outYesYYYY-MM-DD
guest_nameYes
guest_emailYes
guest_phoneNo
creator_codeNoOptional: 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.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=false, and the description reinforces this with 'Not idempotent: each call creates a new request.' Beyond that it discloses substantial behavior the annotations cannot: the payment_url/deposit flow, instant_booking live-check semantics, the 'requested' vs 'confirmed' status lifecycle, error behavior when a room is just taken, and that Bookd never handles guest money. This is a rich disclosure well above the annotation bar.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then preconditions, then return values, then status semantics — a logical order. It is long, but nearly every sentence carries distinct operational information (payment, instant booking, error cases). Slightly dense, but not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must explain returns — and it does: booking_id, optional payment_url, and the meaning of 'requested' vs 'confirmed'. Combined with error-case and idempotency guidance, an agent has everything needed to invoke and interpret the call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 60%, so the schema already documents room, message, creator_code, slug, and date formats. The description reinforces required inputs (room, dates, guests, name, email) but adds no syntax or format detail for the undocumented parameters (guest_phone, check-out semantics) beyond what the schema provides, so it lands at the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (send a booking request) and resource (a stay at a property for a room/unit and dates), and distinguishes itself from siblings by naming booking_status for follow-up and check_availability implicitly via the room parameter. An agent can tell it apart from cancel_booking or search_stays without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit precondition: 'Only call after the guest has confirmed the room, dates, guests, and given their name and email.' It also gives an explicit do-not: 'do not retry after a booking_id is returned (use booking_status),' naming the alternative tool. When-to-use and when-not-to-use are both covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_staysSearch stays on BookdA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
pageNoResults page (see has_more / next_page)
limitNoResults per page
starsNoMinimum star rating (3, 4 or 5) for partner hotel links. Bookd properties have no star rating and are never hidden by it.
guestsNo
check_inYesYYYY-MM-DD
currencyNoCurrency for partner hotel links and their price filter. Default: local currency of the place (EUR in the euro area, GBP in the UK, INR in India, else USD).
locationNoTown, county/state or country, e.g. "Doolin", "County Clare", "Ireland", "UK", "North Carolina", "United States". Empty = everywhere.
min_bedsNo
check_outYesYYYY-MM-DD
max_priceNoMax price per room or unit per night. Bookd properties: in the property currency. Partner hotel links: in currency.
min_priceNoMin price per room or unit per night. Bookd properties: in the property currency. Partner hotel links: in currency.
whole_homeNotrue = only whole homes (apartment, condo, house, villa, cabin, cottage, chalet)
min_bedroomsNo
min_bathroomsNo
property_typeNoFilter by type: hotel, bnb, guesthouse, inn, hostel, motel, lodge, apartment, condo, house, villa, cabin, cottage, chalet, other ("B&B" and "vacation rental" are understood)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the read-only/idempotent annotations: discloses availability filtering (only properties free every night), result ordering (cheapest first, exact town matches first), pagination, all returned fields including deposit handling rules, the partner_results fallback and its commercial/terms implications, and a privacy note that only location text is sent to Trip.com.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense paragraph with the core purpose front-loaded and the partner fallback placed after the primary behavior. It is long, but nearly every clause carries operational information; the partner-hotels section could be tightened slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 15 parameters and no output schema, the description still tells the agent what each result contains (nightly price, total_price, cancellation policy, room counts, deposits) and what the fallback shape looks like. Nothing essential to calling or interpreting the call is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 73%, so most parameters are already documented in the schema. The description reinforces overall filter behavior (price, availability, whole homes, property types) but adds little per-parameter meaning beyond what the schema strings already say, and says nothing about page, limit, guests or min_beds.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource ('Find independent stays bookable direct on Bookd'), enumerates the property categories covered, and scopes it to location plus dates. An agent can distinguish this from check_availability or get_property without inspecting any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States the read-only nature ('nothing is booked or held') and explicitly forbids using request_booking for partner results, which is a concrete when-not rule. It does not, however, say when to prefer check_availability, get_property or request_booking for actual Bookd properties, so routing to the other siblings is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedsearch_stays2 fields changed
      • changedInput schema / properties / currency / description
        Previous value: -"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)."New value: +"Currency for partner hotel links and their price filter. Default: local currency of the place (EUR in the euro area, GBP in the UK, INR in India, else USD)."
      • changedInput schema / properties / currency / enum
        Previous value: -[
        -  "USD",
        -  "EUR",
        -  "GBP"
        -]New value: +[
        +  "USD",
        +  "EUR",
        +  "GBP",
        +  "INR"
        +]
  2. 6 tool updates
    • First observedbooking_status
    • First observedcancel_booking
    • First observedcheck_availability
    • First observedget_property
    • First observedrequest_booking
    • First observedsearch_stays

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Searches hotels and vacation rentals with nightly and total rates, ratings, amenities, and detailed property information through natural language in any MCP client.
    1
    138 npm
    19 PyPI
    2
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Vacation rental software. A signed stay offer on the host’s own domain. Use this when a vacation rental host wants booking software on the host’s own domain, or when a stay offer must be verified against that domain. Returns an Ed25519-signed offer (VRP) and the host’s direct booking URL. The guest books and pays the host. Do not use to compare hosts or prices.
    6
    438 npm
    4
    Apache 2.0
  • A
    license
    B
    quality
    B
    maintenance
    Official MCP server for MAQAMI, a hotel and flight booking platform with 3M+ hotels. Search live hotel rates and flights, look up places, airports and hotel details, then prebook and book. Remote Streamable HTTP endpoint, no API key required.
    41
    97 npm
    2
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources