Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@EMS MCP ServerShow me the 10 most recent flights for aircraft N123AB"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
EMS MCP Server
An MCP (Model Context Protocol) server that provides LLM access to the EMS (Event Monitoring System) API for flight data analytics.
Prerequisites
Python 3.11+
uv package manager
Installation
This creates an ems-mcp executable inside the virtual environment:
Windows:
.venv\Scripts\ems-mcp.exemacOS / Linux:
.venv/bin/ems-mcp
Configuration
All MCP clients need three values to connect to your EMS server:
Variable | Description |
| EMS server URL (e.g. |
| Your EMS username |
| Your EMS password |
Claude Code (CLI)
Create a .mcp.json file in the project root:
Claude Code reads .mcp.json automatically when you open the project directory.
Claude Desktop
Edit claude_desktop_config.json:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Add the server to the mcpServers block:
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.
Gemini CLI
Create .gemini/settings.json in the project directory:
Available Tools
Discovery
list_ems_systems-- List available EMS systemslist_databases-- Navigate database hierarchylist_fields-- Navigate field hierarchysearch_fields-- Search for field IDs by nameget_field_info-- Get detailed field metadata and discrete value mappingssearch_analytics-- Search for time-series analytic IDs
Querying
query_database-- Query flight records with filters and sortingquery_flight_analytics-- Get time-series data for specific flights
Assets
list_fleets-- List aircraft fleetslist_aircraft-- List aircraft (tail numbers)list_airports-- List airports with codes and locationslist_flight_phases-- List flight phase definitionsping_system-- Check system health and server time
Development
Troubleshooting
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 .).