Developer & Agent API
Build on Oakwood Resort
A public, self-serve API for AI assistants and developers. Real-time room availability, exact pricing, and natural-language search of everything the resort offers — callable over the Model Context Protocol (MCP, JSON-RPC 2.0). The read tools need no credentials, no key, and no registration.
Endpoint
https://lfblymuupaflxihoehrh.supabase.co/functions/v1/agent-mcp
Protocol-complete MCP: initialize, notifications/initialized, tools/list, and tools/call. The handshake and every read tool work with no Authorization header. Machine-readable spec: /openapi.json · MCP manifest: /.well-known/mcp.json · plain-text guide: /llms.txt.
Authentication
Read tools (availability, pricing, property info, search) are open — call them directly. Only booking creation requires a bearer API key; request one from info@oakwoodresort.ca. Card data never passes through the API: booking returns a secure checkout link the guest completes themselves.
Quickstart
Open the session, then list the tools:
curl -s https://lfblymuupaflxihoehrh.supabase.co/functions/v1/agent-mcp -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}'
curl -s https://lfblymuupaflxihoehrh.supabase.co/functions/v1/agent-mcp -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
Tools
get_property_infono auth
Resort location, amenities, contact and policies.
curl -s https://lfblymuupaflxihoehrh.supabase.co/functions/v1/agent-mcp \n -H 'Content-Type: application/json' \n -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_property_info","arguments":{}}}'
search_roomsno auth
Real-time room availability and nightly rates for dates and party size.
| Argument | Type | Required | Notes |
|---|
check_in | string (YYYY-MM-DD) | yes | |
check_out | string (YYYY-MM-DD) | yes | |
guests | integer | no | default 2 |
curl -s https://lfblymuupaflxihoehrh.supabase.co/functions/v1/agent-mcp \n -H 'Content-Type: application/json' \n -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_rooms","arguments":{"check_in":"2026-12-01","check_out":"2026-12-03","guests":2}}}'
get_quoteno auth
Exact price for a room type and dates — nightly rate, resort fee, 13% HST, total in CAD.
| Argument | Type | Required | Notes |
|---|
room_type_code | string | yes | e.g. MS2Q, from search_rooms |
check_in | string (YYYY-MM-DD) | yes | |
check_out | string (YYYY-MM-DD) | yes | |
guests | integer | no | default 2 |
curl -s https://lfblymuupaflxihoehrh.supabase.co/functions/v1/agent-mcp \n -H 'Content-Type: application/json' \n -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_quote","arguments":{"room_type_code":"MS2Q","check_in":"2026-12-01","check_out":"2026-12-03","guests":2}}}'
search_resort_infono auth
Natural-language semantic search of resort information: rooms, dining, golf, events, weddings, amenities and policies.
| Argument | Type | Required | Notes |
|---|
query | string | yes | plain-English question |
limit | integer | no | default 5, max 10 |
curl -s https://lfblymuupaflxihoehrh.supabase.co/functions/v1/agent-mcp \n -H 'Content-Type: application/json' \n -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_resort_info","arguments":{"query":"somewhere to get married by the lake","limit":3}}}'
initiate_bookingAPI key required
Begin a booking (sends the guest an email verification code). Requires a bearer API key.
curl -s https://lfblymuupaflxihoehrh.supabase.co/functions/v1/agent-mcp \n -H 'Content-Type: application/json' \n -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"initiate_booking","arguments":{}}}'
Natural-language search
search_resort_infoanswers plain-English questions over the resort’s own content — semantic, not keyword. “Somewhere to get married by the lake” returns the wedding venues; “a burger and a beer” returns the pub and its menu. It is the fastest way for an agent to answer an open-ended guest question without crawling the site.
Event-driven updates
Reservation lifecycle events (created, modified, cancelled, checked-in, checked-out) arrive from the property management system as webhooks and are reflected in the data these tools return. Availability and pricing are read live from the PMS on every call, so a quote is the rate a guest is charged.
Rate limits
Anonymous callers share a pooled quota — roughly 60 requests/minute across the read tools. Request an API key for a dedicated allowance. Responses are JSON-RPC; errors carry a numeric code and a message.