loading…
Search for a command to run...
loading…
Provides LLM access to the Event Monitoring System (EMS) API for comprehensive flight data analytics and monitoring. It enables users to query flight records, r
Provides LLM access to the Event Monitoring System (EMS) API for comprehensive flight data analytics and monitoring. It enables users to query flight records, retrieve time-series analytics, and explore aircraft assets or database hierarchies.
An MCP (Model Context Protocol) server that provides LLM access to the EMS (Event Management System) API for flight data analytics.
git clone <repo-url>
cd ems-mcp
# Create virtual environment
uv venv
# Activate virtual environment
# Windows (cmd):
.venv\Scripts\activate
# Windows (PowerShell):
.venv\Scripts\Activate.ps1
# macOS / Linux:
source .venv/bin/activate
# Install the package
uv pip install -e .
This creates an ems-mcp executable inside the virtual environment:
.venv\Scripts\ems-mcp.exe.venv/bin/ems-mcpAll MCP clients need three values to connect to your EMS server:
| Variable | Description |
|---|---|
EMS_BASE_URL |
EMS server URL (e.g. https://your-ems-server.com) -- do not include /api |
EMS_USERNAME |
Your EMS username |
EMS_PASSWORD |
Your EMS password |
Create a .mcp.json file in the project root:
{
"mcpServers": {
"ems-mcp": {
"command": "C:\\absolute\\path\\to\\ems-mcp\\.venv\\Scripts\\ems-mcp.exe",
"args": [],
"env": {
"EMS_BASE_URL": "https://your-ems-server.com",
"EMS_USERNAME": "your-username",
"EMS_PASSWORD": "your-password"
}
}
}
}
Claude Code reads .mcp.json automatically when you open the project directory.
Edit claude_desktop_config.json:
%APPDATA%\Claude\claude_desktop_config.json~/Library/Application Support/Claude/claude_desktop_config.jsonAdd the server to the mcpServers block:
{
"mcpServers": {
"ems-mcp": {
"command": "C:\\absolute\\path\\to\\ems-mcp\\.venv\\Scripts\\ems-mcp.exe",
"args": [],
"env": {
"EMS_BASE_URL": "https://your-ems-server.com",
"EMS_USERNAME": "your-username",
"EMS_PASSWORD": "your-password"
}
}
}
}
On macOS/Linux, use the Unix-style path to the executable (e.g. /home/user/ems-mcp/.venv/bin/ems-mcp).
Restart Claude Desktop after saving changes.
Create .gemini/settings.json in the project directory:
{
"mcpServers": {
"ems-mcp": {
"command": "C:\\absolute\\path\\to\\ems-mcp\\.venv\\Scripts\\ems-mcp.exe",
"args": [],
"env": {
"EMS_BASE_URL": "https://your-ems-server.com",
"EMS_USERNAME": "your-username",
"EMS_PASSWORD": "your-password"
}
}
}
}
list_ems_systems -- List available EMS systems (start here)list_databases -- Navigate the database hierarchyfind_fields -- Find fields by keyword (mode="search"), browse the field group tree (mode="browse"), or BFS-traverse entity-type databases (mode="deep"); returns numbered [N] references usable directly in other toolsget_field_info -- Get field metadata and discrete value mappingssearch_analytics -- Search for time-series analytics by name (altitude, airspeed, etc.)get_result_id -- (Deprecated) Resolve [N] references to full opaque IDs; no longer needed in the standard workflowquery_database -- Query flight records with filters, sorting, and aggregationquery_flight_analytics -- Get time-series data for specific flightsget_assets -- Get reference data: asset_type of fleets, aircraft (optionally filtered by fleet_id), airports, or flight_phasesping_system -- Check whether an EMS system is onlineThe server also exposes MCP resources for stable reference data:
ems://workflow-guide -- Discovery-to-query workflow guideems://systems -- List of available EMS systems (cached)ems://systems/{system_id}/fleets -- Fleet catalog for a system (cached)ems://systems/{system_id}/airports -- Airport reference data (cached)ems://databases/common-fields -- Index of databases with curated field vocabulariesems://databases/{database_name}/common-fields -- Curated common fields for a named database (e.g. FDW Flights)Reusable templates that pre-encode multi-step EMS workflows:
analyze_flights -- Discovery -> query -> analytics for a tail number / date rangecompare_flights -- Side-by-side time-series comparison between two flight IDssearch_flight_parameters -- Discover available fields by keyword, with entity-database supportuv pip install -e ".[dev]"
pytest tests/
401 Unauthorized -- Check that EMS_USERNAME and EMS_PASSWORD are correct and that the account has API access.
Connection errors -- Verify EMS_BASE_URL does not include a /api suffix. It should be just the server URL (e.g. https://your-ems-server.com).
Server not found by MCP client -- Make sure the path to the ems-mcp executable in your config is an absolute path and that the virtual environment has been created (uv venv && uv pip install -e .).
Run in your terminal:
claude mcp add ems-mcp-server -- npx CSA PROJECT - FZCO © 2026 IFZA Business Park, DDP, Premises Number 31174 - 001
Security
Low riskAutomated heuristic from public metadata — not a security guarantee.