Travel Agent MCP Server
TravelAgentMCP 🌍✈️
Un monorepo de servidores MCP (Model Context Protocol) para la plataforma TVA OTA: búsqueda y reserva de vuelos y hoteles, requisitos de visado e inmigración y seguimiento de reservas, y gestión de cuentas de usuario — creado para agentes de viaje con IA.
Arquitectura
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 processCada paquete mcps/* es un servidor MCP stdio ejecutable de forma independiente con su propio bin. Ejecuta los que necesites (p. ej., solo tva-flight-mcp + tva-hotel-mcp para un widget de reservas, o solo tva-visa-mcp + tva-immigration-mcp para un bot de asesoramiento), o ejecuta el gateway raíz (travelagent-mcp) para tenerlo todo en un solo proceso — así ha sido siempre el paquete npm publicado, mantenido por compatibilidad hacia atrás.
Una API de origen, dos modos de autenticación:
Backend TVA OTA (
TVA_BASE_URL) — vuelos, hoteles, reservas, cuenta y el lado "cliente" del seguimiento de reservas de visado/inmigración (actualizaciones, notificaciones, transacciones). La mayoría de los endpoints de gestión de reservas requieren un bearer token; los flujos de pago como invitado (book, cancel-by-UUID, verify, resend-ticket) no.Contenido de visado/inmigración (misma
TVA_BASE_URL, autenticado medianteCONTENT_API_KEYen lugar de un bearer token) — requisitos por país, tipos de visado, tasas y preguntas frecuentes, utilizado únicamente porGET_VISA_INFO_BY_COUNTRY/GET_IMMIGRATION_INFO_BY_COUNTRY.
Related MCP server: orizn-visa-mcp
Salvaguardas
Mínimo privilegio: solo se exponen endpoints orientados al usuario. Los endpoints de administración/operaciones (gestión de reservas, reembolsos, estadísticas de ingresos) deliberadamente no se exponen como herramientas — no son apropiados para un agente conversacional.
Confirmación explícita: toda herramienta que mueve dinero o es irreversible (
BOOK_FLIGHT,BOOK_HOTEL,CANCEL_FLIGHT_BOOKING,CANCEL_HOTEL_BOOKING,CONFIRM_FLIGHT_PAYMENT,CONFIRM_HOTEL_PAYMENT,SELECT_FLIGHT_SEAT,CHANGE_PASSWORD,CLOSE_ACCOUNT) requiereconfirm: true, que el agente llamante solo debe establecer después de leer al usuario los detalles específicos.Sin secretos en el contexto del LLM:
TVA_ACCESS_TOKENnunca es un parámetro de herramienta — se lee del entorno del proceso, inyectado por sesión de usuario por cualquier agente que lance estos servidores.LOGIN_USER/SOCIAL_AUTH_LOGINdevuelven el token envuelto en un sobre__sessionpara que el agente que lo lanza lo intercepte y lo almacene fuera de banda; el modelo solo ve un mensaje de confirmación simple. Consultamcps/account-mcp/src/lib/session.tspara el contrato.Sin repetición de ofertas en bruto: las ofertas de vuelo de Amadeus son grandes blobs JSON opacos.
SEARCH_FLIGHTSalmacena en caché cada oferta en el servidor (SQLite, consultamcps/flight-mcp/src/lib/offerCache.ts) y entrega al modelo unofferRefcorto en su lugar — el modelo nunca reconstruye el JSON de la oferta manualmente, lo que podría provocar un aumento excesivo de tokens o una corrupción silenciosa de precios/tarifas.Redacción: las contraseñas, tokens, OTPs y números de tarjeta se enmascaran antes de registrar cualquier cosa (consulta
mcps/shared/src/guardrails.ts).Riesgo conocido — pagos de hotel:
BOOK_HOTELactualmente toma los datos de la tarjeta directamente (la API de hoteles de TVA aún no tiene un paso de pago tokenizado). Solo debe llamarlo un cliente que haya recopilado los datos de la tarjeta a través de una superficie segura y compatible con PCI — nunca pidiendo al usuario que escriba un número de tarjeta en el chat. Consulta la descripción de la herramienta para más detalles.Limitación de tasa: cada llamada a herramienta se limita por proceso (defensa contra un bucle descontrolado de llamadas a funciones). Esto no sustituye una limitación persistente entre turnos — rastrea el abuso de forma persistente en la capa de sesión si necesitas protección real.
Configuración
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 gatewayEjecuta el gateway (todas las herramientas en un solo proceso):
pnpm startO ejecuta un servidor de un solo dominio directamente:
node mcps/flight-mcp/dist/index.jsReferencia de herramientas
Vuelo (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
Hotel (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
Visa (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
Inmigración (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
Cuenta (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
Usado por
El agente de viajes NomadSage de MegaMind lanza estos servidores (vía stdio, uno por dominio) junto con sus herramientas de búsqueda en la base de conocimiento y de respuesta de social-mcp — consulta travel-agent/src/lib/tva-client.ts y travel-agent/src/lib/tva-session.ts en ese repositorio.
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