{
  "openapi": "3.0.0",
  "info": {
    "title": "Kismet Travel MCP API",
    "version": "0.0.0",
    "description": "MCP server providing semantic hotel search, real-time availability checking, and price comparison capabilities for Kismet Travel platform",
    "contact": {
      "name": "Kismet Travel",
      "email": "hello@makekismet.com"
    }
  },
  "servers": [
    {
      "url": "https://mcp.kismet.travel",
      "description": "Production server"
    }
  ],
  "paths": {
    "/mcp/semantic_search_hotels": {
      "post": {
        "operationId": "semantic_search_hotels",
        "summary": "Search for hotels using natural language queries",
        "description": "Search for hotels using natural language queries",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "query": {
                    "type": "string",
                    "description": "Natural language search query for hotels. Examples: 'luxury hotels with spa near Times Square in New York', 'budget-friendly hotels with free parking near Miami Beach', 'pet-friendly boutique hotels near downtown Chicago with pool and gym', 'business hotels near Central Park in Manhattan under $300', 'family hotels with kitchen near Disney World in Orlando'"
                  },
                  "limit": {
                    "type": "number",
                    "minimum": 1,
                    "maximum": 20,
                    "default": 10,
                    "description": "Number of results (1-20)"
                  }
                },
                "required": [
                  "query"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "description": "Whether the operation was successful"
                    },
                    "data": {
                      "type": "object",
                      "description": "Response data"
                    },
                    "error": {
                      "type": "string",
                      "description": "Error message if unsuccessful"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "500": {
            "description": "Internal server error"
          }
        }
      }
    },
    "/mcp/get_availability_rate_inventory": {
      "post": {
        "operationId": "get_availability_rate_inventory",
        "summary": "Get real-time availability, rates, and inventory for a specific hotel",
        "description": "Get real-time availability, rates, and inventory for a specific hotel",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "hotelSlug": {
                    "type": "string",
                    "description": "Hotel slug identifier (e.g., 'marriott-north-charleston-charleston-sc')"
                  },
                  "checkIn": {
                    "type": "string",
                    "description": "Check-in date (YYYY-MM-DD format)"
                  },
                  "checkOut": {
                    "type": "string",
                    "description": "Check-out date (YYYY-MM-DD format)"
                  },
                  "guests": {
                    "type": "number",
                    "minimum": 1,
                    "maximum": 10,
                    "default": 2,
                    "description": "Number of guests"
                  },
                  "currency": {
                    "type": "string",
                    "default": "USD",
                    "description": "Currency code (e.g., USD, EUR, GBP)"
                  }
                },
                "required": [
                  "hotelSlug",
                  "checkIn",
                  "checkOut"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "description": "Whether the operation was successful"
                    },
                    "data": {
                      "type": "object",
                      "description": "Response data"
                    },
                    "error": {
                      "type": "string",
                      "description": "Error message if unsuccessful"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "500": {
            "description": "Internal server error"
          }
        }
      }
    },
    "/mcp/compare_hotel_prices": {
      "post": {
        "operationId": "compare_hotel_prices",
        "summary": "Compare real-time prices across multiple hotels for the same dates and guest count",
        "description": "Compare real-time prices across multiple hotels for the same dates and guest count",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "hotelSlugs": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "maxItems": 40,
                    "description": "Array of hotel slugs to compare (e.g., ['marriott-north-charleston-charleston-sc', 'hilton-downtown'])"
                  },
                  "checkInDate": {
                    "type": "string",
                    "description": "Check-in date (YYYY-MM-DD format)"
                  },
                  "checkOutDate": {
                    "type": "string",
                    "description": "Check-out date (YYYY-MM-DD format)"
                  },
                  "numberOfGuests": {
                    "type": "number",
                    "minimum": 1,
                    "maximum": 10,
                    "default": 2,
                    "description": "Number of guests"
                  },
                  "preferredCurrency": {
                    "type": "string",
                    "default": "USD",
                    "description": "Currency code (e.g., USD, EUR, GBP)"
                  },
                  "filterStandardRates": {
                    "type": "boolean",
                    "default": true,
                    "description": "Filter to show only standard/public rates in offers (excludes member/corporate rates)"
                  },
                  "includeSummaryStats": {
                    "type": "boolean",
                    "default": false,
                    "description": "Include lowest/highest price summary (LLM can compute if false)"
                  }
                },
                "required": [
                  "hotelSlugs"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "description": "Whether the operation was successful"
                    },
                    "data": {
                      "type": "object",
                      "description": "Response data"
                    },
                    "error": {
                      "type": "string",
                      "description": "Error message if unsuccessful"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "500": {
            "description": "Internal server error"
          }
        }
      }
    },
    "/mcp/search": {
      "post": {
        "operationId": "search",
        "summary": "Search for hotels and return results in OpenAI MCP format",
        "description": "Search for hotels and return results in OpenAI MCP format",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "query": {
                    "type": "string",
                    "description": "Search query string for finding hotels"
                  }
                },
                "required": [
                  "query"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "description": "Whether the operation was successful"
                    },
                    "data": {
                      "type": "object",
                      "description": "Response data"
                    },
                    "error": {
                      "type": "string",
                      "description": "Error message if unsuccessful"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "500": {
            "description": "Internal server error"
          }
        }
      }
    },
    "/mcp/fetch": {
      "post": {
        "operationId": "fetch",
        "summary": "Fetch full details for a specific hotel by ID",
        "description": "Fetch full details for a specific hotel by ID",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique identifier for the hotel to fetch"
                  }
                },
                "required": [
                  "id"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "description": "Whether the operation was successful"
                    },
                    "data": {
                      "type": "object",
                      "description": "Response data"
                    },
                    "error": {
                      "type": "string",
                      "description": "Error message if unsuccessful"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "500": {
            "description": "Internal server error"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {},
    "schemas": {}
  }
}