{"openapi":"3.1.0","info":{"title":"VegasNearMe MCP Server","version":"2.1.0"},"paths":{"/api/ai-deals/bundles":{"get":{"summary":"Ai Bundle Deals","description":"Hotel + show bundles with cross-OTA price comparison.\nFinds hotels with nearby shows and compares prices across all booking sources.","operationId":"ai_bundle_deals_api_ai_deals_bundles_get","parameters":[{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date"}},{"name":"zone","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zone"}},{"name":"nights","in":"query","required":false,"schema":{"type":"integer","maximum":14,"minimum":1,"default":1,"title":"Nights"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"default":5,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ai-deals/hotels-for-show":{"get":{"summary":"Hotels For Show","description":"Find hotels near any show venue using GPS distance.\nReturns cross-OTA price comparison with real walking distances.","operationId":"hotels_for_show_api_ai_deals_hotels_for_show_get","parameters":[{"name":"show","in":"query","required":true,"schema":{"type":"string","description":"Show name to find hotels near","title":"Show"},"description":"Show name to find hotels near"},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date"}},{"name":"nights","in":"query","required":false,"schema":{"type":"integer","maximum":14,"minimum":1,"default":1,"title":"Nights"}},{"name":"budget","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Max total budget for hotel+show","title":"Budget"},"description":"Max total budget for hotel+show"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":10,"minimum":1,"default":5,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ai-deals/hotels":{"get":{"summary":"Ai Exclusive Hotels","description":"Cross-OTA hotel price comparison — find the cheapest rate across all booking sites.","operationId":"ai_exclusive_hotels_api_ai_deals_hotels_get","parameters":[{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date"}},{"name":"zone","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zone"}},{"name":"min_stars","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min Stars"}},{"name":"nights","in":"query","required":false,"schema":{"type":"integer","maximum":14,"minimum":1,"default":1,"title":"Nights"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":30,"minimum":1,"default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/hotels/search":{"get":{"summary":"Hotel Search","description":"Search hotels with optional filters. Returns prices + booking links.","operationId":"hotel_search_api_hotels_search_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}},{"name":"check_in","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Check In"}},{"name":"check_out","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Check Out"}},{"name":"zone","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zone"}},{"name":"max_price","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Price"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/hotels/{hotel_id}/prices":{"get":{"summary":"Hotel Prices","description":"Get per-OTA prices for a specific hotel on a given date.","operationId":"hotel_prices_api_hotels__hotel_id__prices_get","parameters":[{"name":"hotel_id","in":"path","required":true,"schema":{"type":"integer","title":"Hotel Id"}},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/deals":{"get":{"summary":"Deals","description":"Top hotel deals — biggest savings across OTAs.","operationId":"deals_api_deals_get","parameters":[{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date"}},{"name":"zone","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zone"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/shows/search":{"get":{"summary":"Show Search","description":"Search Las Vegas shows and events.","operationId":"show_search_api_shows_search_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/shows/tonight":{"get":{"summary":"Shows Tonight","description":"What's happening in Vegas tonight — deals and events.","operationId":"shows_tonight_api_shows_tonight_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/trip/plan":{"get":{"summary":"Trip Plan","description":"Multi-day trip plan with hotel + show recommendations.","operationId":"trip_plan_api_trip_plan_get","parameters":[{"name":"check_in","in":"query","required":true,"schema":{"type":"string","title":"Check In"}},{"name":"check_out","in":"query","required":true,"schema":{"type":"string","title":"Check Out"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bundle":{"get":{"summary":"Bundle","description":"Find shows near a specific hotel with real walking distances.\nReturns shows tiered by proximity: at-hotel (same property), short-walk (<0.5mi), nearby (<1.5mi).\nUses GPS coordinates and haversine distance — not just zone guessing.","operationId":"bundle_api_bundle_get","parameters":[{"name":"hotel_name","in":"query","required":true,"schema":{"type":"string","title":"Hotel Name"}},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/health":{"get":{"summary":"Health","description":"Health check — also pings upstream APIs.","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/llms.txt":{"get":{"summary":"Llms Txt","operationId":"llms_txt_llms_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/robots.txt":{"get":{"summary":"Robots Txt","operationId":"robots_txt_robots_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/5fb295914d861c37dd65fcbd5f4f61c3.txt":{"get":{"summary":"Indexnow Key File","operationId":"indexnow_key_file_5fb295914d861c37dd65fcbd5f4f61c3_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/google25c4ba3426c07d63.html":{"get":{"summary":"Google Verify","operationId":"google_verify_google25c4ba3426c07d63_html_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/ai-plugin.json":{"get":{"summary":"Ai Plugin","operationId":"ai_plugin__well_known_ai_plugin_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/":{"get":{"summary":"Landing","operationId":"landing__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/sitemap.xml":{"get":{"summary":"Sitemap","operationId":"sitemap_sitemap_xml_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/mcp":{"post":{"summary":"Mcp Rpc","description":"Handle MCP JSON-RPC 2.0 requests (single call, not SSE).","operationId":"mcp_rpc_mcp_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/mcp/sse":{"get":{"summary":"Mcp Sse","description":"SSE transport for MCP — streams a session endpoint, then listens for messages.","operationId":"mcp_sse_mcp_sse_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/mcp/session/{session_id}":{"post":{"summary":"Mcp Session","description":"Handle JSON-RPC calls within an SSE session (same dispatch as /mcp).","operationId":"mcp_session_mcp_session__session_id__post","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}