travel-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | debug, info, warn, error or silent. Logs go to stderr. Default: info. | info |
| CACHE_FILE | No | Custom cache file path (implies file cache). | |
| FLIGHTAPI_KEY | No | Your FlightAPI key. Needed for prices, status and schedules. | |
| MCP_HTTP_HOST | No | HTTP bind address (--host). Default: 127.0.0.1. | 127.0.0.1 |
| MCP_HTTP_PORT | No | HTTP port (--port). Default: 3000. | 3000 |
| MCP_TRANSPORT | No | Transport mode: 'stdio' or 'http'. CLI flags --http / --stdio override it. Default: stdio. | stdio |
| MCP_HTTP_TOKEN | No | Required in HTTP mode. Bearer token, 16+ characters. | |
| DEFAULT_CURRENCY | No | Currency for prices when the user doesn't specify one. Default: USD. | USD |
| ENABLE_FILE_CACHE | No | Persist the cache to ~/.cache/mcp-server-travel/cache.json so restarts don't re-spend credits. Default: false. | false |
| CACHE_TTL_FX_HOURS | No | Exchange-rate cache lifetime (hours). Default: 12. | 12 |
| REQUEST_TIMEOUT_MS | No | Upstream timeout per attempt. Default: 10000. | 10000 |
| CACHE_TTL_PRICES_MIN | No | Price search cache lifetime (minutes). Default: 30. | 30 |
| CACHE_TTL_STATUS_MIN | No | Flight status / airport board cache lifetime (minutes). Default: 2. | 2 |
| FLIGHTAPI_MAX_PER_DAY | No | Max FlightAPI requests per rolling 24 h (0 = unlimited). Default: 100. | 100 |
| MCP_HTTP_ALLOWED_HOSTS | No | Comma-separated public hostnames allowed in the Host header (DNS rebinding protection). | |
| FLIGHTAPI_MAX_PER_MINUTE | No | Max FlightAPI requests per rolling minute (0 = unlimited). Default: 10. | 10 |
| MCP_HTTP_ALLOW_PATH_TOKEN | No | Also accept POST /mcp/<token>, for clients that can't send headers (ChatGPT). HTTPS only. Default: false. | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_airportsA | Find airports by city, airport name, country, or IATA/ICAO code (e.g. "Lahore", "Heathrow", "JED", "OPLA"). Use this first to turn a city name into the 3-letter IATA codes required by search_flight_prices, get_flight_status and get_airport_schedule. Works offline from a bundled OurAirports dataset and uses no API credits. Larger airports are ranked first. |
| search_flight_pricesA | Search live flight prices between two airports for a date (one-way), or with return_date (round trip). Returns the cheapest options with airline, total price, stops, duration and local departure/arrival times. Airports must be 3-letter IATA codes: call search_airports first if you only know the city. Uses the FlightAPI key (2 credits per uncached search); identical searches are cached for 30 minutes. Prices are indicative; booking happens on the airline or travel agent website. |
| get_flight_statusA | Live status of a specific flight by flight number and date: scheduled/estimated/actual times, terminals, gates, baggage belt and whether it has departed or landed. Example: flight_number "EK623", date "2026-12-15". Uses the FlightAPI key (1 credit per uncached call); results are cached for 2 minutes. |
| get_airport_scheduleA | Upcoming departures or arrivals at an airport (flight number, airline, destination/origin, scheduled and estimated local times, status, terminal and gate). Use type "departures" or "arrivals". Uses the FlightAPI key (2 credits per uncached call); results are cached for 2 minutes. |
| convert_currencyA | Convert an amount between currencies using European Central Bank reference rates (published once per working day). Good for comparing fares quoted in different currencies. Free and keyless; rates are cached for 12 hours. Covers about 30 major currencies (USD, EUR, GBP, INR, TRY, CNY, JPY, ...); currencies the ECB does not publish (e.g. PKR, AED, SAR) are not available. |
| get_usageA | Shows how many FlightAPI and exchange-rate calls this server has made since it started, how many were served from cache, estimated FlightAPI credits spent, and the remaining per-minute and per-day safety limits. Uses no credits. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| plan_trip | Find airports, search flight prices and summarize the best options for a trip. |
| umrah_flight_options | Compare flights to Jeddah (JED) and Madinah (MED) from your city for a given month. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Each tool targets a distinct resource and action: airport lookup, price search, flight status, airport schedule, currency conversion, and usage stats. There is no meaningful overlap—search_airports (reference data) is clearly separated from search_flight_prices (live pricing) and get_flight_status (single flight) vs get_airport_schedule (airport-wide board).
All names follow a consistent snake_case verb_noun pattern (get_usage, search_airports, search_flight_prices, get_flight_status, get_airport_schedule, convert_currency). The verbs vary but each semantically matches its action, which is appropriate rather than inconsistent.
Six tools is well-scoped for a flight/currency lookup server—each one earns its place and there is no filler. Neither sparse nor bloated.
The surface covers the full read-only travel-info workflow: resolve codes, search prices, check live status, view schedules, convert currencies, and monitor limits. Booking is explicitly deferred to external sites, so the only minor gaps are niceties like multi-city or seat availability, which are arguably out of scope.