Your coding agent now has frequent flyer status.
Ask your AI to find award flights — right from the terminal, inside your editor, or mid-refactor. seats-MCP connects AI coding agents to the seats.aero Partner API, giving them instant access to award availability across 20+ airline mileage programs.
Example: "Find me a business class seat from LAX to Tokyo on June 15th."
Your agent searches Aeroplan, United, Delta, Alaska, Emirates, and more — all in one call — and comes back with mileage costs, seat counts, airlines, and dates. No browser tabs. No point-and-click calendar hunting. Just ask.
Built on the Model Context Protocol. stdio transport.
You need a seats.aero account with a Pro or Commercial plan.
- Sign up at seats.aero and subscribe to Pro.
- Go to seats.aero/settings and open the API tab.
- Copy your API key. Keep this secret!
Note: seats.aero may limit API key access by geographical location or other criteria at their sole discretion. Pro keys are for non-commercial use only; commercial use requires a written agreement with seats.aero.
Rate limit: 1,000 requests/day shared across all uses of the key.
Option A — Download (recommended)
Go to Releases and download the binary for your platform, then make it executable:
chmod +x seats-mcp_darwin_arm64| Platform | File |
|---|---|
| macOS Apple Silicon | seats-mcp_darwin_arm64 |
| macOS Intel | seats-mcp_darwin_amd64 |
| Linux x86_64 | seats-mcp_linux_amd64 |
| Linux ARM | seats-mcp_linux_arm64 |
| Windows x86_64 | seats-mcp_windows_amd64.exe |
Option B — Build from source
git clone https://github.com/baeleb/seats-MCP.git
cd seats-MCP
go build -o bin/seats-mcp .Requires Go 1.26+.
Choose one method to make the key available at runtime:
Option A — Shell profile (persistent, simplest)
Add this line to ~/.zshrc (or ~/.bashrc):
export SEATS_AERO_API_KEY="your-partner-api-key"Then restart your shell or run source ~/.zshrc.
Option B — Inline per-command
SEATS_AERO_API_KEY="your-key" ./bin/seats-mcpAdd to ~/.config/opencode/opencode.jsonc:
Use an absolute path to the binary. The {env:SEATS_AERO_API_KEY} syntax pulls the value from your shell environment — no secret written to the config file.
Restart OpenCode. The four tools below will appear under the seats-aero_ prefix.
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"seats-aero": {
"command": "/absolute/path/to/seats-MCP/bin/seats-mcp",
"env": {
"SEATS_AERO_API_KEY": "your-partner-api-key"
}
}
}
}Add to your Claude Code MCP config:
{
"mcpServers": {
"seats-aero": {
"command": "/absolute/path/to/seats-MCP/bin/seats-mcp",
"env": {
"SEATS_AERO_API_KEY": "your-partner-api-key"
}
}
}
}SEATS_AERO_API_KEY="your-key" npx @modelcontextprotocol/inspector ./bin/seats-mcp| Tool | Endpoint | Use for |
|---|---|---|
search_award_availability |
GET /search |
Cached, multi-program search by route + date range. Fast. |
bulk_availability |
GET /availability |
Single-program bulk fetch, paginated. Explore-style queries. |
get_trips |
GET /trips/{id} |
Drill into a specific Availability for flight-level itineraries. |
live_search |
POST /live |
Real-time search for one route/date/program. Slower (5-15s). |
- Live search is not available to Pro users. The
/liveendpoint requires a commercial agreement with seats.aero. If you are a Pro user, thelive_searchtool will return errors. - IDs returned by
live_searchare ephemeral and cannot be passed toget_trips. - Times in responses use the local airport timezone, not UTC.
- Not all mileage programs report seat counts or trip-level data — treat capability gaps as expected.
- The server logs only to stderr (stdout is the MCP transport).
See CLAUDE.md for the full API surface reference.
GPLv3. See LICENSE.
{ "$schema": "https://opencode.ai/config.json", "mcp": { "seats-aero": { "type": "local", "command": ["/path/to/seats-MCP/bin/seats-mcp"], "enabled": true, "environment": { "SEATS_AERO_API_KEY": "{env:SEATS_AERO_API_KEY}" } } } }