Any Season, Any Reason+1 (519) 238-2324
2 guests

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.

ArgumentTypeRequiredNotes
check_instring (YYYY-MM-DD)yes
check_outstring (YYYY-MM-DD)yes
guestsintegernodefault 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.

ArgumentTypeRequiredNotes
room_type_codestringyese.g. MS2Q, from search_rooms
check_instring (YYYY-MM-DD)yes
check_outstring (YYYY-MM-DD)yes
guestsintegernodefault 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.

ArgumentTypeRequiredNotes
querystringyesplain-English question
limitintegernodefault 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.

Design