What this MCP does
Searches and provides information about luxury hotels, private stays, travel articles, destinations, and city guides in Europe, with paid guide purchasing.
Tools
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['slug', 'email'], 'properties': {'slug': {'type': 'string', 'pattern': '^[a-z0-9]+(-[a-z0-9]+)*$', 'maxLength': 120, 'description': "The guide's slug, the last part of its URL."}, 'email': {'type': 'string', 'format': 'email', 'pattern': "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'maxLength': 254, 'description': "The user's email address: the guide goes to this Déstaire account."}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['paymentLink', 'guide', 'price', 'email', 'instructions'], 'properties': {'email': {'type': 'string'}, 'guide': {'type': 'object', 'required': ['title', 'url', 'city', 'country', 'cover'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'city': {'type': 'string'}, 'cover': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'title': {'type': 'string'}, 'country': {'type': 'string'}}, 'additionalProperties': {}}, 'price': {'type': 'string'}, 'paymentLink': {'type': 'string', 'format': 'uri'}, 'instructions': {'type': 'object', 'required': ['beforePaying', 'agent', 'afterPaying', 'browser'], 'properties': {'agent': {'type': 'string'}, 'browser': {'type': 'string'}, 'afterPaying': {'type': 'string'}, 'beforePaying': {'type': 'string'}}, 'additionalProperties': {}}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'pattern': '^[a-z0-9]+(-[a-z0-9]+)*$', 'maxLength': 120, 'description': "The article's slug, the last part of its URL."}, 'detail': {'enum': ['concise', 'full'], 'type': 'string', 'default': 'concise', 'description': '"concise" (the default): the start of the answer and a count, to save context; "full": all of it.'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['title', 'url', 'standfirst', 'author', 'category', 'published', 'photo', 'text', 'truncated'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'note': {'type': 'string'}, 'text': {'type': 'string'}, 'photo': {'type': 'string', 'format': 'uri'}, 'title': {'type': 'string'}, 'author': {'type': 'string'}, 'category': {'type': 'string'}, 'published': {'type': 'string'}, 'truncated': {'type': 'boolean'}, 'standfirst': {'type': 'string'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'pattern': '^[a-z0-9]+(-[a-z0-9]+)*$', 'maxLength': 120, 'description': "The destination's slug, the last part of its URL."}, 'detail': {'enum': ['concise', 'full'], 'type': 'string', 'default': 'concise', 'description': '"concise" (the default): the start of the answer and a count, to save context; "full": all of it.'}, 'country': {'type': 'string', 'maxLength': 60, 'description': 'The country, when two destinations share a slug.'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['name', 'url', 'country', 'total', 'stays'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'name': {'type': 'string'}, 'note': {'type': 'string'}, 'stays': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'slug', 'url', 'kind', 'town', 'destination', 'country', 'lede', 'rate', 'photo'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'kind': {'enum': ['hotel', 'private stay'], 'type': 'string', 'description': 'A hotel, or a private stay: a whole house or estate that one party rents.'}, 'lede': {'type': 'string'}, 'name': {'type': 'string'}, 'rate': {'type': 'object', 'required': ['text', 'amount', 'currency', 'per', 'checked'], 'properties': {'per': {'anyOf': [{'enum': ['night', 'week'], 'type': 'string'}, {'type': 'null'}]}, 'text': {'type': 'string', 'description': 'As the site shows it: "from â\x82¬950/night", or "Price on request".'}, 'amount': {'type': ['number', 'null'], 'description': 'The "from" rate in euros, rounded to 10.'}, 'checked': {'anyOf': [{'type': 'string', 'format': 'date', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$'}, {'type': 'null'}], 'description': "The day the rate was last read on the hotel's own booking engine (YYYY-MM-DD). Null when no date is recorded."}, 'currency': {'anyOf': [{'type': 'string', 'const': 'EUR'}, {'type': 'null'}]}}, 'description': 'The "from" rate: the lowest nightly price over the next six months, checked each week.', 'additionalProperties': {}}, 'slug': {'type': 'string'}, 'town': {'type': 'string'}, 'photo': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}], 'description': 'A card-size photo of the stay (3:2).'}, 'country': {'type': 'string'}, 'destination': {'type': 'object', 'required': ['name', 'url', 'slug'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}}, 'additionalProperties': {}}}, 'additionalProperties': {}}}, 'total': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'country': {'type': 'string'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'pattern': '^[a-z0-9]+(-[a-z0-9]+)*$', 'maxLength': 120, 'description': "The guide's slug, the last part of its URL."}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['title', 'url', 'city', 'country', 'standfirst', 'onSale', 'price', 'sections', 'cover', 'buyInChat', 'photos'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'city': {'type': 'string'}, 'cover': {'type': 'string', 'format': 'uri', 'description': 'The cover at 4:5.'}, 'price': {'type': 'string'}, 'title': {'type': 'string'}, 'onSale': {'type': 'boolean'}, 'photos': {'type': 'array', 'items': {'type': 'string', 'format': 'uri'}}, 'country': {'type': 'string'}, 'sections': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'text'], 'properties': {'text': {'type': 'string'}, 'title': {'type': 'string'}}, 'additionalProperties': {}}}, 'buyInChat': {'type': 'boolean', 'description': 'True when buy_guide can buy this guide in this conversation.'}, 'standfirst': {'type': 'string'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'pattern': '^[a-z0-9]+(-[a-z0-9]+)*$', 'maxLength': 120, 'description': "The stay's slug, the last part of its URL."}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['name', 'url', 'kind', 'lede', 'description', 'town', 'destination', 'country', 'address', 'location', 'website', 'rate', 'amenities', 'collections', 'hero', 'photos'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'hero': {'type': 'string', 'format': 'uri', 'description': 'The main photo at 2:1.'}, 'kind': {'enum': ['hotel', 'private stay'], 'type': 'string', 'description': 'A hotel, or a private stay: a whole house or estate that one party rents.'}, 'lede': {'type': 'string'}, 'name': {'type': 'string'}, 'rate': {'type': 'object', 'required': ['text', 'amount', 'currency', 'per', 'checked'], 'properties': {'per': {'anyOf': [{'enum': ['night', 'week'], 'type': 'string'}, {'type': 'null'}]}, 'text': {'type': 'string', 'description': 'As the site shows it: "from â\x82¬950/night", or "Price on request".'}, 'amount': {'type': ['number', 'null'], 'description': 'The "from" rate in euros, rounded to 10.'}, 'checked': {'anyOf': [{'type': 'string', 'format': 'date', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$'}, {'type': 'null'}], 'description': "The day the rate was last read on the hotel's own booking engine (YYYY-MM-DD). Null when no date is recorded."}, 'currency': {'anyOf': [{'type': 'string', 'const': 'EUR'}, {'type': 'null'}]}}, 'description': 'The "from" rate: the lowest nightly price over the next six months, checked each week.', 'additionalProperties': {}}, 'town': {'type': 'string'}, 'photos': {'type': 'array', 'items': {'type': 'string', 'format': 'uri'}}, 'address': {'type': 'string'}, 'country': {'type': 'string'}, 'website': {'type': 'string', 'format': 'uri'}, 'location': {'type': 'object', 'required': ['latitude', 'longitude'], 'properties': {'latitude': {'type': 'number'}, 'longitude': {'type': 'number'}}, 'additionalProperties': {}}, 'amenities': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'description'], 'properties': {'name': {'type': 'string'}, 'description': {'type': 'string'}}, 'additionalProperties': {}}}, 'collections': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'name': {'type': 'string'}}, 'additionalProperties': {}}}, 'description': {'type': 'string'}, 'destination': {'type': 'object', 'required': ['name', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'name': {'type': 'string'}}, 'additionalProperties': {}}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'The most articles to give.'}, 'category': {'type': 'string', 'maxLength': 60, 'description': 'Only this category.'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['total', 'articles'], 'properties': {'total': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'articles': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'slug', 'url', 'standfirst', 'author', 'category', 'published'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'slug': {'type': 'string'}, 'title': {'type': 'string'}, 'author': {'type': 'string'}, 'category': {'type': 'string'}, 'published': {'type': 'string'}, 'standfirst': {'type': 'string'}}, 'additionalProperties': {}}}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'country': {'type': 'string', 'maxLength': 60, 'description': 'Only this country: a name or an ISO code.'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['countries', 'collections'], 'properties': {'countries': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'url', 'code', 'destinations'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'code': {'type': 'string'}, 'name': {'type': 'string'}, 'destinations': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'url', 'slug', 'stays'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'stays': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'additionalProperties': {}}}}, 'additionalProperties': {}}}, 'collections': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'url', 'slug', 'stays'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'stays': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'additionalProperties': {}}}}, 'additionalProperties': {}}
Input schema
{'type': 'object', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['guides'], 'properties': {'guides': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'slug', 'url', 'city', 'country', 'standfirst', 'price'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'city': {'type': 'string'}, 'slug': {'type': 'string'}, 'price': {'type': 'string'}, 'title': {'type': 'string'}, 'country': {'type': 'string'}, 'standfirst': {'type': 'string'}}, 'additionalProperties': {}}}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'sort': {'enum': ['relevance', 'rate'], 'type': 'string', 'default': 'relevance', 'description': '"relevance" (best match first) or "rate" (lowest rate first).'}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'The most stays to give.'}, 'query': {'type': 'string', 'maxLength': 200, 'description': 'What the reader wants, in plain words: "quiet hotel on Lake Como with a spa". Stays that match more words come first.'}, 'country': {'type': 'string', 'maxLength': 60, 'description': 'Only this country: a name or an ISO code, such as "France" or "FR".'}, 'max_rate': {'type': 'number', 'description': 'Only stays whose "from" rate is at most this many euros a night (a week rate counts a seventh). Stays with no rate are left out.', 'exclusiveMinimum': 0}, 'amenities': {'type': 'array', 'items': {'type': 'string', 'maxLength': 40}, 'maxItems': 5, 'description': 'Only stays that have each of these, by word: "spa", "pool", "beach", "tennis".'}, 'collection': {'type': 'string', 'maxLength': 60, 'description': 'Only this collection: a name or a slug, such as "Coast". list_destinations lists them.'}, 'destination': {'type': 'string', 'maxLength': 60, 'description': 'Only this destination: a name or a slug, such as "Provence".'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['total', 'stays'], 'properties': {'note': {'type': 'string'}, 'stays': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'slug', 'url', 'kind', 'town', 'destination', 'country', 'lede', 'rate', 'photo'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'kind': {'enum': ['hotel', 'private stay'], 'type': 'string', 'description': 'A hotel, or a private stay: a whole house or estate that one party rents.'}, 'lede': {'type': 'string'}, 'name': {'type': 'string'}, 'rate': {'type': 'object', 'required': ['text', 'amount', 'currency', 'per', 'checked'], 'properties': {'per': {'anyOf': [{'enum': ['night', 'week'], 'type': 'string'}, {'type': 'null'}]}, 'text': {'type': 'string', 'description': 'As the site shows it: "from â\x82¬950/night", or "Price on request".'}, 'amount': {'type': ['number', 'null'], 'description': 'The "from" rate in euros, rounded to 10.'}, 'checked': {'anyOf': [{'type': 'string', 'format': 'date', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$'}, {'type': 'null'}], 'description': "The day the rate was last read on the hotel's own booking engine (YYYY-MM-DD). Null when no date is recorded."}, 'currency': {'anyOf': [{'type': 'string', 'const': 'EUR'}, {'type': 'null'}]}}, 'description': 'The "from" rate: the lowest nightly price over the next six months, checked each week.', 'additionalProperties': {}}, 'slug': {'type': 'string'}, 'town': {'type': 'string'}, 'photo': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}], 'description': 'A card-size photo of the stay (3:2).'}, 'country': {'type': 'string'}, 'destination': {'type': 'object', 'required': ['name', 'url', 'slug'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}}, 'additionalProperties': {}}}, 'additionalProperties': {}}}, 'total': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'additionalProperties': {}}
Recent tool changes
Similar MCP servers
Award Travel Finder
Searches award flights and hotels, tracks bookings and loyalty balances, evaluates points and credit cards, and monitors travel r…
AI 代理人任務中樞
Aggregates Taiwan-focused tools for AI service comparisons, cryptocurrency data, game information, health guidance, and other con…
Good Turn Studio (all tools)
Offers consumer utilities for insurance claim appeals, subscription cancellation, flight fare research, financial recovery resour…
Gover MCP
Searches and manages corporate travel requests, flights, hotels, rental vehicles, passengers, carts, approvals, reservations, and…
DC Member API
Provides access to Dynamite Circle membership data, community profiles, chapters, events, trips, calendars, alerts, follows, agen…
Nomad Stays
Searches and books remote-work accommodations while supporting host listing management, rooms, packages, availability, and hospit…
lilo Vacation Rentals
Supports vacation-rental discovery, availability and direct booking, property operations, short-term-rental compliance, guest and…
mcp-server
Provides immigration, citizenship and residency programme research alongside tax, wealth structuring, banking, visa, treaty and c…