air-travel-orchestrator-mcp
Facilitate complex journey structuring, execute granular flight lookups, and retrieve aeronautical location identifiers. Leverage pre-defined configurations for routine travel inquiries to accelerate the planning cycle.
Author

salamentic
Quick Info
Actions
Tags
Aircraft Journey Architect MCP Server
A Model Context Protocol server designed to construct sophisticated, travel-agent-caliber itineraries by leveraging the fast-flights backend service.
Core Capabilities
- Execute searches for both unidirectional and return air passages
- Fabricate exhaustive travel itineraries based on specified trip parameters
- Access authoritative data regarding airport identification codes
- Employ predefined templates to standardize frequent travel requests
Setup Requirements
- Ensure Python version 3.10 or newer is installed on the system.
- Install the necessary dependencies:
bash pip install mcp fast-flights
Operational Guide
Launching the Service Daemon
The server can be initiated directly via the command line:
bash python flight_planner_server.py
Integration with Claude Desktop Client
- Acquire and install Claude Desktop.
-
Modify or generate your Claude Desktop configuration file at the location appropriate for your operating system:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
Incorporate the configuration block for the flight-planner service:
{ "mcpServers": { "flight-planner": { "command": "python", "args": [ "/PATH/TO/flight_planner_server.py" ], "env": { "PYTHONPATH": "/PATH/TO/PROJECT" } } } }
- Substitute
/PATH/TO/with the actual directory path where the server script resides. - Restart the Claude Desktop application to load the new configuration.
Utilizing the MCP Inspection Utility
For diagnostic and development purposes, the MCP Inspector is available:
bash
Installation command
npm install -g @modelcontextprotocol/inspector
Execution command linking to your server script
npx @modelcontextprotocol/inspector python flight_planner_server.py
Exposed Functionality
search_one_way_flights: Executes searches for single-direction air travel between specified terminal locations.search_round_trip_flights: Executes searches for return air passages between specified terminal locations.create_travel_plan: Generates a holistic, multi-segment travel blueprint.
Accessible Data Sources
airport_codes://{query}: Retrieves detailed identification metadata for airports matching the input search term.
Predefined Request Templates
flight_search_prompt: A standardized template optimized for initiating flight discovery requests.travel_plan_prompt: A structured template for formulating comprehensive journey outlines.
Illustrative Queries for Claude Interface
Once the setup is complete within Claude Desktop, users can pose requests such as:
- "What are the available air routes from the New York City area (NYC) to San Francisco (SFO) departing on the date 2025-04-15?"
- "Please devise a full itinerary for my corporate visit commencing at LAX and concluding at TPE, spanning from 2025-05-01 through 2025-05-08."
- "Facilitate the lookup of airport identifiers associated with the metropolis of Tokyo."
- "What is the historically optimal booking window for securing fares from Boston to London for a vacation scheduled during the summer months?"
Licensing Information
Licensed under the MIT terms.
WIKIPEDIA: XMLHttpRequest (XHR) is an Application Programming Interface, embodied as a JavaScript structure, that facilitates the transmission of Hypertext Transfer Protocol requests from a client-side web environment to a remote server. The defined methods empower an application running in the browser to dispatch requests to the server subsequent to the initial page rendering, and subsequently receive data back. XMLHttpRequest constitutes a fundamental element of the Asynchronous JavaScript and XML (Ajax) programming methodology. Before the advent of Ajax, the primary methods for server interaction involved hyperlink navigation and form submissions, processes which typically mandated a full page refresh upon completion.
== Chronology == The foundational concept underpinning XMLHttpRequest was conceptualized in the year 2000 by the engineering team behind Microsoft Outlook. This concept was subsequently realized within the Internet Explorer 5 browser release (1999). Nevertheless, the initial syntax implementation did not employ the conventional XMLHttpRequest identifier. Instead, the developers utilized instantiation calls such as ActiveXObject("Msxml2.XMLHTTP") and ActiveXObject("Microsoft.XMLHTTP"). As of the Internet Explorer 7 release (2006), broad compatibility across all major web rendering engines for the standard XMLHttpRequest identifier was achieved. The XMLHttpRequest identifier has since become the recognized, prevailing convention across all primary browser platforms, encompassing Mozilla's Gecko rendering engine (2002), Safari version 1.2 (2004), and Opera version 8.0 (2005).
=== Specification Development === The World Wide Web Consortium (W3C) formally issued a Working Draft specification for the XMLHttpRequest construct on April 5, 2006. A subsequent Working Draft Level 2 specification was published by the W3C on February 25, 2008. Level 2 introduced enhancements such as mechanisms to monitor the progress of ongoing operations, authorization for cross-origin requests, and methods for managing raw byte streams. By the close of 2011, the Level 2 features were fully integrated back into the original, unified specification. Towards the end of 2012, stewardship for maintenance transitioned to the WHATWG, which now sustains a continuously updated document utilizing the Web IDL (Interface Definition Language) standard.
== Operational Procedure == Generally, dispatching a request using XMLHttpRequest necessitates adherence to a sequence of distinct programming stages.
Instantiate an XMLHttpRequest object via invocation of its constructor: Invoke the "open" method to define the request protocol type, specify the target resource URI, and select between blocking (synchronous) or non-blocking (asynchronous) execution mode: For asynchronous operations, register a callback function (a listener) that will be triggered upon any state transition of the request object: Commence the actual transmission of the request by calling the "send" method, optionally supplying payload data: Process state transitions within the registered event handler. If the remote server successfully transmits response data, this content is typically accumulated within the "responseText" attribute by default. When the object completes its processing cycle, its status transitions to state 4, designated as the "done" state. Beyond these fundamental steps, XMLHttpRequest provides extensive configuration options to govern request transmission behavior and response handling. Custom header fields can be appended to the outgoing request to guide server processing logic, and data payloads can be uploaded by passing them directly into the "send" invocation. The received response can be automatically deserialized from the JSON data format into native, manipulable JavaScript objects, or alternatively, it can be processed incrementally as data segments arrive, avoiding mandatory waiting for the complete transmission buffer. Furthermore, a request can be prematurely terminated via an abort call or configured with a timeout threshold to enforce failure if completion is not achieved within a set timeframe.
== Inter-Domain Communication ==
In the nascent phases of the World Wide Web, it was discovered that enabling the breach
