by borski
AI-powered travel hacking with points, miles, and award flights. Drop-in skills and MCP servers for OpenCode and Claude Code.
# Add to your Claude Code skills
git clone https://github.com/borski/travel-hacking-toolkitAI-powered travel hacking with points, miles, and award flights. Drop-in skills and MCP servers for OpenCode and Claude Code.
Ask your AI to find you a 60,000-mile business class flight to Tokyo. It'll search award availability across 25+ programs, compare against cash prices, check your loyalty balances, and tell you the best play.
git clone https://github.com/borski/travel-hacking-toolkit.git
cd travel-hacking-toolkit
./scripts/setup.sh
The setup script walks you through everything: picks your tool (OpenCode, Claude Code, or both), creates your API key config files, installs dependencies, and optionally installs skills system-wide.
The 5 free MCP servers (Skiplagged, Kiwi, Trivago, Ferryhopper, Airbnb) work immediately with zero API keys. For the full experience, add at minimum:
| Key | Why | Free Tier |
|-----|-----|-----------|
| SEATS_AERO_API_KEY | Award flight search. The main event. | No (Pro ~$8/mo) |
| SERPAPI_API_KEY | Cash price comparison for "points or cash?" decisions | Yes (100 searches/mo) |
Then launch your tool:
# OpenCode
opencode
# Claude Code
claude --strict-mcp-config --mcp-config .mcp.json
The --strict-mcp-config flag tells Claude Code to load MCP servers from the config file directly. This is more reliable than auto-discovery (known issue).
| Server | What It Does | API Key | |--------|-------------|---------| | Skiplagged | Flight search with hidden city fares | None (free) | | Kiwi.com | Flights with virtual interlining (creative cross-airline routing) | None (free) | | Trivago | Hotel metasearch across booking sites | None (free) | | Ferryhopper | Ferry routes across 33 countries, 190+ operators | None (free) | | Airbnb | Search Airbnb listings, property details, pricing. Patched with geocoding fix and property type filter. | None (free) | | LiteAPI | Hotel search with live rates and booking | LiteAPI |
| Skill | What It Does | API Key | |-------|-------------|---------| | duffel | Real-time flight search across airlines via Duffel API | Duffel | | seats-aero | Award flight availability across 25+ mileage programs | Seats.aero Pro/Partner | | awardwallet | Loyalty program balances, elite status, history | AwardWallet Business | | serpapi | Google Flights cash prices, hotels, destination discovery | SerpAPI | | rapidapi | Secondary prices via Google Flights Live + Booking.com | RapidAPI | | atlas-obscura | Hidden gems near any destination | None (free) | | scandinavia-transit | Trains, buses, ferries in Norway/Sweden/Denmark | Entur + Trafiklab | | wheretocredit | Mileage earning rates by airline and booking class across 50+ FF programs | None (free) |
Skills are markdown files that teach your AI how to call travel APIs. They contain endpoint documentation, curl examples, useful jq filters, and workflow guidance. Both OpenCode and Claude Code support skills natively.
The skills/ directory is the canonical source. The setup script either:
~/.config/opencode/skills/ or ~/.claude/skills/)MCP (Model Context Protocol) servers give your AI real-time tools it can call directly. The configs are in:
opencode.json for OpenCode.mcp.json for Claude CodeSkiplagged, Kiwi.com, Trivago, Ferryhopper, and Airbnb need no setup at all. LiteAPI is also a remote server but needs an API key configured in your settings.
The core question: "Should I burn points or pay cash?"
"Find me the cheapest business class award from SFO to Tokyo in August"
"Compare points vs cash for a round trip JFK to London next March"
"What are my United miles and Chase UR balances?"
"Find hidden gems near Lisbon"
"How do I get from Oslo to Bergen by train?"
travel-hacking-toolkit/
├── AGENTS.md -> CLAUDE.md # OpenCode project instructions (symlink)
├── CLAUDE.md # Project instructions and workflow guidance
├── opencode.json # OpenCode MCP server config
├── .mcp.json # Claude Code MCP server config
├── .env.example # API key template (OpenCode)
├── .claude/
│ ├── settings.local.json.example # API key template (Claude Code)
│ └── skills -> ../skills # Symlink to skills
├── .opencode/
│ └── skills -> ../skills # Symlink to skills
├── data/
│ ├── alliances.json # Airline alliance membership + booking relationships
│ ├── hotel-chains.json # Hotel chains, sub-brands, loyalty programs, reverse lookup
│ ├── partner-awards.json # Which programs book which airlines (alliance + bilateral)
│ ├── points-valuations.json # Points/miles valuations from 4 sources (floor/ceiling)
│ ├── sweet-spots.json # High-value award redemptions + booking windows
│ └── transfer-partners.json # Credit card transfer partners + ratios
├── skills/
│ ├── duffel/SKILL.md # Real-time flight search
│ ├── seats-aero/SKILL.md # Award flight search
│ ├── awardwallet/SKILL.md # Loyalty balances
│ ├── serpapi/SKILL.md # Cash prices + hotels
│ ├── rapidapi/SKILL.md # Secondary price source
│ ├── atlas-obscura/ # Hidden gems (+ Node.js scraper)
│ │ ├── SKILL.md
│ │ ├── ao.mjs
│ │ └── package.json
│ └── scandinavia-transit/ # Nordic trains/buses/ferries
│ └── SKILL.md
├── scripts/
│ └── setup.sh # Interactive installer
└── LICENSE # MIT
Built on these excellent projects:
MIT
No comments yet. Be the first to share your thoughts!