Search independent UK holiday stays, check live availability and exact prices, then open 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.
Produce the secure HolidayFox checkout link for a quote. The guest opens the link and pays on holidayfox.com. This tool takes no payment and does not confirm a booking.
The quote id returned by get_quote.
YYYY-MM-DD — must match the quote.
YYYY-MM-DD — must match the quote.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Produce the secure HolidayFox checkout link for a quote. The guest opens the link and pays on holidayfox.com. This tool takes no payment and does not confirm a booking.
| Argument | Type | Description |
|---|---|---|
| quoteId* | string | The quote id returned by get_quote. |
| numAdults* | integer | |
| numInfants | integer | |
| checkinDate* | string | YYYY-MM-DD — must match the quote. |
| numChildren | integer | |
| checkoutDate* | string | YYYY-MM-DD — must match the quote. |
| destinationId* | string | |
| accommodationTypeId* | string |
{
"type": "object",
"required": [
"destinationId",
"accommodationTypeId",
"quoteId",
"checkinDate",
"checkoutDate",
"numAdults"
],
"properties": {
"quoteId": {
"type": "string",
"description": "The quote id returned by get_quote."
},
"numAdults": {
"type": "integer"
},
"numInfants": {
"type": "integer"
},
"checkinDate": {
"type": "string",
"description": "YYYY-MM-DD — must match the quote."
},
"numChildren": {
"type": "integer"
},
"checkoutDate": {
"type": "string",
"description": "YYYY-MM-DD — must match the quote."
},
"destinationId": {
"type": "string"
},
"accommodationTypeId": {
"type": "string"
}
},
"additionalProperties": false
}Check which dates are free. With destinationId alone it returns the site-wide availability calendar. With accommodationTypeId it returns per-date availability and the party-adjusted nightly price for that one unit. Dates are YYYY-MM-DD and the window is limited to 120 days. Returns availability and nightly prices only; the full stay total comes from get_quote.
| Argument | Type | Description |
|---|---|---|
| endDate* | string | YYYY-MM-DD |
| numDogs | integer | Dogs in the party. Affects availability at dog-friendly sites; not a separate charge here. |
| numAdults | integer | |
| startDate* | string | YYYY-MM-DD |
| numInfants | integer | |
| numChildren | integer | |
| destinationId* | string | |
| accommodationTypeId | string | Optional — narrows to one unit type. |
Full facts about one HolidayFox destination: description, location, amenities, restrictions, check-in/out times, cancellation policy, whether it confirms instantly or by request, and every accommodation type with its size, sleeps, minimum stay and price. Data is live from the HolidayFox booking system.
| Argument | Type | Description |
|---|---|---|
| numDogs | integer | Dogs in the party. Affects availability at dog-friendly sites; not a separate charge here. |
| numAdults | integer | |
| numInfants | integer | |
| checkinDate | string | YYYY-MM-DD. With checkoutDate, prices each unit for that stay. |
| numChildren | integer | |
| checkoutDate | string | YYYY-MM-DD. |
| destinationId* | string | From search_stays, e.g. "dest-MGaRjAwxGUrG". |
{
"type": "object",
"required": [
"destinationId"
],
"properties": {
"numDogs": {
"type": "integer",
"description": "Dogs in the party. Affects availability at dog-friendly sites; not a separate charge here."
},
"numAdults": {
"type": "integer"
},
"numInfants": {
"type": "integer"
},
"checkinDate": {
"type": "string",
"description": "YYYY-MM-DD. With checkoutDate, prices each unit for that stay."
},
"numChildren": {
"type": "integer"
},
"checkoutDate": {
"type": "string",
"description": "YYYY-MM-DD."
},
"destinationId": {
"type": "string",
"description": "From search_stays, e.g. \"dest-MGaRjAwxGUrG\"."
}
},
"additionalProperties": false
}Get the authoritative total price for a specific stay directly from the HolidayFox booking system, including any length-of-stay discount and any optional extras passed in `addons`. Returns a quote id for begin_checkout, so the checkout total matches this quote, extras included. Does not hold the dates or make a booking.
| Argument | Type | Description |
|---|---|---|
| addons | array | Optional extras to include, from list_addons. The quoted total includes them. |
| quantity | integer | Number of units, default 1. |
| numAdults* | integer | |
| numInfants | integer | |
| checkinDate* | string | YYYY-MM-DD |
| numChildren | integer | |
| checkoutDate* | string | YYYY-MM-DD |
| accommodationTypeId* | string | From search_stays or get_listing_details. |
Read published guest reviews for a HolidayFox destination — star ratings, what guests said, and any reply from the owner. Returns an average rating and the most recent reviews.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max reviews to return, 1–10, default 5. |
| destinationId* | string | From search_stays or get_listing_details. |
{
"type": "object",
"required": [
"destinationId"
],
"properties": {
"limit": {
"type": "integer",
"description": "Max reviews to return, 1–10, default 5."
},
"destinationId": {
"type": "string",
"description": "From search_stays or get_listing_details."
}
},
"additionalProperties": false
}List the optional extras a specific accommodation type offers — things like firewood, a hot-tub session, an extra guest, or breakfast — with their prices. Returns product ids accepted by get_quote as `addons`.
| Argument | Type | Description |
|---|---|---|
| destinationId* | string | |
| accommodationTypeId* | string | From search_stays or get_listing_details. |
{
"type": "object",
"required": [
"destinationId",
"accommodationTypeId"
],
"properties": {
"destinationId": {
"type": "string"
},
"accommodationTypeId": {
"type": "string",
"description": "From search_stays or get_listing_details."
}
},
"additionalProperties": false
}Send a guest's enquiry to the site owner by email; the owner replies to the guest directly. Suited to sold-out dates, questions the listing details leave open, and request-to-book sites. Requires the guest's name, email address and message.
| Argument | Type | Description |
|---|---|---|
| phone | string | Optional phone number, only if the guest offered it. |
| message* | string | The enquiry in the guest’s words — dates, party, and the specific question. |
| guestName* | string | The guest's name, as they gave it. |
| numAdults | integer | |
| guestEmail* | string | The guest's email, so the owner can reply. Must be a real address the guest gave you. |
| checkinDate | string | Optional YYYY-MM-DD the enquiry is about. |
| numChildren | integer | |
| checkoutDate | string | Optional YYYY-MM-DD. |
| destinationId* | string |
Search HolidayFox for UK holiday accommodation — farm stays, glamping, shepherd huts, caravan and camping pitches, and self-catering cottages. Filter by area and by amenity/audience tags. When checkinDate and checkoutDate are supplied, each result carries the live total price for that exact stay and only genuinely bookable options are counted. Returns destination ids used by the other tools.
| Argument | Type | Description |
|---|---|---|
| area | string | Region key, lowercase and hyphenated, e.g. "cornwall", "north-devon", "peak-district". |
| tags | array | Optional facet filters, e.g. [{"key":"hot-tub","category":"AMENITY"}]. |
| after | string | Pagination cursor from a previous search. |
| limit | integer | 1–25, default 10. |
| numDogs | integer | Dogs in the party. Affects availability at dog-friendly sites; not a separate charge here. |
| numAdults | integer | Default 2. |
| numInfants | integer | |
| checkinDate | string | YYYY-MM-DD. Supply with checkoutDate for live stay pricing. |
{
"type": "object",
"required": [
"destinationId",
"startDate",
"endDate"
],
"properties": {
"endDate": {
"type": "string",
"description": "YYYY-MM-DD"
},
"numDogs": {
"type": "integer",
"description": "Dogs in the party. Affects availability at dog-friendly sites; not a separate charge here."
},
"numAdults": {
"type": "integer"
},
"startDate": {
"type": "string",
"description": "YYYY-MM-DD"
},
"numInfants": {
"type": "integer"
},
"numChildren": {
"type": "integer"
},
"destinationId": {
"type": "string"
},
"accommodationTypeId": {
"type": "string",
"description": "Optional — narrows to one unit type."
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"accommodationTypeId",
"checkinDate",
"checkoutDate",
"numAdults"
],
"properties": {
"addons": {
"type": "array",
"items": {
"type": "object",
"required": [
"productId"
],
"properties": {
"quantity": {
"type": "integer",
"description": "Default 1."
},
"productId": {
"type": "string"
}
},
"additionalProperties": false
},
"description": "Optional extras to include, from list_addons. The quoted total includes them."
},
"quantity": {
"type": "integer",
"description": "Number of units, default 1."
},
"numAdults": {
"type": "integer"
},
"numInfants": {
"type": "integer"
},
"checkinDate": {
"type": "string",
"description": "YYYY-MM-DD"
},
"numChildren": {
"type": "integer"
},
"checkoutDate": {
"type": "string",
"description": "YYYY-MM-DD"
},
"accommodationTypeId": {
"type": "string",
"description": "From search_stays or get_listing_details."
}
},
"additionalProperties": false
}| The site the enquiry is about. |
{
"type": "object",
"required": [
"destinationId",
"guestName",
"guestEmail",
"message"
],
"properties": {
"phone": {
"type": "string",
"description": "Optional phone number, only if the guest offered it."
},
"message": {
"type": "string",
"description": "The enquiry in the guest’s words — dates, party, and the specific question."
},
"guestName": {
"type": "string",
"description": "The guest's name, as they gave it."
},
"numAdults": {
"type": "integer"
},
"guestEmail": {
"type": "string",
"description": "The guest's email, so the owner can reply. Must be a real address the guest gave you."
},
"checkinDate": {
"type": "string",
"description": "Optional YYYY-MM-DD the enquiry is about."
},
"numChildren": {
"type": "integer"
},
"checkoutDate": {
"type": "string",
"description": "Optional YYYY-MM-DD."
},
"destinationId": {
"type": "string",
"description": "The site the enquiry is about."
}
},
"additionalProperties": false
}| numChildren | integer |
| checkoutDate | string | YYYY-MM-DD. |
{
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Region key, lowercase and hyphenated, e.g. \"cornwall\", \"north-devon\", \"peak-district\"."
},
"tags": {
"type": "array",
"items": {
"type": "object",
"required": [
"key",
"category"
],
"properties": {
"key": {
"type": "string"
},
"category": {
"enum": [
"ACTIVITY",
"AMENITY",
"AUDIENCE",
"DESCRIPTION",
"LOCATION",
"ACCOMMODATION",
"RESTRICTION"
],
"type": "string"
}
},
"additionalProperties": false
},
"description": "Optional facet filters, e.g. [{\"key\":\"hot-tub\",\"category\":\"AMENITY\"}]."
},
"after": {
"type": "string",
"description": "Pagination cursor from a previous search."
},
"limit": {
"type": "integer",
"description": "1–25, default 10."
},
"numDogs": {
"type": "integer",
"description": "Dogs in the party. Affects availability at dog-friendly sites; not a separate charge here."
},
"numAdults": {
"type": "integer",
"description": "Default 2."
},
"numInfants": {
"type": "integer"
},
"checkinDate": {
"type": "string",
"description": "YYYY-MM-DD. Supply with checkoutDate for live stay pricing."
},
"numChildren": {
"type": "integer"
},
"checkoutDate": {
"type": "string",
"description": "YYYY-MM-DD."
}
},
"additionalProperties": false
}