Skip to main content
Glama

Server Details

Vacation rental booking infrastructure for independent hosts. 0% commission. MCP + Stripe ACP.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
HemmaBo-se/hemmabo-mcp-server
GitHub Stars
1
Server Listing
HemmaBo

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.6/5 across 11 of 11 tools scored.

Server CoherenceA
Disambiguation5/5

All tools have distinct, well-defined purposes. The search tools (search.availability, search.compare, search.properties, search.similar) each serve a unique search function, while booking tools cover specific actions like creating, checking out, negotiating, quoting, canceling, rescheduling, and checking status. No two tools overlap in functionality.

Naming Consistency5/5

Tool names consistently follow a 'domain.action' pattern, with domains 'search' and 'booking' and clear verb or noun actions (e.g., 'search.properties', 'booking.cancel'). This creates a predictable and easily navigable naming scheme.

Tool Count5/5

With 11 tools, the set is well-scoped for a vacation rental booking server. It covers search, booking, and post-booking operations without being overly complex or missing essential functions. The number is appropriate for the domain.

Completeness4/5

The tool set covers the main user journey: search, get quotes, negotiate, book, pay, cancel, reschedule, and check status. Minor gaps exist, such as no tool for modifying booking details (other than reschedule) or handling host-side operations, but the core booking flow is complete.

Available Tools

11 tools
booking.cancelA
DestructiveIdempotent
Inspect

Cancel a confirmed booking and process the Stripe refund. Use this tool when the guest explicitly requests cancellation. Do NOT use for pending/unpaid bookings — those expire automatically. Refund amount is calculated based on the host's cancellation policy. Returns cancellation confirmation with refund amount and status.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoCancellation reason for host notification (e.g. 'Travel plans changed'). Optional but recommended.
reservationIdYesBooking UUID from booking.checkout or booking.create (e.g. '550e8400-e29b-41d4-a716-446655440000').

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent only when isError=true.
refundNoRefund payload returned by cancel-booking edge function, when present.
statusYesFinal booking status after cancellation.
reservationIdYes
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds behavioral context about refund processing based on cancellation policy and return values, though it does not detail other side effects like notifications.

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?

The description is only four sentences, each serving a purpose. The first sentence front-loads the key action, making it efficient and easy to parse.

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?

Given the presence of an output schema (confirmed), the description mentions the return values (confirmation with refund amount and status). This covers the essential behavioral outcomes for a cancellation tool.

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 100%, with both parameters having adequate descriptions. The tool description does not add new semantic information beyond what the schema provides, so baseline score of 3 is appropriate.

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?

The description clearly states the verb 'Cancel' and the resource 'a confirmed booking', and specifies the action of processing a Stripe refund. It distinguishes itself from sibling tools like booking.reschedule or booking.create.

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?

The description provides explicit when-to-use ('when the guest explicitly requests cancellation') and when-not-to-use ('Do NOT use for pending/unpaid bookings') with reasoning, and mentions the cancellation policy for refund calculation.

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

booking.checkoutAInspect

Create a booking with Stripe payment and return a checkout URL. Use this tool when the user is ready to pay — it creates the booking record and generates a Stripe payment page. Do NOT call twice for the same booking — check booking.status first to avoid double charges. Optionally pass quoteId from booking.negotiate to lock the price. Returns reservationId, paymentUrl (Stripe checkout page), and pricing details.

ParametersJSON Schema
NameRequiredDescriptionDefault
guestsYesTotal number of guests as integer >= 1 (e.g. 4).
channelNo'federation' (default): applies direct booking discount. 'public': uses standard website rate.
checkInYesArrival date in ISO 8601 format (YYYY-MM-DD, e.g. '2026-07-15'). Must be today or later.
quoteIdNoQuote ID from booking.negotiate to lock the price. Optional — if omitted, a fresh federation price is calculated at checkout time.
checkOutYesDeparture date in ISO 8601 format (YYYY-MM-DD, e.g. '2026-07-22'). Must be after checkIn.
guestNameYesFull name of primary guest (e.g. 'Anna Svensson').
guestEmailYesEmail for booking confirmation (e.g. 'anna@example.com'). Must be a valid email address.
guestPhoneNoPhone with country code (e.g. '+46701234567'). Optional but recommended.
propertyIdYesProperty UUID from search.properties (e.g. '550e8400-e29b-41d4-a716-446655440000').
paymentModeNo'checkout_session' (default): returns Stripe redirect URL. 'payment_intent': returns client_secret for programmatic payment (AI agent MPP flow).

