
obilet.com Bus & Flight Tickets
io.github.mohammad-abbasi-shPublished by GitHub account mohammad-abbasi-shv0.1.0Updated Nov 7, 2026
Unofficial read-only MCP server for obilet.com bus & flight tickets: journeys, prices.
Overview
Unofficial read-only MCP server that lets an assistant search obilet.com bus and flight journeys, prices and schedules in Türkiye.
- What you can do
- Search bus or flight locations by name and get their IDs
- List bus journeys for a route and date with partner, bus type, seats, times, duration, price in TRY and rating
- Read full details of a single journey, including every stop with its time
- Get price statistics (min, median, mean, max) for a route and date
- Get a flight summary with flight count, price range, durations, direct-flight flag and airlines
- When to use it
- Useful when planning or comparing travel within Türkiye and you want an assistant to look up bus departures, fares and stop details, or a quick flight price and airline overview for a city pair and date.
- Requirements
- Runs locally over stdio as a Python package (uvx obilet-mcp or pip install obilet-mcp); needs Python with mcp<2 and curl-cffi, plus network access to obilet.com. No account, API key or environment variable is required.
Installation
In SourceWeft
- Open obilet.com Bus & Flight Tickets in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
obilet-mcp 🇹🇷
mcp-name: io.github.mohammad-abbasi-sh/obilet-mcp
Unofficial read-only MCP server for obilet.com**, Türkiye's bus & flight ticket search — search bus locations, list all bus journeys for a route + date (partner, bus type, seats, departure/arrival, duration, price in TRY, partner rating, stops), read full journey details, get price statistics, and read the flight summary (flight count, min/max price, airlines) for the same city pair.
Built by Mohammad Abbasi as part of the "Turkey MCP factory" (Sepehr-style pipeline). Not affiliated with obilet.com.
For AI agents
Add to your MCP client config (stdio):
Or run locally: python -m obilet_mcp.server (needs mcp<2, curl-cffi).
Tools
Example output (obilet_search_bus_journeys / İstanbul Avrupa -> Ankara, 2026-11-07):
Example output (obilet_flight_summary / same route & date):
Example output (obilet_price_stats / same route & date):
How it works
obilet.com exposes a JSON API, but it is session-gated: an HTML page
is fetched first (it sets cookies incl. ob_Session and __cf_bm),
then POSTs carry X-Requested-With: XMLHttpRequest with that page as
Referer. Locations: POST /json/duraklar (bus) or /json/ucak-duraklari
(flight). Journeys: POST /json/journeys/{origin}-{destination}/{date}
with {} — one response holds every journey for the route. Detail:
POST /json/sefer-tam/{journeyId}. The same journeys response carries
the flightSummary. Sorting is client-side (price / departure /
duration). The async flights endpoint is broken on the site side
(404/500), so individual flight listings are out of scope for v1.
Transport uses a persistent curl-cffi chrome120 session; requests are
spaced ~0.8s apart; everything is read-only, no login, no API key.
Install
Tests
Offline tests run on recorded fixtures (real pages fetched 2026-11-06); live tests hit obilet.com.
Roadmap
- Individual flight listings (if the async flights endpoint is fixed)
- Round-trip search (outbound + return in one call)
- Seat-map / available-seat detail per journey
License
MIT — see LICENSE.
Source: README.md at commit 3ca4f5d
Tools
0Version history
1- v0.1.0LatestNov 7, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
