Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| EMS_BASE_URL | Yes | EMS server URL (e.g. https://your-ems-server.com) -- do not include /api | |
| EMS_PASSWORD | Yes | Your EMS password | |
| EMS_USERNAME | Yes | Your EMS username |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tasks | {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
} |
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_assets | Get reference data: fleets, aircraft, airports, or flight phases. Args: ems_system_id: EMS system ID (from list_ems_systems). asset_type: Type of assets to retrieve. fleet_id: Filter aircraft by fleet ID (only for asset_type="aircraft"). Returns: Formatted list of the requested asset type. |
| ping_system | Check if an EMS system is online and responsive. Args: ems_system_id: EMS system ID. Returns: System status. |
| list_ems_systems | List available EMS systems. Start here to get system IDs for all other tools. Returns: EMS systems with IDs, names, and descriptions. |
| list_databases | Navigate the database hierarchy. Call without group_id for root level. The "FDW Flights" database (Flight Data Warehouse) contains flight records. Args: ems_system_id: EMS system ID (from list_ems_systems). group_id: Group ID to navigate into (omit for root). Returns: Databases and subgroups at the specified level. |
| find_fields | Find fields in a database. Three modes available:
Results show numbered references [N] that can be used directly in query_database, get_field_info, etc. Field names also work. Args: ems_system_id: EMS system ID. database_id: Database ID or name (e.g. "FDW Flights"). mode: "search" (fast keyword), "browse" (navigate groups), or "deep" (BFS). search_text: Search keyword (required for search and deep modes). group_id: Field group ID to navigate into (browse mode only). max_results: Maximum results (search/deep modes, default: 50). max_depth: Maximum traversal depth (deep mode, default: 5, max: 10). max_groups: Maximum API calls (deep mode, default: 50, max: 200). show_ids: If True, show full IDs inline instead of numbered references. Returns: Fields with names, types, and IDs (or numbered references). |
| get_field_info | Get field metadata including type, units, and discrete value mappings. Essential for discrete fields: shows numeric code-to-label mappings needed for filtering. String labels in filters are auto-resolved, but use this to verify available values. Args: ems_system_id: EMS system ID. database_id: Database ID or name (e.g. "FDW Flights"). field_id: Field reference: [N] number from find_fields, field name (e.g. "Takeoff Airport Name"), or bracket-encoded ID. Returns: Field details with discrete value mappings if applicable. |
| search_analytics | Search for time-series analytics by name (altitude, airspeed, etc.). You can pass analytic names directly to query_flight_analytics -- raw IDs are not needed. Use this tool to discover available analytic names. Args: ems_system_id: EMS system ID. search_text: Keyword to search for in analytic names. group_id: Optional analytic group ID to narrow search. max_results: Maximum results (default: 50). show_ids: If True, show full IDs inline. Returns: Matching analytics with names, types, units, and descriptions. |
| get_result_id | DEPRECATED: query_database and get_field_info now accept [N] reference numbers and field names directly. This tool is no longer needed in the standard workflow. Retrieve full opaque IDs for numbered [N] references from search results. Args: result_numbers: Reference numbers from search results (e.g., [1, 3, 5]). Returns: The name and full ID for each requested result. |
| query_database | Query flight records from a database. Accepts field names (e.g. "Flight Date"), [N] reference numbers from find_fields, or raw bracket-encoded IDs. Database names (e.g. "FDW Flights") are also resolved automatically. Supports aggregation (avg/count/max/min/stdev/sum/var) and discrete filter auto-resolution (string labels resolved to numeric codes automatically). Args: ems_system_id: EMS system ID. database_id: Database ID or name (e.g. "FDW Flights"). fields: Fields to retrieve. Each has field_id (name, [N] ref, or bracket ID), optional alias, optional aggregate. filters: Filter conditions (AND-combined). Each has field_id, operator (equal/notEqual/greaterThan/lessThan/between/in/like/isNull/etc.), value. order_by: Sort order. Each has field_id, optional direction (asc/desc). limit: Max rows (1-10000, default: 100). format: 'display' (human-readable, default) or 'raw' (numeric codes). output_format: 'table' (default), 'csv' (compact), or 'json' (structured). Returns: Results in the requested output format. |
| query_flight_analytics | Get time-series data (altitude, airspeed, etc.) for specific flights. Flight IDs come from query_database. Accepts human-readable analytic names (e.g. "Airspeed") which are resolved automatically, or raw IDs from search_analytics. Args: ems_system_id: EMS system ID. flight_ids: Flight record IDs (max 10, from query_database). analytics: Analytic names or IDs (max 20). e.g. ["Airspeed", "Altitude"]. start_offset: Start time in seconds from flight start. end_offset: End time in seconds from flight start. sample_rate: Samples per second (default: 1.0). output_format: 'table' (default), 'csv' (compact), or 'json' (structured). Returns: Per-flight time-series data in the requested output format. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| analyze_flights | Analyze flight data for a specific aircraft. Guides through the full discovery -> query -> analytics workflow. Args: tail_number: Aircraft tail number (e.g. "VH-VXZ"). Leave empty to query all. date_range: Date range for flights (e.g. "2024-01-01 to 2024-01-31"). parameters: Comma-separated analytics to retrieve (e.g. "Altitude, Airspeed"). |
| compare_flights | Compare time-series analytics between two flights. Args: flight_id_1: First flight record ID. Leave empty to search. flight_id_2: Second flight record ID. Leave empty to search. parameters: Comma-separated analytics to compare. |
| search_flight_parameters | Search for available flight parameters/fields in the database. Args: search_term: What to search for (e.g. "fuel", "engine", "altitude"). database_type: "standard" for normal databases, "entity" for entity-type. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| workflow_guide | Discovery-to-query workflow guide for EMS flight data analysis. |
| systems_resource | List of available EMS systems (cached). |