{"name":"find-a-ski-school","version":"2.0.0","description":"MCP server for Find a Ski School — discover lessons, schools, resorts, and instructors, with provisional availability and price quotes. The directory covers 88 countries with resorts or schools listed. School keys manage school operations. Personal customer keys prepare customer-bound browser booking handoffs and read their booking status.","transport":"streamable-http","endpoint":"/mcp","authentication":{"method":"Bearer token","header":"Authorization: Bearer fass_YOUR_API_KEY","description":"School owners and co-owners can approve short-lived keys at /account/school-mcp-access; those keys require the issuer's current ownership access. Administrator-issued school service keys are also supported. Inbox tools require an owner/co-owner-issued key and current bounded inbox access; administrator observer powers are not delegated. Customers can issue separate personal keys from /account/mcp-access. Customer keys cannot manage schools or platform content. Send the Bearer header on every authenticated session request. Public tools work without authentication; management tools enforce every required scope. admin_* tools require a platform-admin key with admin:read / admin:write. Blog and content_* tools require content:read / content:write or the corresponding admin scope."},"tools":{"public":[{"name":"search_lessons","description":"Search public lessons using the website's resort, country, activity, age, price, duration, group-size, and qualification filters. Prices are comparison figures, not checkout quotes."},{"name":"get_lesson_detail","description":"Read a public lesson's details, published pricing options, meeting points, and canonical booking page. Draft, archived, demo, and private listings are not available."},{"name":"get_lesson_availability","description":"Get public lesson start times for one school-local date, or a bounded month of available days. Availability is advisory; inferred typical times do not confirm school-wide capacity or reserve places."},{"name":"get_lesson_quote","description":"Get a provisional public lesson price for an exact published option, date, interval, and party size. Uses the school's native/offered currency rules and eligibility checks. No booking, capacity hold, or payment is created."},{"name":"search_schools","description":"Search for ski schools by name, country, resort, or activity"},{"name":"get_school_detail","description":"Get detailed info about a specific ski school"},{"name":"search_resorts","description":"Search for ski resorts by name or country"},{"name":"get_resort_detail","description":"Get detailed info about a specific resort"},{"name":"list_countries","description":"List all countries with ski schools/resorts"},{"name":"list_activities","description":"List all snow sport activities"},{"name":"search_instructors","description":"Search for ski instructors"},{"name":"compare_schools","description":"Compare multiple ski schools side by side"}],"customer":[{"name":"prepare_customer_booking","description":"Prepare a customer-owned booking handoff with a current quote. No booking or payment is created until the customer signs in and submits the browser form with CAPTCHA and policy acceptance. Requires customer:bookings:write."},{"name":"list_my_customer_bookings","description":"Read the authenticated customer's own account bookings with bounded pagination. No school-wide records or payment credentials are returned. Requires customer:bookings:read."},{"name":"get_customer_booking_status","description":"Read a customer-owned booking's status by booking ID or signed preparation handoff. Reports awaiting_browser_confirmation until a booking actually exists. Requires customer:bookings:read."}],"management":[{"name":"get_my_calendar","description":"Read your school's bookings and saved instructor availability for 1–31 school-local calendar days, with pagination and no learner contact, payment, health, or free-text notes. Requires bookings:read, instructors:read, and availability:read."},{"name":"get_instructor_availability","description":"Read saved availability entries at your school for a current team instructor over 1–31 school-local calendar days. Requires instructors:read and availability:read. This is the saved school schedule, not a complete cross-school conflict check."},{"name":"list_school_conversations","description":"List school inbox conversation metadata, newest conversation ID first. Requires messages:read and the issuing account's current school inbox access; owner/co-owner history boundaries apply. Message content and learner contact details are omitted."},{"name":"get_school_conversation","description":"Read a paginated school message thread without marking it read. Requires messages:read and current school inbox access. Content is omitted unless include_content is explicitly true; returned text is bounded and attachments/contact/payment records are not returned."},{"name":"get_my_school","description":"Get your school's full profile"},{"name":"update_my_school","description":"Update your school's profile"},{"name":"list_my_instructors","description":"List your school's instructors"},{"name":"add_instructor","description":"Add a new instructor"},{"name":"update_instructor","description":"Update an instructor's details"},{"name":"remove_instructor","description":"Deactivate an instructor, end their membership, or archive an unclaimed profile"},{"name":"list_my_lessons","description":"List your school's lessons"},{"name":"add_lesson","description":"Add a new lesson/course"},{"name":"update_lesson","description":"Update a lesson's details"},{"name":"delete_lesson","description":"Delete a lesson"},{"name":"list_my_bookings","description":"Page through your school's bookings with status and date filters"},{"name":"get_my_booking","description":"Get one booking belonging to your school"},{"name":"confirm_booking","description":"Confirm a pending booking"},{"name":"cancel_booking","description":"Cancel a booking"},{"name":"complete_booking","description":"Mark a booking as completed"},{"name":"list_my_reviews","description":"List reviews for your school"},{"name":"respond_to_review","description":"Respond to a customer review"},{"name":"delete_review_response","description":"Remove your response from a review"},{"name":"get_my_analytics","description":"Get school analytics and metrics"},{"name":"get_my_dashboard","description":"Get dashboard overview with recorded Checkout payments (gross)"}],"admin":[{"name":"admin_list_schools","description":"List schools platform-wide, any status (admin key, admin:read)"},{"name":"admin_get_school","description":"Get any school's full record by id (admin key, admin:read)"},{"name":"admin_update_school","description":"Update any school's profile by id, audit-logged (admin key, admin:write)"},{"name":"admin_set_school_status","description":"Publish/unpublish any school, audit-logged (admin key, admin:write)"},{"name":"admin_find_user","description":"Look up a user by id or email, audit-logged (admin key, admin:read)"},{"name":"admin_list_revision_comments","description":"List revision-mode comments with locators + screenshots, default status=approved (admin key, admin:read)"},{"name":"admin_resolve_revision_comments","description":"Mark revision comments applied (or rejected) once changes are made, audit-logged (admin key, admin:write)"}],"content":[{"name":"admin_list_blog_posts","description":"List blog posts, any status (content or admin key, content:read)"},{"name":"admin_get_blog_post","description":"Get a blog post's raw record by id or slug, incl. drafts (content:read)"},{"name":"admin_create_blog_post","description":"Create a blog post, audit-logged (content:write)"},{"name":"admin_update_blog_post","description":"Update a blog post by id, caches auto-invalidated, audit-logged (content:write)"},{"name":"admin_delete_blog_post","description":"Delete a blog post by id, audit-logged (content:write)"},{"name":"admin_upload_blog_image","description":"Upload a blog image (base64, optimised to WebP), returns the URL (content:write)"},{"name":"content_list_pages","description":"List CMS pages with editable blocks (content:read)"},{"name":"content_get_page","description":"Get a CMS page's content blocks by slug (content:read)"},{"name":"content_update_block","description":"Create/update a page content block, caches cleared, audit-logged (content:write)"},{"name":"content_list_faqs","description":"List a page's FAQ entries incl. unpublished (content:read)"},{"name":"content_upsert_faq","description":"Create or update a page FAQ, audit-logged (content:write)"},{"name":"content_delete_faq","description":"Delete a FAQ by id, audit-logged (content:write)"},{"name":"content_update_school_seo","description":"Update ONLY a school page's meta title/description/OG image (content:write)"}]}}