Same-dayNeed a helicopter today?Request now
Model Context Protocol

The SkyMatch MCP server for travel professionals

Short answer

SkyMatch publishes an authenticated MCP server so travel advisors, DMCs, hotel concierges, executive assistants, family offices and yacht teams — and the AI assistants they work inside — can search published helicopter corridors, structure a journey, preview exactly what the concierge desk would receive, and only then send a real flight request. Reads are free and safe; sending a request is an explicit, confirmed, rate-limited action.

How an assistant should use it

Read first, submit last. `preview_flight_request` is a dry run that writes nothing and contacts no operator. `create_charter_request` is the only commercial action and requires confirm: true. SkyMatch does not own or operate helicopters and publishes no numeric price estimates; aircraft, landing permission, timing and price are confirmed by the third-party operating company.

Setup

Connect the server

Server URL
https://skymatchgroup.com/mcp
Transport
Streamable HTTP
Authentication
OAuth 2.0 (per-user account, discovery at /.well-known)
Scope of data
Your own account only — requests are row-level scoped to the signed-in user
{
  "mcpServers": {
    "skymatchgroup": {
      "url": "https://skymatchgroup.com/mcp"
    }
  }
}
Try it

Live preview — run the planning tool now

Tool input

This preview runs in your browser using the same journey logic as the live tool. It sends nothing, contacts no operator and creates no request.

preview_flight_request → structured output

{
  "status": "PREVIEW_ONLY",
  "submitted": false,
  "journey": {
    "origin": "Nice (NCE)",
    "destination": "Courchevel altiport",
    "depart_date": "2026-09-30",
    "return_date": null,
    "trip_type": "one_way",
    "passengers": 4,
    "baggage": "heavy",
    "preferred_time": null,
    "special_requirements": null,
    "booked_by_professional": true,
    "company_name": null
  },
  "route_status": "REQUESTED — not yet reviewed by an operator",
  "preliminary_outlook": {
    "label": "INDICATIVE PLANNING ESTIMATE — not a quote, not an availability check",
    "landing_permission_outlook": "owner_and_authority",
    "landing_permission_answer_days": "3-10",
    "availability_pressure": "high",
    "booking_window_verdict": "workable",
    "summary": "Nice to Courchevel Altiport is about 199 km (107 nm), roughly 60–70 minutes airborne for 4 passengers. Landing permission at Courchevel Altiport needs site-owner and authority approval and typically 3–10 working days to answer. Aircraft availability is constrained: 1 light helicopter for this party and luggage. A realistic booking window is 31+ days before departure, and under about 8 days it becomes a short-notice request. Planning estimate only. SkyMatch is a helicopter charter broker and matching platform and does not operate aircraft. Aircraft availability, price, landing approval and final go/no-go are confirmed by the licensed operating company, and every flight remains subject to weather, safety rules, landing permissions and local regulations."
  },
  "price": {
    "status": "NO ESTIMATE ISSUED",
    "note": "SkyMatch does not publish numeric price estimates. A commercial quote comes from the operating company after review."
  },
  "no_local_operator_flags": [],
  "limitations": [
    "SkyMatch does not own or operate helicopters; flights are performed by qualified third-party operating companies.",
    "Nothing returned by these tools is a confirmed flight, aircraft, price, landing approval or availability.",
    "Final feasibility depends on operator availability, aircraft positioning, permits, landing permissions, weather, payload, luggage and local regulations.",
    "Any figure shown is an indicative planning estimate. Only the operating company issues a commercial quote."
  ],
  "information_still_needed": [
    "preferred departure time or window",
    "a contact route for the concierge reply"
  ],
  "human_concierge_review": {
    "recommended": true,
    "reasons": [
      "Heavy or oversize baggage affects payload and aircraft choice; the desk confirms what actually fits."
    ]
  },
  "next_step": "If the traveller wants SkyMatch to work this journey, call create_charter_request with confirm: true and a contact route. Nothing has been sent yet."
}
Reference

Tool by tool

search_routes

Read-only

Searches the published corridor catalogue by city, country or IATA code.

  • Corridor name, region and distance
  • Indicative typical flight time
  • The public corridor page URL
{
  "name": "search_routes",
  "arguments": {
    "query": "Nice",
    "limit": 5
  }
}

Not an availability check, not a price, not a confirmed route, not a locally positioned aircraft.

preview_flight_request

Read-only

