biletall-mcp
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
biletall-mcp 🇹🇷
mcp-name: io.github.mohammad-abbasi-sh/biletall-mcp
Unofficial read-only MCP server for biletall.com, Türkiye's bus & flight ticket search — cheapest bus journeys for any route (today's departures, company, seat layout, stations, times, prices), cheapest flights (airline, airports + IATA codes, dates, times, prices), price statistics per route, most-travelled routes, and location search over 1,726 Turkish and international locations.
Built by Mohammad Abbasi as part of the "Turkey MCP factory" (Sepehr-style pipeline). Not affiliated with biletall.com.
For AI agents
Add to your MCP client config (stdio):
{
"mcpServers": {
"biletall": {
"command": "uvx",
"args": ["biletall-mcp"]
}
}
}Or run locally: python -m biletall_mcp.server (needs mcp<2, curl-cffi).
Related MCP server: YHT Bilet MCP Server
Tools
Tool | Description |
| Search locations by name — |
| Cheapest bus journeys for one route, today — |
| Cheapest flights for one route — |
| Price statistics for a bus route (today): count, min / median / mean / max ticket price in TRY across the 30 cheapest journeys, company count, cheapest price per company |
| Most-travelled bus routes with prices: route name, from/to slugs, cheapest price in TRY, route URL; |
Example output (biletall_bus_route / İstanbul → Ankara):
{"from_city": "İstanbul", "to_city": "Ankara", "summary":
{"cheapest_price_try": 539.0, "journey_count": 719,
"cheapest_company": "YeÅŸil Malatya Turizm",
"most_active_company": "Metro Turizm", "duration": "6s 35dk",
"route_rating_10": 3.9},
"count": 2, "journeys": [
{"company": "NiÄŸde AydoÄŸanlar", "bus_type": "2+1",
"origin_city": "İstanbul Avrupa", "origin_station": "Alibeyköy Otogarı",
"destination_city": "Ankara", "destination_station": "Ankara (Aşti) Otogarı",
"price_try": 598.0, "departure": "00:19", "arrival": "06:34"}, …]}Example output (biletall_flight_route / İstanbul → Ankara):
{"summary": {"cheapest_price_try": 1464.0, "cheapest_airline": "Pegasus",
"most_active_airline": "THY", "flight_count": 14,
"duration": "1Saat", "distance": "349 KM"},
"flights": [{"airline": "Pegasus", "date": "2026-11-10",
"date_tr": "10 Kasım 2026 - Salı", "price_try": 1459.99,
"origin_code": "SAW", "destination_code": "ESB",
"origin_airport": "İstanbul Anadolu — Sabiha Gökçen Havalimanı",
"departure": "18:15",
"destination_airport": "Ankara — Ankara Esenboğa Havalimanı",
"arrival": "19:15"}, …]}How it works
biletall.com (an Obilet white-label) serves its SEO route pages fully server-rendered — no login, no API key, no session cookies. Bus route pages carry a summary table (cheapest ticket, journey count, cheapest company, duration, most active company, route rating) with a schema.org AggregateOffer meta block, plus 30 <li itemtype="…/BusTrip"> journeys. Flight route pages carry the same summary shape plus 10 cheapest-flight blocks (airline, Turkish date, price data-price, airports + IATA codes, times). The homepage carries the 15 most-travelled routes with prices. City names are slugified (İstanbul → istanbul, Eskişehir → eskisehir; "İstanbul Avrupa" → istanbul since route pages use the base city; multi-word locations use underscores, e.g. Antakya Hatay → antakya_hatay). Unknown routes return HTTP 404 ("Sayfa bulunamadı"), surfaced as a clear error. Transport uses Chrome TLS impersonation (curl-cffi, chrome120); requests are spaced ~0.8s apart; everything is read-only.
Note: the two sibling lanes (teknosa.com, hepsiemlak.com) went behind a Cloudflare JS challenge on the same day this server was built (2026-11-07) and were skipped per factory rules — biletall.com answers cleanly, which is why it is the build.
Install
uvx biletall-mcp # run directly (needs uv)
# or
pip install biletall-mcp
biletall-mcp # starts the MCP server on stdioTests
python -m venv .venv && .venv/bin/pip install -e .
.venv/bin/python -m unittest discover -s tests -vOffline tests run on recorded fixtures (real pages fetched 2026-11-07); live tests hit biletall.com. 34/34 green at build time (26 offline + 8 live) plus an MCP stdio smoke test.
Roadmap
Date-specific bus search (the SEO pages show today's departures; a dated search needs the session-gated JSON API)
Bus company pages (
/otobus-firmalari/<slug>: company routes + ratings)Hotel search (the site has an Otel section)
License
MIT — see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Aggregated travel MCP — flights, tours, activities, price checks, visas, and more.
Read-only public transit departures, stop search, and city coverage for bus and train users.
Flight search MCP server providing search, pagination, and itinerary details for AI assistants.
AI marketplace — flights, tours, activities, transport & more via MCP. No auth required.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables flight search, location lookup, and city information retrieval using the AllFlyghts public API through MCP tools.-
- AlicenseNot gradedqualityDmaintenanceEnables searching Turkish high-speed train (YHT) tickets via TCDD API. Supports real-time availability, station name resolution, date formatting, and passenger count.MIT
- AlicenseNot gradedqualityDmaintenanceProvides live flight prices, booking links, and airport lookup via a hosted MCP server. Enables search for flights and direct booking URL retrieval.2MIT
- AlicenseNot gradedqualityBmaintenanceEnables MCP clients to access 21 read-only tools for local travel planning, including trip and itinerary validation, budget calculation, booking requirements, integration provider status, flight/train/accommodation/activity searches, route/weather/currency lookups, and travel source search.MIT