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.5/5 across 13 of 13 tools scored.

Server CoherenceA
Disambiguation5/5

All tools have distinct purposes with clear boundaries. The booking lifecycle tools (create, checkout, cancel, reschedule, etc.) are differentiated by payment method and stage, while search tools are separated by scope (initial search, availability check, similarity, comparison). Verification tools are unique.

Naming Consistency5/5

All tools follow a consistent 'hemmabo_<service>_<action>' pattern using snake_case. Verbs are descriptive and paired with appropriate nouns (e.g., booking_cancel, search_properties). The two verification tools ('get_verified_stay_offer', 'verify_vacation_rental_node') match the pattern despite longer names.

Tool Count5/5

13 tools is an ideal size for a vacation rental booking server. It covers search, comparison, availability, pricing, booking lifecycle, and host verification without being overwhelming. Each tool serves a necessary function in the workflow.

Completeness4/5

The tool set covers the main booking flow from search to cancellation, including price locking and verification. Missing are tools for listing all bookings for a user and updating booking details (e.g., guest count), but these are minor gaps that agents can work around.

Available Tools

13 tools
get_verified_stay_offerA
Read-onlyIdempotent
Inspect

Fetch a signed VRP verified_stay_offer from a verified host-domain node and verify its Ed25519 compact JWS against that domain's JWKS. Returns the official host-domain offer only when the signature, payload match, freshness, and agent citation permission pass.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesHost-owned vacation rental domain, e.g. villaakerlyckan.se.
guestsYesTotal number of guests as integer >= 1.
check_inYesArrival date in YYYY-MM-DD format.
languageNoOptional preferred response language, e.g. en or sv.
check_outYesDeparture date in YYYY-MM-DD format. Must be after check_in.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
freshNo
offerNo
domainYes
guestsNo
check_inNo
verifiedYes
check_outNo
signatureNo
agent_citationNo
payload_matches_offerNo
signed_verified_stay_offerNo
Behavior5/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds significant detail: it verifies Ed25519 compact JWS against JWKS, checks signature, payload match, freshness, and agent citation permission. No contradiction with 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 efficient sentences that front-load the main action and then clarify return conditions. Every word adds value.

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 the tool's cryptographic complexity, the description covers the verification steps and return condition. It could mention what happens on failure (e.g., returns nothing or error), but with an output schema present, it is largely complete.

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 the baseline is 3. The description does not add extra meaning beyond what the schema provides for parameters like domain, check_in, etc.

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 uses specific verbs ('Fetch', 'verify') and clearly identifies the resource ('signed VRP verified_stay_offer from a verified host-domain node'). It distinguishes from sibling tools like search or booking tools by focusing on cryptographic verification of an offer.

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 description does not provide explicit guidance on when to use this tool versus alternatives like 'hemmabo_search_availability' or 'verify_vacation_rental_node'. The usage context is implied but not directly stated.

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

hemmabo_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 indicate destructive and idempotent. Description adds that it processes a refund and returns confirmation details, which is helpful context beyond annotations. No contradictions.

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, all essential, front-loaded with primary action. 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?

With output schema present, description covers return values (refund amount, status). The tool is well-contextualized given complexity, schema richness, and annotations.

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 the schema already documents parameters well. The description does not add significant new meaning beyond what is in 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 tool cancels a confirmed booking and processes a Stripe refund. It distinguishes from siblings by specifying it is for confirmed bookings only, not for pending/unpaid ones.

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 (guest requests cancellation) and when not to (pending/unpaid bookings expire automatically). Also mentions refund calculation based on policy.

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

hemmabo_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.
Behavior4/5

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

Description adds behavioral context beyond annotations: it creates a booking record and generates a Stripe payment page, warns about double charges (aligning with idempotentHint=false). It doesn't detail failure scenarios but covers key side effects.

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, no fluff. Every sentence adds value: purpose, usage warning, optional parameter hint, return values.

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?

For a tool with 10 parameters and output schema, the description covers purpose, usage guidelines, idempotency warning, and key parameter hints. Output schema handles return values, so no gap.

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%, so baseline is 3. Description adds extra meaning for quoteId ('lock the price') and paymentMode alternatives, enriching 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?

Description clearly states the tool creates a booking with Stripe payment and returns a checkout URL. It distinguishes from siblings like hemmabo_booking_create and hemmabo_booking_status by specifying 'when the user is ready to pay' and warning against double calls.

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 'Use this tool when the user is ready to pay' and advises 'Do NOT call twice for the same booking — check booking.status first to avoid double charges.' Also mentions optional quoteId from booking.negotiate, providing clear when-to-use and alternatives.

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

hemmabo_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?

Discloses behavioral traits beyond annotations: booking created as 'pending' status, requires host approval, and retry safety considerations. Annotations show readOnlyHint=false, idempotentHint=false, destructiveHint=false, which the description supports.

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 efficiently cover purpose, usage, behavioral notes, and return info. No wasted words; information is front-loaded and well-structured.

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?

