When someone asks an AI where to learn to surf, we return real lessons — beach, level, time, price — ready to book. Not an article. Real lessons, from schools.
{
"spot": "Ribeira d'Ilhas",
"date": "2026-06-13",
"time": "09:00",
"level": "iniciante",
"price": "€45",
"book": "surfbooking.eu/reservar/…"
}The night before arriving in Portugal, a tourist asks an AI: "where do I learn to surf this weekend?"
Today, the assistant still answers with a generic map. But SurfBooking has already built the bridge: an index for LLMs and an MCP endpoint that return real lessons — the right beach for the level, at times that actually exist, with the link to book. As assistants open up their connectors, SurfBooking becomes the answer. And whoever connects today — via connector or MCP — gets them right now.
The LLM does not read a page: it asks for one of these and gets real data on the spot, including the state of the sea at each beach.
By beach, zone, level, date or max price. Returns bookable lessons with day, time, beach, school, price and link.
Price, duration, openings and what is included: wetsuit, board, transport, insurance.
The secure link where the surfer books and pays. The agent never charges.
A 0 to 10 score tuned to the level, with wave, period and wind, and the best window each day. It answers: which day should I book?
Active beaches ranked by live conditions, with wave, wind, score and link.
The same wave is good for a beginner and weak for an advanced surfer. This one ranks by how well each beach suits the level asked for.
Bookable lessons only at beaches where the sea actually meets the wave, score or light wind minimum asked for.
Each zone with how many schools it has and whether lessons are bookable. The first step of a: where do I learn to surf?
Beaches by zone, with bottom type and a short description, to tell the beginner-friendly ones from the rest.
Wetsuit, board, leash and boots from weight, height and level. European sizing, promoting no brand.
SurfBooking partner hotels, by zone or city.
They all only read. None creates, cancels, changes prices or times, or returns student data.
Illustrative example, with sample dates and links. It does not show current availability. Use the query below to look for available lessons.
▸ user: "Book me a beginner surf lesson in Portugal this weekend." # the agent calls search_lessons("beginner") and SurfBooking returns: - 13 Jun · 09:00 · Ribeira d'Ilhas · beginner · €45 → book: surfbooking.eu/reservar/... - 14 Jun · 09:00 · Ribeira d'Ilhas · beginner · €45 → book: surfbooking.eu/reservar/... # the booking completes securely. Payment is confirmed by the human.
On Claude.ai (Pro), you add SurfBooking as a custom connector in 20 seconds. Nothing to install, no key.
https://www.surfbooking.eu/api/mcpOn Claude.ai: Settings → Connectors (or Customize → Connectors).
Click "Add custom connector".
Name: SurfBooking. In the "Remote MCP server URL" field, paste the address above. Leave OAuth blank — it's public, no key.
Click Add. Then ask "beginner surf lessons this weekend" — and you get real lessons, ready to book.
The same URL works in any MCP-compatible client, as connectors open up. For the terminal or Claude Desktop, see below.
Nothing to install. Paste into the terminal:
# search for a beginner lesson curl -s https://www.surfbooking.eu/api/mcp \ -H "content-type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call", "params":{"name":"search_lessons", "arguments":{"query":"iniciante ericeira"}}}'
In a client with MCP support: on Claude.ai (Pro) you add the URL as a connector; on Claude Desktop you connect via mcp-remote:
{
"mcpServers": {
"surfbooking": {
"command": "npx",
"args": ["mcp-remote", "https://www.surfbooking.eu/api/mcp"]
}
}
}In the major AI assistants, support for MCP connectors is opening up now. But the way that already works today is the simplest: when any assistant browses the web, it reads our index for LLMs and recommends real SurfBooking lessons — with nothing to connect.
Official SurfBooking partners (hotels, equipment brands) get a scoped API key that limits the MCP to their own data — so a hotel integration never surfaces a competitor's gear brand, and an equipment brand never advertises another hotel chain.
find_hotels returns only the partner's properties. size_equipment gives neutral sizing — no equipment brand is promoted.
size_equipment recommends the partner's own gear catalog. find_hotels is hidden — it's not part of the integration.
Want a scoped key for your brand? Email [email protected] — we verify the partnership and configure the scope.
A door separate from the public one, just for your school. The assistant reads what your role already sees in SurfBooking OS and can prepare two changes, which only happen when the owner confirms them in the OS.
Status today: it is off by default and has not yet been validated with a real assistant. While it is off, the address answers 404.
The owner creates the key in SurfBooking OS, in the «Assistentes ligados» window: that is where they revoke it, see the assistant's requests and confirm proposals.
POST https://www.surfbooking.eu/api/mcp/escola
Authorization: Bearer sbek_XXXXXXXXXX_…The school name, your role, the key's permissions and when it expires.
Lessons between two dates, up to 14 days: time, beach, level, instructors and free places. An instructor only sees their own.
Daily counts, up to 31 days: confirmed, checked in, no-shows and participants. No money figures. Owner, or staff with access to reports.
First name only, check-in and the sizes already recorded. No contacts, health, allergies or birth dates.
Gear by category and size: quantity, in repair and available.
For lessons in the next days, up to 7: score, wave, period, wind and a risk flag for the lesson level.
Creates a pending proposal for a new date and time. The lesson does not change. Lessons that already have students are not accepted in this version.
Creates a pending proposal to set, add or remove units, up to 30 lines. The stock does not change and never goes below zero.
The proposals prepared and the state of each one. The owner sees them all; staff see their own.
It does not touch money: payments, refunds, prices or cancellations. It applies nothing on its own: every change waits for the owner's confirmation in the OS, which runs the same checks as the dashboard.
The key is generated with the owner's session in SurfBooking OS and shown only once. We only keep its digest, it lasts 30, 90 or 365 days and you can revoke it whenever you want. The screen in Settings arrives in the next phase.
On Claude Desktop you connect through mcp-remote, with the key in a header:
{
"mcpServers": {
"surfbooking-escola": {
"command": "npx",
"args": ["mcp-remote", "https://www.surfbooking.eu/api/mcp/escola",
"--header", "Authorization:${SB_SCHOOL_AUTH}"],
"env": { "SB_SCHOOL_AUTH": "Bearer sbek_XXXXXXXXXX_…" }
}
}
}The custom connector on Claude.ai web and ChatGPT's connector do not let you send a key in a header, only OAuth, which this connector does not have yet. Today it only works in clients that send the header. No client has been validated live.
We open the door to the world's AIs — but with rules that live in the code, not in trust.
It always returns a link; the surfer confirms and pays on SurfBooking. No agent touches your money.
The LLM can only read. It doesn't create, cancel, or change prices or times. The most it does is search for lessons.
Only public lesson information goes out. Student names, emails and phones never leave SurfBooking.
It handles thousands of requests without affecting service to schools — and shuts down in an instant if needed.
Real lessons, from schools, ready to book.
Book a lesson