Output Schema

ParametersJSON Schema
NameRequiredDescription
mppNoPresent when paymentMode='payment_intent'.
errorNoPresent only when isError=true.
guestsNo
nightsNo
statusNoBooking status (typically 'pending' until payment succeeds).
checkInNo
checkOutNo
currencyYes
createdAtNo
paymentUrlNoStripe Checkout redirect URL.
propertyIdNo
totalPriceYesFinal total charged (or to be charged), in minor currency units.
payment_modesNoSupported payment modes.
reservationIdYesBooking UUID. Use for subsequent status/cancel/reschedule calls.
Behavior5/5

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

The description discloses key behavioral traits: it creates a booking and generates a Stripe payment page (side effect), and warns about idempotency (double charges). It also mentions the return values: 'Returns reservationId, paymentUrl (Stripe checkout page), and pricing details.' This exceeds the minimal transparency expected from annotations (which only hint at read-ness and destructiveness).

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?

The description is concise yet information-dense: three sentences with no filler. It front-loads the main action and returns, then adds warnings and optional usage. Every sentence earns its place.

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?

Given the tool's complexity (10 parameters, payment integration, multiple enum options), the description covers essential context: when to use, what to avoid, optional parameters, return values, and integration with sibling tools (booking.negotiate, booking.status). An output schema exists (context signals indicate true), so the description appropriately focuses on behavior and usage rather than duplicating return types.

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?

The input schema already has 100% description coverage, providing clear parameter details. The description adds value by explaining the business logic for some parameters: channel determines discount ('federation' applies direct booking discount), and quoteId locks the price from negotiation. This goes beyond the schema's raw descriptions.

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?

The description clearly states the tool's purpose: 'Create a booking with Stripe payment and return a checkout URL.' It uses a specific verb ('Create') and resource ('booking with payment'), effectively distinguishing it from sibling tools like booking.create (just creates a booking) and booking.quote (quotes a price without payment).

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?

The description provides explicit when-to-use instructions: 'Use this tool when the user is ready to pay.' It also warns against misuse: 'Do NOT call twice for the same booking — check booking.status first to avoid double charges.' Additionally, it explains optional usage with quoteId from booking.negotiate to lock price, giving clear context for correct invocation.

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

booking.createAInspect

Create a direct booking without online payment (legacy flow). Use this tool when the user wants to book without Stripe payment — the booking is created with status 'pending' and requires host approval. Do NOT use for paid bookings — use booking.checkout instead. Do NOT retry on timeout without calling booking.status first to avoid duplicate bookings. Returns bookingId, final price, and confirmation details.

ParametersJSON Schema
NameRequiredDescriptionDefault
guestsYesTotal number of guests as integer >= 1 (e.g. 4).
checkInYesArrival date in ISO 8601 format (YYYY-MM-DD, e.g. '2026-07-15'). Must be today or later.
checkOutYesDeparture date in ISO 8601 format (YYYY-MM-DD, e.g. '2026-07-22'). Must be after checkIn.
guestNameYesFull name of primary guest (e.g. 'Anna Svensson').
guestEmailYesEmail for booking confirmation (e.g. 'anna@example.com'). Must be a valid email address.
guestPhoneNoPhone with country code (e.g. '+46701234567'). Optional but recommended for check-in coordination.
propertyIdYesProperty UUID from search.properties (e.g. '550e8400-e29b-41d4-a716-446655440000').

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent only when isError=true.
guestsNo
nightsNo
statusYesBooking status — typically 'pending' until host approves.
checkInNo
checkOutNo
currencyNo
bookingIdYesPersistent booking UUID. Use for status/cancel/reschedule.
createdAtNo
priceTypeNoPricing mode used (federation/gap_night/package_*).
propertyIdNo
totalPriceNoFinal price written to the booking.
packageAppliedNo
gapDiscountPercentNo
federationDiscountPercentNo
Behavior5/5

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

Describes that the booking is created with 'pending' status and requires host approval, adding context beyond annotations. No contradiction with annotations; readOnlyHint=false and destructiveHint=false are consistent with a non-destructive creation.

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?

Four sentences, front-loaded with purpose, each sentence adding value: purpose, usage guidance, retry advice, and return info. No redundant words.

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?

