MCP server for Travelpayouts API — 13 tools: flights, hotels, lookup. Token as query param.
Server has 13 tools with complete schemas and descriptions in Russian. All tools follow verb_noun naming (search_*, get_*, lookup_*). Descriptions are present and contextual (avg ~120 chars), exceeding the 10-char minimum. Input schemas use Zod with proper types, descriptions, and constraints (min/max, defaults, enums where applicable). However, output schemas are not documented, responses are wrapped as plain text without structured field definitions. Error handling is minimal (withErrorHandling wrapper exists but recovery guidance is absent). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all tools being read-only. Parameter descriptions are adequate but lack format/constraint details in some cases (e.g., date formats stated in description but not enforced via pattern). No pagination guidance for large result sets.
Направления конкретной авиакомпании с ценами. Используйте IATA-код авиакомпании (SU = Аэрофлот, S7 = S7, U6 = Уральские). Полезно при лояльности к конкретному перевозчику.
Календарь цен на авиабилеты между двумя городами — минимальная цена на каждую дату. Используйте для выбора оптимальной даты перелёта.
Самые дешёвые авиабилеты на указанный месяц между двумя городами. Удобно для планирования — показывает минимальные цены за весь месяц.
Только прямые рейсы без пересадок между двумя городами. Используйте когда клиент явно хочет лететь без пересадок.
Цены на конкретный отель по hotel_id из Hotellook. Возвращает актуальные тарифы от разных OTA (Booking, Ostrovok и др.).
Output schemas not documented. All tools return text-wrapped responses without structured field definitions. LLMs cannot plan downstream tool calls or extract specific fields reliably.
No tool annotations despite all tools being read-only. Missing readOnlyHint declarations prevent clients from optimizing caching and retry logic.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | <=2025-11-25 | v2 |
Цены на авиабилеты в диапазоне ±N дней вокруг указанной даты. Помогает найти дешевле, если дата гибкая (напр. '15-го, но если 14-е дешевле — тоже смотрю').
Популярные направления из города — самые дешёвые рейсы по специальным предложениям. Полезно для вдохновения и поиска travel deals.
Специальные предложения и акционные цены на авиабилеты из города. Возвращает актуальные горящие предложения Travelpayouts.
Справочник авиакомпаний с IATA-кодами. Используйте для получения кода авиакомпании перед вызовом get_airline_directions.
Поиск аэропортов по названию города или IATA-коду. Используйте для получения корректных IATA-кодов перед поиском авиабилетов.
Поиск городов по названию с IATA-кодами. Используйте для получения корректных city-кодов перед поиском авиабилетов.
Поиск дешёвых авиабилетов между двумя городами. IATA-коды городов (MOW, LED, IST). Поддерживает фильтрацию по дате и валюте. Возвращает цены, авиакомпании и детали рейсов.
Поиск отелей в городе или курорте через Hotellook. Возвращает список с ценами, рейтингами и ссылками для бронирования.
Error handling lacks recovery guidance. withErrorHandling wrapper exists but does not provide actionable error messages or categorization (retryable vs user-fixable vs fatal).
Date format constraints stated in descriptions (YYYY-MM, YYYY-MM-DD) but not enforced via JSON Schema pattern. LLMs may pass invalid formats.
No pagination or result-limiting guidance for tools returning lists (search_flights_prices, search_hotels, lookup_airports, lookup_cities). Large result sets may exhaust context window.