Skip to main content
Glama

HemmaBo Host Booking Engine

Server Details

6 runtime tools: 2 HemmaBo tools, 2 host onboarding tools, and 2 VRP verification tools. Not an OTA.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 32 days
Last Tested
Transport
Streamable HTTP · MCP 2025-03-26
URL
Repository
HemmaBo-se/hemmabo-mcp-server
GitHub Stars
3
Server Listing
HemmaBo

TDQS

A4.6/5.0

Scored across 6 tools

Disambiguation4/5

Most tools target clearly distinct steps: discovery, availability, verification, signed offer, and host fit/onboarding. Minor overlap exists between the two host-facing tools and between availability search versus offer retrieval, but descriptions explicitly gate when to use each.

Naming Consistency3/5

All names use snake_case, and search tools share a hemmabo_search_ prefix, but the set mixes prefixed and unprefixed names and combines imperative verb-first names with noun-heavy host/brand names. It remains readable but lacks a single predictable convention.

Tool Count5/5

Six tools are well-scoped for a read-only guest search/verification flow plus host readiness/onboarding. Each tool earns its place without obvious redundancy.

Completeness4/5

The guest lifecycle from search to verified offer and the host onboarding start are covered, with verification closing a key trust gap. Booking creation and ongoing host/property management are absent, but the server intentionally routes checkout to a signed direct-booking URL rather than handling it itself.

Available Tools

6 tools
get_verified_stay_offerGet Verified Stay OfferA
Read-onlyIdempotent
Inspect

Fetch, verify, and render a live host-domain signed VRP stay offer for exact dates and guest count. Verifies Ed25519 JWS against domain JWKS. Call after hemmabo_search_properties returns a host domain, or after verify_vacation_rental_node confirms a domain from outside search, always before quoting final price or a booking link. Read-only: must not lock a quote, create a booking, collect guest details, or start checkout. Route booking only to the signed direct_booking_url. The parameters work as a set: pass the same domain, checkIn, checkOut and guests the guest used at search; checkIn must be strictly before checkOut, and the resulting night count — not the dates themselves — drives the signed price and the host capacity check, so changing either date re-prices the offer. Always pass language as the guest's actual conversation language so the rendered widget matches the guest; it never affects the signed price or availability, only formatting.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesHost-owned domain without protocol or path (e.g. 'villaakerlyckan.se', 'myvilla.it'). Invalid: 'https://...', paths, ports, or booking URLs.
guestsYesTotal guest count as positive integer (e.g. 2, 4). Used by the host node for capacity validation and guest-tier pricing on the signed offer.
checkInYesRequested arrival date in YYYY-MM-DD format (e.g. '2026-11-14'). Must be strictly before checkOut. Use the same dates the guest requested in search.
checkOutYesRequested departure date in YYYY-MM-DD format (e.g. '2026-11-17'). Must be strictly after checkIn. Guest does not stay the departure night.
languageNoThe guest's conversation language, as a BCP-47 tag (e.g. 'en', 'sv', 'de', 'sv-SE') — ALWAYS pass this, matching the language the guest is chatting in, so the rendered widget's labels, dates and currency formatting match the guest instead of falling back to the rendering client's own locale (which can silently disagree with the conversation). Never changes the signed price value or availability — only how it is displayed.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
freshNoTrue when the signed offer is still within its validity/freshness window.
domainYesEchoed host domain that issued the signed offer.
guestsNoEchoed requested guest count.
checkInNoEchoed requested arrival date.
checkOutNoEchoed requested departure date.
verifiedYesTrue only when the host-domain offer signature and payload checks pass.
signatureNoEd25519/JWS verification details, including key id and verification status.
widget_mediaNoImages and media hydrated from the verified host discovery document for the ChatGPT widget.
agent_citationNoCitation permission and safe-to-quote status derived from the signed offer.
agent_guardrailsNoRules the agent must follow when presenting or acting on this offer.
payload_matches_offerNoTrue when the signed payload matches the structured offer returned to the agent.
official_offer_summaryNoSmall signed-offer summary for agents to quote without inventing price, availability, discounts, savings, comparisons, or booking details.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover readOnly/idempotent/destructive, but the description goes further by disclosing the cryptographic verification (Ed25519 JWS against domain JWKS), the set-semantics of the parameters, the re-pricing behavior when either date changes, and an explicit prohibition on side effects. This is unusually rich behavioral context beyond the structured fields.

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

Conciseness4/5

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

