list_providers
List Italian bus providers
BUS ONLY. List configured bus/coach providers and their status. Never use this tool for trains or rail; use list_train_providers instead.
Takes no parameters.

io.github.AlexxanddrPublished by GitHub account Alexxanddrv0.3.8Updated Nov 7, 2026
Italian bus and train searches with live prices, availability and status.
The publisher's own server: travel.art
Searches Italian bus and train journeys, stations, live prices and status through provider APIs, returning official booking links.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Follow the launch instructions in the repository.
An unofficial, read-only TypeScript service for live Italian coach and train searches through HTTP and Model Context Protocol interfaces.
The project hides provider-specific station catalogs, request formats, fare structures, and multi-leg responses behind one shared application core. Italo pricing initializes an anonymous technical session and temporary planning resource; customer login, fare selection, seat reservation, and payment are excluded.
[!IMPORTANT] This project is not affiliated with or endorsed by Itabus, Autoservizi Salemi, Autolinee Federico, MarinoBus, or FlixBus. Provider names and trademarks belong to their owners. Before enabling a live adapter, confirm that your use complies with the provider's terms, applicable law, and any required authorization. This repository does not grant data-extraction or redistribution rights.
/mcp, with backward-compatible bus tools and separate rail tools.Public provider behavior and limitations are documented in the bus and train API guides below.
Train stations, journeys, prices and availability come directly from Trenitalia and Italo booking APIs. No timetable download, dataset, storage volume or initialization command is required. If one operator fails, its error is reported alongside the other operator's results. ViaggiaTreno and Italo live boards/standalone status remain independent; Italo quote sessions are cleaned up best-effort.
The server listens on http://127.0.0.1:3000 by default.
For journey searches, use today or a future date in Europe/Rome:
YYYY-MM-DD is a placeholder and must be replaced before running the command.
/locations and /journeys accept an optional provider parameter. Without it, all providers are queried independently and successful data is preserved alongside provider-scoped errors.
The complete contract is split into the Bus API and Train API, with shared behavior indexed in HTTP API.
The simplest MCP configuration runs the published package directly with npx:
Alternatively, build and start the local stdio server:
The existing list_providers, search_locations, and search_journeys bus tools remain compatible. Location and journey searches accept optional offset/limit; increment offset by limit until truncated is false to retrieve every page. Rail adds list_train_providers, search_train_locations, search_train_journeys, get_train_status, and get_station_board. Trenitalia and Italo price and live adapters are enabled; Italo live tools retain date-unverified semantics.
For exhaustive journey searches, start with snapshot: true and continue
with only the returned searchId, offset and limit. This keeps
prices, errors, order and totals identical across pages. Expired IDs require
a new search. The same opt-in flow exists over HTTP; see
stable pagination.
For a container or remote MCPHub deployment, start the HTTP process and point the client to http://italian-travel-search:3000/mcp. The container image is ghcr.io/alexxanddr/italian-travel-search:latest. No dataset initialization or persistent volume is needed.
See MCP interface for the authoritative tool contract, limits, errors, and development command.
The application has four layers:
SearchService orchestrate searches and partial results;Provider adapters implement one shared interface, so callers do not know whether a result came from Itabus Demandware or an Albatross tenant. See Architecture for modules, seams, data flow, caches, and test strategy.
npm run check runs the complete offline test suite, TypeScript type checking, and the configured lint check. To add an operator, follow Adding a provider; do not infer a new integration from HTML alone or copy credentials into fixtures.
The default server deliberately binds to loopback and keeps rate-limit and cache state in process memory. Read Operations before placing it behind a reverse proxy or running multiple replicas.
timetableSource is retained for compatibility.Always complete and confirm a purchase on the official provider site linked by bookingUrl.
Contributions are welcome; start with CONTRIBUTING.md. Report vulnerabilities privately according to SECURITY.md, not through a public issue.
Source code is available under the MIT License. The license covers this repository's code, not third-party data, provider trademarks, or access rights to upstream systems.
Search Cosenza directly: the backend preserves native connections via Paola, including Italo services followed by a Trenitalia regional train when offered by the booking API. Results include both legs, their operators, the interchange and the combined passenger fare when fully available. The destination is never silently replaced with Paola. See Train API.
Source: README.md at commit abb56cd
List Italian bus providers
BUS ONLY. List configured bus/coach providers and their status. Never use this tool for trains or rail; use list_train_providers instead.
Takes no parameters.
List Italian train providers
TRAINS ONLY. Use for requests involving trains or rail. Lists train operators and whether schedule, price, live-status, and station-board capabilities are enabled.
Takes no parameters.
Search Italian bus locations
BUS ONLY. Find bus/coach location IDs and exact names. Never use for train stations; use search_train_locations instead. For an aggregate bus search, reuse exact names shared across providers.
limitqueryrequiredoffsetproviderSearch Italian bus journeys
BUS ONLY. Search one-way bus/coach journeys. Never use for trains or rail; use search_train_journeys instead. Results include official links for continuing manually on provider sites. For stable pagination start with snapshot:true; continue using only searchId, offset and limit.
datelimitadultsoffsetoriginchildrenprovidersearchIdsnapshotdestinationSearch Italian train stations
TRAINS ONLY. Use for every request involving trains or rail to find operator-aware stations. Prefer names across operators; station IDs are operator-specific.
limitqueryrequiredoffsetproviderSearch Italian train journeys
TRAINS ONLY. Requires origin, destination, and date. When the user states passenger counts, always pass adults and children explicitly. Each price is the total for those passengers; never infer discounts or convert it to a per-person price. For stable pagination start with snapshot:true; continue using only searchId, offset and limit.
datelimitadultsoffsetoriginchildrenprovidersearchIdsnapshotdestinationGet train status
Get live status using operator, train number, service date, and origin identity. Live status may be unavailable independently of schedules.
originrequiredproviderrequiredserviceDaterequiredtrainNumberrequiredGet train station board
Get an operator station board with its observation timestamp. Live boards may be unavailable independently of schedules.
providerrequireddirectionrequiredstationIdrequiredstationNamerequired90% 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.
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

