Skip to main content
Glama
AiAgentKarl

Aviation MCP Server

by AiAgentKarl

Aviation MCP Server

MCP server giving AI agents access to real-time aviation data — live flight tracking, airport weather, airline and airport information.

Features

Tool

Description

Source

track_live_flights

Current flights worldwide or in a specific area

OpenSky Network

track_flight

Track a specific flight by callsign or ICAO24

OpenSky Network

get_flight_path

Historical flight path/trajectory

OpenSky Network

get_airport_arrivals

Recent arrivals at an airport

OpenSky Network

get_airport_departures

Recent departures from an airport

OpenSky Network

get_airport_weather

Current METAR weather at an airport

AviationWeather.gov

get_weather_forecast

TAF weather forecast for an airport

AviationWeather.gov

get_aviation_warnings

Active SIGMETs and aviation warnings

AviationWeather.gov

get_airport_info

Airport details (location, timezone, etc.)

AirLabs

get_airline_info

Airline details (fleet, hub, status)

AirLabs

Related MCP server: Frostbyte MCP

Data Sources

  • OpenSky Network — Live flight tracking, arrivals/departures, flight paths (no API key needed, 100 calls/day)

  • AviationWeather.gov — METAR, TAF, SIGMETs (no API key needed, 100 req/min)

  • AirLabs — Airport and airline database (free tier: 1,000 calls/month, API key required)

Installation

With pip

pip install aviation-mcp-server

From source

git clone https://github.com/AiAgentKarl/aviation-mcp-server.git
cd aviation-mcp-server
pip install -e .

Configuration

API Keys

Copy .env.example to .env and add your keys:

cp .env.example .env
# AirLabs — Optional (https://airlabs.co)
AIRLABS_API_KEY=your-key-here

Note: OpenSky Network and AviationWeather.gov require no API key. The AirLabs key is only needed for get_airport_info and get_airline_info.

Claude Desktop / Claude Code

Add to your MCP configuration:

{
  "mcpServers": {
    "aviation": {
      "type": "stdio",
      "command": "python",
      "args": ["-m", "src.server"],
      "env": {
        "AIRLABS_API_KEY": "your-key-here"
      }
    }
  }
}

Using uvx (no install needed)

{
  "mcpServers": {
    "aviation": {
      "type": "stdio",
      "command": "uvx",
      "args": ["aviation-mcp-server"],
      "env": {
        "AIRLABS_API_KEY": "your-key-here"
      }
    }
  }
}

Usage Examples

Track flights over Germany:

"Show me all flights currently over Germany"

Check airport weather:

"What's the current weather at Frankfurt Airport?"

Track a specific flight:

"Track Lufthansa flight DLH400"

Get airport arrivals:

"Show me recent arrivals at JFK"

Aviation warnings:

"Are there any active SIGMETs?"

Airport Codes

This server uses ICAO airport codes (4 letters) for weather and flight data:

Airport

IATA

ICAO

Frankfurt

FRA

EDDF

Munich

MUC

EDDM

Berlin

BER

EDDB

New York JFK

JFK

KJFK

London Heathrow

LHR

EGLL

Paris CDG

CDG

LFPG

Tokyo Narita

NRT

RJAA

Rate Limits

API

Limit

Auth

OpenSky Network

100 calls/day (anonymous)

None

AviationWeather.gov

100 requests/minute

None

AirLabs

1,000 calls/month (free tier)

API Key

Tech Stack

  • Python 3.11+

  • MCP SDK (FastMCP)

  • httpx (async HTTP)

  • OpenSky Network, AviationWeather.gov, AirLabs APIs


More MCP Servers by AiAgentKarl

Category

Servers

🔗 Blockchain

Solana

🌍 Data

Weather · Germany · Agriculture · Space · Aviation · EU Companies

🔒 Security

Cybersecurity · Policy Gateway · Audit Trail

🤖 Agent Infra

Memory · Directory · Hub · Reputation

🔬 Research

Academic · LLM Benchmark · Legal

→ Full catalog (40+ servers)

License

MIT

Available Tools

10 tools
get_airline_infoA

Airline-Details abrufen (AirLabs).

Suche nach IATA-Code, ICAO-Code oder Name. Gibt Name, Herkunftsland, IATA/ICAO-Codes und Status zurück.

Benötigt einen AirLabs API-Key (kostenlos, 1.000 Calls/Monat).

Args: iata_code: IATA-Code der Airline (z.B. "LH" für Lufthansa, "UA" für United) icao_code: ICAO-Code der Airline (z.B. "DLH" für Lufthansa, "UAL" für United) name: Name der Airline (z.B. "Lufthansa", "Ryanair")

