Travel Planner MCP Server
Provides tools for searching real flight options from Google Flights and hotel/rental options from Google Hotels via SerpApi.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Travel Planner MCP Server search flights from New York to London next Friday"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Travel Planner MCP Server
Minimal TypeScript MCP server for a personal travel-planning agent.
Agent-visible tools:
search_flights— real flight options from Google Flights (via SerpApi)search_hotels— real hotel/rental options from Google Hotels (via SerpApi)
Web search is intentionally excluded so it can be handled by your LLM provider's built-in web/search tool. The intended flow:
User
-> LLM travel agent
-> built-in web search for destination facts
-> travel-planner.search_flights for real flight options
-> travel-planner.search_hotels for real hotel options
-> LLM compares tradeoffs and produces the recommendationDesign
Adapter (src/providers) = talks to SerpApi
Normalizer (src/normalizers) = translates SerpApi response into our product shape
LLM = reasons over our product shapeA single SerpApi key powers both engines. The server is a thin wrapper: no booking, payments, itineraries, ranking, or post-booking support — the LLM composes the plan from the structured results.
Related MCP server: MCP-TS-DEMO
Install
npm installRun in mock mode (no API key needed)
npm run mock # TRAVEL_MCP_MOCK=1, returns realistic mock dataDevelop / build (live)
cp .env.example .env # set SERPAPI_API_KEY
npm run dev # tsx, live
npm run build && npm startTest
npm test # input validation, normalizers, provider errors, tool shapesMCP client config example
{
"mcpServers": {
"travel-planner": {
"command": "node",
"args": ["/absolute/path/to/travel-planner-mcp/build/index.js"],
"env": {
"SERPAPI_API_KEY": "your_serpapi_key",
"DEFAULT_CURRENCY": "BRL",
"DEFAULT_MARKET": "BR",
"DEFAULT_LOCALE": "pt-BR"
}
}
}
}Set TRAVEL_MCP_MOCK=1 in env to run the client against mock data.
Environment variables
Variable | Required | Notes |
| live mode | SerpApi key for both engines |
| no | defaults to |
| no | e.g. |
| no | Google |
| no | Google |
| no | supplier call timeout, default |
| no |
|
Notes
Supplier-specific request building is isolated in src/providers/*
(serpapi.ts is the shared client), and SerpApi → product-shape mapping lives in
src/normalizers/*. Flight/hotel result shapes are FlightOption / HotelOption.
Available Tools
2 toolssearch_flightsA
Search real flight options from Google Flights (via SerpApi). Use this for flight inventory, prices, carriers, durations, stops, and booking links. Only recommend flights returned by this tool; do not invent flights.
Inputs: origin (required), destination (required), departure_date (required), return_date, +7 more.
search_hotelsA
Search real hotel/accommodation options from Google Hotels (via SerpApi). Use this for hotel inventory, nightly/total prices, ratings, hotel class, amenities, coordinates, and booking links. Only recommend hotels returned by this tool; do not invent hotels.
Inputs: destination (required), check_in (required), check_out (required), guests, +6 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 2 tools
Each tool targets a distinct domain (flights vs. hotels) with no overlap, making it clear which to use for each purpose.
Both tools follow a consistent verb_noun pattern (search_flights, search_hotels), providing predictability and clarity.
With only 2 tools, the server feels thin for a 'Travel Planner'—search alone is insufficient for planning beyond information retrieval.
The server only offers search functionality, lacking critical operations like booking, itinerary management, or destination recommendations, which are essential for a full travel planner.
Maintenance
Related MCP Connectors
Search and compare flight offers through a cache-aware Streamable HTTP MCP server for AI agents.
Flight search MCP server providing search, pagination, and itinerary details for AI assistants.
Official MCP server for MAQAMI, a hotel and flight booking platform with 3M+ hotels. Search live hotel rates and flights, look up places, airports and hotel details, then prebook and book. Remote Streamable HTTP endpoint, no API key required.
Web search API and MCP server for developers building AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for using various search tools like Tavily API. Planning to support various search tools (i.e. wiki search, searxng, etc)3MIT
- AlicenseDqualityDmaintenanceA TypeScript MCP server demo supporting local Stdio and remote Streamable HTTP, demonstrating tool invocation for AI agents.21MIT
- AlicenseNot gradedqualityDmaintenanceA basic MCP server implementation using Node.js and TypeScript that bridges AI models with external tools and data sources via JSON-RPC.2ISC
- AlicenseNot gradedqualityDmaintenanceMinimal MCP server in TypeScript with a LangChain/OpenAI assistant (assist tool) and tools for weather, math, and text-to-speech.511 npm1ISC