Surf Booking.PTMCP
ManifestoAgentIntelligence LayerTechnologyConstitutionAIMCPPartner API
Bookable by LLMs

Ask an LLM for a lesson.SurfBooking answers.

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.

MCP live · any compatible assistant connects and gets real lessons
surfbooking.eu/api/mcp
surfbooking · search_lessons
Illustrative example · not live data
{
  "spot":   "Ribeira d'Ilhas",
  "date":   "2026-06-13",
  "time":   "09:00",
  "level":  "iniciante",
  "price":  "€45",
  "book":   "surfbooking.eu/reservar/…"
}
The moment

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.

What the LLM can do

11 tools. And read-only.

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.

search_lessons

Find lessons

By beach, zone, level, date or max price. Returns bookable lessons with day, time, beach, school, price and link.

lesson_details

View a lesson

Price, duration, openings and what is included: wetsuit, board, transport, insurance.

get_booking_link

Give the booking link

The secure link where the surfer books and pays. The agent never charges.

surf_forecast

The sea at one beach

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?

best_surf_today

Where it is best right now

Active beaches ranked by live conditions, with wave, wind, score and link.

recommend_spots

The right beaches for the level

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.

find_lessons_by_conditions

Lessons only when the sea delivers

Bookable lessons only at beaches where the sea actually meets the wave, score or light wind minimum asked for.

list_zones

The regions

Each zone with how many schools it has and whether lessons are bookable. The first step of a: where do I learn to surf?

list_spots

The beaches

Beaches by zone, with bottom type and a short description, to tell the beginner-friendly ones from the rest.

size_equipment

The gear size

Wetsuit, board, leash and boots from weight, height and level. European sizing, promoting no brand.

find_hotels

Sleeping next to the surf

SurfBooking partner hotels, by zone or city.

ALWAYS

None of them write

They all only read. None creates, cancels, changes prices or times, or returns student data.

Illustrative example

How to read an MCP response.

Illustrative example, with sample dates and links. It does not show current availability. Use the query below to look for available lessons.

agent connected to the MCP → surfbooking · search_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.
Connect to Claude.ai

Paste the URL. Done.

On Claude.ai (Pro), you add SurfBooking as a custom connector in 20 seconds. Nothing to install, no key.

Remote MCP server URL
https://www.surfbooking.eu/api/mcp
1

Open Connectors

On Claude.ai: Settings → Connectors (or Customize → Connectors).

2

Add custom connector

Click "Add custom connector".

3

Paste the URL

Name: SurfBooking. In the "Remote MCP server URL" field, paste the address above. Leave OAuth blank — it's public, no key.

4

Add and ask

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.

Try it

One call and you have real lessons

Nothing to install. Paste into the terminal:

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:

claude_desktop_config.json
{
  "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.

Partner integrations

Each brand sees only its own data.

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.

HOTEL

Hotel partner key

find_hotels returns only the partner's properties. size_equipment gives neutral sizing — no equipment brand is promoted.

GEAR

Equipment brand key

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.

For schools

Your school's private connector.

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.

school key header
POST https://www.surfbooking.eu/api/mcp/escola
Authorization: Bearer sbek_XXXXXXXXXX_…
list_my_schools

The key's school

The school name, your role, the key's permissions and when it expires.

get_school_schedule

The schedule

Lessons between two dates, up to 14 days: time, beach, level, instructors and free places. An instructor only sees their own.

get_bookings_summary

The bookings summary

Daily counts, up to 31 days: confirmed, checked in, no-shows and participants. No money figures. Owner, or staff with access to reports.

get_lesson_roster

Who is in a lesson

First name only, check-in and the sizes already recorded. No contacts, health, allergies or birth dates.

get_stock_summary

The stock

Gear by category and size: quantity, in repair and available.

get_conditions_for_my_lessons

The sea for your lessons

For lessons in the next days, up to 7: score, wave, period, wind and a risk flag for the lesson level.

prepare_lesson_move

Prepare moving a lesson

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.

prepare_stock_change

Prepare a stock change

Creates a pending proposal to set, add or remove units, up to 30 lines. The stock does not change and never goes below zero.

list_pending_proposals

The proposals

The proposals prepared and the state of each one. The owner sees them all; staff see their own.

NEVER

What it does not do

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:

claude_desktop_config.json
{
  "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.

What about your safety?

The LLM shows. The control is yours.

We open the door to the world's AIs — but with rules that live in the code, not in trust.

MONEY

The LLM never charges

It always returns a link; the surfer confirms and pays on SurfBooking. No agent touches your money.

BOOKINGS

It never changes anything

The LLM can only read. It doesn't create, cancel, or change prices or times. The most it does is search for lessons.

STUDENTS

Zero student data

Only public lesson information goes out. Student names, emails and phones never leave SurfBooking.

CONTROL

Turn it off whenever you want

It handles thousands of requests without affecting service to schools — and shuts down in an instant if needed.

Ready for the next wave

When someone asks an LLM for surf,
SurfBooking answers.

Real lessons, from schools, ready to book.

Book a lesson