{"apiVersion":"v1","directorySlug":"hemmabo-mcp-da09e0a890","title":"HemmaBo","description":"HemmaBo verifies and books host-owned vacation rental domains. Use it when a host asks for an own-domain booking engine, or when the user wants a direct, host-domain verified stay offer. Vacation Rental Protocol is an open protocol for host-domain signed vacation rental offers. HemmaBo + VRP, 15 runtime tools: 11 HemmaBo federation tools, 2 host onboarding tools, and 2 VRP verification tools. Host-domain signed verified stay offers. Not an OTA. Not a marketplace. Not a website builder.","pageUrl":"https://www.mcpbundles.com/skills/hemmabo-mcp-da09e0a890","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://hemmabo.com/mcp","hostedMcpUrl":null,"toolCount":13,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.hemmabo/hemmabo-mcp-da09e0a890","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"hemmabo_search_properties","description":"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 c","inputSchema":{"type":"object","required":["guests","checkIn","checkOut"],"properties":{"guests":{"type":"integer","minimum":1},"region":{"type":"string"},"checkIn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"country":{"type":"string"},"checkOut":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"hemmabo_search_properties","displayName":"hemmabo_search_properties","title":"hemmabo_search_properties"},{"name":"hemmabo_search_availability","description":"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","inputSchema":{"type":"object","required":["propertyId","checkIn","checkOut"],"properties":{"guests":{"type":"integer","minimum":1},"checkIn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"checkOut":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"propertyId":{"type":"string","format":"uuid"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"hemmabo_search_availability","displayName":"hemmabo_search_availability","title":"hemmabo_search_availability"},{"name":"hemmabo_booking_quote","description":"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 the final host-source total for the booking flow, per-night breakdown, and package pricing context. All prices are integers in the property's local currency (e.g. SEK). The quote is the propertyId priced for the exact checkIn/chec","inputSchema":{"type":"object","required":["propertyId","checkIn","checkOut","guests"],"properties":{"guests":{"type":"integer","minimum":1},"checkIn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"checkOut":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"propertyId":{"type":"string","format":"uuid"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"hemmabo_booking_quote","displayName":"hemmabo_booking_quote","title":"hemmabo_booking_quote"},{"name":"hemmabo_booking_create","description":"Create a pending direct booking without online payment for configured non-VRP fallback deployments. Use only after explicit user confirmation, with a propertyId from search, and only when no signed VRP direct_booking_url is available. For signed VRP offers, route to the signed host-domain URL instead. Requires Authorization: Bearer token (MCP_API_KEY or OAuth); rate-limited per token. Writes exactly one pending booking awaiting the host's decision; availability is checked first — conflicts or a","inputSchema":{"type":"object","required":["propertyId","checkIn","checkOut","guests","guestName","guestEmail"],"properties":{"guests":{"type":"integer","minimum":1},"checkIn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"checkOut":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"guestName":{"type":"string"},"guestEmail":{"type":"string","format":"email"},"guestPhone":{"type":"string"},"propertyId":{"type":"string","format":"uuid"}},"additionalProperties":false},"logicalName":"hemmabo_booking_create","displayName":"hemmabo_booking_create","title":"hemmabo_booking_create","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"hemmabo_booking_negotiate","description":"PRICE LOCK, not negotiation: the host's price is fixed — this tool never bargains, discounts, or alters it; it only freezes the current host-source price for 15 minutes so it cannot change during checkout. It refuses to lock dates the property's calendar cannot deliver and returns alternative bookable windows instead. Use it only in the non-VRP fallback checkout flow, when no signed direct_booking_url is available and the user explicitly asks to lock a price. Never use this for search, availabil","inputSchema":{"type":"object","required":["propertyId","checkIn","checkOut","guests"],"properties":{"guests":{"type":"integer","minimum":1},"checkIn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"checkOut":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"propertyId":{"type":"string","format":"uuid"}},"additionalProperties":false},"logicalName":"hemmabo_booking_negotiate","displayName":"hemmabo_booking_negotiate","title":"hemmabo_booking_negotiate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"hemmabo_booking_checkout","description":"Create a fallback non-VRP booking and return a host-configured Stripe checkout URL. Use only after explicit user confirmation when no signed VRP direct_booking_url is available; when get_verified_stay_offer returns one, route the guest there instead. Use hemmabo_booking_create to record a pending booking without collecting payment yet.","inputSchema":{"type":"object","required":["propertyId","checkIn","checkOut","guests","guestName","guestEmail"],"properties":{"guests":{"type":"integer","minimum":1},"channel":{"enum":["public","federation"],"type":"string"},"checkIn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"quoteId":{"type":"string"},"checkOut":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"guestName":{"type":"string"},"guestEmail":{"type":"string","format":"email"},"guestPhone":{"type":"string"},"propertyId":{"type":"string","format":"uuid"},"paymentMode":{"enum":["checkout_session","payment_intent"],"type":"string"}},"additionalProperties":false},"logicalName":"hemmabo_booking_checkout","displayName":"hemmabo_booking_checkout","title":"hemmabo_booking_checkout","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"hemmabo_booking_cancel","description":"Cancel a confirmed booking and process the Stripe refund per host cancellation policy. Use when the guest explicitly requests cancellation — if the guest wants new dates instead of ending the stay, use hemmabo_booking_reschedule instead. Do not use for pending/unpaid bookings — those expire automatically. To preview the applicable policy first, read cancellationPolicy from hemmabo_booking_status. Requires Authorization: Bearer token (MCP_API_KEY or OAuth); rate-limited per token. Destructive and","inputSchema":{"type":"object","required":["reservationId","guestToken"],"properties":{"reason":{"type":"string"},"guestToken":{"type":"string"},"reservationId":{"type":"string","format":"uuid"}},"additionalProperties":false},"logicalName":"hemmabo_booking_cancel","displayName":"hemmabo_booking_cancel","title":"hemmabo_booking_cancel","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"hemmabo_booking_status","description":"Retrieve current status and full details of an existing booking by reservationId. Use to confirm checkout/create succeeded or before cancel/reschedule. Do NOT use for property discovery, availability, or pricing — use hemmabo_search_properties, hemmabo_search_availability, or hemmabo_booking_quote for those. Requires Authorization: Bearer token (MCP_API_KEY or OAuth); rate-limited per token. Read-only against the database — never writes, so it is safe to poll after a checkout timeout — but retur","inputSchema":{"type":"object","required":["reservationId","guestToken"],"properties":{"guestToken":{"type":"string"},"reservationId":{"type":"string","format":"uuid"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"hemmabo_booking_status","displayName":"hemmabo_booking_status","title":"hemmabo_booking_status"},{"name":"hemmabo_booking_reschedule","description":"Reschedule a confirmed or pending booking to new dates with automatic repricing and Stripe charge/refund. Use when the guest wants to change dates on an existing booking — if the guest wants to end the stay entirely rather than move it, use hemmabo_booking_cancel instead. Do not use if cancelled or if a protocol compatibility client reports completed — check hemmabo_booking_status first. Requires Authorization: Bearer token (MCP_API_KEY or OAuth). Destructive write: the original dates are releas","inputSchema":{"type":"object","required":["reservationId","guestToken","newCheckIn","newCheckOut"],"properties":{"reason":{"type":"string"},"guestToken":{"type":"string"},"newCheckIn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"newCheckOut":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"reservationId":{"type":"string","format":"uuid"}},"additionalProperties":false},"logicalName":"hemmabo_booking_reschedule","displayName":"hemmabo_booking_reschedule","title":"hemmabo_booking_reschedule","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"hemmabo_host_readiness_check","description":"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 hem","inputSchema":{"type":"object","required":[],"properties":{"city":{"type":"string"},"domain":{"type":"string","pattern":"^(?!-)(?:[a-zA-Z0-9-]{1,63}\\.)+[a-zA-Z]{2,63}$"},"region":{"type":"string"},"country":{"type":"string"},"hasOwnDomain":{"type":"boolean"},"propertyName":{"type":"string"},"propertyType":{"enum":["villa","apartment","cabin","cottage","holiday_home","bnb","hotel","other"],"type":"string"},"currentChannels":{"type":"array","items":{"type":"string"},"maxItems":8},"preferredLanguage":{"type":"string"},"wantsAiAgentBooking":{"type":"boolean"},"wantsDirectPayments":{"type":"boolean"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"hemmabo_host_readiness_check","displayName":"hemmabo_host_readiness_check","title":"hemmabo_host_readiness_check"},{"name":"hemmabo_host_onboarding_link","description":"Return a safe HemmaBo onboarding handoff URL for a vacation-rental host who wants their own booking website or booking engine. Not for guests — guests should use hemmabo_search_properties instead. Use after explaining the fit or when the host asks to start; if the host is still evaluating whether HemmaBo fits, run hemmabo_host_readiness_check first — it already returns the same prefilled URL in its next_step. This tool is read-only and does not create a HemmaBo account, buy a domain, configure S","inputSchema":{"type":"object","required":[],"properties":{"city":{"type":"string"},"domain":{"type":"string","pattern":"^(?!-)(?:[a-zA-Z0-9-]{1,63}\\.)+[a-zA-Z]{2,63}$"},"region":{"type":"string"},"country":{"type":"string"},"language":{"type":"string"},"propertyName":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"hemmabo_host_onboarding_link","displayName":"hemmabo_host_onboarding_link","title":"hemmabo_host_onboarding_link"},{"name":"verify_vacation_rental_node","description":"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 t","inputSchema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string","pattern":"^(?!-)(?:[a-zA-Z0-9-]{1,63}\\.)+[a-zA-Z]{2,63}$"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"verify_vacation_rental_node","displayName":"verify_vacation_rental_node","title":"verify_vacation_rental_node"},{"name":"get_verified_stay_offer","description":"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; fall back to hemmabo_b","inputSchema":{"type":"object","required":["domain","checkIn","checkOut","guests"],"properties":{"domain":{"type":"string","pattern":"^(?!-)(?:[a-zA-Z0-9-]{1,63}\\.)+[a-zA-Z]{2,63}$"},"guests":{"type":"integer","minimum":1},"checkIn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"checkOut":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"language":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_verified_stay_offer","displayName":"get_verified_stay_offer","title":"get_verified_stay_offer"}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=HemmaBo&config=eyJ1cmwiOiAiaHR0cHM6Ly9oZW1tYWJvLmNvbS9tY3AifQ%3D%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22HemmaBo%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fhemmabo.com%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22HemmaBo%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fhemmabo.com%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=HemmaBo&connectorUrl=https%3A%2F%2Fhemmabo.com%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"HemmaBo\" --url \"https://hemmabo.com/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/hemmabo-mcp-da09e0a890","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/hemmabo-mcp-da09e0a890/tools/{tool}","mcpServerUrl":"https://hemmabo.com/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/hemmabo-mcp-da09e0a890?live=1"}