airbnb-mcp-server-fixed

iclickfreedownloads/airbnb-mcp-server-fixed

3.1

If you are the rightful owner of airbnb-mcp-server-fixed and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

The Enhanced Airbnb MCP Server is a robust and secure server implementation designed for improved deployment and error handling, specifically tailored for Smithery environments.

Enhanced Airbnb MCP Server

A fixed and enhanced version of the Airbnb MCP (Model Context Protocol) server with improved Smithery deployment support and robust error handling.

Key Improvements

🔧 Smithery Deployment Fixes

  • Fixed STDIO client hanging issues in worker processes
  • Enhanced Docker configuration with multi-stage builds
  • Proper smithery.yaml configuration
  • Non-root user security implementation
  • Resource limits and health checks

🚀 Enhanced Features

  • Robust geocoding with fallback mechanisms
  • Retry logic for failed requests with exponential backoff
  • Better error handling with detailed error messages
  • Input validation using Zod schemas
  • Rate limiting protection
  • Graceful shutdown handling

🛡️ Security Improvements

  • Non-root Docker user (UID 1001)
  • Input sanitization and validation
  • Secure HTTP headers
  • Read-only filesystem support

Quick Start

Local Installation

# Clone the repository
git clone https://github.com/iclickfreedownloads/airbnb-mcp-server-fixed.git
cd airbnb-mcp-server-fixed

# Install dependencies
npm install

# Build the project
npm run build

# Run the server
npm start -- --ignore-robots-txt

Docker Deployment

# Build the Docker image
docker build -t airbnb-mcp-server .

# Run the container
docker run -it airbnb-mcp-server

Smithery Deployment

# Install Smithery CLI
npm install -g @smithery/cli

# Deploy to Smithery
smithery deploy

Configuration

Environment Variables

  • NODE_ENV: Set to "production" for production deployment
  • NODE_OPTIONS: Node.js options (default: "--max-old-space-size=1024")

Smithery Configuration

The smithery.yaml file contains optimized settings for Smithery deployment:

  • Resource limits (1Gi memory, 500m CPU)
  • Auto-scaling configuration
  • Health checks and monitoring
  • Security context with non-root user

API Usage

Search Tool

{
  "name": "airbnb_search",
  "arguments": {
    "location": "Paris, France",
    "checkin": "2025-12-01",
    "checkout": "2025-12-07",
    "adults": 2,
    "currency": "EUR",
    "limit": 10
  }
}

Parameters

  • location (required): Location to search (e.g., "Paris, France")
  • checkin (required): Check-in date (YYYY-MM-DD)
  • checkout (required): Check-out date (YYYY-MM-DD)
  • adults: Number of adults (1-16, default: 2)
  • children: Number of children (0-16, default: 0)
  • infants: Number of infants (0-16, default: 0)
  • pets: Number of pets (0-16, default: 0)
  • currency: Currency code (default: "USD")
  • priceMin: Minimum price per night
  • priceMax: Maximum price per night
  • minBedrooms: Minimum number of bedrooms
  • limit: Maximum results (1-50, default: 20)

Error Handling

The server includes comprehensive error handling:

  • Network errors: Automatic retry with exponential backoff
  • Rate limiting: Intelligent handling of 429 responses
  • Validation errors: Clear parameter validation messages
  • Geocoding failures: Fallback mechanisms for location resolution

Troubleshooting

Common Issues

  1. Connection Timeouts

    • Increase timeout values in smithery.yaml
    • Check network connectivity
    • Verify Smithery platform status
  2. Geocoding Failures

    • Use more specific location names
    • Try alternative location formats
    • Check Nominatim service availability
  3. Rate Limiting

    • Reduce request frequency
    • Implement client-side caching
    • Use the built-in retry logic

Debugging

Enable debug logging:

NODE_ENV=development npm start -- --ignore-robots-txt

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

License

MIT License - see file for details.

Support

For issues and questions:

  • Create an issue on GitHub
  • Check existing issues for solutions
  • Review the troubleshooting section

Acknowledgments

  • Based on the original openbnb-org/mcp-server-airbnb
  • Enhanced for better Smithery compatibility
  • Includes community-reported fixes and improvements