{"openapi":"3.0.3","info":{"title":"Gnist Context — OpenSky Network (Aircraft Tracking)","description":"Live aircraft tracking via ADS-B — real-time positions, flight trajectories, and aircraft search. Covers global airspace with position, altitude, speed, heading, and callsign data.\n\n- **MCP endpoint:** `https://context.gnist.ai/mcp/opensky/`\n- **Toolkit page:** `/toolkits/opensky`\n- **Full API spec:** `/api/openapi.json`\n- **Get an API key:** `/signup`","version":"1.0.0","contact":{"name":"GnistAI","url":"https://gnist.ai"}},"servers":[{"url":"https://context.gnist.ai","description":"Production"}],"paths":{"/rest/opensky/get_aircraft_states":{"post":{"tags":["Transport"],"summary":"get_aircraft_states","description":"Get live aircraft positions from the OpenSky Network.\n\nReturns real-time ADS-B state vectors for aircraft currently in\nthe air. Filter by geographic bounding box or specific ICAO24\ntransponder addresses. Data includes position, altitude, speed,\nheading, and country of origin.\n\nTip: Use a bounding box to focus on a region (e.g. lamin=40,\nlamax=50, lomin=-5, lomax=10 for Western Europe).\n\nArgs:\n    lamin: Lower latitude bound. All 4 bbox params required together.\n    lamax: Upper latitude bound.\n    lomin: Lower longitude bound.\n    lomax: Upper longitude bound.\n    icao24: ICAO24 hex addresses to filter by. Max 10.\n    limit: Maximum aircraft to return (1-2000, default 200).\n\nReturns:\n    Live aircraft with position, altitude, speed, heading, callsign.","operationId":"opensky_get_aircraft_states","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"lamin":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Lower latitude bound (WGS-84 degrees, e.g. 45.0). All four bbox params required together."},"lamax":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Upper latitude bound (e.g. 50.0)."},"lomin":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Lower longitude bound (e.g. -5.0)."},"lomax":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Upper longitude bound (e.g. 5.0)."},"icao24":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"ICAO24 hex addresses to filter (e.g. [\"3c6444\", \"a1b2c3\"]). Max 10."},"limit":{"default":200,"description":"Maximum aircraft to return (1-2000, default 200).","type":"integer"}},"type":"object"}}}}}},"/rest/opensky/get_flight_track":{"post":{"tags":["Transport"],"summary":"get_flight_track","description":"Get the flight trajectory (waypoints) for an aircraft.\n\nReturns the path an aircraft has taken, with latitude, longitude,\naltitude, and heading at each waypoint. Use time_value=0 for the\ncurrent live track, or a specific Unix timestamp for a historical\nflight (up to 30 days back).\n\nArgs:\n    icao24: ICAO24 hex address (6 hex characters, e.g. \"3c6444\").\n    time_value: Unix timestamp within the flight. 0 for live track.\n\nReturns:\n    Flight path with callsign, start/end times, and waypoints\n    (time, lat, lon, altitude, heading, on_ground).","operationId":"opensky_get_flight_track","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"icao24":{"description":"ICAO24 hex address of the aircraft (e.g. \"3c6444\"). Use search_aircraft to find addresses.","type":"string"},"time_value":{"default":0,"description":"Unix timestamp within the flight. Use 0 for current/live track.","type":"integer"}},"required":["icao24"],"type":"object"}}}}}},"/rest/opensky/search_aircraft":{"post":{"tags":["Transport"],"summary":"search_aircraft","description":"Search for a specific aircraft by ICAO24 address or callsign.\n\nTwo search modes:\n- By ICAO24: directly queries for the aircraft (no bbox needed).\n- By callsign: searches within a bounding box region and filters\n  by callsign match. Bounding box is required for callsign search.\n\nArgs:\n    icao24: ICAO24 hex address to look up directly.\n    callsign: Callsign to search for (requires bounding box).\n    lamin: Lower latitude bound (for callsign search).\n    lamax: Upper latitude bound.\n    lomin: Lower longitude bound.\n    lomax: Upper longitude bound.\n    limit: Maximum results (1-200, default 50).\n\nReturns:\n    Matching aircraft with position, altitude, speed, heading.","operationId":"opensky_search_aircraft","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"icao24":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ICAO24 hex address to look up (e.g. \"3c6444\"). Directly queries the aircraft."},"callsign":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Callsign to search for (e.g. \"DLH9MT\", \"RYR1234\"). Requires bounding box."},"lamin":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Lower latitude bound (required for callsign search)."},"lamax":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Upper latitude bound."},"lomin":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Lower longitude bound."},"lomax":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Upper longitude bound."},"limit":{"default":50,"description":"Maximum results (1-200, default 50).","type":"integer"}},"type":"object"}}}}}},"/rest/opensky/report_feedback":{"post":{"tags":["Transport"],"summary":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","operationId":"opensky_report_feedback","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"}}}}}}},"tags":[{"name":"Transport","description":"Data sources: Transport"}],"components":{"securitySchemes":{"ApiKeyHeader":{"type":"apiKey","in":"header","name":"gnist-api-key","description":"API key passed via request header."},"ApiKeyQuery":{"type":"apiKey","in":"query","name":"gnist_api_key","description":"API key passed via query parameter."}}}}