| name | flight-sim-search |
| description | Search real-world flight data for flight simulation discovery using the Flight Sim Search MCP server. Trigger on aircraft ICAO type codes (A359, A35K, B77W, B789), large result requests ("find 200 flights"), duration+aircraft searches ("8hr flights on the A350"), airline route exploration ("what does Turkish fly on the A350"), sim language (SimBrief, MSFS, dispatch, addon), ICAO airport codes, or casual sim discovery ("find me a cool long-haul"). Do NOT trigger for real-world travel planning like "flights to Amsterdam in June" or "cheapest flight to Tokyo". Key distinction: sim users search by aircraft type, duration, and airline operations; travelers search by destination, dates, and price.
|
| metadata | {"author":"user","version":"2.0.0","mcp-server":"flight-sim-search"} |
Flight Sim Search Skill
Guide Claude to use the Flight Sim Search MCP server effectively — searching flights,
formatting results, constructing URLs, and managing MSFS 2024 addons.
When to Use This Skill
✅ TRIGGER — Flight simulation discovery
The user wants to find real-world flights to fly in a simulator. Signals include:
- Aircraft type codes: "A359", "A35K", "B77W", "B789", "777-200ER", "Dreamliner"
- Large result sets: "find me 200 flights", "show me at least 150 options"
- Duration + aircraft combos: "8hr flights on the A350", "12-hour 777 routes"
- Airline operations: "what does Turkish fly on the A350", "Emirates A380 routes"
- Sim-specific language: "SimBrief", "dispatch", "MSFS", "flight sim", "addon"
- Route exploration: "long-haul from EDDF", "trans-Pacific routes", "flights between KJFK and EGLL"
- Casual sim discovery: "find me a cool long-haul", "interesting overnight flights"
- ICAO airport codes used naturally: "routes out of KATL", "flights into RJTT"
- Addon management: "what airports do I have installed", "add PMDG 777 to my addons"
❌ DO NOT TRIGGER — Real-world travel planning
The user wants to book or plan personal travel. Signals include:
- Destination + date: "flights to Amsterdam in early June", "fly to Tokyo next week"
- Price/booking language: "cheapest flight to London", "book me a ticket"
- Personal travel context: "I'm planning a trip to...", "vacation flights to..."
- Seat/class preferences: "business class to Dubai", "direct flights under $500"
- No aircraft type or sim context: just destinations and dates without sim indicators
If in doubt, look for aircraft type codes or sim terminology — their presence almost always
means flight sim discovery.
Core Principles
-
Maximize options — When a user asks for flights, default to providing many results
(50–60 in compact mode) unless they ask for fewer. Offer related alternatives (similar
routes, alternate aircraft, nearby durations).
-
Smart response sizing — Match the response mode to the result count:
| Results | Mode | Key settings |
|---|
| 1–50 | Standard + URLs | includeUrls: true |
| 50–100 | Standard, no URLs | defaults |
| 100–200 | Standard, no URLs | compact: false |
| 200+ | Compact | compact: true (URLs unavailable) |
-
URLs are OFF by default — Only include them when the user explicitly asks for links
or the result set is small (< 50). Prefer SimBrief and FR24 links when included.
-
Categorize for clarity — Group results by airline, route/region, aircraft type,
duration range, or time of day when it improves readability.
Search Tool Quick Reference
searchFlights — Primary tool
| Parameter | Type | Notes |
|---|
airline | string | ICAO 3-letter code (e.g. "DLH") |
originIcao | string | Departure ICAO (e.g. "EDDF") |
destinationIcao | string | Arrival ICAO (e.g. "KJFK") |
aircraftType | string | ICAO code or common name ("A359", "787") |
minDurationMinutes | number | Lower bound in minutes |
maxDurationMinutes | number | Upper bound in minutes |
durationMinutes | number | Approximate target (±30 min) |
limit | number | Max results (default 50) |
compact | boolean | Shortened fields, ~82% smaller |
includeUrls | boolean or array | true, false, or ["simbrief","fr24"] |
Supporting tools
getFlightByIdentifier — Look up a specific flight (e.g. "LH765").
getFlightByDatabaseId — Look up by database ID.
listAircraftTypes — List all aircraft in the database.
queryDatabase — Run read-only SQL for complex queries.
MSFS 2024 Addon tools
listMSFSAddons — Browse/filter addons (type, developer, installed status, etc.).
createMSFSAddon / updateMSFSAddon / deleteMSFSAddon / getMSFSAddon — CRUD for addon entries.
SimBrief & Weather tools
getLatestFlightPlan / getDispatchBriefing — Retrieve SimBrief flight plans.
getNotams — NOTAMs for flight plan airports.
getAviationWeather — Current METAR observations.
getVatsimAtis — VATSIM ATIS information.
Search Strategy
Single aircraft type, single duration
Straightforward — one searchFlights call:
searchFlights(aircraftType: "A359", durationMinutes: 480, limit: 200, compact: true)
Multiple aircraft types (e.g. "A359 or A35K")
Run separate searches per aircraft type and combine results:
searchFlights(aircraftType: "A359", durationMinutes: 480, limit: 200, compact: true)
searchFlights(aircraftType: "A35K", durationMinutes: 480, limit: 200, compact: true)
Present results grouped by aircraft type with clear section headers.
Open-ended exploration ("find me a cool long-haul")
Use broader parameters and curate the results:
- Search with just
minDurationMinutes: 480 and a high limit
- Group results by airline or region for browsability
- Highlight unique or scenic routes
Presenting Results
Use markdown tables. The standard columns are:
| Flight | Aircraft | Route (ICAO) | Duration | Departure (Local) | Arrival (Local) |
Add a | Links | column only when URLs are included.
Formatting details:
- Duration as
HH:MM (e.g. 09:30)
- Times with timezone abbreviation (e.g.
03:27 AM IST)
- Route as
ORIG → DEST
- Group by airline/category with
### headers and --- separators
- Include flight count in each section header
Multi-airline queries
Group each airline under its own header:
### Lufthansa (DLH) — 25 Flights
| ... |
---
### Turkish Airlines (THY) — 22 Flights
| ... |
Duration-based queries
Consider grouping by range (short-haul < 3 h, medium 3–6 h, long 6–9 h, ultra 9+ h).
Duration Conversion
Always convert user-friendly hours to minutes for the API:
- "around 9 hours" →
durationMinutes: 540
- "9–9.5 hours" →
minDurationMinutes: 540, maxDurationMinutes: 570
- "under 3 hours" →
maxDurationMinutes: 180
- "over 12 hours" →
minDurationMinutes: 720
- "8hr flights" →
durationMinutes: 480
- "at least 6 hours" →
minDurationMinutes: 360
Common Airline ICAO Codes
Lufthansa: DLH · Turkish: THY · Singapore: SIA · Delta: DAL · Iberia: IBE ·
Ethiopian: ETH · China Airlines: CAL · Cathay Pacific: CPA · American: AAL ·
United: UAL · British Airways: BAW · Emirates: UAE · Qatar: QTR · Air France: AFR ·
KLM: KLM
URL Construction
See references/url-construction.md for full templates and field mappings.
Quick reference:
| Service | Template |
|---|
| SimBrief | https://dispatch.simbrief.com/options/custom?airline={AIRLINE}&fltnum={FLIGHTNUMBER}&type={AIRCRAFTTYPE}&orig={ORIGIN}&dest={DESTINATION} |
| FlightRadar24 | https://www.flightradar24.com/data/flights/{iata_lowercase}{FLIGHTNUMBER} |
| FlightAware | https://flightaware.com/live/flight/{AIRLINE}{FLIGHTNUMBER} |
When URLs weren't fetched from the server (compact mode or large results), construct them
manually from the flight data fields you already have.
Compact Mode Field Mapping
Standard → Compact: flightnumber → flt, aircrafttype → acft,
departureicaocode → orig, arrivalicaocode → dest, flightdurationmins → durMins,
departuretimelocal → depLocal, arrivaltimelocal → arrLocal.
Helpful Follow-ups
End responses with a relevant suggestion:
- "Would you like SimBrief dispatch links for any of these?"
- "Want to explore different aircraft on this route?"
- "Should I narrow these down by time of day or specific airports?"
Error Handling
If a search returns few or no results:
- Suggest broadening criteria (wider duration, remove aircraft filter).
- Verify ICAO codes are correct.
- Offer to search similar routes or airlines.
- Use
listAircraftTypes to confirm aircraft availability.
Advanced: Custom SQL
For complex queries the standard search can't handle, use queryDatabase:
SELECT * FROM flightawareflightdata
WHERE airline = 'DLH'
AND aircrafttype = 'A359'
AND flightdurationmins BETWEEN 540 AND 570
ORDER BY departuretimelocal
LIMIT 30;