ParametersJSON Schema
NameRequiredDescriptionDefault
iata_codeNo
icao_codeNo
nameNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses the need for an AirLabs API key, rate limit of 1000 calls/month, and the return fields (name, country, codes, status). Missing error handling details but sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise with a header, short intro, and bullet-pointed Args. No unnecessary information. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains the return fields. Parameter descriptions are clear. For a simple lookup tool, it is complete enough, though simultaneous parameter usage could be clarified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% coverage, but description provides detailed examples for each parameter (e.g., 'LH' for Lufthansa) and explains that they are search criteria. It adds meaning beyond the schema's basic type definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Airline-Details abrufen (AirLabs)' and explains it searches by IATA code, ICAO code, or name. This distinguishes it from sibling tools like get_airport_info or track_flight.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says to search by code or name and mentions needing an API key with rate limits. It does not explicitly exclude other uses but is clear enough for an agent to decide when to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_airport_arrivalsA

Letzte Ankünfte an einem Flughafen abrufen (OpenSky).

Args: airport_icao: ICAO-Code des Flughafens (z.B. "EDDF" für Frankfurt, "KJFK" für New York JFK, "EDDM" für München) hours: Zeitraum in Stunden zurück (Standard: 2, Maximum: 24)

ParametersJSON Schema
NameRequiredDescriptionDefault
airport_icaoYes
hoursNo

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description does not disclose behavioral traits such as rate limits, authentication requirements, or data freshness. It only states the basic purpose, leaving agents unaware of important operational constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the tool's purpose. Parameter explanations are clear and contained within a structured docstring format. No superfluous information is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool without output schema, the description adequately covers parameter semantics. However, it omits details about the return format, pagination, or error handling, which could be useful for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema description coverage, the description provides concrete examples for airport_icao (e.g., EDDF, KJFK, EDDM) and explains the hours parameter with default and maximum values. This adds significant clarity beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Letzte Ankünfte an einem Flughafen abrufen (OpenSky)' meaning 'Retrieve latest arrivals at an airport'. It specifies the resource (arrivals) and action (retrieve), and it effectively distinguishes from siblings like get_airport_departures.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for airport arrivals, but lacks explicit guidance on when to use this tool versus alternatives like get_airport_departures. No exclusions or context are provided, relying on sibling names for differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_airport_departuresA

Letzte Abflüge von einem Flughafen abrufen (OpenSky).

Args: airport_icao: ICAO-Code des Flughafens (z.B. "EDDF" für Frankfurt, "KJFK" für New York JFK, "EDDM" für München) hours: Zeitraum in Stunden zurück (Standard: 2, Maximum: 24)

ParametersJSON Schema
NameRequiredDescriptionDefault
airport_icaoYes
hoursNo

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description mentions 'OpenSky' as the data source and includes a time range parameter, but it fails to disclose critical behavioral traits such as authentication requirements, rate limits, pagination behavior, error handling, or whether incomplete data may be returned. The lack of annotations increases the burden on the description, which is not met.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is succinct (two sentences plus argument list) and front-loaded with the purpose. Every sentence adds value: the first line states the function, the 'Args' section documents parameters. No redundant or extraneous text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple listing tool with two parameters and no output schema, the description covers the core functionality and parameter details. However, it omits information about the return format, result count, or potential errors, which would enhance completeness for an agent. Still, it is mostly adequate given the tool's low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by providing clear explanations for both parameters: 'airport_icao' includes concrete ICAO code examples (EDDF, KJFK, EDDM), and 'hours' specifies default (2) and maximum (24) values, adding significant meaning beyond the schema's minimal titles and types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Letzte Abflüge von einem Flughafen abrufen' (retrieve last departures from an airport), using a specific verb and resource. It distinguishes from sibling tools like 'get_airport_arrivals' and 'get_airport_info' by specifying 'departures'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving last departures from an airport but does not provide explicit guidance on when to use this tool versus alternatives like 'get_airport_arrivals' or 'track_live_flights'. No when-not-to-use or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_airport_infoA

Flughafen-Details abrufen (AirLabs).

Suche nach IATA-Code, ICAO-Code oder Land. Gibt Name, Standort, Zeitzone und weitere Details zurück.

Benötigt einen AirLabs API-Key (kostenlos, 1.000 Calls/Monat).

Args: iata_code: IATA-Code des Flughafens (z.B. "JFK", "FRA", "MUC") icao_code: ICAO-Code des Flughafens (z.B. "KJFK", "EDDF", "EDDM") country_code: ISO-Ländercode für alle Flughäfen eines Landes (z.B. "DE", "US")

