jolly-tur-mcp
Read-only MCP server for Jolly Tur that lets an agent search Turkish hotels, fetch hotel details, and list current campaigns.
jolly_search_hotels: search by city slug; optional check-in/check-out dates for TRY prices; paginate 20 hotels/page; optional 4+ character hotel-name filter; returns ratings, concept, campaigns, and prices.jolly_get_hotel: fetch detail for one hotel by slug (e.g.the-x-belek) or full jollytur.com hotel URL.jolly_list_campaigns: list current campaigns from/kampanyalarwith title and link.No API key or login required; searches can be slow (~10–15s), so prefer one search per question.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@jolly-tur-mcp Search Antalya hotels for 2026-11-20 to 2026-11-22 and show prices"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
jolly-tur-mcp 🇹🇷
mcp-name: io.github.mohammad-abbasi-sh/jolly-tur-mcp
Unofficial read-only MCP server for Jolly Tur (jollytur.com), one of Türkiye's top-3 tour operators — hotel search with live prices, hotel detail and current campaigns.
Part of the "Turkey MCP factory". Not affiliated with Jolly Tur.
For AI agents
Add to your MCP client config (stdio):
{
"mcpServers": {
"jolly": {
"command": "uvx",
"args": ["jolly-tur-mcp==0.1.1"]
}
}
}Or run locally: python -m jolly_mcp.server (needs mcp<2, curl-cffi).
Related MCP server: webhotelier-mcp
Tools
Tool | Description |
| Search hotels in a city — |
| Detail for one hotel — |
| Current campaigns from /kampanyalar (title + link) |
Example output (jolly_search_hotels / Antalya, 2026-11-20 → 2026-11-22):
{"result_count": 1067, "count": 20,
"hotels": [{"name": "The X Belek", "location": "Antalya, Serik, Belek, Kadriye",
"rating": 9.6, "rating_count": 4186, "rating_text": "Mükemmel",
"concept": "Ultra Her Şey Dahil",
"total_price_tl": 21576.0, "discounted_price_tl": 13377.12}]}Notes:
Prices are Turkish Lira (TRY) for the requested stay; without dates the cards show no price (
prices_available: false).Searches are slow (~10–15s: the site renders results server-side per query, and the endpoint occasionally stalls — the server retries once). Prefer one search per question.
Data: Jolly's own listing/search flow (listing page +
GetListPagePartialsPOST) — no key, no login, read-only.
Development
python3 -m venv .venv && .venv/bin/pip install "mcp<2" curl-cffi pytest
.venv/bin/python -m pytest tests/ -qtests/test_hotels.py— offline, parses real captured pagestests/test_live.py— 4 cautious live requests against jollytur.com
License
MIT
Built by Mohammad Abbasi — Almanibama · mabbasi.ir
Available Tools
3 toolsjolly_get_hotelA
Detail for one Jolly hotel. hotel_slug: e.g. "the-x-belek" (from search results) or a full jollytur.com hotel URL.
Inputs: hotel_slug (required). Returns: result
jolly_list_campaignsA
Current Jolly Tur campaigns from /kampanyalar (title + link).
Inputs: no named parameters. Returns: result
jolly_search_hotelsA
Search Jolly hotels in a city. city: slug like "antalya", "istanbul", "bodrum". check_in/check_out: YYYY-MM-DD (both needed for prices). page: results page (20 hotels/page). hotel_name: optional name filter (4+ chars). Returns hotels with rating, concept, campaigns and prices.
Inputs: city (required), page, check_in, check_out, +1 more. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 3 tools
Each tool maps to a distinct operation: city-level search, single-hotel detail lookup, and campaign listing. There is no plausible way to confuse them, and the search-to-detail handoff (hotel_slug from search results) is explicitly documented.
All three tools use the same jolly_<verb>_<noun> convention (jolly_search_hotels, jolly_get_hotel, jolly_list_campaigns). The server prefix is applied uniformly and verbs are used consistently for their action type.
Three tools is on the thin side, but for a read-only hotel discovery server each tool earns its place and nothing is redundant. A small set of extra tools (e.g. destination/availability lookup) would round it out without bloat.
The core read-only lifecycle is covered: find hotels by city, drill into a hotel, and surface current promotions. Gaps remain around room/availability details and booking or filtering beyond name and city, but agents can work around these for search-oriented tasks.
Maintenance
Related MCP Connectors
Hotel booking MCP server. Search, book, and manage reservations across 250K+ properties worldwide.
Official MCP server for MAQAMI, a hotel and flight booking platform with 3M+ hotels. Search live hotel rates and flights, look up places, airports and hotel details, then prebook and book. Remote Streamable HTTP endpoint, no API key required.
Search MCP servers, agent skills and APIs for travel: hotel ID mapping, rates, rooms.
Search hotels and get hotel details. Search-only; book on hotely.travel.
Related MCP Servers
AlicenseNot gradedqualityBmaintenanceEnables interaction with LiteAPI's hotel booking and travel services through MCP tools, supporting search, booking, vouchers, analytics, and more.9 npm4MIT- FlicenseAqualityDmaintenanceA read-only MCP server that lets AI assistants query the WebHotelier REST API for live hotel data, including property info, room availability, rates, calendars, and offers via natural language tools.8-
- AlicenseAqualityBmaintenanceEnables MCP clients to search stays by destination and dates with rich filters and read full property details as structured JSON, without needing a Booking.com account or self-hosting.281 npm22 PyPI6MIT
- AlicenseAqualityCmaintenanceEnables MCP clients to search hotel availability, validate rates, create and retrieve bookings, simulate or execute cancellations, and browse destinations and hotel content through the Hotelbeds Booking and Content APIs. Includes a surface-and-reconfirm booking flow that re-validates live prices with a tolerance before confirming.9MIT