Travel Agent MCP Server
TravelAgentMCP 🌍✈️
Монорепозиторий MCP (Model Context Protocol) серверов для OTA-платформы TVA: поиск и бронирование авиабилетов и отелей, требования к визе и иммиграции, отслеживание бронирований и управление учетными записями пользователей — создано для AI-туристических агентов.
Архитектура
TravelAgentMCP/
├── mcps/
│ ├── shared/ @travelagent-mcp/shared — HTTP client, config, guardrails, tool helper (not a server)
│ ├── flight-mcp/ tva-flight-mcp — search, pricing, seatmaps, booking lifecycle
│ ├── hotel-mcp/ tva-hotel-mcp — search, availability, booking lifecycle
│ ├── visa-mcp/ tva-visa-mcp — country requirements + booking tracking
│ ├── immigration-mcp/ tva-immigration-mcp — service info + booking tracking
│ └── account-mcp/ tva-account-mcp — auth, profile, promo codes, notifications
└── src/index.ts travelagent-mcp — gateway that mounts all five servers' tools in one processКаждый пакет mcps/* является независимо запускаемым stdio MCP-сервером со своей собственной bin. Запускайте нужные вам (например, только tva-flight-mcp + tva-hotel-mcp для виджета бронирования, или только tva-visa-mcp + tva-immigration-mcp для консультационного бота), или запускайте корневой шлюз (travelagent-mcp), чтобы получить все в одном процессе — именно так работал опубликованный npm-пакет изначально, сохранено для обратной совместимости.
Один вышестоящий API, два режима аутентификации:
TVA OTA бэкенд (
TVA_BASE_URL) — авиабилеты, отели, бронирования, учетная запись и «клиентская» сторона отслеживания бронирований визы/иммиграции (обновления, уведомления, транзакции). Для большинства конечных точек управления бронированиями требуется bearer-токен; сценарии оформления заказа гостем (забронировать, отменить по UUID, подтвердить, повторно отправить билет) — нет.Виза/иммиграционный контент (тот же
TVA_BASE_URL, аутентификация черезCONTENT_API_KEYвместо bearer-токена) — требования к странам, типы виз, сборы и часто задаваемые вопросы, используется только дляGET_VISA_INFO_BY_COUNTRY/GET_IMMIGRATION_INFO_BY_COUNTRY.
Related MCP server: orizn-visa-mcp
Ограничения
Наименьшие привилегии: доступны только конечные точки, ориентированные на пользователя. Конечные точки для администратора/операций (управление бронированиями, возвраты, статистика доходов) намеренно не обернуты в инструменты — они не подходят для диалогового агента.
Явное подтверждение: каждый инструмент, который перемещает деньги или является необратимым (
BOOK_FLIGHT,BOOK_HOTEL,CANCEL_FLIGHT_BOOKING,CANCEL_HOTEL_BOOKING,CONFIRM_FLIGHT_PAYMENT,CONFIRM_HOTEL_PAYMENT,SELECT_FLIGHT_SEAT,CHANGE_PASSWORD,CLOSE_ACCOUNT), требуетconfirm: true, который вызывающий агент должен устанавливать только после того, как зачитает пользователю конкретные детали.Никаких секретов в контексте LLM:
TVA_ACCESS_TOKENникогда не является параметром инструмента — он считывается из окружения процесса, внедряется за сессию пользователя любым агентом, который порождает эти серверы.LOGIN_USER/SOCIAL_AUTH_LOGINвозвращают токен, обернутый в оболочку__session, чтобы порождающий агент мог перехватить и сохранить его вне полосы; модель видит только простое сообщение подтверждения. См.mcps/account-mcp/src/lib/session.tsдля контракта.Без повторного воспроизведения сырых предложений: Предложения авиабилетов Amadeus представляют собой большие непрозрачные JSON-блоки.
SEARCH_FLIGHTSкеширует каждое предложение на стороне сервера (SQLite, см.mcps/flight-mcp/src/lib/offerCache.ts) и передает модели короткийofferRefвместо этого — модель никогда не реконструирует JSON предложения вручную, что могло бы привести к раздуванию токенов или скрытому искажению цены/тарифа.Сокрытие: пароли, токены, одноразовые пароли и номера карт маскируются перед тем, как что-либо логируется (см.
mcps/shared/src/guardrails.ts).Известный риск — платежи за отели:
BOOK_HOTELв настоящее время принимает данные карты напрямую (у API отелей TVA пока нет шага токенизированной оплаты). Это должно вызываться только клиентом, который собрал данные карты через безопасный, PCI-совместимый интерфейс — ни в коем случае не через предложение пользователю ввести номер карты в чат. Подробнее см. описание инструмента.Ограничение скорости: каждый вызов инструмента регулируется в рамках процесса (защита от бесконечного цикла вызова функций). Это не замена постоянному, межвитковому ограничению частоты — отслеживайте злоупотребления постоянно на уровне сессии, если вам нужна реальная защита.
Настройка
pnpm install
cp .env.example .env # fill in TVA_BASE_URL and content-API keys
pnpm build # builds mcps/shared first, then every domain server, then the gatewayЗапустите шлюз (все инструменты в одном процессе):
pnpm startИли запустите сервер одного домена напрямую:
node mcps/flight-mcp/dist/index.jsСправочник инструментов
Авиабилеты (tva-flight-mcp)
SEARCH_FLIGHTS, GET_POPULAR_FLIGHT_ROUTES, GET_FLIGHT_PRICE_ANALYSIS, GET_MOST_TRAVELED_DESTINATIONS, GET_MOST_BOOKED_DESTINATIONS, GET_BUSIEST_TRAVEL_PERIOD, GET_FLIGHT_SEATMAP_BY_OFFER, GET_FLIGHT_SEATMAP_BY_ORDER, GET_FLIGHT_FARE_UPSELL, PREDICT_FLIGHT_CHOICE, CONFIRM_FLIGHT_PRICE, BOOK_FLIGHT, LIST_MY_FLIGHT_BOOKINGS, GET_FLIGHT_BOOKING, VERIFY_FLIGHT_BOOKING, CANCEL_FLIGHT_BOOKING, GET_FLIGHT_SEAT_PRICE, SELECT_FLIGHT_SEAT, RESEND_FLIGHT_TICKET, GET_FLIGHT_TICKET_DOWNLOAD_LINK, CONFIRM_FLIGHT_PAYMENT
Отели (tva-hotel-mcp)
SEARCH_HOTELS, SEARCH_HOTEL_CITIES, CHECK_HOTEL_AVAILABILITY, BOOK_HOTEL, LIST_MY_HOTEL_BOOKINGS, GET_HOTEL_BOOKING, CONFIRM_HOTEL_PAYMENT, CANCEL_HOTEL_BOOKING
Виза (tva-visa-mcp)
GET_VISA_INFO_BY_COUNTRY, LIST_MY_VISA_BOOKINGS, GET_VISA_BOOKING, GET_VISA_BOOKING_BY_APPLICATION_UUID, GET_VISA_UPDATES, GET_VISA_UPDATES_BY_BOOKING, GET_VISA_FOLLOWUP_QUESTIONS, ANSWER_VISA_FOLLOWUP, GET_VISA_NOTIFICATIONS, MARK_VISA_NOTIFICATION_READ, GET_VISA_TRANSACTIONS, GET_VISA_TRANSACTION_DETAIL
Иммиграция (tva-immigration-mcp)
GET_IMMIGRATION_INFO_BY_COUNTRY, LIST_MY_IMMIGRATION_BOOKINGS, GET_IMMIGRATION_BOOKING, GET_IMMIGRATION_UPDATES, GET_IMMIGRATION_UPDATES_BY_BOOKING, GET_IMMIGRATION_NOTIFICATIONS, MARK_IMMIGRATION_NOTIFICATION_READ, GET_IMMIGRATION_TRANSACTIONS, GET_IMMIGRATION_TRANSACTION_DETAIL
Учетная запись (tva-account-mcp)
REGISTER_USER, LOGIN_USER, SOCIAL_AUTH_LOGIN, FORGOT_PASSWORD, RESEND_OTP, VERIFY_OTP, LOGOUT_USER, GET_CURRENT_USER, GET_USER_PROFILE, EDIT_USER_PROFILE, CHANGE_PASSWORD, CHECK_DISCOUNT_PROMO, GET_USER_NOTIFICATIONS, CLOSE_ACCOUNT
Используется в
Туристический агент NomadSage из MegaMind порождает эти серверы (через stdio, по одному на домен) вместе со своими инструментами поиска по базе знаний и ответов social-mcp — см. travel-agent/src/lib/tva-client.ts и travel-agent/src/lib/tva-session.ts в том репозитории.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides tools to retrieve and compare detailed information about countries, including population, region, and currency data. It allows users to search for specific countries or list them by region.
- AlicenseAqualityCmaintenanceCheck visa requirements for 39,585 passport-destination pairs in 15 languages. Returns visa type, required documents, application process, and travel tips from 136 official government sources. Free quick checks without API key.51301MIT
- AlicenseAqualityBmaintenanceProvides immigration eligibility intelligence, enabling AI assistants to match user profiles to visas, compare pathways, and get country overviews using Transita's API.570MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to search and explore Australian occupation codes (ANZSCO), visa pathways, state nominations, and SkillSelect invitation round data.MIT
Related MCP Connectors
Visa eligibility matcher and immigration intelligence for MCP-compatible AI assistants.
Passport visa, entry & transit requirements for any country pair, with official government sources.
Visa Requirements MCP — passport visa rules for any nationality → destination pair
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nxGnosis/TravelAgentMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server