Ersa-tech/ai-airbnb-search
If you are the rightful owner of ai-airbnb-search and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Model Context Protocol (MCP) server is a specialized server designed to handle and process data for AI-powered applications, integrating seamlessly with various components to provide real-time data and services.
AI-Powered Airbnb Search Application
A comprehensive AI-powered Airbnb search application with natural language processing capabilities, built with React frontend, Flask backend, and MCP server integration.
šļø Architecture Overview
- Frontend: React with TypeScript, mobile-first design
- Backend: Flask API with OpenRouter LLM integration
- MCP Server: Containerized Airbnb data service
- Deployment: Render.com with GitHub CLI workflow
š Project Structure
ai-airbnb-search/
āāā backend/ # Flask API server
ā āāā services/ # Business logic services
ā āāā tests/ # Backend tests
ā āāā app.py # Main Flask application
ā āāā requirements.txt # Python dependencies
āāā frontend/ # React application
ā āāā src/
ā ā āāā components/ # React components
ā ā āāā services/ # API services
ā ā āāā utils/ # Utility functions
ā āāā public/ # Static assets
ā āāā package.json # Node.js dependencies
āāā mcp-server/ # MCP server implementation
ā āāā src/ # MCP server source
ā āāā tests/ # MCP server tests
ā āāā Dockerfile # Container configuration
ā āāā package.json # Node.js dependencies
āāā docs/ # Documentation
āāā scripts/ # Build and deployment scripts
āāā render.yaml # Render.com deployment config
š Features
- Natural Language Search: AI-powered search using OpenRouter LLM
- Mobile-First Design: Optimized for mobile devices with touch gestures
- Property Carousel: Displays exactly 5 properties with swipe navigation
- Real-time Data: Live Airbnb property data via MCP server
- Responsive UI: Works seamlessly across all device sizes
š ļø Technology Stack
Frontend
- React 18 with TypeScript
- Tailwind CSS for styling
- React Query for state management
- Lucide React for icons
Backend
- Flask with Python 3.11+
- OpenRouter API integration
- Gunicorn for production
- Comprehensive error handling
MCP Server
- Node.js with TypeScript
- Docker containerization
- HTTP wrapper for API access
- Airbnb data integration
š§ Development Setup
Prerequisites
- Node.js 18+
- Python 3.11+
- Docker
- GitHub CLI
Installation
-
Clone the repository
git clone https://github.com/Ersa-tech/ai-airbnb-search.git cd ai-airbnb-search
-
Backend Setup
cd backend python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -r requirements.txt python app.py
-
Frontend Setup
cd frontend npm install npm start
-
MCP Server Setup
cd mcp-server npm install npm run build docker build -t ai-airbnb-mcp . docker run -p 8080:8080 ai-airbnb-mcp
š Deployment
The application is configured for deployment on Render.com with three services:
- MCP Server: Docker service
- Backend: Web service (Flask)
- Frontend: Static site (React)
Deploy using the provided render.yaml
configuration.
š± Mobile Optimization
- Touch targets minimum 44px
- Swipe gestures for carousel
- Progressive enhancement
- Dark mode support
- Optimized for 320px+ screens
š Security
Configured for internal use with simplified security:
- CORS disabled for internal access
- Environment-based configuration
- Secure API key management
š Performance
- Lazy loading for images
- Optimized bundle sizes
- Efficient API caching
- Mobile-first loading strategies
š¤ Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
š License
This project is for internal use only.
š Support
For issues and questions, please refer to the documentation in the docs/
directory.