Find an Airbnb listing cheaper elsewhere, search vacation rentals, quote, and hand off to checkout.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Checks a quote_id is still available and returns a checkout_url for the traveler to open. The traveler signs in, reviews the price, house rules and cancellation policy, and pays there; this tool reserves nothing and charges nothing by itself. Never pass card or payment details to it.
The quote_id from get_quote. Quotes last 15 minutes
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http homeshared https://homeshared.app/mcp
Checks a quote_id is still available and returns a checkout_url for the traveler to open. The traveler signs in, reviews the price, house rules and cancellation policy, and pays there; this tool reserves nothing and charges nothing by itself. Never pass card or payment details to it.
| Argument | Type | Description |
|---|---|---|
| quote_id* | string | The quote_id from get_quote. Quotes last 15 minutes |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"quote_id"
],
"properties": {
"quote_id": {
"type": "string",
"maxLength": 2000,
"minLength": 10,
"description": "The quote_id from get_quote. Quotes last 15 minutes"
}
}
}Given an Airbnb listing URL and trip dates, finds the same home bookable somewhere else (on HomeShared, where guests pay no service fee, or on a host's own booking site) and returns each match with its all-in total including fees and taxes, the savings versus the Airbnb total, how confident the match is, a link, and when the price was checked. Reads only that one public Airbnb listing page; it doesn't search Airbnb. If the home isn't listed anywhere else it returns no offers and says so.
| Argument | Type | Description |
|---|---|---|
| pets | integer | Pets (service animals don't count). Default 0 |
| adults* | integer | Guests aged 13 or older |
| infants | integer | Guests under 2; they don't count toward capacity. Default 0 |
| check_in* | string | Check-in date, YYYY-MM-DD |
| children | integer | Guests aged 2-12. Default 0 |
| check_out* | string | Check-out date (the morning the traveler leaves), YYYY-MM-DD |
| airbnb_url* | string | The Airbnb listing link, e.g. https://www.airbnb.com/rooms/12345678 |
| airbnb_total | number | Optional: the total in USD that Airbnb shows at checkout for these dates and guests. Makes the savings exact instead of estimated |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"airbnb_url",
"check_in",
"check_out",
"adults"
],
"properties": {
"pets": {
"type": "integer",
"maximum": 5,
"minimum": 0,
"description": "Pets (service animals don't count). Default 0"
},
"adults": {
"type": "integer",
"maximum": 16,
"minimum": 1,
"description": "Guests aged 13 or older"
},
"infants": {
"type": "integer",
"maximum": 5,
"minimum": 0,
"description": "Guests under 2; they don't count toward capacity. Default 0"
},
"check_in": {
"type": "string",
"description": "Check-in date, YYYY-MM-DD"
},
"children": {
"type": "integer",
"maximum": 15,
"minimum": 0,
"description": "Guests aged 2-12. Default 0"
},
"check_out": {
"type": "string",
"description": "Check-out date (the morning the traveler leaves), YYYY-MM-DD"
},
"airbnb_url": {
"type": "string",
"maxLength": 2000,
"minLength": 1,
"description": "The Airbnb listing link, e.g. https://www.airbnb.com/rooms/12345678"
},
"airbnb_total": {
"type": "number",
"maximum": 1000000,
"description": "Optional: the total in USD that Airbnb shows at checkout for these dates and guests. Makes the savings exact instead of estimated",
"exclusiveMinimum": 0
}
}
}Gets a fresh, itemized all-in price and availability for one offer_id (from find_cheaper or search_stays) for specific dates and guests. Returns a quote_id that book needs; it stays valid for 15 minutes.
| Argument | Type | Description |
|---|---|---|
| pets | integer | Pets (service animals don't count). Default 0 |
| adults* | integer | Guests aged 13 or older |
| infants | integer | Guests under 2; they don't count toward capacity. Default 0 |
| check_in* | string | Check-in date, YYYY-MM-DD |
| children | integer | Guests aged 2-12. Default 0 |
| offer_id* | string | The offer_id from a find_cheaper or search_stays result |
| check_out* | string | Check-out date (the morning the traveler leaves), YYYY-MM-DD |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"offer_id",
"check_in",
"check_out",
"adults"
],
"properties": {
"pets": {
"type": "integer",
"maximum": 5,
"minimum": 0,
"description": "Pets (service animals don't count). Default 0"
},
"adults": {
"type": "integer",
"maximum": 16,
"minimum": 1,
"description": "Guests aged 13 or older"
},
"infants": {
"type": "integer",
"maximum": 5,
"minimum": 0,
"description": "Guests under 2; they don't count toward capacity. Default 0"
},
"check_in": {
"type": "string",
"description": "Check-in date, YYYY-MM-DD"
},
"children": {
"type": "integer",
"maximum": 15,
"minimum": 0,
"description": "Guests aged 2-12. Default 0"
},
"offer_id": {
"type": "string",
"pattern": "^[a-z_]{2,20}:[A-Za-z0-9_-]{1,40}$",
"description": "The offer_id from a find_cheaper or search_stays result"
},
"check_out": {
"type": "string",
"description": "Check-out date (the morning the traveler leaves), YYYY-MM-DD"
}
}
}Searches vacation rentals that are free for the given dates in a place and returns homes with their all-in totals (fees and taxes included), cheapest first, with links and offer_ids for get_quote. Use when the traveler doesn't have a specific listing yet.
| Argument | Type | Description |
|---|---|---|
| pets | integer | Pets (service animals don't count). Default 0 |
| limit | integer | How many results to return, 1-20. Default 10 |
| adults* | integer | Guests aged 13 or older |
| infants | integer | Guests under 2; they don't count toward capacity. Default 0 |
| check_in* | string | Check-in date, YYYY-MM-DD |
| children | integer | Guests aged 2-12. Default 0 |
| location* | string | Where to stay: a city, region or neighborhood, e.g. "Lisbon" or "Joshua Tree, California" |
| check_out* | string | Check-out date (the morning the traveler leaves), YYYY-MM-DD |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 2, 2026.
| max_total | number | Only stays whose all-in total (USD) is at most this |
| min_bedrooms | integer | Only homes with at least this many bedrooms |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"location",
"check_in",
"check_out",
"adults"
],
"properties": {
"pets": {
"type": "integer",
"maximum": 5,
"minimum": 0,
"description": "Pets (service animals don't count). Default 0"
},
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "How many results to return, 1-20. Default 10"
},
"adults": {
"type": "integer",
"maximum": 16,
"minimum": 1,
"description": "Guests aged 13 or older"
},
"infants": {
"type": "integer",
"maximum": 5,
"minimum": 0,
"description": "Guests under 2; they don't count toward capacity. Default 0"
},
"check_in": {
"type": "string",
"description": "Check-in date, YYYY-MM-DD"
},
"children": {
"type": "integer",
"maximum": 15,
"minimum": 0,
"description": "Guests aged 2-12. Default 0"
},
"location": {
"type": "string",
"maxLength": 120,
"minLength": 2,
"description": "Where to stay: a city, region or neighborhood, e.g. \"Lisbon\" or \"Joshua Tree, California\""
},
"check_out": {
"type": "string",
"description": "Check-out date (the morning the traveler leaves), YYYY-MM-DD"
},
"max_total": {
"type": "number",
"maximum": 1000000,
"description": "Only stays whose all-in total (USD) is at most this",
"exclusiveMinimum": 0
},
"min_bedrooms": {
"type": "integer",
"maximum": 20,
"minimum": 0,
"description": "Only homes with at least this many bedrooms"
}
}
}