Thomas Cook MCP
A read-only connector for Claude that searches Thomas Cook package holidays (flight + hotel) with live prices, suggests destinations based on user preferences, and lists available countries and regions. It serves the UK market with prices in GBP and provides links to book on thomascook.com without creating bookings or taking payments through the connector.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://mcp.esky.com/claude-tcWhat its tools do
4 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Search package holidays to a specific destination with filters for dates, travelers, and price.
- Suggest destination ideas based on a short description of desired holiday type.
- List available destination countries and regions for package searches.
- Find holiday packages sorted by popularity, price, or rating.
Source and maintenance
Protocol and capabilities
- Server
- thomascook-holidays 1.0.0
- MCP protocol negotiated in check
- 2025-06-18
- Tools
- 4 advertised
- Resources
- 2 advertised
- Resource templates
- 0 advertised
- Prompts
- 0 advertised
{
"tools": {
"listChanged": true
},
"logging": {},
"prompts": {
"listChanged": true
},
"resources": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
4 advertised
search_packages — Search holiday packages
Searches holiday packages (flight + hotel) to one destination country. Returns packages with hotel name, stars, guest rating, board, departure date and airports, total and per-person price, and a link to book on the brand's website. Filters: dates, nights, travellers, departure airport, price, stars, board and region (regionCode from get_regions of the same country, countryCode from get_countries); sorting by popularity, price, rating or stars; cursor pagination. Only countryCode is required (defaults: departures in the next 2 months, 7 nights, 2 adults). Read-only.
{
"type": "object",
"required": [
"countryCode"
],
"properties": {
"limit": {
"type": [
"integer",
"null"
],
"default": null,
"description": "Number of results to return (default 6, max 30)"
},
"adults": {
"type": "integer",
"default": 2,
"description": "Number of adults (default: 2)"
},
"cursor": {
"type": "string",
"default": null,
"description": "Cursor for pagination (from previous response's nextCursor)"
},
"dateTo": {
"type": "string",
"default": "",
"description": "Latest return date, YYYY-MM-DD (optional, defaults to 2 months from now). At least the minimum nights after dateFrom; a shorter window is rejected."
},
"nights": {
"type": "integer",
"default": 7,
"description": "Number of nights (default: 7)"
},
"sortBy": {
"type": "string",
"default": null,
"description": "Sort results by: 'popularity' (default, most booked first), 'price', 'rating', or 'stars'."
},
"dateFrom": {
"type": "string",
"default": "",
"description": "Earliest departure, YYYY-MM-DD (optional, defaults to tomorrow). With dateTo, the window the whole trip must fit in."
},
"maxPrice": {
"type": [
"number",
"null"
],
"default": null,
"description": "Maximum price in the local currency (optional)"
},
"maxStars": {
"type": [
"integer",
"null"
],
"default": null,
"description": "Maximum hotel star rating 1-5 (optional)"
},
"mealType": {
"type": "string",
"default": null,
"description": "Meal plan filter: 'breakfast' (BB), 'half-board' (HB), 'full-board' (FB), 'all-inclusive' (AI), or 'room-only' (RO)"
},
"minPrice": {
"type": [
"number",
"null"
],
"default": null,
"description": "Minimum price in the local currency (optional)"
},
"minStars": {
"type": [
"integer",
"null"
],
"default": null,
"description": "Minimum hotel star rating 1-5 (optional)"
},
"nightsMax": {
"type": [
"integer",
"null"
],
"default": null,
"description": "Maximum number of nights of a flexible range (optional, together with nightsMin). When set, 'nights' is ignored."
},
"nightsMin": {
"type": [
"integer",
"null"
],
"default": null,
"description": "Minimum number of nights of a flexible range (optional, together with nightsMax). When set, 'nights' is ignored."
},
"sortOrder": {
"type": "string",
"default": null,
"description": "Sort order: 'asc' (ascending) or 'desc' (descending). Default depends on sort type."
},
"regionCode": {
"type": "string",
"default": null,
"description": "Optional region or city code from get_regions for the same countryCode (e.g. 're-ACA'); a code of another country is rejected. Narrows the search."
},
"countryCode": {
"type": "string",
"description": "Two-letter destination country code (e.g. 'ES' for Spain, 'GR' for Greece, 'TR' for Turkey, 'EG' for Egypt), as listed by get_countries."
},
"childrenAges": {
"type": "array",
"items": {
"type": "integer"
},
"default": null,
"description": "Ages of children (optional, empty array if no children)"
},
"departureAirport": {
"type": "string",
"default": null,
"description": "Departure airport IATA code (e.g. 'WAW' or 'KTW' on eSky, 'MAN' or 'LGW' on Thomas Cook UK). Omitted = all available departure airports."
}
}
}{
"title": "Search holiday packages",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}search_inspirations — Search destination ideas
Suggests holiday destinations for a natural-language request (e.g. 'warm beach in November with small children'). Returns destination ideas with an indicative package price per person, the reason each one matches, and the countryCode that search_packages accepts. Suited to requests without a chosen destination country. Read-only.
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "What the user is looking for, in one or two short sentences, including the constraints that apply to this search (e.g. 'sunny beach holiday in June from Warsaw, 2 adults and a 5-year-old, under 6000 PLN')."
}
}
}{
"title": "Search destination ideas",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}get_regions — List regions and cities
Lists the regions and cities of one destination country, with names and codes; a code narrows search_packages through its regionCode parameter. Read-only.
{
"type": "object",
"required": [
"countryCode"
],
"properties": {
"countryCode": {
"type": "string",
"description": "Two-letter destination country code (e.g. 'ES' for Spain, 'GR' for Greece), as listed by get_countries."
}
}
}{
"title": "List regions and cities",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}get_countries — List destination countries
Lists the destination countries available for holiday package search, with names and the two-letter country codes used by search_packages. Read-only.
{
"type": "object",
"properties": {}
}{
"title": "List destination countries",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}Prompts
0 advertised
Resources
2 advertised
packages-list-tc-widget
ui://widget/packages-list-tc.htmlinspirations-list-widget
ui://widget/inspirations-list.html90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-02: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 2188 ms
- 95th percentile latency
- 2188 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 2188 ms · metadata changed · 4 tool(s), 2 resource(s), 0 resource template(s), 0 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http thomas-cook-mcp https://mcp.esky.com/claude-tcCodex
codex mcp add thomas-cook-mcp --url https://mcp.esky.com/claude-tcCursor
{
"mcpServers": {
"thomas-cook-mcp": {
"url": "https://mcp.esky.com/claude-tc"
}
}
}Cline
{
"mcpServers": {
"thomas-cook-mcp": {
"type": "streamableHttp",
"url": "https://mcp.esky.com/claude-tc",
"disabled": false
}
}
}VS Code
{
"servers": {
"thomas-cook-mcp": {
"type": "http",
"url": "https://mcp.esky.com/claude-tc"
}
}
}Gemini CLI
gemini mcp add --transport http thomas-cook-mcp https://mcp.esky.com/claude-tcClaude Desktop
{
"mcpServers": {
"thomas-cook-mcp": {
"url": "https://mcp.esky.com/claude-tc"
}
}
}Windsurf
{
"mcpServers": {
"thomas-cook-mcp": {
"serverUrl": "https://mcp.esky.com/claude-tc"
}
}
}Let your agent find its tools
Find servers like Thomas Cook MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.