ParametersJSON Schema
NameRequiredDescriptionDefault
iata_codeNo
icao_codeNo
country_codeNo

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so description carries full burden. It reveals it's read-only (implicitly), requires an API key, and has a 1,000 calls/month limit. However, it does not discuss error handling, idempotency, or exact return format beyond listing fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is succinct: two sentences plus a bulleted argument list. Every sentence provides value, and the purpose is front-loaded. No fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description partially covers return values but lacks details on structure or error behavior. It also omits usage constraints (e.g., providing at least one param) and does not differentiate from siblings despite sibling list existing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must add meaning. It lists params with examples (e.g., IATA 'JFK') and indicates they are search filters. However, it does not explain mutual exclusivity or whether multiple can be combined, leaving ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves airport details (Flughafen-Details) and specifies search by IATA, ICAO, or country code. It lists return data (name, location, timezone) and distinguishes from siblings like arrivals/departures/weather.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It mentions API key requirement and call limit, but does not explicitly state when to use this tool versus siblings or how to combine parameters. It implies one search criterion but does not clarify if multiple are allowed or if at least one is required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_airport_weatherA

Aktuelles Flugwetter (METAR) an einem Flughafen abrufen.

METAR enthält: Wind, Sichtweite, Wolken, Temperatur, Luftdruck.

Args: airport_icao: ICAO-Code des Flughafens (z.B. "KJFK" für New York JFK, "EDDF" für Frankfurt, "EDDM" für München)

ParametersJSON Schema
NameRequiredDescriptionDefault
airport_icaoYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description adds context on data content (wind, visibility, etc.) but omits details like data freshness, rate limits, or authentication needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is succinct with a clear structure: purpose, data summary, parameter documentation. No unnecessary content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given one parameter and no output schema, the description adequately explains the tool's function and returned data (METAR elements). Could specify return format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% but description gives concrete ICAO code examples (e.g., 'KJFK', 'EDDF'), adding meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves current flight weather (METAR) at an airport, with a list of data included. The tool name and context signal 'get_weather_forecast' as a sibling distinguish it as real-time vs. forecast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for current weather but does not explicitly state when to use this tool vs. siblings like 'get_weather_forecast' or any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_aviation_warningsA

Aktive SIGMETs und Flugwetter-Warnungen weltweit abrufen.

SIGMETs warnen vor gefährlichem Wetter für den Flugverkehr: Gewitter, Vereisung, Turbulenz, Vulkanasche, Sandstürme.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must bear full responsibility for behavioral disclosure. It only states what the tool does (retrieve warnings) without mentioning any traits such as data freshness, update frequency, output format, or potential rate limits. This leaves agents under-informed about what to expect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded: the first sentence states the main action, and the second adds explanatory detail about SIGMETs. Every sentence is informative, and there is no redundant information. It is appropriately sized for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and no output schema, the description should inform the agent about the return value. It does not mention the response structure (e.g., list of warnings, format), which is a gap. However, for a simple retrieval tool with no complexity, the description is minimally adequate but could be improved by specifying output type.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and 100% schema coverage (since the schema is empty). According to guidelines, a baseline of 4 applies when there are no parameters; the description does not need to add parameter-specific details. The description appropriately focuses on the tool's purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves active SIGMETs and aviation weather warnings worldwide, and explains what SIGMETs warn about (thunderstorms, icing, turbulence, etc.). It uses a specific verb ('abrufen' meaning 'retrieve') and identifies the resource, distinguishing it from sibling tools like get_airport_weather or get_weather_forecast which focus on general weather or specific locations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context on when to use the tool—to access active global aviation warnings—and explains the types of hazards covered. However, it does not explicitly state when not to use it or mention alternative tools for related tasks such as airport-specific weather or flight tracking, though the sibling names imply different scopes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_flight_pathB

Historischen Flugpfad (Trajektorie) eines Flugzeugs abrufen.

Gibt den aktuellsten Track mit Wegpunkten zurück.

Args: icao24: ICAO24-Transponder-Adresse des Flugzeugs (z.B. "3c6752")

ParametersJSON Schema
NameRequiredDescriptionDefault
icao24Yes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits such as error handling (e.g., if no track exists), data freshness, or whether the tool is read-only. For a retrieval tool, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and to the point, consisting of two sentences and a parameter explanation. No redundant information, though the format mixes German and English.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one required parameter, no output schema), the description covers basic functionality. However, it does not describe the return format (e.g., structure of waypoints) or behavior when no data exists, leaving gaps in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage for the 'icao24' parameter, but the description adds a clear explanation: 'ICAO24-Transponder-Adresse des Flugzeugs (z.B. "3c6752")'. This compensates for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the tool's purpose: retrieving the historical flight path (trajectory) of an aircraft, returning the latest track with waypoints. The use of 'historischen' (historical) distinguishes it from sibling live tracking tools, though not explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like track_flight or track_live_flights. It does not mention prerequisites or context for use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_weather_forecastB

Flugwetter-Vorhersage (TAF) für einen Flughafen abrufen.

TAF deckt typischerweise 24-30 Stunden ab und enthält erwartete Wetteränderungen in Zeitgruppen.

