A comprehensive travel planning server for flight search, accommodation booking, currency exchange, and weather forecasting.
A Model Context Protocol (MCP) server for comprehensive travel planning, providing flight search, accommodation booking, currency exchange, weather forecasting, and trip budget calculation capabilities.
git clone <repository-url>
cd travel-mcp-server
npm install
.env.example
to .env
You'll need to obtain API keys from the following services:
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_key
Run the server in development mode with hot reload:
npm run dev
Build and start the server:
npm run build
npm start
Run with automatic restart on file changes:
npm run watch
The MCP server provides the following tools:
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)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.)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)get_weather_forecast
)Check weather conditions for your travel destination.
Parameters:
location
: City or locationdate
: Date for forecastdays
: Number of days to forecast (optional)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)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 file
This server can be used with any MCP-compatible client such as:
Add the server to your MCP client configuration:
{
"mcpServers": {
"travel-planner": {
"command": "npx",
"args": ["travel-mcp-server"]
}
}
}
src/services/
src/index.ts
npm test
git checkout -b feature-name
npm test
git commit -m 'Add feature'
git push origin feature-name
This project is licensed under the ISC License - see the LICENSE file for details.
If you encounter any issues or have questions:
Note: Remember to keep your API keys secure and never commit them to version control. Always use environment variables for sensitive configuration.
Connect your AI Agents to 8,000 apps instantly.
Interact with your Tmux sessions, windows and pane, execute commands in tmux panes and retrieve result.
An optimized, read-only MCP server for the Notion API with asynchronous processing.
An MCP server for Cursor that enables requesting user input during generation process.
MCP server to interact with Routine: calendars, tasks, notes, etc.
Dynamic and reflective problem-solving through thought sequences
AI Task schedule planning with LLamaIndex and Timefold: breaks down a task description and schedules it around an existing calendar
Connect to the Taskade platform via MCP. Access tasks, projects, workflows, and AI agents in real-time through a unified workspace and API.
Integrates with Linear project management systems.
Interacting with Obsidian via REST API