MCP server for the Seats.aero Partner API; live search requires a commercial agreement
Seats-mcp demonstrates solid definition quality with complete, well-structured schemas for all 7 tools. All tools have clear, action-oriented names (get_*, refresh_*, live_*) and descriptions ranging from 65-194 characters, within production baselines (p10=34, p90=392). Input schemas are comprehensive with type definitions, descriptions, and format constraints (regex patterns for airport codes, date formats, enums for cabin classes and sources). Parameter descriptions are specific and actionable (e.g., 'Origin airport codes, comma-delimited when searching multiple airports (for example, SFO,LAX)'). Tool annotations (readOnlyHint, destructiveHint, idempotentHint) are properly declared. Error handling is present but minimal, tools delegate to a generic errorResult handler without recovery guidance or categorization. Output schemas are not explicitly documented in the source. No parameter descriptions are under 20 characters. The server passes basic production checks but lacks error narrative and output documentation expected of A-grade tooling.
Find bulk availability for a particular source.
Find airports reachable nonstop from or to one airport, with the cheapest raw mileage price per cabin.
Get cached award flights on seats.aero.
Get routes for a particular source.
Get flight-level trip details for a cached Availability object.
Run a live award search for one route, date, and mileage program. This endpoint cannot be used by Seats.aero Pro users and requires a commercial agreement with Seats.aero.
Output schemas not documented in tool definitions or source code. Callers cannot predict response structure for chaining or validation.
Error responses delegate to generic errorResult() handler with no visible recovery guidance, categorization (retryable vs user-fixable vs fatal), or enumeration of expected error states.
Tool descriptions lack explicit prerequisites or dependencies. 'get_trips' requires an Availability ID from a prior search, but the description does not hint at this discovery workflow.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 65 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 41 | - | v1 |
Queue or poll refreshes for 1-250 cached Availability objects. This endpoint cannot be used by commercial users; commercial users should use live_search instead.
API key (SEATS_API_KEY) is referenced in server instructions but not visible as a configuration pattern in the code. Confirm secret injection is server-side and not exposing keys in tool parameters or responses.
Pagination is present (cursor, skip, take) but cap behavior is not documented. No indication of when results are truncated or how to iterate exhaustively.
live_search, refresh_cached_data have mutual exclusivity constraints or access restrictions (commercial agreement, Pro users) stated in descriptions but not enforced via schema or error handling.