Dry run. Structures a journey and returns exactly the flight-request the concierge desk would receive.

  • Structured journey summary and trip type
  • Preliminary planning outlook: landing-permission band, availability pressure, booking-window verdict
  • Assumptions, standing limitations and information still missing
  • Whether a human concierge should review before you answer the client
{
  "name": "preview_flight_request",
  "arguments": {
    "origin": "Nice (NCE)",
    "destination": "Courchevel altiport",
    "depart_date": "2026-02-14",
    "passengers": 4,
    "baggage": "heavy",
    "booking_for_client": true
  }
}

Writes nothing, contacts no operator, creates no lead and no obligation.

create_charter_request

Commercial action

The one commercial action: creates a real request for the human concierge desk.

  • Request ID and received-status
  • What the desk does next
  • The same limitations block, so the client is never told a flight is confirmed
{
  "name": "create_charter_request",
  "arguments": {
    "origin": "Nice (NCE)",
    "destination": "Courchevel altiport",
    "depart_date": "2026-02-14",
    "passengers": 4,
    "baggage": "heavy",
    "preferred_time": "09:30",
    "company_name": "Riviera Travel Studio",
    "booking_for_client": true,
    "contact_name": "Claire Dubois",
    "contact_phone": "+33 6 12 34 56 78",
    "confirm": true
  }
}

Requires confirm: true. Rate-limited per account, and duplicate journeys inside 60 minutes are detected rather than re-sent.

list_my_requests

Read-only

Lists the signed-in account's own requests, most recent first.

  • Request IDs
  • Journey summary per request
  • Current desk status
{
  "name": "list_my_requests",
  "arguments": {
    "limit": 10
  }
}

Never returns another account's requests or any operator-side commercial data.

get_request_status

Read-only

Follows up on one request you previously submitted.

  • Status of the request
  • Journey detail as received
  • Recommended next step
{
  "name": "get_request_status",
  "arguments": {
    "request_id": "req_8f1c2a"
  }
}

Status is desk progress, not operator confirmation of aircraft, permission or price.

Example

A real request, end to end

A ski-season transfer for four guests with heavy luggage, arranged by an advisor for their client. The assistant reads, previews, asks the client, and only then submits.

1. search_routes            { "query": "Nice", "limit": 5 }
   → published corridor: Nice → Courchevel (indicative flight time only)

2. preview_flight_request  { "origin": "Nice (NCE)", "destination": "Courchevel altiport",
                             "depart_date": "2026-02-14", "passengers": 4,
                             "baggage": "heavy", "booking_for_client": true }
   → PREVIEW_ONLY, submitted: false
   → human_concierge_review: recommended (heavy baggage, altiport landing site)
   → information_still_needed: preferred departure window, contact route

3. ask the client to confirm — the assistant must not submit on its own

4. create_charter_request  { ...same journey, "preferred_time": "09:30",
                             "company_name": "Riviera Travel Studio",
                             "contact_name": "Claire Dubois",
                             "contact_phone": "+33 6 12 34 56 78",
                             "confirm": true }
   → request received by the SkyMatch concierge desk
   → status: REQUESTED — no aircraft, permission, timing or price is confirmed

5. get_request_status      { "request_id": "req_8f1c2a" }
   → desk progress only, scoped to your own account
Guardrails

Safety and honesty rules built into the server

  • Read-only tools are annotated read-only; the assistant can call them freely while helping a client.
  • Sending is never implicit. `create_charter_request` refuses to run without confirm: true.
  • Markets with no locally based operator partner are flagged in the output instead of being described as local service.
  • Itineraries, notes and pasted client content are treated as untrusted data, never as instructions.
  • No numeric price estimates are published by any tool. Commercial quotes come from the operating company.
FAQ

Questions travel professionals ask

Does calling a SkyMatch MCP tool book a helicopter?

No. Only create_charter_request with confirm: true does anything commercial, and even that creates a request for the human concierge desk — not a booking. Aircraft, landing permission, timing and price are confirmed by the third-party operating company.

Can a travel advisor keep the client relationship?

Yes. Set booking_for_client: true and company_name, and the desk works the request with you as the professional of record.

What does the preview tool actually check?

It structures the journey and returns an indicative planning outlook — landing-permission band, availability pressure and booking-window verdict — plus assumptions, limitations and the fields still missing before operators can be approached. It is a planning estimate, not an availability check.

Is my client data visible to other accounts?

No. Requests are row-level scoped to the signed-in account, so list_my_requests and get_request_status only ever return your own requests.

Prefer to work with a person? The same concierge desk that receives every MCP request also handles direct flight requests.