Flytoday
БесплатноНе проверенUnofficial read-only MCP server for Flytoday: cheapest domestic and international flights, hotels, stays, trains and buses in Iran, with fare rules and exact pr
Описание
Unofficial read-only MCP server for Flytoday: cheapest domestic and international flights, hotels, stays, trains and buses in Iran, with fare rules and exact prices.
README

✈️ flytoday-mcp: Flytoday MCP server for AI agents
Unofficial, read-only MCP server for Flytoday (فلای تودی): let your AI agent plan trips in Iran and abroad.
Find the cheapest domestic or international flight, train or bus on a date or over a month, read fare rules and baggage,
compare hotels and villas with exact prices, and price CIP lounges, eSIMs and visas, all from Claude, Cursor or Copilot.
PyPI Python CI MCP Registry License: MIT
Install in Cursor Install in VS Code
Quick start · What it can do · Tools · FAQ · فارسی
For AI agents
- What: unofficial, read-only MCP server for Flytoday (فلای تودی), an Iranian travel site: domestic and international flights, hotels in Iran and abroad, villas, trains, buses, CIP lounges, eSIMs and visas. Queries work in Persian and English; prices are in Toman.
- Install:
claude mcp add flytoday -- uvx flytoday-mcp(stdio transport; needs Python 3.10+ and uv). - Auth: none, no API key. Optional
FLYTODAY_MCP_PROXY(HTTP proxy), only if your network cannot reach flytoday.ir or your IP is rate limited. - Access: read-only. No login, seat hold, booking or payment, so no confirmation is needed before calling tools.
- Tools: 22, all prefixed
ft_*. Start with a find tool (ft_find_airport,ft_find_hotel_place,ft_find_station,ft_find_bus_city), then a calendar such asft_flight_calendar→ft_search_flights→ft_flight_details. Hotels:ft_search_hotels→ft_hotel. - Use when: comparing flights, hotels, villas, trains or buses, or pricing a CIP lounge, eSIM or visa.
- Do not use when: you need to book or pay (the user does that on flytoday.ir). Searches are rate limited per IP, so prefer calendars and paging over repeated searches.
- Output: compact JSON. Prices in Toman in
*_tomanfields (visa and some activities in a foreign currency), dates GregorianYYYY-MM-DD.search_idandfare_source_codeexpire after about 15 minutes. - Machine-readable: server.json; catalog of all Iranian MCP servers: awesome-iran-mcp (TOOLS.md, servers.json, llms.txt).
Why use Flytoday MCP
Flytoday (flytoday.ir, فلای تودی) sells domestic and international flights, hotels, villas, trains, buses, CIP
lounges, eSIMs and visas. Comparing "which day, plane or train or bus, which hotel" still means many page loads.
An agent with flytoday-mcp does it in one go:
You: Cheapest way from Tehran to Mashhad around 20 October?
Agent: calls
ft_flight_calendar(origin="THR", destination="MHD", date="2026-10-21", window="week"),ft_train_calendar(origin="1", destination="191")
Mode Cheapest day Price (Toman) Flight 2026-10-20, airline IRZ 11,056,700 Train 2026-10-20 (and most days that week) 760,000 The train is far cheaper; want me to list that day's trains with
ft_search_trains?
Real tool output from 2026-10-07; prices and seats change all the time. Prices are in Toman.
What it can do
- ✈️ Flights: domestic and international, one-way or round trip, party prices, airline, direct, charter/system and time filters
- 📅 Cheapest day for flights (+-15 days), trains (~16 days) and buses (~6 weeks)
- 📜 Fare details: refund and change rules, baggage, international entry notes
- 🏨 Hotels in Iran and abroad: priced search, room and meal offers with cancellation terms, guest reviews
- 🏡 Villas and apartments in Iran: price per night and total, per-date calendar with blocked days
- 🚆🚌 Trains and buses: classes, seats left, stops, amenities, VIP and sleeper buses
- 🛂 Extras: CIP lounges at IKA and MHD, eSIM data plans per country, visa prices and documents, tours and tickets
- 🔒 Read-only by design: no login, no seat hold, no booking, no payment
Quick start
You need uv.
Claude Code
claude mcp add flytoday -- uvx flytoday-mcp
If Flytoday does not answer from your network, add a proxy:
claude mcp add flytoday -e FLYTODAY_MCP_PROXY=http://127.0.0.1:8080 -- uvx flytoday-mcp
Claude Desktop
Settings → Developer → Edit Config, then add:
{
"mcpServers": {
"flytoday": { "command": "uvx", "args": ["flytoday-mcp"] }
}
}
Need a proxy? Add "env": { "FLYTODAY_MCP_PROXY": "http://127.0.0.1:8080" } next to args.
Cursor
Click Install in Cursor above, or add the Claude Desktop block to ~/.cursor/mcp.json.
VS Code (Copilot agent mode)
Click Install in VS Code above, or add to .vscode/mcp.json:
{
"servers": {
"flytoday": { "type": "stdio", "command": "uvx", "args": ["flytoday-mcp"] }
}
}
Anything else
It's a standard stdio MCP server: run uvx flytoday-mcp, or pip install flytoday-mcp and run flytoday-mcp.
Then just ask:
- "Cheapest day to fly Tehran to Istanbul next month, and the refund rules of that fare?"
- "Hotels in Mashhad for 2 nights from the 21st, cheapest first, with free cancellation."
- "A villa in Ramsar for 4 people next weekend under 5 million Toman a night."
- ارزانترین اتوبوس VIP تهران به اصفهان دوشنبه بعد؟
How it works
AI agent (Claude, Cursor, Copilot, ...)
│
│ MCP over stdio
▼
flytoday-mcp (runs on your machine)
│
│ HTTPS (optional proxy)
▼
www.flytoday.ir/api/gateway ──▶ api.flytoday.ir, placesearch.flytoday.ir
flytoday-mcp runs locally and calls the same public gateway the flytoday.ir website uses. There's no hosted
server in between, no API key, and nothing about you is sent anywhere else.
Tools
Each vertical has its own ids, taken from its find tool: IATA codes for flights (THR, MHD, IST), hotel
city_id / region_code, stay region_code, train station codes (Tehran 1, Mashhad 191), 4-digit bus city
ids (Tehran 0001, Isfahan 0002).
✈️ Flights (4)
| Tool | What it does |
|---|---|
ft_find_airport |
Finds IATA codes for Iranian and international cities and airports, or lists the popular ones |
ft_search_flights |
Searches one-way or round-trip flights with filters, sorting and paging, in Toman, with fare_source_code and search_id |
ft_flight_calendar |
Shows the cheapest fare per departure day around a date and marks the cheapest day |
ft_flight_details |
Gives the refund and change rules, baggage and international entry notes of one fare |
🏨 Hotels and stays (6)
| Tool | What it does |
|---|---|
ft_find_hotel_place |
Find city, region and hotel ids for hotels, and region codes for villa stays; popular places when empty |
ft_search_hotels |
Priced hotels of a city or region for dates: whole-stay and per-night Toman, stars, score, refundable, meal |
ft_hotel |
One hotel: room and meal offers with price, rooms left and cancellation terms, room details, basics |
ft_hotel_reviews |
Guest reviews of a hotel with score, text, pros and cons |
ft_search_stays |
Villas and apartments in Iran for dates, cheapest first, Toman per night and total |
ft_stay |
One villa or apartment: details, price calendar with blocked days, reviews |
🚆 Trains (4)
| Tool | What it does |
|---|---|
ft_find_station |
Train station codes by city name, or the popular stations |
ft_search_trains |
Trains between two stations on a date: company, class, times, seats left, price per adult |
ft_train_calendar |
Cheapest train price per day for the next ~16 days, sold-out days flagged |
ft_train_stops |
Stops and times of one train, plus class amenities and meals |
🚌 Buses (3)
| Tool | What it does |
|---|---|
ft_find_bus_city |
Bus city ids by name, or the popular cities |
ft_bus_calendar |
Cheapest bus seat price per day for the next weeks (the site's price strip) |
ft_search_buses |
Buses between two cities on a date: company, terminals, type, seats left, price per seat |
🛂 CIP, eSIM, visa, activities (5)
| Tool | What it does |
|---|---|
ft_cip |
CIP / VIP airport lounge prices and add-ons at IKA and MHD for a date and passengers, per passport nationality |
ft_esim_plans |
eSIM data plans for a country (GB, days, price in Toman), cheapest first |
ft_visa |
Visa country list with from-prices, or one country's prices, documents and processing time |
ft_activities |
Tours, tickets and activities in a destination with from-prices for a date range |
ft_activity |
One activity: description, options, prices and cheapest days |
All 22 tools are annotated readOnlyHint: true and return compact structured JSON, so they don't flood the agent's context.
Good to know
- Prices are in Toman in every tool, in fields named
*_toman(the API sends Rial; values are divided by 10). Flightprice_tomanis per adult andtotal_tomanthe whole party; hotelprice_tomanis the whole stay (withper_night_toman); stays giveprice_per_night_tomanandtotal_toman; trains per adult; buses per seat. Visa and some activity prices are in a foreign currency (price_currency). - Dates in and out are Gregorian
YYYY-MM-DD; past dates are rejected. Times are local to the place. - Flights give
airline(English name) andairline_fa(Persian name, when the API has one). - Hotels and stays (search rows,
ft_hotel,ft_stay) carryimage, the cover photo, built like the site as<cdn>/<id>/main.jpg(the API has no image field). - Searches are rate limited per IP by Flytoday: about 15 flight/train/bus searches, and hotel search asks for a
captcha after about 12 searches in 10 minutes (blocked for an hour or more). Use the calendars and paging
(
search_id) instead of searching again; the tools never loop searches. - Ids expire:
search_idandfare_source_codeare valid for about 15 minutes. - Sales windows: trains open about 16 days ahead. An empty result often just means "not on sale yet".
- When the rail companies' link is down, Flytoday answers HTTP 599;
ft_search_trainsretries three times, then says so.
FAQ
Is there a Flytoday API or MCP server for AI agents?
flytoday-mcp is an unofficial MCP server for Flytoday: it exposes the public gateway of the flytoday.ir website
as 22 read-only tools, so an agent can compare flights, hotels, villas, trains and buses.
How do I use Flytoday with Claude, Cursor or Copilot?
Install it with uvx flytoday-mcp (see Quick start), then ask in Persian or English, for example
"cheapest day to fly Tehran to Istanbul next month, and the refund rules of that fare".
Is it official, safe and free?
It is unofficial and MIT licensed, so free to use. It is read-only: no login, no API key, no booking or payment, and it runs on your machine.
Do I need a proxy?
Usually not: the website's gateway answers from Iran and from abroad. If your network cannot reach
www.flytoday.ir, or your IP is rate limited, set FLYTODAY_MCP_PROXY to an HTTP proxy. System proxy variables
(HTTPS_PROXY, ...) are ignored on purpose.
Can it book a ticket for me?
No, and that's deliberate. It has no login and never holds a seat, reserves, orders or pays. The agent finds the best option; you book on flytoday.ir.
I get "wants a captcha" or HTTP 429
Flytoday limits searches per IP. Wait (the hotel captcha block can last an hour or more) or use another network
through FLYTODAY_MCP_PROXY. Calendars, details, reviews and stay searches are not limited.
Why is there no bus seat map?
The site's seat map comes from the first call of its checkout flow. It is left out until it is clear that the call holds nothing.
How do I debug what the agent sees?
npx @modelcontextprotocol/inspector uvx flytoday-mcp
Configuration
| Variable | Default | Meaning |
|---|---|---|
FLYTODAY_MCP_PROXY |
unset | HTTP proxy for every request, e.g. http://user:pass@host:port |
Safety
- Read-only: no login or OTP, no seat hold, reservation, order, payment, refund, review or bookmark. The only POSTs are searches and price lookups the site itself makes before booking.
- At most two requests at a time, and no tool repeats a search in a loop.
فارسی: سرور MCP فلایتودی
flytoday-mcp یک سرور MCP غیررسمی برای فلایتودی در ایران است که به دستیار هوش مصنوعی شما (Claude، Cursor، Copilot و ...) اجازه میدهد در فلایتودی ارزانترین پرواز داخلی و خارجی، قطار یا اتوبوس را برای یک روز یا یک ماه پیدا کند، قوانین استرداد و بار مجاز را ببیند و هتلها و ویلاها را با قیمت دقیق مقایسه کند؛ همچنین قیمت CIP، سیمکارت eSIM و ویزا را میگوید.
- فقط خواندنی است: وارد حساب نمیشود و چیزی رزرو یا پرداخت نمیکند.
- همه قیمتها به تومان است.
- روی سیستم خود شما اجرا میشود و به هیچ سرور واسطی داده نمیفرستد.
- برای پیدا کردن آن در گوگل یا رجیستری MCP، «سرور MCP فلایتودی» یا «flytoday mcp» را جستجو کنید.
نصب در Claude Code:
claude mcp add flytoday -- uvx flytoday-mcp
بعد بپرسید: «ارزانترین راه رفتن از تهران به مشهد حدود ۲۸ مهر چیست؟»
Development
git clone https://github.com/sepehr071/flytoday-mcp && cd flytoday-mcp
uv sync
uv run pytest # offline, against recorded responses
uv run pytest -m live # real API, one search per tool (set FLYTODAY_MCP_PROXY if needed)
uv run ruff check .
Tools live in src/flytoday_mcp/flights.py, hotels.py, trains.py, buses.py and extras.py; each is a typed
async function with a docstring that tells the agent when to use it. Issues and PRs are welcome.
Releases: bump the version in pyproject.toml and server.json, then push a v* tag. GitHub Actions tests,
publishes to PyPI and the MCP Registry, and creates the GitHub Release.
Related servers
- MrBilit MCP server for flights, trains, buses, taxis and hotels
- Jabama MCP server for villas, tours and events
- Otaghak MCP server for villa, cottage and apartment stays
- All servers: awesome-iran-mcp, the catalog of Iranian MCP servers
If this saves you clicks, a star helps others find it.
Disclaimer
Unofficial and not affiliated with or endorsed by Flytoday. It uses the public endpoints of the flytoday.ir website, which can change without notice. Please keep request rates reasonable.
License
Установить Flytoday в Claude Desktop, Claude Code, Cursor
unyly install flytodayСтавит в Claude Desktop, Claude Code, Cursor и VS Code — сам разбирается с npx, uvx и сборкой из исходников.
Впервые? Поставь CLI: curl -fsSL https://unyly.org/install | sh
Или настроить вручную
Выполни в терминале:
claude mcp add flytoday -- uvx flytoday-mcpПошаговые гайды: как установить Flytoday
FAQ
Flytoday MCP бесплатный?
Да, Flytoday MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Flytoday?
Нет, Flytoday работает без API-ключей и переменных окружения.
Flytoday — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Flytoday в Claude Desktop, Claude Code или Cursor?
Открой Flytoday на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Unyly Deploy
Deploy sites and MCP servers to Unyly straight from your AI agent
автор: UnylyAmap Maps Mcp Server
MCP server for using the AMap Maps API
автор: duxiaohuiPayMCP
Lightweight payments layer for MCP servers: turn tools into paid endpoints with a two-line decorator. [PyPI](https://pypi.org/project/paymcp/) · [npm](https://w
автор: blustAITemplate MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectSupabase
Database, auth and storage
автор: SupabaseEverything
Reference / test server with prompts, resources, and tools.
Git
Tools to read, search, and manipulate Git repositories.
Compare Flytoday with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