Front-loaded with the core action, then sequencing, constraints, and parameter semantics in roughly priority order. Information density is high and most sentences earn their place, though the paragraph runs long for a tool description and could be split for scannability.

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 5-param, cryptographically-verifying, open-world tool with an output schema already present, the description covers sequencing, prerequisites, side-effect constraints, set-semantics, and rendering caveats. Return values are correctly left to the output schema.

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 the baseline is 3, but the description adds genuinely new semantics: the parameters must be passed as a set matching the original search, night count (not the dates) drives price and capacity, and language never affects price/availability. It stops short of explaining every parameter's error modes, hence 4 rather than 5.

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

Purpose5/5

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

States a specific compound verb+resource ('Fetch, verify, and render a live host-domain signed VRP stay offer') and names the exact inputs it operates on. It clearly distinguishes itself from hemmabo_search_properties and verify_vacation_rental_node by positioning itself as the downstream signing step.

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 call it: after hemmabo_search_properties returns a host domain, or after verify_vacation_rental_node confirms one from outside search, and 'always before quoting final price or a booking link'. It also gives a hard exclusion (must not lock a quote, create a booking, collect guest details, or start checkout) and routes booking to the signed direct_booking_url.

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

hemmabo_host_readiness_checkHost Readiness CheckA
Read-onlyIdempotent
Inspect

Read-only fit check for a vacation-rental host evaluating HemmaBo for their own booking website or booking engine. Use when the user is a host or property owner, not a guest booking a stay; guests should use hemmabo_search_properties instead. Returns a fit verdict, what the host gets, the setup inputs to prepare, and a safe onboarding next step. Does not create an account, buy a domain, configure Stripe, store host data, or provision a website. When the host is ready to start, follow up with hemmabo_host_onboarding_link. Only five inputs sharpen the fit verdict: a domain (hasOwnDomain or domain), currentChannels, one location signal (city/region/country), and the wants* booleans, which count unless explicitly false — omitting them never lowers the verdict; propertyName and preferredLanguage only prefill the onboarding URL, and with no inputs the summary is generic.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity or municipality (e.g. 'Kävlinge', 'Florence'). Optional; used in onboarding URL prefill when provided.
domainNoHost-owned domain without protocol or path (e.g. 'villaakerlyckan.se', 'myvilla.it'). Optional; omit when the host has not chosen a domain yet. Invalid: 'https://...', paths, ports, or booking URLs.
regionNoRegion or area (e.g. 'Skåne', 'Toscana', 'Marrakech-Safi'). Optional; narrows onboarding handoff and proof examples.
countryNoCountry where the property operates (e.g. 'Sweden', 'Italy', 'Morocco'). Optional; improves onboarding URL locale and fit assessment.
hasOwnDomainNoTrue if the host already owns a domain or explicitly wants one (e.g. true for 'I have villaakerlyckan.se'). False or omit when still undecided.
propertyNameNoProperty or business display name (e.g. 'Villa Åkerlyckan'). Optional; carried into onboarding URL when provided.
propertyTypeNoProperty category enum. Optional; omit when unknown. 'villa'/'holiday_home' fit best; 'hotel' may indicate a poor HemmaBo fit for large chains.
currentChannelsNoOptional list of channels the host uses today. Omit when unknown. Helps assess migration fit from OTAs to their own booking website.
preferredLanguageNoISO 639-1 language hint for onboarding copy (e.g. 'sv', 'en', 'de', 'fr'). Optional; omit to default to English.
wantsAiAgentBookingNoTrue if the host wants AI agents (ChatGPT, Claude, Cursor) to discover and book via their own official website. False or omit when they only want a guest website.
wantsDirectPaymentsNoTrue if the host wants Stripe Connect payouts direct to their account. False or omit when they expect HemmaBo to be merchant of record (not supported).

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYesTrue when the fit check completed.
productYesHemmaBo product summary, pricing, onboarding URL, and live proof URLs.
next_stepYesSafe handoff action for the host.
readinessYesFit verdict and boundaries for the host's described need.
setup_itemsYesInputs the host should prepare before onboarding.
capabilitiesYesHost-facing capabilities included in HemmaBo.
agent_instructionYesHow an AI agent should describe HemmaBo without overclaiming.

TDQS

A4.8/5.0
Behavior5/5

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

The annotations already mark it read-only, idempotent, and non-destructive, and the description adds substantial behavioral context. It states what the tool does not do: create an account, buy a domain, configure Stripe, store host data, or provision a website, and it describes the returned fit verdict, setup inputs, and safe onboarding next step.

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

