Travel Agent MCP Server
TravelAgentMCP 🌍✈️
Ein Monorepo von MCP-Servern (Model Context Protocol) für die TVA-OTA-Plattform: Flug- und Hotelsuche & -buchung, Visum- und Einwanderungsanforderungen & Buchungsverfolgung sowie Benutzerkontoverwaltung — entwickelt für KI-Reiseagenten.
Architektur
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 processJedes mcps/*-Paket ist ein unabhängig ausführbarer stdio MCP-Server mit eigenem bin. Führen Sie die benötigten aus
(z. B. nur tva-flight-mcp + tva-hotel-mcp für ein Buchungs-Widget oder nur tva-visa-mcp + tva-immigration-mcp
für einen Beratungs-Bot) oder führen Sie das root Gateway (travelagent-mcp) aus, um alles in einem Prozess zu erhalten — das ist es,
was das veröffentlichte npm-Paket immer war, aus Gründen der Abwärtskompatibilität beibehalten.
Eine vorgelagerte API, zwei Authentifizierungsmodi:
TVA OTA Backend (
TVA_BASE_URL) — Flüge, Hotels, Buchungen, Konto und die „Client“-Seite der Visum-/Einwanderungs- Buchungsverfolgung (Updates, Benachrichtigungen, Transaktionen). Die meisten Buchungsverwaltungs-Endpunkte erfordern ein Bearer-Token; Gast-Checkout-Abläufe (Buchen, Stornieren nach UUID, Verifizieren, Ticket erneut senden) jedoch nicht.Visum-/Einwanderungsinhalt (gleiche
TVA_BASE_URL, authentifiziert überCONTENT_API_KEYanstelle eines Bearer-Tokens) — Länderanforderungen, Visumarten, Gebühren und FAQs, die nur vonGET_VISA_INFO_BY_COUNTRY/GET_IMMIGRATION_INFO_BY_COUNTRYverwendet werden.
Related MCP server: orizn-visa-mcp
Schutzmaßnahmen
Prinzip der geringsten Rechte: Es werden nur Endpunkte für Benutzer freigegeben. Admin-/Betriebs-Endpunkte (Buchungsverwaltung, Rückerstattungen, Umsatzstatistiken) werden bewusst nicht als Tools bereitgestellt — sie sind nicht für einen Konversationsagenten geeignet.
Explizite Bestätigung: Jedes Tool, das Geld bewegt oder irreversibel ist (
BOOK_FLIGHT,BOOK_HOTEL,CANCEL_FLIGHT_BOOKING,CANCEL_HOTEL_BOOKING,CONFIRM_FLIGHT_PAYMENT,CONFIRM_HOTEL_PAYMENT,SELECT_FLIGHT_SEAT,CHANGE_PASSWORD,CLOSE_ACCOUNT), erfordertconfirm: true, das der aufrufende Agent nur setzen sollte, nachdem er dem Benutzer die spezifischen Details vorgelesen hat.Keine Geheimnisse im LLM-Kontext:
TVA_ACCESS_TOKENist nie ein Tool-Parameter — es wird aus der Prozessumgebung ausgelesen, pro Benutzersitzung von dem Agenten injiziert, der diese Server startet.LOGIN_USER/SOCIAL_AUTH_LOGINgeben das Token zurück, eingewickelt in einen__session-Umschlag, den der startende Agent abfangen und out-of-band speichern kann; das Modell sieht nur eine einfache Bestätigungsnachricht. Siehemcps/account-mcp/src/lib/session.tsfür den Vertrag.Keine Wiedergabe von Rohangeboten: Amadeus-Flugangebote sind große undurchsichtige JSON-Blobs.
SEARCH_FLIGHTSspeichert jedes Angebot server-seitig zwischen (SQLite, siehemcps/flight-mcp/src/lib/offerCache.ts) und übergibt dem Modell stattdessen eine kurzeofferRef— das Modell rekonstruiert niemals von Hand Angebots-JSON, was das Risiko von Token-Aufblähung oder stiller Preis-/Tarif-Änderung birgt.Schwärzung: Passwörter, Token, OTPs und Kartennummern werden maskiert, bevor etwas protokolliert wird (siehe
mcps/shared/src/guardrails.ts).Bekanntes Risiko — Hotelzahlungen:
BOOK_HOTELakzeptiert derzeit rohe Kartendaten direkt (die TVA-Hotel-API hat noch keinen tokenisierten Checkout-Schritt). Dies darf nur von einem Client aufgerufen werden, der Kartendaten über eine sichere, PCI-konforme Oberfläche gesammelt hat — niemals, indem der Benutzer aufgefordert wird, eine Kartennummer in den Chat einzugeben. Siehe die Beschreibung des Tools für Details.Ratenbegrenzung: Jeder Tool-Aufruf wird prozessintern gedrosselt (Abwehr gegen eine außer Kontrolle geratene Funktionsaufruf-Schleife). Dies ist kein Ersatz für eine persistente, sitzungsübergreifende Drosselung — verfolgen Sie Missbrauch auf Sitzungsebene persistent, wenn Sie echten Schutz benötigen.
Einrichtung
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 gatewayFühren Sie das Gateway aus (alle Tools in einem Prozess):
pnpm startOder führen Sie einen einzelnen Domain-Server direkt aus:
node mcps/flight-mcp/dist/index.jsTool-Referenz
Flug (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
Visum (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
Einwanderung (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
Konto (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
Verwendet von
MegaMind's NomadSage Reiseagent startet diese Server (über stdio,
einen pro Domain) zusammen mit seinen Tools zur Wissensdatenbank-Suche und social-mcp-Antwort — siehe
travel-agent/src/lib/tva-client.ts und travel-agent/src/lib/tva-session.ts in diesem Repository.
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