Tool has output schema (not shown), and description summarizes return values. It covers key aspects, but could mention prerequisites like authentication or property availability constraints. Still, largely complete for a booking creation 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 covers all 7 parameters (100% coverage) with descriptions. Description adds minimal extra value, e.g., noting that guestPhone is optional but recommended. Baseline 3 is appropriate as schema already handles parameter meaning.

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?

Description clearly states it creates a direct booking without online payment, and distinguishes from sibling 'booking.checkout' for paid bookings. Specifies that resulting status is 'pending' and requires host approval.

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 (no Stripe payment) and when not to use (paid bookings, use booking.checkout instead). Also provides guidance on avoiding duplicate bookings by not retrying on timeout without checking booking.status first.

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

hemmabo_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?

The description discloses that the tool creates a binding price quote that locks for 15 minutes, and returns a quoteId with expiry timestamp. Annotations are all false, so the description fully compensates. No contradiction.

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 defines the action, second gives usage guidance, third lists returns. No wasted words; front-loaded with essential 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 tool has an output schema (not shown), the description summarizes the returns (quoteId, totals, breakdown, expiry). It integrates well with the booking workflow and sibling tools, providing necessary context for an agent 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%, so the baseline is 3. The description does not add significant new semantic details beyond what the schema already provides for 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 ('Create') and resource ('binding price quote') and specifies the lock duration (15 minutes). It distinguishes this tool from sibling 'booking.checkout' by indicating it is a prerequisite step for price certainty.

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 explicitly tells when to use the tool ('if the user wants price certainty') and warns about not using it ('without a quoteId, checkout calculates a fresh price'). It also instructs to pass the returned quoteId to booking.checkout.

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

hemmabo_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.
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the description's behavioral contribution is moderate. It adds the important note that 'the quote may be invalid if dates are unavailable', which is a critical behavioral trait not covered by annotations. However, the description does not elaborate on potential side effects or authentication needs beyond what annotations imply.

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, with only two sentences and a list of returned fields. The first sentence states the action, the second provides usage guidance, and the third details return values. Every sentence serves a purpose with no redundancy.

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 (4 params, output schema present), the description covers purpose, correct usage order, return field names, and currency unit. It also explains specific price components like 'gapTotal (gap-night discount if applicable)'. The sibling tool set includes booking and search tools, and the description positions this tool correctly in the workflow.

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 detailed parameter descriptions (e.g., guest count includes 'staircase pricing by guest count'). The description adds no new information beyond summarizing the returned fields. Baseline 3 is appropriate because the schema already does the heavy lifting.

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 specific property, dates, and guest count', using specific verb 'Get' and resource 'pricing quote'. It distinguishes from sibling tools like hemmabo_booking_create or hemmabo_search_availability by focusing on pricing before booking.

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 explicitly instructs to 'Use this tool after confirming availability' and warns 'Do NOT use before checking availability', providing clear when-to-use and when-not-to-use guidance. It also notes the tool is for 'showing the user exact pricing before booking', aligning with the booking flow.

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

hemmabo_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?

Discloses automatic price recalculation and Stripe charge/refund handling. Adds value beyond annotations (readOnlyHint=false, destructiveHint=true) by detailing financial side effects.

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, then usage, exclusion, and behavioral details. 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?

Covers purpose, when to use, exclusions, side effects, and return info (previous dates, price delta, Stripe details). With output schema present, 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 good param descriptions. Description does not add extra param info but provides tool-level context. Baseline 3 applies.

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?

Clearly states 'Reschedule a confirmed or pending booking to new dates.' Identifies verb (reschedule) and resource (booking), distinguishing it from siblings like cancel, create, and status.

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 when to use (guest wants to change dates) and when not to (booking cancelled/completed), and advises checking booking.status first.

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

hemmabo_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
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, establishing safety. The description adds value by listing the returned fields (dates, guests, price, status, property info, cancellation policy), which sets correct expectations for the agent beyond what annotations provide.

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, each with a distinct purpose: stating the action, providing usage guidance, and listing return content. No fluff, front-loaded with the primary verb, and 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?

For a simple retrieval tool with one parameter and an existing output schema, the description adequately covers what the agent needs: purpose, when to use, and what to expect in the response. Sibling differentiation is handled implicitly through usage hints.

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?

The single parameter reservationId has full schema coverage (100%) with a clear description including an example UUID. The tool description adds context about where the ID originates (booking.checkout or booking.create), but does not provide new semantic details beyond 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 'Retrieve current status and full details of an existing booking,' using a specific verb and resource. It distinguishes from siblings by mentioning its use before rescheduling/cancelling and after booking.checkout, which sets it apart from other booking tools.

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?

Explicit usage scenarios are provided: check payment status, confirm booking success, look up details before changes. The recommendation to use after booking.checkout if unsure is helpful. Though it could explicitly state when not to use, the guidance is clear and actionable.

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