Conciseness4/5

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

The description is front-loaded with the core purpose and routing guidance, and most sentences carry useful operational detail. It is dense and the long final sentence could be structured more clearly, but it is not padded with filler.

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, the rich annotations, the fully described 11-parameter schema, and the presence of an output schema, the description is complete enough to call it correctly. It covers scope, exclusions, input effects, return behavior, and the follow-up tool.

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 the baseline is 3, but the description adds real semantic weighting by identifying which inputs sharpen the fit verdict and clarifying that omitting the wants* booleans never lowers it. It also explains that propertyName and preferredLanguage only prefill the onboarding URL. However, it says only five inputs sharpen the verdict while propertyType in the schema is described as affecting fit, creating a minor ambiguity.

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 states a specific verb and resource: a read-only fit check for vacation-rental hosts evaluating HemmaBo for their own booking website or booking engine. It explicitly separates hosts from guests and names the guest-oriented sibling tool, so an agent can distinguish it without opening the schema.

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?

It gives explicit when-to-use guidance: use when the user is a host or property owner, not a guest booking a stay. It also names alternatives for both the guest path (hemmabo_search_properties) and the next host step (hemmabo_host_onboarding_link).

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

hemmabo_search_availabilityCheck 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 hemmabo_search_properties and wants to confirm availability before getting a quote. Do NOT use for general browsing — use hemmabo_search_properties instead. Read-only, open to anonymous callers (no Bearer token), and rate-limited: checking availability never places a hold or reserves dates. Returns available=true/false with conflict details and, when unavailable, the host node's own next available window (alternativeDates, at most one entry — the same window the node's /api/availability reports, never a platform-invented date); a stale inbound calendar sync blocks an available answer (fails closed with calendar_freshness) instead of guessing. Omit guests to check dates only; pass it to price the alternative windows and to gate capacity — counts above the property's maximum return available=false (guests_exceed_max) with no alternatives. Stays shorter than the host's effective minimum nights return available=false with reasonCode min_nights_violation — extend the stay rather than shifting dates. The verdict always matches the host node's own availability API.

ParametersJSON Schema
NameRequiredDescriptionDefault
guestsNoOptional guest count (e.g. 4). Omit when only checking date availability without pricing. When provided, alternative date windows in the response include live host-source totals for that guest count.
checkInYesArrival date in ISO 8601 calendar format YYYY-MM-DD (e.g. '2026-07-15'). Must be today or later in the property's timezone. Must be strictly before checkOut; together they define the stay length used for pricing and availability.
checkOutYesDeparture date in ISO 8601 calendar format YYYY-MM-DD (e.g. '2026-07-22'). Must be strictly after checkIn on the same calendar. The guest does not stay the departure night.
propertyIdYesStable property UUID from hemmabo_search_properties (e.g. '550e8400-e29b-41d4-a716-446655440000'). Pass the exact UUID string — never a property name, host domain, or booking URL.

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
channel_mirrorNoOutbound channel-manager mirror heartbeat for the host's mapped external channel (status: current|stale|partial|error|not_connected). Informational only — it never affects `available`; the host node is the source of truth for these dates.
alternativeDatesNoThe host node's own next available window (at most one) to offer when the requested dates are unavailable — identical to the node's /api/availability nextAvailable. Empty when the node offers none.
calendar_freshnessNoIncoming OTA calendar-sync freshness at answer time. The same object is embedded in the error payload when a stale calendar blocks the call — declared here so agents can treat it as a first-class field in both outcomes.

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already establish read-only, idempotent, non-destructive behavior, but the description adds substantial operational context: anonymous access, rate limiting, no hold or reservation side effects, fail-closed behavior on stale calendar sync, and exact false-return conditions such as guests_exceed_max and min_nights_violation. This goes well beyond the structured annotations.

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

Conciseness4/5

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

The description is front-loaded with purpose, then usage, then behavior, and most sentences carry necessary information. It is dense and somewhat long, with several packed clauses about edge cases, but little of it is redundant.

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, the rich input schema, and the presence of an output schema, the description is complete. It covers when to use it, when not to, access model, rate limits, side-effect safety, failure modes, and key result semantics without needing to explain the full return shape.

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

Parameters5/5

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

