Use the MCP server to let your AI assistant search ski schools, manage your school profile, handle bookings, respond to reviews, and more — all through natural language.
If you're a school owner, go to your School assistant access page to approve a short-lived key for a school you own or co-own. Select only the scopes your assistant needs. Administrator-issued service keys are also supported. Public searches need no key.
Claude Desktop / Claude Code
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"find-a-ski-school": {
"url": "https://findaskischool.com/mcp",
"headers": {
"Authorization": "Bearer fass_YOUR_API_KEY_HERE"
}
}
}
}Cursor / VS Code / Windsurf
Add this to your .cursor/mcp.json or equivalent settings:
{
"mcpServers": {
"find-a-ski-school": {
"url": "https://findaskischool.com/mcp",
"headers": {
"Authorization": "Bearer fass_YOUR_API_KEY_HERE"
}
}
}
}Any MCP-compatible client
The MCP endpoint is:
https://findaskischool.com/mcpTransport: Streamable HTTP (the modern MCP transport protocol). Pass your API key in the Authorization: Bearer fass_xxx header on every authenticated request, including the session's POST, GET, and DELETE requests. A session ID alone does not authenticate a request.
Once configured, you can ask your AI things like:
These tools work without an API key. Anyone can search schools, resorts, and instructors.
search_lessons
Search published lessons with the website's filters and bounded pagination
get_lesson_detail
Read public lesson details, pricing options, and the booking page
get_lesson_availability
Check advisory dates and start times, including instructor calendars when selected
get_lesson_quote
Get a provisional server price in the supported charge currency; no places are reserved
search_schools
Search ski schools by name, country, resort, or activity
get_school_detail
Get detailed info about a specific ski school
search_resorts
Search ski resorts by name or country
get_resort_detail
Get detailed info about a specific resort
list_countries
List all countries with ski schools/resorts
list_activities
List all snow sport activities
search_instructors
Search for ski instructors by name, language, or speciality
compare_schools
Compare multiple schools side by side
Sign in with a verified personal account and approve a short-lived customer key. Customer keys can access only your own booking flow; they cannot manage schools or platform content.
Manage personal assistant accessprepare_customer_booking — Prepare a customer-bound confirmation link with customer:bookings:write. Complete participant details, policy acceptance, CAPTCHA, and payment in the browser. The booking is created when you submit those checks.list_my_customer_bookings — Read a bounded list of your own bookings with customer:bookings:read.get_customer_booking_status — Check your booking or handoff status with customer:bookings:read; checkout secrets remain in the browser.Availability and quotes are provisional. Advisory school times do not confirm remaining places; the booking flow rechecks capacity, eligibility, and the accepted price before creating a pending booking and opening checkout where online payment is enabled.
These tools require an API key linked to your school and every scope shown for the tool. Read scopes and write scopes are both enforced.
MCP covers profile contact details, basic instructor and lesson management, booking status, reviews, analytics, calendar and instructor availability reads, and authorised inbox reads. Use the dashboard for messages and operational changes, rescheduling, refunds, school photos and policies, and full lesson configuration. Customer booking uses separate personal credentials and browser confirmation; payment remains in the browser.
Read bookings and saved availability across up to 31 school-local days without learner contact, health, or payment data
Read a current team instructor's saved school availability; this does not establish complete cross-school capacity
Page through inbox metadata with a current owner/co-owner-issued key and the account's existing history boundary
Read thread metadata without marking it read; bounded message content is included only on explicit request
View your school profile and settings
Update description, website, contact email, phone, and default currency
List all instructors at your school
Add a new instructor to your school
Update instructor profile, bio, specialities
Remove an instructor from your school
List all lessons offered by your school
Create a new lesson offering
Update basic lesson details, flat price, start/end times, and status
Permanently delete an archived lesson from your school
Page through your school's bookings, with status and date filters
Get one booking belonging to your school by booking ID
Confirm a pending booking
Cancel a booking by ID; cancellation does not issue a payment refund
Mark a booking as completed
View all reviews for your school
Post a public response to a review
Remove your response from a review
View school analytics (views, clicks, bookings)
Get dashboard summary stats
list_my_bookings accepts optional status, start_date (inclusive), and end_date (exclusive) filters, plus limit (default 50, maximum 100) and offset (default 0). Dates use ISO 8601 timestamps with a timezone. Both booking read tools require bookings:read.
{
"name": "list_my_bookings",
"arguments": {
"status": "pending",
"limit": 50,
"offset": 0,
"start_date": "2026-12-01T00:00:00Z",
"end_date": "2027-01-01T00:00:00Z"
}
}The result contains total, limit, offset, nextOffset, and bookings. Repeat the same filters with offset set to nextOffset until nextOffset is null. Use get_my_booking with booking_id to read one booking directly.
| Endpoint | https://findaskischool.com/mcp |
| Transport | Streamable HTTP (MCP 2025-03-26) |
| Authentication | Bearer token in Authorization header on every authenticated request |
| Rate Limits | Per-IP and shared per-key budgets apply, with an additional school management call limit and a separate failed-authentication throttle |
| Info Endpoint | https://findaskischool.com/mcp/info |
| Version | 2.0.0 |
No. The 12 public discovery tools work without authentication. Reading or changing private school data requires a school-scoped API key and the matching read or write scope.
Use a connector or client that supports remote Streamable HTTP servers and bearer headers. Availability and setup depend on your client and plan. Custom GPT Actions use the separate REST/OpenAPI interface.
API keys are hashed before storage. School keys are restricted to their linked school and granted scopes; platform administration and content use separate restricted keys. Owners can revoke or rotate their self-service keys from School assistant access. These short-lived keys also stop working when the issuer loses ownership access. Keep every key private and give an assistant only the scopes it needs.
Streamable HTTP is the modern MCP transport protocol (2025-03-26 spec). It supports both streaming and direct JSON responses. Most modern MCP clients support it natively. If your client only supports the older SSE transport, please contact us for assistance.