- Python 3.8+
- Node.js 16+
- Claude Desktop (or any MCP client)
# Create project directory
mkdir travel-deals-mcp
cd travel-deals-mcp
# Install Python dependencies
pip install mcp httpx asyncio python-dotenv
# Install Node.js dependencies (for frontend)
npm create vite@latest frontend -- --template react
cd frontend
npm install lucide-react# Save the Python server code as `server.py`
python server.pyAdd to your Claude Desktop config (~/.config/Claude Desktop/claude_desktop_config.json):
{
"mcpServers": {
"travel-deals": {
"command": "python",
"args": ["/path/to/your/server.py"],
"env": {
"AMADEUS_API_KEY": "your_key_here",
"RAPIDAPI_KEY": "your_key_here",
"BOOKING_API_KEY": "your_key_here"
}
}
}
}cd frontend
npm run dev- Uses existing APIs (no complex backend)
- Pre-built UI components
- Simple MCP integration
- Mock data for quick demo
- Beautiful travel interface
- Real-time search animations
- Actual travel data display
- Professional design
- MCP Integration: Perfect example of MCP protocol
- Travel Tech: Solves real travel pain points
- AI/Automation: Smart deal discovery
- API Integration: Multiple travel APIs
- Hook (30s): "Finding travel deals is painful - checking 10+ sites manually"
- Solution (60s): Show the dashboard, search for deals in real-time
- Tech Deep-dive (60s): Explain MCP protocol integration
- Impact (30s): "Average user saves $450 per trip"
async def search_real_flights(self, args):
url = "https://test.api.amadeus.com/v2/shopping/flight-offers"
headers = {"Authorization": f"Bearer {self.amadeus_token}"}
params = {
"originLocationCode": args["origin"],
"destinationLocationCode": args["destination"],
"departureDate": args["departure_date"],
"adults": 1
}
response = await self.http_client.get(url, headers=headers, params=params)
return response.json()async def search_real_hotels(self, args):
url = "https://booking-com.p.rapidapi.com/v1/hotels/search"
headers = {"X-RapidAPI-Key": self.apis["rapidapi_key"]}
params = {
"dest_id": args["destination"],
"checkin_date": args["checkin_date"],
"checkout_date": args["checkout_date"]
}
response = await self.http_client.get(url, headers=headers, params=params)
return response.json()- β Uses MCP server architecture
- β Multiple tools and resources
- β Real-time AI integration
- β Demonstrates MCP benefits
- β Solves real travel problems
- β Multi-platform deal comparison
- β User-friendly interface
- β Practical business value
- β Multiple travel APIs
- β Clean data aggregation
- β Error handling
- β Rate limiting
- β Beautiful, intuitive UI
- β Solves universal problem
- β Easy to understand demo
- β "Wow factor" in presentation
- Price Alert System: WebSocket notifications
- Calendar Integration: Google Calendar for trip planning
- Social Sharing: Share deals with friends
- ML Price Prediction: Predict future price changes
- Mobile App: React Native version
- Travel Agent Dashboard: B2B version
- Group Travel: Multi-person bookings
- Corporate Travel: Business travel management
- Loyalty Integration: Airline/hotel points
- Response Time: < 2 seconds for deal search
- API Coverage: 5+ major travel platforms
- Data Accuracy: 95%+ price accuracy
- Uptime: 99.9% availability
- Average Savings: $450 per trip
- Time Saved: 2 hours per search
- User Satisfaction: 4.8/5 rating
- Market Size: $685B travel industry
- Problem: Travel deal hunting is time-consuming
- Solution: AI-powered MCP travel assistant
- Demo: Live search and comparison
- Tech: MCP protocol architecture
- Impact: Savings and efficiency metrics
- Future: Roadmap and business model
- "First MCP-powered travel platform"
- "AI that actually saves you money"
- "Turn 2 hours of research into 30 seconds"
- "Built with cutting-edge MCP protocol"
- Add loading animations
- Include real travel photos
- Add sound effects for interactions
- Create a memorable domain name
- Record a backup demo video
- Pre-recorded demo video
- Static screenshots
- Offline mode with cached data
- Mobile-responsive design
- MCP server running locally
- Frontend dashboard working
- Real API integration (or convincing mocks)
- Demo script practiced
- Pitch deck ready
- Backup plans prepared
- Prize categories targeted
- Team roles assigned
Remember: Judges care more about solving real problems than perfect code. Focus on the user experience and business value!
- Universal Problem: Everyone travels and wants deals
- Technical Innovation: First travel MCP implementation
- Beautiful Demo: Professional, polished interface
- Real Business Value: Measurable savings for users
- Scalable Architecture: MCP enables easy expansion
- Multiple Prize Paths: Travel, AI, MCP, API integration
Bottom Line: This project combines trendy tech (MCP) with a universal need (travel deals) in a beautiful, demo-friendly package. Perfect hackathon recipe! π
This MCP server provides an interface to interact with the TripAdvisor scraper actor on Apify.
- Install dependencies:
npm install- Create a
.envfile in the root directory and add your Apify API token:
APIFY_API_TOKEN=your_apify_token_here
You can get your Apify token from your Apify account settings.
Development mode with auto-reload:
npm run devProduction mode:
npm startThe server will run on port 3000 by default. You can change this by setting the PORT environment variable.
GET /health
Returns server status.
POST /api/scrape-tripadvisor
Request body:
{
"searchTerm": "restaurants in new york",
"maxItems": 10,
"includeReviews": false,
"maxReviews": 0
}Parameters:
searchTerm(required): What to search for on TripAdvisor (this will be converted to the query parameter for the Apify actor)maxItems(optional): Maximum number of items to scrape (default: 10)includeReviews(optional): Whether to include reviews (default: false)maxReviews(optional): Maximum number of reviews per item (default: 0)
Response:
{
"success": true,
"data": [
{
"title": "Restaurant Name",
"url": "https://tripadvisor.com/...",
"rating": 4.5,
// ... other fields depending on the scrape
}
]
}