Schema coverage is 100%, so the baseline would be 3, but the description adds meaningful behavioral semantics for guests: omitting it checks dates only, providing it prices alternatives and gates capacity, and counts above the property maximum return available=false. It also clarifies the relationship between checkIn/checkOut and stay length and minimum-night violations.

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

Purpose5/5

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

States a specific verb and resource: checking whether a property is available for requested dates. It also explicitly distinguishes itself from the sibling hemmabo_search_properties by warning not to use it for general browsing. An agent can identify the exact operation without opening the schema.

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

Usage Guidelines5/5

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

Gives explicit sequencing: use after the user has selected a property from hemmabo_search_properties and wants to confirm availability before getting a quote. It also states when not to use it and names the correct alternative for browsing. Additional guidance covers omitting guests, pricing alternatives, and capacity gating.

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

hemmabo_search_propertiesSearch PropertiesA
Read-onlyIdempotent
Inspect

Search available vacation rental properties by location and travel dates. Use when the user wants to find or browse places to stay. Discovery only — call get_verified_stay_offer with the host domain and same dates before the final answer so the client can render the verified stay offer widget; never quote a final price or booking link from search alone. Do NOT use when the user already has a propertyId or host domain. Returns propertyId, host domain, live availability, host-source pricing, and capacity. Parameters combine as one filter with guests and the checkIn/checkOut range (checkIn strictly before checkOut): region matches broadly against region, city, and country names, while country matches the country field alone — omit both and the search spans every published property. Capacity misses are excluded; date-unavailable matches return separately in unavailableMatches with up to three alternative windows.

ParametersJSON Schema
NameRequiredDescriptionDefault
guestsYesTotal guest count as a positive integer (e.g. 2, 4, 6). Used for capacity filtering and staircase pricing tiers. Properties with maxGuests below this value are excluded from search results.
regionNoRegion, area, or destination to search within (e.g. 'Skåne', 'Kävlinge', 'Toscana', 'Bavaria'). Partial case-insensitive match. Provide at least one of region or country; omit only when country alone is sufficient.
checkInYesArrival date in ISO 8601 calendar format YYYY-MM-DD (e.g. '2026-07-15'). Must be today or later in the property's timezone. Must be strictly before checkOut; together they define the stay length used for pricing and availability.
countryNoCountry name to filter by (e.g. 'Sweden', 'Italy', 'Morocco'). Partial case-insensitive match. Provide at least one of region or country; omit when region already narrows the destination.
checkOutYesDeparture date in ISO 8601 calendar format YYYY-MM-DD (e.g. '2026-07-22'). Must be strictly after checkIn on the same calendar. The guest does not stay the departure night.

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 host-source pricing.

TDQS

A4.8/5.0
Behavior5/5

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

Adds rich context beyond annotations: read-only is covered by annotations, but the description adds that search alone must never quote a final price or booking link, that date-unavailable matches return separately in unavailableMatches with up to three alternative windows, and that capacity misses are excluded. This is exactly the behavioral detail annotations do not cover.

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

Conciseness4/5

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

Well front-loaded: purpose first, then usage, then behavioral warnings, then parameter mechanics. Dense but every clause carries information. Slightly long but justified by the multi-part semantics.

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, usage, routing to sibling, return fields (propertyId, host domain, availability, pricing, capacity), edge cases (capacity misses excluded, date-unavailable matches in unavailableMatches), and parameter interaction. An output schema exists but the description still appropriately summarizes returns. Nothing an agent needs to call this correctly is missing.

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. The description still adds value by specifying how region and country combine (region matches broadly against region/city/country; country matches country alone; omitting both spans all properties), and that checkIn is strictly before checkOut. This is useful cross-parameter logic not fully captured 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?

States a specific verb (search) and resource (vacation rental properties) with scope (by location and travel dates). Explicitly distinguishes from siblings by naming get_verified_stay_offer as the required follow-up and stating this is discovery only.

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?

Front-loads when to use ('find or browse places to stay') and when not ('already has a propertyId or host domain'). Also names the mandatory alternative workflow (call get_verified_stay_offer before final answer), leaving nothing ambiguous.

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

verify_vacation_rental_nodeVerify Vacation Rental NodeA
Read-onlyIdempotent
Inspect

