SkyOdyssey MCP logo

SkyOdyssey MCP

maru-775/SkyOdyssey-MCP
0 starsMITUpdated 2026-02-28Community

Is this your server?

Add your score badge to your README and get your server in front of 45k+ builders a month.

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

Enables AI clients to explore cheapest destinations, optimize multi-leg flight itineraries, and reference airport/region data via MCP tools and resources.

README.md

SkyOdyssey MCP

SkyOdyssey MCP exposes the SkyOdyssey flight engine as a Model Context Protocol server.

It is designed for AI clients (Claude Desktop, MCP Inspector, custom MCP hosts) that need:

  • Cheapest destination exploration
  • Multi-leg itinerary optimization
  • Region/airport reference resources

---

Features

  • MCP tools for flight search and itinerary optimization
  • Shared core logic with SkyOdyssey-CLI (logic.py, airports.py)
  • Country/airport/airline filters
  • Budget-aware pruning (max_budget)
  • Direct-flight filtering
  • Multi-origin and flexible stay support for 3-leg itineraries
  • SQLite caching (flights_cache.db, TTL 6h)
  • Retry/backoff behavior for unstable provider responses
  • Pydantic validation on itinerary outputs

---

Tools Exposed

get_flights_on_date

Fetch one-way flights for a specific route/date.

Inputs:

  • origin (IATA)
  • destination (IATA)
  • date (YYYY-MM-DD)
  • adults (default 1)
  • seat_type (default economy)

get_cheapest_destinations

Explore a region from one origin/date and return cheapest options.

Inputs:

  • origin
  • date
  • region (default Europe)
  • limit (default 15)
  • adults
  • seat_type
  • excluded_countries
  • excluded_airports
  • direct_only
  • include_airlines, exclude_airlines
  • max_budget

find_cheapest_two_city_itinerary

Find cheapest 3-leg itinerary loops.

Inputs include:

  • origin (single airport or list)
  • start_date
  • stay_days_1 / stay_days_2 (fixed int or [min, max])
  • region
  • limit_per_leg
  • excluded_countries, excluded_airports
  • max_itineraries
  • force_different_countries
  • direct_only
  • return_origin (open-jaw)
  • include_airlines, exclude_airlines
  • max_budget

Guardrails:

  • origin list max: 5
  • limit_per_leg max: 30
  • max_itineraries max: 100
  • stay range window max width: 14 days (for each of stay_days_1 and stay_days_2)

---

Resources

  • airports://regions → available regions
  • airports://{region} → airport codes for a region

---

Requirements

  • Python 3.10+
  • Internet access (provider scraping via fast-flights)

---

Installation

From SkyOdyssey-MCP:

python -m pip install -r requirements.txt

---

Run the Server

python server.py

Server transport:

  • stdio (configured in server.py)

---

Claude Desktop Example

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "skyodyssey": {
      "command": "python",
      "args": ["C:/absolute/path/to/SkyOdyssey/SkyOdyssey-MCP/server.py"]
    }
  }
}

---

Project Structure

  • server.py — MCP server entrypoint and tool/resource registration
  • logic.py — flight search, filtering, optimization, cache
  • airports.py — regions, airport datasets, exclusion helpers
  • requirements.txt — runtime dependencies

---

Troubleshooting

Import error for fast_flights

  • Reinstall dependencies: python -m pip install -r requirements.txt
  • Ensure your Python environment is the same one used to run server.py

Empty or partial results

  • Provider instability/timeouts can happen; retry run
  • Reduce search width (limit_per_leg) and/or constraints
  • Relax filters (direct_only, exclusions, budget)

Cache issues

  • Delete cache if needed:
  • Windows PowerShell: Remove-Item flights_cache.db
  • Windows cmd: del flights_cache.db

---

License

MIT License.

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use AI & ML servers.