Skip to main content
Glama
README.md
# 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):

```json
{
  "mcpServers": {
    "jolly": {
      "command": "uvx",
      "args": ["jolly-tur-mcp"]
    }
  }
}
```

Or run locally: `python -m jolly_mcp.server` (needs `mcp<2`, `curl-cffi`).

## Tools

| Tool | Description |
|------|-------------|
| `jolly_search_hotels` | Search hotels in a city — `city` slug ("antalya", "istanbul", "bodrum"…), `check_in`/`check_out` (YYYY-MM-DD, both needed for prices), `page`, `hotel_name` |
| `jolly_get_hotel` | Detail for one hotel — `hotel_slug` (e.g. "the-x-belek") or full URL |
| `jolly_list_campaigns` | Current campaigns from /kampanyalar (title + link) |

Example output (`jolly_search_hotels` / Antalya, 2026-11-20 → 2026-11-22):

```json
{"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 + `GetListPagePartials` POST) — no key, no login, read-only.

## Development

```bash
python3 -m venv .venv && .venv/bin/pip install "mcp<2" curl-cffi pytest
.venv/bin/python -m pytest tests/ -q
```

- `tests/test_hotels.py` — offline, parses real captured pages
- `tests/test_live.py` — 4 cautious live requests against jollytur.com

## License

MIT

TDQS

A3.9/5.0

Scored across 3 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo recent community issues