Verify that a vacation-rental host domain is a valid Vacation Rental Protocol (VRP) node before trusting it. Reads the domain's .well-known/vacation-rental.json and JWKS. Read-only trust check: no availability, pricing, booking, or payment — do NOT use it to answer those questions. Use when a host domain arrives from outside search (user-typed or third-party); domains returned by hemmabo_search_properties can go straight to get_verified_stay_offer. On success, call get_verified_stay_offer with the same domain and stay dates. The single input is the host domain as a bare hostname (no scheme or path); public domains only — IPs, ports, and local/private hostnames are refused. Pass the node's canonical domain exactly — www and apex are distinct identities, and verification fails when the domain's declared canonical_domain differs from the one you passed. Verification reads that domain's own .well-known and JWKS, so the result is only as trustworthy as the exact domain you pass.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesHost-owned domain without protocol or path (e.g. 'villaakerlyckan.se', 'myvilla.it'). Invalid: 'https://...', paths, ports, or booking URLs.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when verified=false or the node cannot be checked.
domainYesEchoed canonical host domain that was checked.
signingNoSummary of accepted signing algorithms, key ids, and signing-key checks.
jwks_urlNoHost-domain JWKS URL containing the Ed25519 public keys used to verify signed offers.
protocolNoProtocol identifier discovered on the host domain. A valid node declares exactly 'vacation-rental-protocol' in its .well-known/vacation-rental.json protocol field, and that is the value returned here.
verifiedYesTrue only when discovery, JWKS, signing metadata, and verified-offer endpoint checks pass.
discovery_urlNoThe .well-known vacation-rental discovery URL read from the host domain.
protocol_versionNoVRP version declared by the host discovery document.
verified_stay_offer_urlNoHost-domain endpoint template or URL used to request signed verified stay offers.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, but the description adds substantial context beyond them: it reads the domain's own .well-known and JWKS, refuses IPs/ports/local/private hostnames, and explains the canonical-domain identity rule (www vs apex, declared canonical_domain mismatch causes failure). These are exactly the behavioral traits an agent needs and cannot get from annotations.

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

Conciseness4/5

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

Front-loaded with purpose and scope before the usage rules, and nearly every sentence carries an operational constraint. The closing sentence restates the canonical-domain trust caveat already made earlier, which is mild redundancy rather than filler.

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 one-parameter read-only verification tool with an output schema, everything an agent needs is present: what it reads, the failure conditions (private hosts, canonical mismatch), and the exact next call. Return values are covered by the output schema, so no gap remains.

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 the schema already documents the single 'domain' parameter and its pattern. The description adds genuine meaning beyond the schema: bare hostname only, public domains only, and the subtle canonical-identity semantics (www and apex are distinct, pass the canonical domain exactly). It stops short of 5 because the schema pattern already constrains the format.

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

Purpose5/5

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

States a specific verb and resource ('Verify that a vacation-rental host domain is a valid VRP node') and immediately scopes what it reads (.well-known/vacation-rental.json and JWKS). It clearly distinguishes itself from get_verified_stay_offer and hemmabo_search_properties, so an agent can route between them without opening schemas.

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

Usage Guidelines5/5

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

Explicit when-to-use ('when a host domain arrives from outside search — user-typed or third-party'), an explicit alternative for the other case (domains from hemmabo_search_properties go straight to get_verified_stay_offer), and negative guidance (do NOT use to answer availability/pricing/booking/payment). It also names the follow-up call on success.

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

