EMS MCP Server
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 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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_assetsC | 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_systemA | Check if an EMS system is online and responsive. Args: ems_system_id: EMS system ID. Returns: System status. |
| list_ems_systemsA | List available EMS systems. Start here to get system IDs for all other tools. Returns: EMS systems with IDs, names, and descriptions. |
| list_databasesA | 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_fieldsA | 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_infoA | 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_analyticsA | 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_idA | 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_databaseB | 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_analyticsA | 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). |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mattsq/ems-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server