Travel MCP Server
Click on "Install 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 MCP ServerFind flights from NYC to Tokyo for next week and estimate a mid-range budget for 2 people."
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 MCP Server
A Model Context Protocol (MCP) server for comprehensive travel planning, providing flight search, accommodation booking, currency exchange, weather forecasting, and trip budget calculation capabilities.
Features
š« Flight Search: Find and compare flights with various options
šØ Accommodation Search: Search for hotels, vacation rentals, and other accommodations
š± Currency Exchange: Get real-time exchange rates for travel budgeting
š¤ļø Weather Forecast: Check weather conditions for your travel dates
š° Trip Budget Calculator: Calculate and plan your travel expenses
Related MCP server: Ingrids Reisetjenester
Installation
Clone the repository:
git clone <repository-url>
cd travel-mcp-serverInstall dependencies:
npm installSet up environment variables:
Copy
.env.exampleto.envFill in your API keys (see API Keys Setup)
API Keys Setup
You'll need to obtain API keys from the following services:
Flight API: Amadeus, Skyscanner, or similar flight data provider
Accommodation API: Booking.com, Airbnb, or similar accommodation service
Currency Exchange API: Fixer.io, ExchangeRate-API, or similar service
Weather API: OpenWeatherMap, WeatherAPI, or similar weather service
Google Places API: For attractions and restaurant recommendations
Update your .env file with these keys:
FLIGHT_API_KEY=your_flight_api_key
BOOKING_API_KEY=your_booking_api_key
EXCHANGE_API_KEY=your_exchange_api_key
WEATHER_API_KEY=your_weather_api_key
GOOGLE_PLACES_API_KEY=your_google_places_api_keyUsage
Development
Run the server in development mode with hot reload:
npm run devProduction
Build and start the server:
npm run build
npm startWatch Mode
Run with automatic restart on file changes:
npm run watchAvailable Tools
The MCP server provides the following tools:
1. Search Flights (search_flights)
Search for flights between destinations with customizable options.
Parameters:
origin: Departure airport/citydestination: Arrival airport/citydepartureDate: Departure datereturnDate: Return date (optional for one-way)passengers: Number of passengersclass: Flight class (economy, business, first)
2. Search Accommodation (search_accommodation)
Find hotels, vacation rentals, and other accommodation options.
Parameters:
destination: City or locationcheckIn: Check-in datecheckOut: Check-out dateguests: Number of guestsrooms: Number of roomstype: Accommodation type (hotel, apartment, etc.)
3. Get Exchange Rate (get_exchange_rate)
Get current exchange rates between currencies.
Parameters:
from: Source currency code (e.g., USD)to: Target currency code (e.g., EUR)amount: Amount to convert (optional)
4. Get Weather Forecast (get_weather_forecast)
Check weather conditions for your travel destination.
Parameters:
location: City or locationdate: Date for forecastdays: Number of days to forecast (optional)
5. Calculate Trip Budget (calculate_trip_budget)
Calculate estimated trip costs including flights, accommodation, and daily expenses.
Parameters:
destination: Travel destinationduration: Trip duration in daystravelers: Number of travelerscategory: Budget category (budget, mid-range, luxury)
Project Structure
travel-mcp-server/
āāā src/
ā āāā index.ts # Main server entry point
ā āāā services/
ā āāā FlightService.ts # Flight search functionality
ā āāā AccommodationService.ts # Accommodation search
ā āāā CurrencyService.ts # Currency exchange
ā āāā WeatherService.ts # Weather forecasting
āāā dist/ # Compiled TypeScript output
āāā package.json # Project dependencies and scripts
āāā tsconfig.json # TypeScript configuration
āāā .env # Environment variables (not in repo)
āāā .gitignore # Git ignore rules
āāā README.md # This fileIntegration with MCP Clients
This server can be used with any MCP-compatible client such as:
Claude Desktop
Other AI assistants supporting MCP
Custom MCP client applications
Add the server to your MCP client configuration:
{
"mcpServers": {
"travel-planner": {
"command": "npx",
"args": ["travel-mcp-server"]
}
}
}Development Guide
Tech Stack
TypeScript: Type-safe JavaScript development
Node.js: Runtime environment
MCP SDK: Model Context Protocol implementation
Axios: HTTP client for API requests
Zod: Schema validation
dotenv: Environment variable management
Adding New Services
Create a new service class in
src/services/Implement the required methods
Register the service in
src/index.tsAdd corresponding tools and handlers
Running Tests
npm testContributing
Fork the repository
Create a feature branch:
git checkout -b feature-nameMake your changes
Run tests:
npm testCommit your changes:
git commit -m 'Add feature'Push to the branch:
git push origin feature-nameSubmit a pull request
License
This project is licensed under the ISC License - see the LICENSE file for details.
Support
If you encounter any issues or have questions:
Check the Issues section
Create a new issue with detailed information
Provide logs and reproduction steps
Roadmap
Add more travel service integrations
Implement caching for API responses
Add travel itinerary planning
Support for group travel coordination
Integration with calendar services
Mobile app companion
Note: Remember to keep your API keys secure and never commit them to version control. Always use environment variables for sensitive configuration.
Available Tools
5 toolscalculate_trip_budgetB
Calculate total estimated budget for a trip
| Name | Required | Description | Default |
|---|---|---|---|
| duration | Yes | Trip duration in days | |
| travelers | No | Number of travelers | |
| budgetLevel | Yes | Budget level preference | |
| destinations | Yes | List of destination cities |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for disclosing behavioral traits. It only states 'Calculate total estimated budget' without indicating side effects, required permissions, or whether it is a read-only operation. No mention of data sources or accuracy.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately communicates the tool's purpose. It is efficient with no wasted words. Could be slightly more informative while maintaining brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fails to explain what the output looks like, as there is no output schema. It does not specify whether the budget includes breakdowns, currency, or assumptions. For a tool that computes a value, this is a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters are described in the input schema (100% coverage). The description adds no additional meaning beyond what the schema provides. It does not clarify relationships between parameters or provide examples of valid inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: calculating a total estimated budget for a trip. It is distinct from sibling tools (exchange rate, weather, accommodation, flights) which cover different aspects of trip planning. However, it could be more specific about what factors into the budget (e.g., based on destinations, duration, budget level).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus siblings. However, the sibling tools are clearly in different domains (exchange rates, weather, accommodation, flights), so usage context is implied. The description lacks when-not or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_exchange_rateB
Get current currency exchange rates
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target currency code (e.g., EUR) | |
| from | Yes | Source currency code (e.g., USD) | |
| amount | No | Amount to convert |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits like data freshness, authentication needs, or rate limits. It only states the basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that conveys the core purpose without any wasted words. Appropriate length for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should indicate what the tool returns (e.g., rate or converted amount), but it does not. The description is incomplete for agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with parameter descriptions, but the tool description adds no additional meaning or context beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'current currency exchange rates', which is specific and distinguishes it from sibling tools like calculate_trip_budget or search_accommodation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., calculate_trip_budget might also involve conversions). No explicit when-not or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_weather_forecastB
Get weather forecast for travel dates
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | City name | |
| country | Yes | Country name | |
| endDate | Yes | End date (YYYY-MM-DD) | |
| startDate | Yes | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must carry full burden. It only states 'Get weather forecast for travel dates', omitting details like forecast period units, data source, or whether it is forecast or historical. Minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, no unnecessary words. Efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite simple parameters, no output schema or annotations means the description should compensate with more context (e.g., return format, temperature units, daily vs hourly). Missing details for a complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters have descriptions. The description adds no extra meaning beyond the schema, but the baseline is 3 for full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets weather forecasts for travel dates using a specific verb ('Get') and resource ('weather forecast'). It is distinct from sibling tools which cover budget, exchange, accommodation, and flights, so no confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. Sibling tools are clearly different (budget, exchange, accommodation, flights), so usage is implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_accommodationC
Search for hotels and accommodations
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | City name | |
| budget | No | Maximum budget per night in USD | |
| guests | No | Number of guests | |
| checkIn | Yes | Check-in date (YYYY-MM-DD) | |
| checkOut | Yes | Check-out date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It does not mention that the tool is read-only, what the output format is, or any side effects. This is insufficient for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words. It is appropriately brief but could be more informative without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks context about the tool's behavior, return values, and constraints (e.g., required parameters). Given no output schema, a more complete description is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond what the schema already provides for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Search for hotels and accommodations,' which clearly identifies the verb and resource. However, it lacks explicit differentiation from sibling tools, though the sibling tools are in different domains (budget, exchange rate, weather, flights).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description offers no context about prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_flightsC
Search for flight prices and schedules
| Name | Required | Description | Default |
|---|---|---|---|
| origin | Yes | Origin city/airport code | |
| departDate | Yes | Departure date (YYYY-MM-DD) | |
| passengers | No | Number of passengers | |
| returnDate | No | Return date (YYYY-MM-DD) | |
| destination | Yes | Destination city/airport code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only says 'search for flight prices and schedules'. It does not disclose any behavioral traits such as whether results are real-time, caching behavior, data sources, or limitations, which leaves the agent uninformed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and to the point, with no wasted words. It earns its place by stating the core purpose, though it could be slightly more informative without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of flight search (5 parameters, no output schema, no annotations), the description is insufficient. It does not explain the return format, round-trip behavior, or any constraints, leaving significant gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all parameters with descriptions (100% coverage). The description adds no additional meaning beyond what is already in the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for flight prices and schedules, with a specific verb and resource. While it does not explicitly distinguish from siblings, the siblings are different travel tools, making the purpose sufficiently clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description lacks context about scenarios where flight search is appropriate or when to consider other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct aspect of travel planning: budget, exchange rates, weather, accommodation, and flights. There is no overlap in purpose, making it easy for an agent to select the correct tool.
All tool names follow a consistent verb_noun pattern (e.g., calculate_trip_budget, search_flights), with the verb describing the action and the noun the entity, ensuring predictability.
With 5 tools, the server is well-scoped for a travel planning assistant, covering the essential tasks without being too sparse or overwhelming.
The set covers core travel planning needs (budget, exchange, weather, flights, accommodation), leaving only minor gaps such as destination information or itinerary management, which agents can work around.
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 Connectors
Your personal AI travel concierge ā flights, hotels, 116M+ POIs, visas, weather & more
Give AI assistants access to real-time data. Search the web, compare flights, find hotels, and more.
Plan your financial future with AI: track net worth, manage budgets, and forecast scenarios.
Personal AI travel agent. Points optimization, live flight/hotel/award search, trip planning.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables comprehensive travel planning by integrating Google Travel Services and Amadeus GDS for dual flight and hotel searches, plus event discovery, weather forecasting, currency conversion, and location services. Combines consumer-friendly search with professional travel industry data for optimal trip planning.6MIT
- -licenseNot gradedqualityNot gradedmaintenanceEnables intelligent travel planning by combining weather forecasts and route calculations for destinations. Provides personalized travel recommendations based on weather conditions and supports trip planning with persistent conversation memory.
- AlicenseNot gradedqualityDmaintenanceA comprehensive travel planning copilot that provides geographic data, weather forecasts, transportation details, currency exchange rates, and contextual content to create personalized travel experiences. Enables users to plan itineraries, check real-time conditions, and gather inspirational content for destinations.2Apache 2.0
- FlicenseNot gradedqualityNot gradedmaintenanceEnables AI-assisted travel planning with real-time weather forecasts, place discovery, customized itinerary generation based on interests and budget, and travel distance calculations between cities.
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/gs-ysingh/travel-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server