航班奖励搜索MCP服务

一个通过seats.aero合作伙伴API搜索航班奖励可用性的MCP服务器,适用于查询航班、航线、目的地和奖励座位信息。

  • by gavgrego
  • TypeScript
  • 本地部署
  • 27 星标
  • 更新于
在 GitHub 查看 gavgrego/seats.aero-mcp-server

使用说明

seats.aero MCP server

[!IMPORTANT] This MCP server is no longer maintained and will not receive further updates. seats.aero now provides an official MCP server; please use the official server for new and existing integrations.

Not affiliated with seats.aero

A minimal TypeScript MCP server for searching award availability through the seats.aero partner API.

You need a seats.aero Partner API key. Eligible seats.aero Pro users can generate one from their seats.aero settings; usage remains subject to the seats.aero terms and API limits.

Endpoint access

Not every endpoint is available to every Partner API user:

  • live_search cannot be used with a seats.aero Pro API key. It requires a commercial agreement with seats.aero.
  • refresh_cached_data cannot currently be used by commercial users; the API documentation directs commercial users to live_search instead.

The server cannot determine the type of API key locally, so these restrictions are advertised in its MCP instructions, tool descriptions, and tool metadata.

Setup

Requires Node.js 20 or newer.

pnpm install
pnpm build
pnpm start

Set SEATS_API_KEY in your MCP client configuration:

{
  "mcpServers": {
    "seats": {
      "command": "node",
      "args": ["/absolute/path/to/seats-mcp/build/index.js"],
      "env": {
        "SEATS_API_KEY": "YOUR_SEATS_AERO_API_KEY"
      }
    }
  }
}

Tools

Tool seats.aero endpoint Access Purpose
get_flights Cached Search Partner API Search cached availability across airports, dates, cabins, carriers, and mileage programs.
get_bulk_avail Bulk Availability Partner API Retrieve many cached availability objects from one mileage program.
get_routes Get Routes Partner API List routes tracked for one mileage program.
get_destinations Get Destinations Partner API Find airports reachable nonstop from or to one airport and the cheapest raw price per cabin.
get_trips Get Trips Partner API Retrieve flight-level details for an Availability object.
refresh_cached_data Refresh Cached Data Pro users; not commercial Queue or poll refreshes for cached Availability objects.
live_search Live Search Commercial agreement only; not Pro Search a specific route and date live for one mileage program.

Cached search accepts comma-delimited airport lists (SFO,LAX), cabin lists (economy,business), carrier lists (DL,AA), and source lists (aeroplan,united). Dates use YYYY-MM-DD.

Live searches typically take 5-15 seconds. They can fail when an airline is unavailable, so callers should limit retries and use exponential backoff. Prefer get_flights when cached availability is sufficient.

This covers all seven active Partner-Authorization endpoints in the current seats.aero API reference. OAuth consent, token, and user-info endpoints are not exposed as tools because they are application authorization flows rather than award-availability operations; this server authenticates with SEATS_API_KEY.

Development

pnpm test

The tests build the server and exercise request construction with a mocked seats.aero API.

Releases

Releases follow Semantic Versioning and are managed on GitHub by Release Please:

  • fix: commits produce a patch release.
  • feat: commits produce a minor release.
  • commits with a ! after the type or a BREAKING CHANGE: footer produce a major release.
  • docs:, test:, chore:, and other non-user-facing commits do not trigger a release by themselves.

After release-worthy commits land on main, GitHub Actions creates or updates a release PR containing the next version and changelog. Merging that PR creates the corresponding vX.Y.Z Git tag and published GitHub Release. See CONTRIBUTING.md for the complete workflow.