Skip to main content
Glama

OpenSky — Live Aircraft by Origin Country

opensky.traffic.states_country
Read-onlyIdempotent

Get real-time ADS-B state vectors for all aircraft currently registered to a specific origin country (e.g. Germany, United States). Filters the global ADS-B feed by the aircraft's registered country of origin from ICAO24 address blocks. Optionally narrow the geographic area using a bounding box (lamin/lomin/lamax/lomax). Returns ICAO24, callsign, position, altitude, velocity, and heading for each matching aircraft. Useful for counting or mapping the live air traffic of a specific country. Source: OpenSky Network — opensky-network.org. No auth, open access.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
lamaxNoOptional maximum latitude to narrow the search area (decimal degrees)
laminNoOptional minimum latitude to narrow the search area (decimal degrees)
limitNoMaximum number of matching aircraft to return (default 100, max 500)
lomaxNoOptional maximum longitude to narrow the search area (decimal degrees)
lominNoOptional minimum longitude to narrow the search area (decimal degrees)
countryYesOrigin country name to filter aircraft by (e.g. Germany, United States, France). Case-insensitive.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNoPresent only when the call failed. Includes error code, message, request_id, and any provider-specific extras.
resultNoTool response payload. Shape varies per tool — consult the tool description and inputSchema. May be an object, array, string, or number depending on the upstream provider response.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already signal read-only, idempotent, and non-destructive behavior. The description adds value beyond those annotations by disclosing 'No auth, open access,' the real-time feed semantics, and that the country filter is based on ICAO24 address blocks. It does not mention rate limits or data coverage gaps, but it is still informative.

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 five short sentences and front-loads the core action and resource before adding the bbox, return fields, use case, source, and access details. Each sentence contributes useful context, though the structure is slightly less tight than a two-sentence definition.

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

Completeness5/5

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

Combined with the fully documented input schema and an output schema, the description covers what the tool returns, how the country filter works, how to optionally restrict by bounding box, and access requirements. Nothing material appears missing for an agent to select and invoke this tool correctly.

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 100%, so the baseline is 3, but the description adds useful conceptual meaning: the 'country' parameter refers to the registered origin country derived from ICAO24 blocks, not the aircraft's current location. It also groups the four bbox parameters as one optional geographic narrowing, helping the agent understand their joint 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 opens with a specific verb and resource: 'Get real-time ADS-B state vectors for all aircraft currently registered to a specific origin country.' It clearly distinguishes this tool from bounding-box-only and single-aircraft OpenSky siblings by the country-of-origin filter, and it lists the returned fields.

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 states the intended use case ('counting or mapping the live air traffic of a specific country') and explains how the optional bounding box narrows that country-filtered feed. It does not explicitly name sibling alternatives or provide when-not-to-use exclusions, so it lacks fully explicit routing guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.