Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Alibaba Travel

PYPI · ALIBABA-IR-MCP

Read-only Alibaba (alibaba.ir) Iran travel: trains, buses, flights, hotels, villas and tours.

Available components

80 Trust /100

Last scanned (9 hours ago)

Scores higher than 80% of PyPI servers

Category Maps and Location

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
  • 1 of 35 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to sepehr071/alibaba-ir-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 1 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability60
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 4287 tokens (~306/item across 14 items; 14 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management13
  • Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 14 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Nov 26 +16
    • Malware scan: unverified → pass ▲ security
  • 3 Nov 26 0
    • Malware scan: unverified → pass ▲ security
    • Package version: 0.1.1 → 0.1.2 functional
  • 2 Nov 26 −14
    • Malware scan: pass → unverified ▼ security
    • Package version: 0.1.0 → 0.1.1 functional
  • 1 Nov 26 78

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed pypi/alibaba-ir-mcp@0.1.2

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem pypi
Reason Verified
Discovered via Registry attestation endpoint
Source repo sepehr071/alibaba-ir-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/sepehr071/alibaba-ir-mcp/.github/workflows/publish.yml@refs/tags/v0.1.2
Rekor log index 3670999665
Predicate type PyPI publish attestation https://docs.pypi.org/attestations/publish/v1
Subject digest sha256:fd9e5f2a656985fca60072815bd208fcb7b7257dd341a8063ddc858cd84e9e3e

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 35 packages
Packages resolved 35
No linked repository 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 14 exposed · ~3,659 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
al_bus_seats ~262

Show which seats are free on one bus: counts per status and the free seat numbers (no booking). Use after al_buses when the user cares where they sit or asks how full a bus is. Pick the bus by its departure time (and company). `layout` gives each seat's row and column (columns 1-2 left of the aisle, 4-5 right) so pairs can be found; statuses mean Available, booked for a male or female passenger, or Blocked (not for sale).

NameTypeReqDescription
company––Part of the company name, to pick one when several buses leave at that time.
datestringyesTravel date, Gregorian 2026-11-11 or Jalali 1405-08-20 (the year tells which).
departure_timestringyesDeparture time of the bus from al_buses, HH:MM.
destinationstringyesCity name in Persian or English (تهران, Mashhad) or its code (THR, MHD); al_cities lists them.
originstringyesCity name in Persian or English (تهران, Mashhad) or its code (THR, MHD); al_cities lists them.

No output schema declared.

No examples provided.

al_buses ~218

Search intercity bus tickets between two Iranian cities on one day: company, bus type, times, price, seats. Use for "buses from Tehran to Shiraz tomorrow". Prices are Toman per adult. `from_terminal` is the terminal of that departure (Tehran has several). Bus tickets carry no arrival time on the site.

NameTypeReqDescription
datestringyesTravel date, Gregorian 2026-11-11 or Jalali 1405-08-20 (the year tells which).
destinationstringyesCity name in Persian or English (تهران, Mashhad) or its code (THR, MHD); al_cities lists them.
limitinteger–Maximum number of results.
only_availableboolean–Hide buses with no free seat.
originstringyesCity name in Persian or English (تهران, Mashhad) or its code (THR, MHD); al_cities lists them.
sortstring–Order of the results.

No output schema declared.

No examples provided.

al_buses_cheapest ~203

List the lowest bus price and the number of buses for each day from a start date (the site has no bus calendar). Use before al_buses when the date is flexible. It runs one search per day, so keep `days` small. Prices are Toman per adult for buses with a free seat; a day with none shows no price.

NameTypeReqDescription
datestringyesTravel date, Gregorian 2026-11-11 or Jalali 1405-08-20 (the year tells which).
daysinteger–How many days to check, starting at `date`.
destinationstringyesCity name in Persian or English (تهران, Mashhad) or its code (THR, MHD); al_cities lists them.
originstringyesCity name in Persian or English (تهران, Mashhad) or its code (THR, MHD); al_cities lists them.

No output schema declared.

No examples provided.

al_cities ~200

Look up the city codes the other tools take (THR for Tehran, MHD for Mashhad) and what is sold for each city. Use first when the user names a city: pass the returned `code` to al_trains, al_buses or al_flights. `train` is true for cities with a station, `flight` for cities with a domestic airport. Buses use the same codes (a tiny train stop may have no buses). With international=true it searches the whole world (Dubai, Istanbul, Paris) and returns airports; `whole_city` rows (code ending in ALL) cover every airport of a city.

NameTypeReqDescription
internationalboolean–Look up airports and cities worldwide for al_flights_international instead of Iranian cities.
limitinteger–Maximum number of results.
querystring–Part of a city name in Persian or English, or a code. Empty lists all.

No output schema declared.

No examples provided.

al_flights ~375

Search domestic flights between two Iranian airports on one day: airline, flight number, times, fare, seats. Use for "flights from Tehran to Shiraz on 2026-11-12". Prices are Toman per adult (`child_price_toman` and `infant_price_toman` for the others); one flight can appear several times with different fare classes. Pass return_date for a round trip, refund_rules for the cancellation fee table, adults/children/infants for a group. For other days call al_flights_cheapest first. For flights abroad use al_flights_international.

NameTypeReqDescription
adultsinteger–Number of adults.
childreninteger–Number of children (2-11); their fare is lower.
datestringyesTravel date, Gregorian 2026-11-11 or Jalali 1405-08-20 (the year tells which).
destinationstringyesCity name in Persian or English (تهران, Mashhad) or its code (THR, MHD); al_cities lists them.
infantsinteger–Number of infants under 2 (one per adult at most).
limitinteger–Maximum number of results.
only_availableboolean–Hide fares with no seat left.
originstringyesCity name in Persian or English (تهران, Mashhad) or its code (THR, MHD); al_cities lists them.
refund_rulesboolean–Add `refund_penalties` (cancellation fee by time before departure) to each fare.
return_date––Return day for a round trip (same formats as `date`); adds a `returning` list.
sortstring–Order of the results.

No output schema declared.

No examples provided.

al_flights_cheapest ~178

List the lowest domestic fare for each day from a start date, to pick the cheapest day to fly. Use before al_flights when the date is flexible. Prices are Toman per adult; a day with no flight is missing.

NameTypeReqDescription
datestringyesTravel date, Gregorian 2026-11-11 or Jalali 1405-08-20 (the year tells which).
daysinteger–How many days to list, starting at `date`.
destinationstringyesCity name in Persian or English (تهران, Mashhad) or its code (THR, MHD); al_cities lists them.
originstringyesCity name in Persian or English (تهران, Mashhad) or its code (THR, MHD); al_cities lists them.

No output schema declared.

No examples provided.

al_flights_international ~403

Search international flights between Iran and abroad (or any two cities Alibaba sells) on one day. Use for "flights from Tehran to Istanbul on 2026-11-16". Returns airline, flight numbers, times, stops, baggage and the price per adult in Toman (`total_toman` is for the whole group); cheapest first by default. Pass return_date for a round trip: each fare then has a `return` leg. Cities and codes come from al_cities with international=true (THRALL = all Tehran airports). Charter fares are sold as one fare class. It can take 10-20 seconds because airlines answer one by one (at most 12 polls per call). To buy, send the user to alibaba.ir.

NameTypeReqDescription
adultsinteger–Number of adults.
airline––Part of an airline name to keep, e.g. 'Turkish', 'ماهان'.
cabinstring–Cabin class.
childreninteger–Number of children (2-11).
datestringyesTravel date, Gregorian 2026-11-11 or Jalali 1405-08-20 (the year tells which).
destinationstringyesCity or airport as a name (تهران, Dubai) or code (THR, DXB, THRALL for all airports of Tehran).
infantsinteger–Number of infants under 2.
limitinteger–Maximum number of results.
max_stops––Keep only itineraries with at most this many stops (0 = direct).
originstringyesCity or airport as a name (تهران, Dubai) or code (THR, DXB, THRALL for all airports of Tehran).
return_date––Return day for a round trip (same formats as `date`).
sortstring–Order of the results.

No output schema declared.

No examples provided.

al_hotels ~260

Search hotels in a city for a stay: stars, rating, price for the whole stay, meal plan, perks (domestic and abroad). Use for "a 4-star hotel in Mashhad for 2 nights from 1405-08-21". Prices are Toman for the room for all nights (`price_per_night_toman` is the average). The site's own page shows the same list and count. It can take up to a few seconds while hotels answer.

NameTypeReqDescription
adultsinteger–Adults in the room (one room per search).
checkinstringyesTravel date, Gregorian 2026-11-11 or Jalali 1405-08-20 (the year tells which).
citystringyesCity name in Persian or English (مشهد, Istanbul, دبی).
limitinteger–Maximum number of results.
min_stars––Lowest star rating to keep, 1-5.
nightsinteger–Number of nights, counted from the check-in date.
only_availableboolean–Hide hotels with no room for those dates.
sortstring–Order of the results: best rated first, or cheapest first.

No output schema declared.

No examples provided.

al_stay_detail ~153

Show one villa or holiday home in full: capacity, beds, amenities, house rules, cancellation terms, calendar, reviews. Use after al_stays when the user wants to decide on a place. Prices are Toman per night (`price_base` weekday, `price_weekend`, `price_holiday`); `calendar` lists the next days with `available` or not and the night's price. Guest names are left out.

NameTypeReqDescription
calendar_daysinteger–How many days of availability and nightly prices to list from today.
idstringyesThe `id` of a place from al_stays.
reviewsinteger–How many recent guest reviews to include (0 for none).

No output schema declared.

No examples provided.

al_stays ~344

Search villas, suites, cottages and other holiday homes for rent in a city, with price, rating and capacity. Use for "a villa in Masuleh for 4 people next weekend". Prices are Toman: `price_per_night_toman` is the average for the stay, `price_total_toman` the whole stay (VAT not included). The sort applies to the first 100 places the site returns (`found` is the full count). Call al_stay_detail with an `id` for the calendar, rules and amenities. The listings are Jabama's, sold through alibaba.ir.

NameTypeReqDescription
checkinstringyesTravel date, Gregorian 2026-11-11 or Jalali 1405-08-20 (the year tells which).
destinationstringyesCity or village name (ماسوله, رامسر, کیش) or a page slug like city-masuleh.
guestsinteger–Number of guests.
instant_onlyboolean–Only places you can book at once without the host's approval.
limitinteger–Maximum number of results.
max_price––Highest price per night in Toman.
min_price––Lowest price per night in Toman.
min_rating––Lowest guest rating, 0-5 (for example 4).
nightsinteger–Number of nights, counted from the check-in date.
sortstring–Order of the results.
type––Kind of place: villa, suite, traditional house, cottage, apartment, hostel, ecotourism lodge, complex.

No output schema declared.

No examples provided.

al_tours ~291

Search tour packages (round trip plus hotel) from a city to a destination such as Kish, Mashhad, Istanbul or Dubai. Use for "a 3-night Kish tour for two from Tehran next week". Each result is a hotel with the cheapest package: hotel, stars, rating, room, meal plan, how you travel, and the price per person and for the whole group in Toman. Results come in after a few seconds (at most 15 polls per call). To buy, send the user to alibaba.ir.

NameTypeReqDescription
adultsinteger–Travellers sharing one room (the price is for the whole group).
checkinstringyesTravel date, Gregorian 2026-11-11 or Jalali 1405-08-20 (the year tells which).
destinationstringyesDestination city in Persian or English: کیش, Mashhad, استانبول, Dubai.
limitinteger–Maximum number of results.
max_price––Highest price per person in Toman.
min_stars––Lowest hotel star rating to keep, 1-5.
nightsinteger–Number of nights, counted from the check-in date.
originstring–Departure city, tours start from Tehran, Isfahan, Mashhad and a few more.
sortstring–Order of the results.

No output schema declared.

No examples provided.

al_tours_cheapest ~183

List the lowest tour price per person for 11 departure days around a date (5 before, 5 after), to pick the cheapest day. Use before al_tours when the date is flexible. Prices are Toman per person for a tour of `nights` nights; a day without tours is missing. Then call al_tours for the chosen day.

NameTypeReqDescription
checkinstringyesTravel date, Gregorian 2026-11-11 or Jalali 1405-08-20 (the year tells which).
destinationstringyesDestination city in Persian or English: کیش, Mashhad, استانبول, Dubai.
nightsinteger–Number of nights, counted from the check-in date.
originstring–Departure city (Tehran, Isfahan, Mashhad and a few more).

No output schema declared.

No examples provided.

al_trains ~412

Search train tickets between two Iranian cities on one day: company, class, times, price and seats left. Use for "trains from Tehran to Mashhad on 1405-08-20". Prices are Toman per adult. `seats_left` 0 means sold out. `class` is the wagon name (stars, berths, meals) and `class_code` its type: S saloon seats, EC 4-berth compartment, EL 6-berth compartment, V special. Pass return_date for the way back. Call al_trains_cheapest to compare prices over the following days. While the rail suppliers are in their maintenance window (usually after midnight) the site answers with an error; try again in a few minutes.

NameTypeReqDescription
datestringyesTravel date, Gregorian 2026-11-11 or Jalali 1405-08-20 (the year tells which).
destinationstringyesCity name in Persian or English (تهران, Mashhad) or its code (THR, MHD); al_cities lists them.
limitinteger–Maximum number of results.
only_availableboolean–Hide sold-out trains.
originstringyesCity name in Persian or English (تهران, Mashhad) or its code (THR, MHD); al_cities lists them.
passengersinteger–Number of travellers; seats_left is for this group size.
return_date––Return day for a round trip (same formats as `date`); adds a `returning` list.
sortstring–Order of the results.
ticket_typestring–family = mixed compartments; female or male = single-gender compartments (seat counts differ).
wagon_class––Keep only this class code from the results, e.g. EC (compartment), EL (6-berth), S (saloon), V.

No output schema declared.

No examples provided.

al_trains_cheapest ~177

List the lowest train price for each day from a start date, to pick the cheapest day to travel. Use before al_trains when the date is flexible. Prices are Toman per adult; a missing day has no train.

NameTypeReqDescription
datestringyesTravel date, Gregorian 2026-11-11 or Jalali 1405-08-20 (the year tells which).
daysinteger–How many days to list, starting at `date`.
destinationstringyesCity name in Persian or English (تهران, Mashhad) or its code (THR, MHD); al_cities lists them.
originstringyesCity name in Persian or English (تهران, Mashhad) or its code (THR, MHD); al_cities lists them.

No output schema declared.

No examples provided.

Install

How do I install the Alibaba Travel MCP server?

Alibaba Travel runs locally as a PyPI package, launched with uvx alibaba-ir-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · alibaba-ir-mcp

# add to Claude Code
claude mcp add sepehr071-alibaba-ir-mcp -- uvx alibaba-ir-mcp
Common questions

What is the Alibaba Travel MCP server?

Alibaba Travel is an MCP server listed in the public MCP registry as io.github.sepehr071/alibaba-ir-mcp. Read-only Alibaba (alibaba.ir) Iran travel: trains, buses, flights, hotels, villas and tours. This page covers its PyPI package (alibaba-ir-mcp).

Is the Alibaba Travel MCP server safe to use?

Alibaba Travel scores 80 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Alibaba Travel MCP server expose?

Alibaba Travel exposes 14 tools: al_cities, al_trains, al_trains_cheapest, al_buses, al_buses_cheapest, and 9 more. Their descriptions and schemas cost roughly 3,659 tokens of context every time the server is loaded.

Is the Alibaba Travel MCP server still maintained?

Alibaba Travel is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Alibaba Travel MCP server under?

Alibaba Travel declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.