EMS MCP Server
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.
README
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
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:
- Windows:
.venv\Scripts\ems-mcp.exe - macOS / Linux:
.venv/bin/ems-mcp
Configuration
All 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 |
Claude Code (CLI)
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.
Claude Desktop
Edit claude_desktop_config.json:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Add 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.
Gemini CLI
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"
}
}
}
}
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
uv pip install -e ".[dev]"
pytest tests/
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 .).
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
E2B
Using MCP to run code via e2b.