Tool Schema Changelog

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

  1. 8 tool updates
    • Removedhemmabo_booking_cancel
    • Removedhemmabo_booking_checkout
    • Removedhemmabo_booking_create
    • Removedhemmabo_booking_negotiate
    • Removedhemmabo_booking_quote
    • Removedhemmabo_booking_reschedule
    • Removedhemmabo_booking_status
    • Changedhemmabo_search_properties2 fields changed
      • addedOutput schema / properties / properties / items / properties / booking_url
        Added value: +{
        +  "description": "The host's own booking URL: https:// plus the host-owned domain. Null when the property has no domain.",
        +  "format": "uri",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • changedOutput schema / properties / properties / items / properties / propertyId / description
        Previous value: -"Stable UUID. Pass to subsequent tools (availability, quote, checkout)."New value: +"Stable UUID. Pass to subsequent tools (availability)."
  2. 3 tool updates
    • Changedhemmabo_booking_cancel3 fields changed
      • addedOutput schema / properties / checkIn
        Added value: +{
        +  "description": "Arrival date of the cancelled stay (YYYY-MM-DD).",
        +  "type": "string"
        +}
      • addedOutput schema / properties / checkOut
        Added value: +{
        +  "description": "Departure date of the cancelled stay (YYYY-MM-DD).",
        +  "type": "string"
        +}
      • removedOutput schema / properties / refund
        Removed value: -{
        -  "additionalProperties": true,
        -  "description": "Refund payload returned by cancel-booking edge function, when present.",
        -  "type": "object"
        -}
    • Changedhemmabo_booking_checkout6 fields changed
      • removedInput schema / properties / paymentMode
        Removed value: -{
        -  "description": "Stripe payment flow. 'checkout_session' (default): returns a browser redirect URL. 'payment_intent': returns client_secret for embedded/agentic payment integrations. Omit to use checkout_session.",
        -  "enum": [
        -    "checkout_session",
        -    "payment_intent"
        -  ],
        -  "type": "string"
        -}
      • removedOutput schema / properties / mpp
        Removed value: -{
        -  "additionalProperties": true,
        -  "description": "Present when paymentMode='payment_intent'.",
        -  "type": "object"
        -}
      • changedOutput schema / properties / paymentUrl / description
        Previous value: -"Stripe Checkout redirect URL."New value: +"Host-configured Stripe Checkout URL for the guest to open in their own browser."
      • removedOutput schema / properties / payment_modes
        Removed value: -{
        -  "description": "Supported payment modes.",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • changedOutput schema / properties / status / description
        Previous value: -"Booking status (typically 'pending' until payment succeeds)."New value: +"Booking status (typically 'pending' until the Stripe webhook confirms the booking)."
      • changedOutput schema / properties / totalPrice / description
        Previous value: -"Final total charged (or to be charged), in minor currency units."New value: +"Total for the stay in minor currency units, as shown on the host's Stripe Checkout page."
    • Changedhemmabo_booking_reschedule1 field changed
      • removedOutput schema / properties / pricing / properties / stripeAction
        Removed value: -{
        -  "additionalProperties": true,
        -  "type": "object"
        -}
  3. 1 tool update
    • Changedhemmabo_search_availability1 field changed
      • changedOutput schema / properties / alternativeDates / description
        Previous value: -"Nearby same-month date windows to offer when the requested dates are unavailable."New value: +"The host node's own next available window (at most one) to offer when the requested dates are unavailable — identical to the node's /api/availability nextAvailable. Empty when the node offers none."
  4. 1 tool update
    • Changedverify_vacation_rental_node1 field changed
      • changedOutput schema / properties / protocol / description
        Previous value: -"Protocol identifier discovered on the host domain, typically 'vrp'."New value: +"Protocol identifier discovered on the host domain. A valid node declares exactly 'vacation-rental-protocol' in its .well-known/vacation-rental.json protocol field, and that is the value returned here."
  5. 1 tool update
    • Changedhemmabo_host_readiness_check2 fields changed
      • changedOutput schema / properties / product / properties / price / properties / amount / description
        Previous value: -"Monthly subscription price in major currency units (e.g. 399)."New value: +"Monthly subscription price in major currency units (e.g. 39)."
      • changedOutput schema / properties / product / properties / price / properties / currency / description
        Previous value: -"ISO 4217 currency code (e.g. 'SEK')."New value: +"ISO 4217 currency code (e.g. 'USD')."
  6. 13 tool updates
    • First observedget_verified_stay_offer
    • First observedhemmabo_booking_cancel
    • First observedhemmabo_booking_checkout
    • First observedhemmabo_booking_create
    • First observedhemmabo_booking_negotiate
    • First observedhemmabo_booking_quote
    • First observedhemmabo_booking_reschedule
    • First observedhemmabo_booking_status
    • First observedhemmabo_host_onboarding_link
    • First observedhemmabo_host_readiness_check
    • First observedhemmabo_search_availability
    • First observedhemmabo_search_properties
    • First observedverify_vacation_rental_node

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables LLMs and AI agents to perform defensive security posture assessments, privilege escalation surface audits, and post-quantum cryptography readiness checks through read-only diagnostic tools.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI clients to perform sandboxed filesystem, directory, Ubuntu system, network, git, and code/text operations through 38 typed tools confined to a workspace. Ships with a browser-based web console that provides an interactive Linux terminal, a live tool playground, and real-time CPU, memory, and disk monitoring.
    38
    2
    MIT
  • F
    license
    A
    quality
    B
    maintenance
    Local-first MCP tools for AI-assisted work receipts, workspace maps, routing ledgers, measured verdicts, and shared state verification across the five Project Telos flagships.
    41
    2
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.