art.travelOfficial publisher
Read-only travel.art server that lets an assistant look up art events, museum visitor guides, layover itineraries and city art-trip suggestions.

Published by GitHub account dang13021993
Read-only Vietnam travel catalog that lets an assistant look up charter coach and private car classes and explain how to request a quote.

Published by GitHub account Andrii-Tiurin
Mono eSIM — Travel Connectivity for AI Agents's hosted MCP server; no sign-in required; Streamable HTTP; 21 tools.

Published by GitHub account sepehr071
Unofficial read-only MCP server that lets an assistant search Alibaba (alibaba.ir) Iran travel: trains, buses, flights, hotels, villas and tours with prices.

Published by GitHub account changzhiai
Travel checklists in 9 languages on six maps: world, USA, US NPs, Europe, China, India.
git clone https://github.com/Alexxanddr/italian-travel-search.gitcd italian-travel-searchnpm installcp .env.example .envnpm startcurl http://127.0.0.1:3000/healthcurl http://127.0.0.1:3000/providerscurl http://127.0.0.1:3000/train-providerscurl 'http://127.0.0.1:3000/locations?query=Roma&provider=marinobus'curl 'http://127.0.0.1:3000/journeys?origin=Roma&destination=Milano&date=YYYY-MM-DD&adults=1&children=0&provider=marinobus'{ "mcpServers": { "italian-travel-search": { "command": "npx", "args": ["-y", "italian-travel-search@latest"] } }}npm run buildnpm run mcp:built{ "mcpServers": { "italian-travel-search": { "command": "node", "args": ["/absolute/path/to/italian-travel-search/dist/mcp/stdio.js"] } }}npm run devnpm run mcpnpm run check