{
  "schema_version": "2025-03-26",
  "server": {
    "name": "Oakwood Resort MCP Server",
    "description": "Real-time hotel booking and natural-language resort search for Oakwood Resort, Grand Bend, Ontario. Protocol-complete MCP (JSON-RPC 2.0) with full initialize handshake, plus semantic search over resort content.",
    "url": "https://qpmawqmkxxrzhwsqxdki.supabase.co/functions/v1/mcp-test",
    "transport": "http",
    "protocol": {
      "jsonrpc": "2.0",
      "protocolVersion": "2025-06-18",
      "methods": ["initialize", "notifications/initialized", "tools/list", "tools/call"],
      "note": "A conformant client can complete the initialize handshake with no Authorization header."
    },
    "authentication": {
      "type": "none",
      "read_tools": "No credentials required. initialize, tools/list, and the read tools (get_property_info, search_rooms, get_quote, search_resort_info) may be called anonymously; requests are rate limited.",
      "booking_tools": "initiate_booking requires a bearer API key. Contact info@oakwoodresort.ca to request one.",
      "instructions": "Call initialize, then tools/list, then tools/call with no Authorization header for the read tools."
    }
  },
  "capabilities": {
    "tools": [
      { "name": "get_property_info", "description": "Resort details, amenities, policies, and contact information.", "authentication_required": false },
      { "name": "search_rooms", "description": "Real-time room availability and rates for dates and guest count.", "authentication_required": false },
      { "name": "get_quote", "description": "Exact pricing (rate, resort fee, 13% HST, total in CAD) for a room type and dates.", "authentication_required": false },
      { "name": "search_resort_info", "description": "Natural-language semantic search of resort information: rooms, dining, golf, events, weddings, amenities and policies.", "authentication_required": false },
      { "name": "initiate_booking", "description": "Begin a booking (email verification). Requires a bearer API key.", "authentication_required": true }
    ]
  },
  "security": {
    "rate_limits": {
      "read_tools": "60/min, 500/hr shared pooled quota for anonymous callers",
      "initiate_booking": "5/min, 10/hr"
    },
    "email_verification": "Required for all bookings unless OAuth identity matches guest email",
    "payment": "Card data never passes through this API. Booking returns a secure checkout link for the guest to complete payment."
  }
}