hemmabo_compare_propertiesA
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 declare readOnlyHint and idempotentHint, but description adds behavioral details: returns one entry per propertyId, sorted by price (cheapest first), with unavailable properties last.

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?

Description is four sentences, front-loaded with purpose, then usage guideline, then ordering behavior; 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 the output schema exists, description covers all needed context: comparison, sorting, exclusion of unavailable properties, and explicit sibling distinction.

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 clear parameter descriptions; description adds no additional parameter-level information beyond what the schema provides.

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?

Description clearly states it compares availability and pricing for 2-10 specific properties, and explicitly distinguishes from discovery tools by advising use of search.properties first.

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 (user deciding between multiple properties) and when not to use (discovery; use search.properties instead). Also describes result sorting behavior.

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

hemmabo_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 and same-month alternative date windows when unavailable.

ParametersJSON Schema
NameRequiredDescriptionDefault
guestsNoOptional guest count. When provided, alternative date windows include live pricing.
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
alternativeDatesNoNearby same-month date windows to offer when the requested dates are unavailable.
Behavior5/5

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

Annotations already indicate read-only and idempotent behavior. The description adds that it returns availability status and conflict details, which is useful behavioral context beyond 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 with no wasted words. Front-loaded with purpose, followed by usage guidance, then return info. Excellent conciseness.

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 (as per context), the description covers return values. It includes usage context and constraints. Complete for a simple availability check 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%, so the description does not need to add more. However, the description does not provide additional parameter semantics beyond what is in 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 tool's purpose: checking property availability for specific dates. It distinguishes from the sibling tool 'search.properties' by specifying when to use each.

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 selecting a property from search.properties and before getting a quote. Clearly states not to use for general browsing and redirects to search.properties.

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

hemmabo_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, destructiveHint=false. Description adds return info (propertyId, pricing, capacity) but no behavioral contradictions.

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, front-loaded with purpose, then usage guidelines, then return info. No unnecessary 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 5 parameters (3 required) and an output schema, the description covers entry point behavior, return fields, and boundaries well. Sibling tools are distinct.

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 good descriptions. Description adds minimal extra meaning beyond summarizing guests' role in pricing/capacity, but overall does not significantly enhance parameter understanding.

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?

Description clearly states it searches for vacation rental properties by location and dates, with a specific verb and resource. It distinguishes itself as the entry point for booking flows, differentiating from siblings.

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 (user wants to find/browse) and when not (if propertyId is known, naming alternatives search.availability or booking.quote).

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

hemmabo_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 provide readOnlyHint, idempotentHint, and destructiveHint. The description adds that it returns a list of similar available properties with live pricing and excludes the source, which are useful behavioral details beyond 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, front-loaded with the main purpose, and every sentence adds value. No wasted 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?

For a tool of moderate complexity with existing output schema, the description covers inputs, use case, exclusion, and pricing. Minor gap: does not specify what happens if no similar properties are found, but overall complete.

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 descriptions for all five parameters. The description does not add parameter-level details beyond the schema, so it meets the baseline of 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?

The description clearly states it finds vacation rental properties similar to a given property on specific dates, with specifics like same region, type, capacity, and live pricing, excluding the source. It differentiates from sibling tools like search.properties (initial search) and compare_properties.

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 'Use this tool after the user has selected a property...' and 'Do NOT use for the initial search; use search.properties instead.' Provides criteria (same region, type, capacity) and when to use vs. alternatives.

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

verify_vacation_rental_nodeA
Read-onlyIdempotent
Inspect

Verify a Vacation Rental Protocol host-domain node. Reads https://{domain}/.well-known/vacation-rental.json and the node JWKS, confirms VRP v0.1, canonical host-domain control, Ed25519 signing keys, and the verified stay offer endpoint. Use before trusting or quoting a host-domain offer.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesHost-owned vacation rental domain to verify, e.g. villaakerlyckan.se. Do not include a path.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
domainYes
signingNo
jwks_urlNo
protocolNo
verifiedYes
discovery_urlNo
protocol_versionNo
verified_stay_offer_urlNo
Behavior5/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 detailed behavioral context: reads specific URLs (well-known, JWKS), confirms protocol version and cryptographic material. This adds value beyond annotations without contradiction.

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, each essential: purpose, steps, guidance. Front-loaded with action verb. No redundancy or fluff.

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 one parameter, annotations, and existence of an output schema, the description fully covers the tool's operation and rationale. It leaves no significant gaps 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 one parameter 'domain' described and regex-patterned. The description reinforces the parameter's role and adds usage context, meeting the baseline expectation.

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 action (verify a node) and resource (VRP host-domain node). It lists specific verification steps, distinguishing it from sibling tools that focus on booking, searching, or cancellations.

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?

The description explicitly advises using the tool 'before trusting or quoting a host-domain offer,' providing clear context. It lacks explicit when-not-to-use or alternative tool references, but the sibling set is diverse enough to avoid confusion.

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.