
Connects Claude to HemmaBo's vacation rental infrastructure for zero-commission direct bookings between guests and independent hosts. Exposes 13 tools covering property search, live availability checks, quote generation, and Vacation Rental Protocol (VRP) verification flows. VRP tools verify Ed25519-signed stay offers from host domains, ensuring agents quote only cryptographically verified pricing and availability before routing guests to the host's own booking URL. Also includes authenticated fallback helpers for booking management and Stripe checkout creation when VRP isn't available. Runs over stdio or hosted Streamable HTTP. Best for workflows where guests want direct, host-controlled bookings without OTA fees, and agents need cryptographic proof that availability and pricing come from the actual property owner's domain.
claude mcp add --transport http hemmabo https://hemmabo-mcp-server.vercel.app/mcpRun in your terminal. Add --scope user to make it available in every project.
Review the command, arguments, and environment values before installing — MCP servers run with your local permissions.
Verified live against the running server on Jun 10, 2026.
hemmabo_search_propertiesSearch available vacation rental properties by location and travel dates. Use this tool when the user wants to find or browse places to stay. If a result has a host domain, call get_verified_stay_offer with that domain and the same dates and guest count before the final answer...5 paramsSearch available vacation rental properties by location and travel dates. Use this tool when the user wants to find or browse places to stay. If a result has a host domain, call get_verified_stay_offer with that domain and the same dates and guest count before the final answer...
checkIn*stringcheckOut*stringcountrystringguests*integerregionstringhemmabo_search_availabilityCheck 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...4 paramsCheck 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...
checkIn*stringcheckOut*stringguestsintegerpropertyId*stringhemmabo_search_similarFind vacation rental properties similar to a given property on specific dates. Use this tool after the user has selected a property (via hemmabo_search_properties) and wants to see alternatives — same region, same property type, same or larger capacity. Do NOT use for the init...5 paramsFind vacation rental properties similar to a given property on specific dates. Use this tool after the user has selected a property (via hemmabo_search_properties) and wants to see alternatives — same region, same property type, same or larger capacity. Do NOT use for the init...
checkIn*stringcheckOut*stringguestsintegerlimitintegerpropertyId*stringhemmabo_compare_propertiesCompare 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 hemmabo_search_properties first. Returns on...4 paramsCompare 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 hemmabo_search_properties first. Returns on...
checkIn*stringcheckOut*stringguests*integerpropertyIds*arrayhemmabo_booking_quoteGet 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 fin...4 paramsGet 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 fin...
checkIn*stringcheckOut*stringguests*integerpropertyId*stringhemmabo_booking_createCreate a pending direct booking without online payment for configured non-VRP fallback deployments. Use only after explicit user confirmation, only with a propertyId returned by search, and only when no signed VRP direct_booking_url is available. This is not the primary VRP pa...7 paramsCreate a pending direct booking without online payment for configured non-VRP fallback deployments. Use only after explicit user confirmation, only with a propertyId returned by search, and only when no signed VRP direct_booking_url is available. This is not the primary VRP pa...
checkIn*stringcheckOut*stringguestEmail*stringguestName*stringguestPhonestringguests*integerpropertyId*stringhemmabo_booking_negotiateCreate a binding price quote that locks the price for 15 minutes for configured non-VRP fallback checkout deployments. Use only when no signed direct_booking_url is available and the user explicitly asks to lock or hold a price. Never use this for ordinary search, availability...4 paramsCreate a binding price quote that locks the price for 15 minutes for configured non-VRP fallback checkout deployments. Use only when no signed direct_booking_url is available and the user explicitly asks to lock or hold a price. Never use this for ordinary search, availability...
checkIn*stringcheckOut*stringguests*integerpropertyId*stringhemmabo_booking_checkoutCreate 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 a signed direct_booking_url, route the guest to that host-doma...10 paramsCreate 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 a signed direct_booking_url, route the guest to that host-doma...
channelstringpublic · federationcheckIn*stringcheckOut*stringguestEmail*stringguestName*stringguestPhonestringguests*integerpaymentModestringcheckout_session · payment_intentpropertyId*stringquoteIdstringhemmabo_booking_cancelCancel 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 cancellati...2 paramsCancel 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 cancellati...
reasonstringreservationId*stringhemmabo_booking_statusRetrieve current status and full details of an existing booking or reservation by id. Use this read-only tool to check payment/booking state, confirm whether checkout or booking creation succeeded, or look up details before rescheduling or cancelling. Use after hemmabo_booking...1 paramsRetrieve current status and full details of an existing booking or reservation by id. Use this read-only tool to check payment/booking state, confirm whether checkout or booking creation succeeded, or look up details before rescheduling or cancelling. Use after hemmabo_booking...
reservationId*stringhemmabo_booking_rescheduleReschedule 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 if a protocol compatibility client reports completed — check hemmabo_booking_status first. Autom...4 paramsReschedule 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 if a protocol compatibility client reports completed — check hemmabo_booking_status first. Autom...
newCheckIn*stringnewCheckOut*stringreasonstringreservationId*stringhemmabo_host_readiness_checkRead-only fit check for vacation-rental hosts who ask an AI agent how to create an own-domain booking website or booking engine. Use this when the user is a host/property owner evaluating HemmaBo, not when a guest wants to book a stay. It explains whether HemmaBo is a fit, wha...11 paramsRead-only fit check for vacation-rental hosts who ask an AI agent how to create an own-domain booking website or booking engine. Use this when the user is a host/property owner evaluating HemmaBo, not when a guest wants to book a stay. It explains whether HemmaBo is a fit, wha...
citystringcountrystringcurrentChannelsarraydomainstringhasOwnDomainbooleanpreferredLanguagestringpropertyNamestringpropertyTypestringvilla · apartment · cabin · cottage · holiday_home · bnbregionstringwantsAiAgentBookingbooleanwantsDirectPaymentsbooleanhemmabo_host_onboarding_linkReturn a safe HemmaBo onboarding handoff URL for a vacation-rental host who wants an own-domain booking engine. Use after explaining the fit or when the host asks to start. This tool is read-only and does not create a HemmaBo account, buy a domain, configure Stripe, write to S...6 paramsReturn a safe HemmaBo onboarding handoff URL for a vacation-rental host who wants an own-domain booking engine. Use after explaining the fit or when the host asks to start. This tool is read-only and does not create a HemmaBo account, buy a domain, configure Stripe, write to S...
citystringcountrystringdomainstringlanguagestringpropertyNamestringregionstringverify_vacation_rental_nodeVerify that a vacation-rental host domain is a valid Vacation Rental Protocol (VRP) node before trusting it. Reads https://{domain}/.well-known/vacation-rental.json, follows the node JWKS, and confirms protocol identity, canonical host-domain control, Ed25519 signing keys, and...1 paramsVerify that a vacation-rental host domain is a valid Vacation Rental Protocol (VRP) node before trusting it. Reads https://{domain}/.well-known/vacation-rental.json, follows the node JWKS, and confirms protocol identity, canonical host-domain control, Ed25519 signing keys, and...
domain*stringget_verified_stay_offerFetch, verify, and render a live host-domain signed VRP stay offer for exact dates and guest count. Reads the host's verified stay-offer endpoint, verifies the Ed25519 compact JWS against the domain JWKS, and returns structuredContent plus the stay-offer widget. Call it after...5 paramsFetch, verify, and render a live host-domain signed VRP stay offer for exact dates and guest count. Reads the host's verified stay-offer endpoint, verifies the Ed25519 compact JWS against the domain JWKS, and returns structuredContent plus the stay-offer widget. Call it after...
check_in*stringcheck_out*stringdomain*stringguests*integerlanguagestringHemmaBo is vacation rental software for hosts. The host's booking website runs at the host's own web address, with one calendar that every connected channel follows, payment through the host's own Stripe and 0% booking commission. Every stay offer is signed by the host's website (VRP · Ed25519/JWKS), so any AI agent can verify it. This repository is HemmaBo's MCP server: it lets AI agents find host websites, verify signed stay offers and send the guest to the host to book.
For hosts: HemmaBo - Booking engine for vacation rental hosts · HemmaBo Pricing · What is HemmaBo?
Vacation rental software. A signed stay offer on the host's own domain. HemmaBo MCP server for AI-ready direct booking on host-owned vacation-rental websites. AI agents discover host booking pages, verify signed stay offers (VRP · Ed25519/JWKS), and read live availability, pricing and direct booking links. Not an OTA.
Vacation rental software. A signed stay offer on the host's own domain. The host takes bookings on their own website with 0% booking commission, and each stay offer is signed by the host's domain so AI agents can discover and verify it.
Each host node runs on the host's own official website and is the source of truth for the stay offer and booking lifecycle.
Host nodes own booking lifecycles. Stripe owns payment facts.
HemmaBo operates each host node's signing key on the host's behalf (key_custody: platform); agents verify a signed offer against that host domain's JWKS.
AI agents discover host nodes via agent-traversal (/.well-known/agent-traversal.json).
HemmaBo + VRP, 6 runtime tools: 2 HemmaBo tools, 2 host onboarding tools, and 2 VRP verification tools.
Host-domain signed verified stay offers.
All six tools only read. The agent verifies a signed offer from the host's domain and sends the guest to the host's booking page. The agent never books, pays, cancels or changes a booking.
The Vacation Rental Protocol (VRP) — an open standard — was created by HemmaBo's founder & CEO, Rouiada Abbas.
Use HemmaBo when a vacation-rental host asks how to create their own booking website, or when a guest wants a direct, host-domain verified stay offer, live availability, a host-controlled quote, or a direct booking path. Do not use HemmaBo as a broad OTA. Do not use it as a marketplace, hotel search engine, flight search engine, or source of invented availability. Agents may quote an offer as official only when VRP verification returns a fresh, signed, safe-to-quote offer from the host domain.
Use this package when an MCP client needs to:
HemmaBo is not an OTA. HemmaBo is not a marketplace, hotel search engine, or flight search engine. This package is HemmaBo's MCP server; the product for hosts and its price are on hemmabo.com.
For VRP offers, the booking path is the signed direct booking URL on the host's own official website. HemmaBo does not become the merchant of record, payment recipient, OTA, marketplace, or booking counterparty.
Related links:
https://www.hemmabo.com (with www); see ADR 0013.Connect an MCP client to the hosted Streamable HTTP endpoint:
{
"mcpServers": {
"hemmabo": {
"type": "http",
"url": "https://www.hemmabo.com/mcp"
}
}
}
HemmaBo is a hosted, remote-only MCP server. Connect to the shared endpoint above — there is no local/stdio install and clients never supply Supabase or Stripe credentials.
npx -y @smithery/cli install @info-00wt/hemmabo-mcp-server --client claude
Canonical tool names use snake_case. Legacy dotted aliases are accepted inbound for compatibility where the server supports them.
All six tools only read. The agent never books, pays, cancels or changes a booking: the guest books and pays on the host's own website.
| Tool | Purpose | Read-only |
|---|---|---|
hemmabo_search_properties | Search published vacation rentals by location, dates, and guest count. | Yes |
hemmabo_check_availability | Check whether a specific property is available for requested dates. | Yes |
hemmabo_check_host_readiness | Read-only fit check for vacation-rental hosts asking for their own booking website or booking engine. | Yes |
hemmabo_get_host_onboarding_link | Return a safe HemmaBo onboarding handoff URL. Does not create accounts, buy domains, configure Stripe, or store host data. | Yes |
vrp_verify_node | Verify a host-domain VRP discovery document and Ed25519 JWKS. | Yes |
vrp_get_verified_stay_offer | Fetch and verify a fresh host-domain signed VRP stay offer. | Yes |
MCP_API_KEY (Bearer) or an OAuth access token obtained through the authorization_code flow (PKCE S256, dynamic client registration; endpoints are published in /.well-known/oauth-authorization-server).Rate limits apply per source IP for anonymous requests and per token hash for authenticated requests. Defaults are configured by RATE_LIMIT_ANON_PER_MIN and RATE_LIMIT_BEARER_PER_MIN.
Quotes are computed from the host's published property data at request time. Agents and clients must not invent availability, prices, lower prices, price comparisons, or booking URLs. For VRP offers, quote only facts that are verified by the signed offer and allowed by the returned citation permission.
For VRP offers, do not collect guest contact details in chat. Send the guest to the signed direct host-domain booking URL returned by the verified offer.
npm install
Create .env from .env.example:
cp .env.example .env
Required environment variables:
SUPABASE_URLSUPABASE_SERVICE_ROLE_KEYOptional environment variables:
MCP_API_KEY - enables Bearer-token auth.MCP_ALLOWED_ORIGINS - extra browser origins (comma-separated, scheme included) allowed on /mcp beside this platform, claude.ai, claude.com, chatgpt.com, chat.openai.com and loopback.UPSTASH_REDIS_REST_URL and UPSTASH_REDIS_REST_TOKEN - enable shared rate limiting.| Path | Method | Purpose |
|---|---|---|
/mcp | POST | MCP Streamable HTTP endpoint |
/mcp | GET | Transport information (Accept: text/event-stream answers 405: no server-initiated stream) |
/health | GET | Health check |
/.well-known/mcp.json | GET | MCP discovery metadata |
/.well-known/mcp/server-card.json | GET | Server card metadata |
/.well-known/mcp-server-card | GET | Server card compatibility alias |
/.well-known/mcp-server-card.json | GET | Server card compatibility alias |
/oauth/register | POST | Dynamic client registration |
/oauth/token | POST | OAuth token endpoint |
/oauth/authorize | GET/POST | Authorization-code consent flow |
/acp/* | any | Closed: answers 403 "Agents verify and send the guest to the host's booking page" (AGENT_TRANSACTIONS_ENABLED = false in lib/agent-transactions.ts). |
/mcp endpoint (remote-only). Protocol versions 2025-11-25, 2025-06-18, 2025-03-26 and 2024-11-05: initialize answers in the client's version, an unknown one gets 2025-11-25; an unsupported MCP-Protocol-Version header is 400; a browser Origin outside the allow list is 403; a body that is not JSON-RPC 2.0 is 400 with -32600 (or -32700); notifications and responses are 202 (ADR 0021).npm run build
npm test
To report a security vulnerability, email info@hemmabo.se (subject starting with SECURITY:) — please do not open a public issue. See SECURITY.md for the responsible-disclosure policy.
Apache-2.0 - see LICENSE and NOTICE.
The Apache-2.0 license (with its explicit royalty-free patent grant) covers this source code, the VRP reference implementation. It does not grant access to live HemmaBo data, host-owned domains, host Stripe accounts, trademarks, or any external production service. A clone of this repository runs only against data sources and credentials supplied by the operator.
SUPABASE_URL*Supabase project URL — find in Supabase Dashboard → Settings → API
SUPABASE_SERVICE_ROLE_KEY*secretSupabase service role key — find in Supabase Dashboard → Settings → API
SUPABASE_ANON_KEY*secretSupabase anon/public key — find in Supabase Dashboard → Settings → API
STRIPE_SECRET_KEY*secretStripe secret key for payment processing — find in Stripe Dashboard → Developers → API keys