Args: airport_icao: ICAO-Code des Flughafens (z.B. "KJFK" für New York JFK, "EDDF" für Frankfurt, "EDDM" für München)

ParametersJSON Schema
NameRequiredDescriptionDefault
airport_icaoYes

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but only mentions TAF coverage and time groups. It omits behavioral details like data source, update frequency, error handling, or safety (read-only). Minimal disclosure beyond the obvious.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences and an Args section. It is front-loaded with the purpose and parameter explanation. Could be slightly more structured but is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Missing output format description (TAF text or structured data) and lacks usage differentiation from siblings. With only one parameter and no output schema, the description should cover return value and intended use cases more thoroughly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% so description must compensate. It explains the parameter airport_icao as an ICAO code with concrete examples (KJFK, EDDF, EDDM), adding significant meaning beyond the schema's title.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves aviation weather forecast (TAF) for an airport. It differentiates from siblings like get_airport_weather by specifying TAF and its 24-30 hour coverage, but does not explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs siblings like get_airport_weather or get_aviation_warnings. The description explains what TAF is but lacks context for appropriate use or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

track_flightA

Einen bestimmten Flug per Callsign oder ICAO24-Adresse verfolgen.

Mindestens einer der beiden Parameter muss angegeben werden.

Args: callsign: Callsign des Flugs (z.B. "DLH400", "UAL123") icao24: ICAO24-Transponder-Adresse (z.B. "3c6752")

ParametersJSON Schema
NameRequiredDescriptionDefault
callsignNo
icao24No

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only states it 'tracks a flight' without detailing behavior such as output format, real-time updates, or limitations. The burden of disclosure is not met.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and front-loaded with the main purpose. Every sentence is necessary and adds value, with no redundant or extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no sibling differentiation, the description lacks completeness. It explains inputs but not outputs or how the result should be interpreted, which is insufficient for a tracking tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, but the description adds value by explaining each parameter's purpose and providing example values (e.g., 'DLH400', '3c6752'), helping the agent understand expected input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool tracks a specific flight by callsign or ICAO24 address, using a specific verb and resource. It distinguishes from siblings like 'track_live_flights' which implies tracking multiple flights.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies that at least one of two parameters must be provided, but it does not provide guidance on when to use this tool versus alternatives like 'track_live_flights' or other flight tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

track_live_flightsA

Aktuelle Flüge weltweit oder in einem bestimmten Gebiet verfolgen.

Ohne Koordinaten werden weltweite Flüge zurückgegeben (begrenzt auf limit). Mit Koordinaten wird ein bestimmtes Gebiet abgefragt (Bounding Box).

Args: lamin: Minimaler Breitengrad — südliche Grenze (z.B. 47.0 für Süddeutschland) lomin: Minimaler Längengrad — westliche Grenze (z.B. 5.0 für Westdeutschland) lamax: Maximaler Breitengrad — nördliche Grenze (z.B. 55.0 für Norddeutschland) lomax: Maximaler Längengrad — östliche Grenze (z.B. 15.0 für Ostdeutschland) limit: Maximale Anzahl zurückgegebener Flüge (Standard: 50, Maximum: 200)

ParametersJSON Schema
NameRequiredDescriptionDefault
laminNo
lominNo
lamaxNo
lomaxNo
limitNo

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behaviors. It describes the two modes (global vs bounding box) and the limit, but omits details on data freshness, rate limits, or delays.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured with a summary, mode explanation, and a clear args list. Every sentence adds value, with no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, no required ones, no output schema, and no annotations, the description covers usage and parameter semantics well. Missing output format details, but the tool name implies live flight data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description explains all 5 parameters: lamin, lomin, lamax, lomax with geographic meaning and an example, plus limit with default and maximum.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool tracks live flights globally or in a bounding box. It uses specific verbs ('verfolgen') and a resource ('Aktuelle Flüge'), and distinguishes from siblings like 'track_flight' for single flights.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use coordinates vs. none, and mentions the limit parameter's default and maximum. Although it does not explicitly exclude alternatives, the context implies when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.9/5.0
Disambiguation5/5

Each tool targets a distinct aspect of aviation data: airlines, airports, arrivals, departures, weather, warnings, flight paths, and tracking. No overlap or ambiguity.

Naming Consistency5/5

All tools use a consistent 'verb_noun' pattern in snake_case, with 'get_' for data retrieval and 'track_' for flight tracking. No mixing of conventions.

Tool Count5/5

10 tools is well within the ideal 3-15 range. The number is sufficient to cover the domain without being overwhelming or too sparse.

Completeness4/5

The set covers airline info, airport details, arrivals/departures, weather (current, forecast, warnings), flight paths, and live tracking. Minor gaps like airport delays or schedule data, but overall comprehensive for an aviation MCP.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

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/AiAgentKarl/aviation-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server