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., "@Wisnu MCPfind flights from NYC to London for June 15th and suggest some hotels"
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.
Wisnu MCP - Travel Booking Server š
A Model Context Protocol (MCP) server for travel booking operations, built with FastMCP.
Features
This MCP server provides the following tools for travel booking:
Available Tools
search_flights - Search for available flights
Origin/destination airport codes
Departure and optional return dates
Passenger count and cabin class selection
search_hotels - Search for hotels in a location
Location-based search
Check-in/check-out dates
Guest count, room requirements, and rating filters
search_destinations - Get destination recommendations
Interest-based suggestions (beach, culture, adventure, food, etc.)
Budget range filtering
Seasonal preferences
calculate_trip_cost - Estimate total trip costs
Flight and hotel cost inputs
Daily expense calculations
Per-person cost breakdown
get_travel_tips - Get travel tips for destinations
Destination-specific advice
Trip type considerations (business, leisure, adventure, family)
Installation
This project uses uv for dependency management.
Prerequisites
Python 3.13+
uv package manager
Setup
Clone or navigate to this repository:
cd wisnu-mcpThe virtual environment and dependencies are already set up. If you need to reinstall:
uv syncUsage
Running the Server
Start the MCP server with:
uv run main.pyOr if you want to run it directly with Python:
source .venv/bin/activate # On Windows: .venv\Scripts\activate
python main.pyConnecting to Claude Desktop
To use this MCP server with Claude Desktop, add the following to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"wisnu-travel": {
"command": "uv",
"args": [
"--directory",
"/Users/adrian/Dev/@wisatabook/wisnu-mcp",
"run",
"main.py"
]
}
}
}After updating the configuration, restart Claude Desktop.
Testing the Server
You can test individual tools by modifying main.py to call them directly:
if __name__ == "__main__":
# Test a tool
result = search_flights(
origin="JFK",
destination="LHR",
departure_date="2024-06-15",
return_date="2024-06-22",
passengers=2
)
print(result)
# Or run the server
# mcp.run()Development
Project Structure
wisnu-mcp/
āāā main.py # Main MCP server implementation
āāā pyproject.toml # Project configuration and dependencies
āāā uv.lock # Locked dependency versions
āāā README.md # This file
āāā .venv/ # Virtual environment (auto-generated)Adding New Tools
To add a new tool to the MCP server:
Define a new function in main.py
Decorate it with
@mcp.tool()Add comprehensive docstrings (they become tool descriptions)
Use type hints for all parameters
Example:
@mcp.tool()
def search_car_rentals(
location: str,
pickup_date: str,
return_date: str,
car_type: Literal["economy", "compact", "suv", "luxury"] = "economy"
) -> dict:
"""
Search for available car rentals.
Args:
location: Pickup location
pickup_date: Pickup date in YYYY-MM-DD format
return_date: Return date in YYYY-MM-DD format
car_type: Type of car needed
Returns:
Dictionary with car rental search results
"""
return {
"location": location,
"pickup_date": pickup_date,
"return_date": return_date,
"car_type": car_type,
"status": "success"
}Adding Dependencies
To add new Python packages:
uv add package-nameFor example, to add a real flight API client:
uv add amadeusNext Steps
The current implementation provides mock responses. To build a production-ready travel booking system:
Integrate Real APIs: Connect to actual flight, hotel, and destination APIs
Amadeus API for flights and hotels
Skyscanner API for comprehensive travel search
Booking.com API for accommodations
Add Resources: Use FastMCP's
@mcp.resource()decorator to expose travel dataAdd Prompts: Create
@mcp.prompt()templates for common travel queriesError Handling: Implement robust error handling for API failures
Caching: Add caching for frequently searched routes/destinations
Authentication: Add API key management for external services
Testing: Add unit and integration tests
Resources
License
MIT
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.