{
  "tools": [
    {
      "name": "get_hotels_by_location",
      "displayName": "Get Hotels by Location",
      "description": "Search for hotels by country and/or city with optional filters like price range, rating, and amenities",
      "category": "Hotel Search",
      "parameters": {
        "type": "object",
        "properties": {
          "country": {
            "type": "string",
            "description": "Country name (optional)"
          },
          "city": {
            "type": "string",
            "description": "City name (optional)"
          },
          "minPrice": {
            "type": "number",
            "description": "Minimum price filter"
          },
          "maxPrice": {
            "type": "number",
            "description": "Maximum price filter"
          },
          "rating": {
            "type": "number",
            "description": "Minimum rating filter"
          },
          "amenities": {
            "type": "string",
            "description": "Comma-separated list of amenities"
          }
        }
      },
      "operation": "getHotelsByLocation"
    },
    {
      "name": "search_hotels",
      "displayName": "Search Hotels",
      "description": "Search hotels by query string (hotel name, description, or location)",
      "category": "Hotel Search",
      "parameters": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search query for hotel name, description, or location",
            "required": true
          }
        }
      },
      "operation": "searchHotels"
    },
    {
      "name": "get_hotel_details",
      "displayName": "Get Hotel Details",
      "description": "Get detailed information about a specific hotel including rooms, amenities, and policies",
      "category": "Hotel Information",
      "parameters": {
        "type": "object",
        "properties": {
          "hotelId": {
            "type": "string",
            "description": "Hotel ID",
            "required": true
          }
        }
      },
      "operation": "getHotelDetails"
    },
    {
      "name": "check_hotel_availability",
      "displayName": "Check Hotel Availability",
      "description": "Check hotel availability for specific dates, number of guests, and rooms",
      "category": "Booking",
      "parameters": {
        "type": "object",
        "properties": {
          "hotelId": {
            "type": "string",
            "description": "Hotel ID",
            "required": true
          },
          "checkIn": {
            "type": "string",
            "format": "date",
            "description": "Check-in date (YYYY-MM-DD)",
            "required": true
          },
          "checkOut": {
            "type": "string",
            "format": "date",
            "description": "Check-out date (YYYY-MM-DD)",
            "required": true
          },
          "guests": {
            "type": "number",
            "description": "Number of guests",
            "default": 1
          },
          "rooms": {
            "type": "number",
            "description": "Number of rooms needed",
            "default": 1
          }
        }
      },
      "operation": "checkAvailability"
    },
    {
      "name": "book_hotel",
      "displayName": "Book Hotel",
      "description": "Book a hotel room with guest information and special requests",
      "category": "Booking",
      "parameters": {
        "type": "object",
        "properties": {
          "hotelId": {
            "type": "string",
            "description": "Hotel ID",
            "required": true
          },
          "roomIds": {
            "type": "string",
            "description": "Comma-separated list of room IDs to book",
            "required": true
          },
          "checkIn": {
            "type": "string",
            "format": "date",
            "description": "Check-in date (YYYY-MM-DD)",
            "required": true
          },
          "checkOut": {
            "type": "string",
            "format": "date",
            "description": "Check-out date (YYYY-MM-DD)",
            "required": true
          },
          "guests": {
            "type": "number",
            "description": "Number of guests",
            "default": 1
          },
          "firstName": {
            "type": "string",
            "description": "Guest first name",
            "required": true
          },
          "lastName": {
            "type": "string",
            "description": "Guest last name",
            "required": true
          },
          "email": {
            "type": "string",
            "format": "email",
            "description": "Guest email address",
            "required": true
          },
          "phone": {
            "type": "string",
            "description": "Guest phone number",
            "required": true
          },
          "specialRequests": {
            "type": "string",
            "description": "Special requests (optional)"
          }
        }
      },
      "operation": "bookHotel"
    },
    {
      "name": "get_booking_details",
      "displayName": "Get Booking Details",
      "description": "Get details of a specific booking including status, dates, and guest information",
      "category": "Booking Management",
      "parameters": {
        "type": "object",
        "properties": {
          "bookingId": {
            "type": "string",
            "description": "Booking ID",
            "required": true
          }
        }
      },
      "operation": "getBookingDetails"
    },
    {
      "name": "cancel_booking",
      "displayName": "Cancel Booking",
      "description": "Cancel an existing booking and get cancellation confirmation",
      "category": "Booking Management",
      "parameters": {
        "type": "object",
        "properties": {
          "bookingId": {
            "type": "string",
            "description": "Booking ID",
            "required": true
          }
        }
      },
      "operation": "cancelBooking"
    },
    {
      "name": "get_user_bookings",
      "displayName": "Get User Bookings",
      "description": "Get all bookings for a user by email address",
      "category": "Booking Management",
      "parameters": {
        "type": "object",
        "properties": {
          "userEmail": {
            "type": "string",
            "format": "email",
            "description": "User email address",
            "required": true
          }
        }
      },
      "operation": "getUserBookings"
    }
  ],
  "metadata": {
    "name": "HotelPlanet",
    "description": "Complete hotel booking and management system with search, availability checking, booking, and cancellation capabilities",
    "version": "1.0.0",
    "author": "HotelPlanet",
    "categories": [
      "Hotel Search",
      "Hotel Information", 
      "Booking",
      "Booking Management"
    ],
    "tags": [
      "hotel",
      "booking",
      "travel",
      "accommodation",
      "reservation"
    ]
  }
} 