Covers key behaviors (pending, host approval, no payment), retry handling, and mentions output details. However, lacks details on failure modes (e.g., what if host doesn't approve) and doesn't address auth requirements or rate limits. Output schema exists but is only mentioned in passing.

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?

Input schema has 100% coverage with detailed descriptions for each parameter. The description does not add new parameter-level information beyond what the schema provides, but it does set context for the overall flow.

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?

The description clearly states 'Create a direct booking without online payment (legacy flow)', specifying both the action and the resource, and distinguishes itself from sibling tools like booking.checkout for paid bookings.

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?

Explicitly states when to use ('when the user wants to book without Stripe payment') and when not to use ('Do NOT use for paid bookings — use booking.checkout instead'), and provides retry guidance for timeouts.

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

booking.negotiateAInspect

Create a binding price quote that locks the price for 15 minutes. Use this tool before booking.checkout to guarantee the quoted price during payment. Do NOT skip this step if the user wants price certainty — without a quoteId, checkout calculates a fresh price that may differ. Returns quoteId (pass to booking.checkout), public and federation totals, per-night breakdown, and expiry timestamp.

ParametersJSON Schema
NameRequiredDescriptionDefault
guestsYesTotal number of guests as integer >= 1 (e.g. 4). Determines which price tier is applied.
checkInYesArrival date in ISO 8601 format (YYYY-MM-DD, e.g. '2026-07-15'). Must be today or later.
checkOutYesDeparture date in ISO 8601 format (YYYY-MM-DD, e.g. '2026-07-22'). Must be after checkIn.
propertyIdYesProperty UUID from search.properties (e.g. '550e8400-e29b-41d4-a716-446655440000').

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent only when isError=true.
guestsNo
nightsNo
checkInNo
quoteIdYesSnapshot ID. Pass to booking.checkout to lock this price.
checkOutNo
currencyNo
gapNightNo
gapTotalNo
breakdownNo
propertyIdNo
validUntilYesQuote expiry (ISO 8601). Typically 15 minutes after creation.
publicTotalNo
packageAppliedNo
federationTotalYes
gapDiscountPercentNo
federationDiscountPercentNo
Behavior5/5

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

Discloses key behavioral traits: price is locked for 15 minutes, returns quoteId, totals, breakdown, and expiry. Although annotations mark readOnlyHint=true (contradicting creation), the description honestly conveys the mutation, making it transparent beyond the annotations.

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?

The description is two sentences with no extraneous words. It front-loads the main purpose, then provides usage guidance and output summary efficiently.

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?

For a tool with 4 required parameters and an output schema, the description covers all critical context: time sensitivity (15-minute lock), prerequisite relationship with checkout, and key return fields (quoteId, totals, breakdown, expiry). Agents have enough information to use it 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 coverage is 100% and all parameters are well-described in the schema. The description does not add new meaning to the parameters beyond what the schema provides, so it meets the baseline but does not exceed 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?

The description clearly states the tool creates a binding price quote that locks the price for 15 minutes. It specifies the verb 'Create' and the resource 'binding price quote', distinguishing it from siblings like booking.checkout by explaining its role in the booking flow.

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?

Explicitly tells agents to use this tool before booking.checkout to guarantee the quoted price and warns that skipping this step may result in a different price. It also mentions that the output quoteId must be passed to checkout, providing clear when-to-use and why.

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

booking.quoteA
Read-onlyIdempotent
Inspect

Get a detailed pricing quote for a specific property, dates, and guest count. Use this tool after confirming availability to show the user exact pricing before booking. Do NOT use before checking availability — the quote may be invalid if dates are unavailable. Returns publicTotal (website rate), federationTotal (direct booking discount), gapTotal (gap-night discount if applicable), per-night breakdown, and package pricing. All prices are integers in the property's local currency (e.g. SEK).

ParametersJSON Schema
NameRequiredDescriptionDefault
guestsYesTotal number of guests as integer >= 1 (e.g. 4). Determines which price tier is applied (staircase pricing by guest count).
checkInYesArrival date in ISO 8601 format (YYYY-MM-DD, e.g. '2026-07-15'). Must be today or later.
checkOutYesDeparture date in ISO 8601 format (YYYY-MM-DD, e.g. '2026-07-22'). Must be after checkIn.
propertyIdYesProperty UUID from search.properties (e.g. '550e8400-e29b-41d4-a716-446655440000').

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent only when isError=true.
guestsNo
nightsNoNumber of nights in the range.
checkInNo
checkOutNo
currencyNoISO 4217 currency code.
gapNightNoTrue when the stay qualifies as a gap fill.
gapTotalNoGap-night discounted total when applicable; otherwise null.
breakdownNoDetailed pricing breakdown.
propertyIdNo
publicTotalNoWebsite rate total in minor currency units.
packageAppliedNoApplied package, if any.
federationTotalNoDirect-booking total (host-controlled discount applied).
gapDiscountPercentNoGap-night discount percentage when applied.
federationDiscountPercentNoHost-configured federation discount percentage.
Behavior5/5

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

Annotations indicate read-only and non-destructive behavior. The description adds valuable context about return fields (publicTotal, federationTotal, etc.) and currency, enhancing transparency.

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?

Concise and front-loaded, each sentence adds essential information without redundancy. Clearly structured.

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?

Given the output schema exists, the description adequately covers purpose, usage sequence, return values, and currency, making it complete for an AI agent.

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 100% with detailed parameter descriptions. The description does not add new meaning to parameters beyond what's in the schema, so baseline 3 is appropriate.

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?

The description clearly states the tool gets a detailed pricing quote for a property, dates, and guests. It uses specific verbs and resources, and distinguishes itself from sibling tools like booking.create or search.availability.

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?

Explicitly advises to use after confirming availability and warns against using before, providing clear when-to-use and when-not-to-use guidance.

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

booking.rescheduleA
Destructive
Inspect

Reschedule a confirmed or pending booking to new dates. Use this tool when the guest wants to change travel dates on an existing booking. Do NOT use if the booking is cancelled or completed — check booking.status first. Automatically recalculates price and handles Stripe charge (if price increased) or refund (if decreased). Returns previous dates, new dates, price delta, and Stripe transaction details.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoReason for rescheduling (e.g. 'Flight delayed'). Optional but recommended for host records.
newCheckInYesNew arrival date in ISO 8601 format (YYYY-MM-DD, e.g. '2026-07-20'). Must be today or later.
newCheckOutYesNew departure date in ISO 8601 format (YYYY-MM-DD, e.g. '2026-07-27'). Must be after newCheckIn.
reservationIdYesBooking UUID to reschedule (e.g. '550e8400-e29b-41d4-a716-446655440000'). Must be in 'confirmed' or 'pending' status.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent only when isError=true.
reasonNo
statusYesBooking status after reschedule.
pricingNo
newDatesNo
previousDatesNo
reservationIdYes
Behavior5/5

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

The description discloses side effects beyond annotations: automatic price recalculation, Stripe charge/refund handling, and return fields (previous dates, new dates, price delta, Stripe details). This adds significant value over the destructiveHint annotation.

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?

Three concise sentences with clear structure: purpose, usage condition, then behavioral summary. No redundant or unnecessary words.

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?

Given 100% schema coverage, output schema presence, and behavioral details, the description covers the tool's operation well. Minor omission: it doesn't mention date validation (already in schema) but that's acceptable.

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 100%, so a baseline of 3 is appropriate. The description adds minor context (reason is optional but recommended) but does not substantially enhance understanding beyond the schema descriptions.

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?

The description clearly states the action (reschedule) and resource (confirmed/pending booking to new dates). It distinguishes from siblings by specifying not to use if the booking is cancelled or completed, and advises checking booking.status first.

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?

It explicitly states when to use (guest wants to change travel dates) and when not to use (booking cancelled/completed). It does not name alternative tools but provides clear guidance on prerequisites and exclusions.

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

booking.statusA
Read-onlyIdempotent
Inspect

Retrieve current status and full details of an existing booking. Use this tool to check payment status, confirm a booking went through, or look up details before rescheduling or cancelling. Use after booking.checkout if unsure whether the booking succeeded. Returns booking dates, guests, price, status, property info, and cancellation policy.

ParametersJSON Schema
NameRequiredDescriptionDefault
reservationIdYesBooking UUID from booking.checkout or booking.create (e.g. '550e8400-e29b-41d4-a716-446655440000').

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent only when isError=true.
guestsNo
statusYes
checkInNo
checkOutNo
currencyNo
createdAtNo
guestNameNo
updatedAtNo
guestEmailNo
propertyIdNo
totalPriceNoTotal amount in minor currency units.
propertyNameNo
reservationIdYes
propertyDomainNo
cancellationPolicyNo
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds value by specifying the output fields (booking dates, guests, price, status, property info, cancellation policy) without contradicting annotations.

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?

Three sentences: first states purpose, second gives use cases, third lists output. No fluff, every sentence earns its place.

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?

Given the output schema exists, the tool is simple (1 param), and annotations cover safety, the description is complete with usage scenarios and output summary.

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 100%, and the schema already fully documents the single parameter 'reservationId' with format and example. The description does not add further parameter semantics beyond the schema.

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?

The description clearly states the verb 'Retrieve' and the resource 'current status and full details of an existing booking'. It distinguishes from sibling tools like booking.cancel or booking.create by specifying use cases for checking status before rescheduling or cancelling.

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 guidance: 'Use this tool to check payment status, confirm a booking went through, or look up details before rescheduling or cancelling. Use after booking.checkout if unsure whether the booking succeeded.' This provides clear when-to-use context.

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

search.availabilityA
Read-onlyIdempotent
Inspect

Check whether a specific property is available for the requested dates. Use this tool after the user has selected a property from search.properties and wants to confirm availability before getting a quote. Do NOT use for general browsing — use search.properties instead. Returns available=true/false with conflict details (blocked dates, existing bookings, active locks) if unavailable.

ParametersJSON Schema
NameRequiredDescriptionDefault
checkInYesArrival date in ISO 8601 format (YYYY-MM-DD, e.g. '2026-07-15'). Must be today or later.
checkOutYesDeparture date in ISO 8601 format (YYYY-MM-DD, e.g. '2026-07-22'). Must be after checkIn.
propertyIdYesProperty UUID returned by search.properties (e.g. '550e8400-e29b-41d4-a716-446655440000').

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent only when isError=true.
reasonNoReason when available=false.
checkInNo
checkOutNo
availableYesTrue if the property is bookable for the entire range.
propertyIdNo
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds value by detailing the return format: 'available=true/false with conflict details (blocked dates, existing bookings, active locks).' This behavioral context is useful beyond the annotations.

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?

Three concise sentences with front-loaded purpose, clear usage guidance, and returns description. No wasted words.

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?

Given annotations and output schema coverage, the description fully contextualizes the tool: when to use, what it does, and what it returns. No gaps.

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 100% with each parameter already described. The description adds minimal extra meaning (e.g., propertyId from search.properties), but does not significantly enhance understanding of the parameters.

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?

The description clearly states the verb 'Check' and the resource 'whether a specific property is available for the requested dates.' It distinguishes itself from siblings like 'search.properties' (for browsing) and 'search.similar', making the tool's unique role unmistakable.

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?

Explicitly states when to use ('after user has selected a property from search.properties and wants to confirm availability before getting a quote') and when not to use ('Do NOT use for general browsing — use search.properties instead'), with a named alternative.

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

search.compareA
Read-onlyIdempotent
Inspect

Compare availability and pricing for 2–10 specific properties on the same dates. Use this tool when the user is deciding between multiple properties and wants to see price and availability side by side. Do NOT use for discovery — use search.properties first. Returns one entry per propertyId, sorted by federation price (cheapest first), with unavailable properties last.

ParametersJSON Schema
NameRequiredDescriptionDefault
guestsYesTotal number of guests as integer >= 1.
checkInYesArrival date in ISO 8601 format (YYYY-MM-DD). Must be today or later.
checkOutYesDeparture date in ISO 8601 format (YYYY-MM-DD). Must be after checkIn.
propertyIdsYesArray of 2 to 10 property UUIDs to compare side by side.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNoNumber of compared properties returned.
errorNoPresent only when isError=true.
guestsNo
checkInNo
checkOutNo
comparisonNoOne entry per requested propertyId, sorted by federation price (cheapest first), unavailable last.
Behavior4/5

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

Annotations already provide readOnlyHint, idempotentHint, destructiveHint. The description adds value by explaining sorting order (cheapest first, unavailable last) and return structure (one entry per propertyId).

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 sentences, front-loaded with core functionality, no unnecessary words. Every sentence earns its place.

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?

Given the 4 parameters with full schema descriptions and the presence of an output schema, the description covers purpose, usage, and return behavior adequately.

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 100%, so parameters are well-documented. The description reinforces the context but adds minimal new meaning beyond the schema.

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?

The description clearly states it compares availability and pricing for 2-10 specific properties on the same dates. It uses specific verb+resource and distinguishes from sibling tools like search.properties which is for discovery.

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?

Explicitly says when to use (user deciding between multiple properties) and when not to use (do not use for discovery, use search.properties first). Also describes sorting behavior.

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

search.propertiesA
Read-onlyIdempotent
Inspect

Search available vacation rental properties by location and travel dates. Use this tool when the user wants to find or browse properties — it is the entry point for all booking flows. Do NOT use if the user already has a specific propertyId; use search.availability or booking.quote instead. Returns a list of available properties with propertyId, live pricing (public and federation rates), and capacity info needed for subsequent tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
guestsYesTotal number of guests as integer >= 1 (e.g. 4). Determines price tier and filters out properties with insufficient capacity.
regionNoRegion, area, or destination name to search within. Partial match (e.g. 'Skane', 'Toscana', 'Bavaria'). At least one of region or country should be provided.
checkInYesArrival date in ISO 8601 format (YYYY-MM-DD, e.g. '2026-07-15'). Must be today or later.
countryNoCountry name to filter by (e.g. 'Sweden', 'Italy'). Partial match. At least one of region or country should be provided.
checkOutYesDeparture date in ISO 8601 format (YYYY-MM-DD, e.g. '2026-07-22'). Must be after checkIn.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent only when isError=true.
guestsNoEchoed guest count.
checkInNoEchoed check-in date (YYYY-MM-DD).
checkOutNoEchoed check-out date (YYYY-MM-DD).
propertiesNoAvailable properties matching the search criteria, with live federation pricing.
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the return structure (propertyId, live pricing, capacity info), which goes beyond annotations without contradicting them.

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?

Three concise sentences, front-loaded with core purpose, then usage guidance, then return details. No redundant information.

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?

Given the complexity (5 params, output schema exists, rich annotations), the description covers the tool's role in the booking flow, usage constraints, and return value context. Complete for the task.

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 has 100% coverage with detailed parameter descriptions. The tool description adds minimal extra semantics (e.g., 'live pricing and capacity info needed for subsequent tools'), but since schemas already document parameters, a baseline score of 3 is appropriate.

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?

The description clearly states it searches properties by location and dates, and explicitly differentiates from sibling tools like search.availability and booking.quote.

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?

Provides explicit when-to-use (entry point for booking flows) and when-not-to-use (if user has propertyId, use alternatives), with named alternatives.

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

search.similarA
Read-onlyIdempotent
Inspect

Find vacation rental properties similar to a given property on specific dates. Use this tool after the user has selected a property (via search.properties) and wants to see alternatives — same region, same property type, same or larger capacity. Do NOT use for the initial search; use search.properties instead. Returns a list of similar available properties with live pricing, excluding the source property.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results. Default 5, max 20.
guestsNoNumber of guests. Defaults to source property's max_guests.
checkInYesArrival date in ISO 8601 format (YYYY-MM-DD). Must be today or later.
checkOutYesDeparture date in ISO 8601 format (YYYY-MM-DD). Must be after checkIn.
propertyIdYesUUID of the source property to find alternatives for.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNoNumber of similar properties returned.
errorNoPresent only when isError=true.
guestsNoEffective guest count used for matching and pricing.
checkInNo
checkOutNo
sourcePropertyIdNoThe property similar listings were found for.
similarPropertiesNoSimilar available properties (same region, same type, same/larger capacity), sorted by federation price.
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds valuable context: returns list with live pricing, excludes source property. Does not contradict annotations.

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?

Three sentences cover purpose, usage guidelines, and output details with no extraneous information. Efficient and well-structured.

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?

Given the presence of an output schema, the description adequately explains the return type and key behavior (live pricing, exclusion of source). Sufficient for effective use.

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%. The description adds default values for limit (5) and guests (source property's max_guests), which are not in the schema, enhancing understanding beyond the schema.

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?

The description clearly states 'Find vacation rental properties similar to a given property on specific dates' with specific verb and resource. It distinguishes from sibling tools like search.properties by indicating post-selection use.

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?

Explicitly says when to use: after the user has selected a property via search.properties. Includes a clear 'Do NOT' for initial search and provides criteria for similarity (same region, type, capacity).

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.