Skip to main content
Glama

FPV Airspace

An MCP server and map that answer the question existing airspace tools do not: can I legally take off and fly a drone here, in the UK?

Airspace restriction data is the easy half. A UK pilot actually has to clear three layers: permanent airspace restrictions (aerodrome flight restriction zones, prohibited, restricted and danger areas, the 400 m zone around every prison), temporary restrictions (NOTAMs), and landowner rules (National Trust byelaws, Forestry England permits, council park byelaws). The practical workaround pilots use is launching from a public right of way, where no landowner permission is needed. This server puts all of that behind thirteen tools that take a place name, a postcode or coordinates, covers England, Wales, Scotland and Northern Ireland, and draws it on a map that Claude can show inline or that you can open on a phone.

Informational only. It is not a substitute for a NATS pre-flight briefing, the CAA Drone Code, or permission from the landowner and any relevant aerodrome.

Sponsor

FPV Airspace is free and stays free: the data licences it relies on are for non-commercial use, so nothing is ever paywalled. If it saves you a wasted trip, a one-off donation, a monthly donation or sponsoring on GitHub helps cover the hosting and the weather API.

What it answers

  • Is this point inside a restriction? check_location: a one-line verdict and every zone containing the point, prisons included.

  • What is this aerodrome's zone? get_aerodrome_zone by name or ICAO code.

  • Is there a NOTAM in force? check_notams from the live NATS bulletin; unplaceable NOTAMs are listed, never dropped.

  • What does my route cross? check_route for waypoints or an area, with the distance at which each zone is entered.

  • Can I take off here? check_takeoff_site: nearest rights of way, parking, ground hazards, landowner rules, access land, designations and the council at the point.

  • Where can I park? find_parking from OpenStreetMap, nearest first.

  • Can I fly here, now? preflight_briefing: one GO, CAUTION or NO-GO with reasons from airspace, NOTAMs, weather, geomagnetic activity, paths, parking and your drone's rules.

  • What is the ground doing? check_terrain against the 120 m rule along a route or around a point.

  • Where could I take off? find_takeoff_spots scores and ranks candidate spots, and the map numbers them.

  • What can my drone do? check_drone_rules: subcategory, separation, registration and Remote ID under the CAA class mark rules.

  • Is the weather flyable? check_weather: hourly ratings against small-drone limits, plus the K-index.

  • Show me. Every location answer on the hosted server carries a map that Claude renders inline.

  • Plus geocode and get_data_status. Arguments and examples for each are in docs/tools.md.

Related MCP server: dronelytics

Quick start

Requires Node 22.13 or newer (the server uses Node's built-in SQLite, so there is nothing native to compile). The package is a single bundled file with no dependencies, so npx starts it in a few seconds.

npx -y fpv-airspace

Claude Desktop

Add to claude_desktop_config.json (Settings > Developer > Edit Config):

{
  "mcpServers": {
    "fpv-airspace": {
      "command": "npx",
      "args": ["-y", "fpv-airspace"],
      "env": {
        "OS_NAMES_API_KEY": ""
      }
    }
  }
}

OS_NAMES_API_KEY is optional. Without it, geocoding uses OpenStreetMap's Nominatim. With a free key from the OS Data Hub, Ordnance Survey place names are tried first.

On first use the server downloads the current airspace data pack (about 195 MB compressed, 527 MB on disk: 1,069 restriction zones, 520,000 rights of way, 94,000 landowner and designation polygons, 586,000 parking spots and 816,000 ground hazards) into ~/.cache/fpv-airspace and reports progress on stderr. NOTAM and geocoding tools work while it downloads. The pack is refreshed automatically when a new AIRAC cycle is published.

Claude Desktop extension (.mcpb)

Each release also ships fpv-airspace.mcpb. Download it from the releases page, double-click it, and Claude Desktop installs the server with its bundled Node runtime and a settings panel for the optional OS Names key.

Claude Code

claude mcp add fpv-airspace -- npx -y fpv-airspace

Remote connector (Claude web, mobile and voice)

The same server runs as a Cloudflare Worker at https://fpv-airspace.fetchlabs.co.uk/mcp, which is what Claude's mobile app and voice mode can reach: they cannot run local servers, only remote connectors. Add it on claude.ai under Settings > Connectors > Add custom connector with that URL, and it becomes available on every surface, including voice conversations. Every tool accepts format: "brief", which returns two or three spoken-friendly sentences instead of the full report.

Running your own copy, on Cloudflare or as plain streamable HTTP or Docker, is covered in docs/hosting.md.

The map

Search a place, tap the map or use your position; every zone, NOTAM, path, landowner rule, parking spot and ground hazard in view is drawn with its own icon, a long press lists what is under a point, the card shows the coming week's flyability hour by hour, and the overlays load as you pan. Claude renders the same map inline with an answer. The Plan button turns the map into a flight planner: tap out waypoints with heights, see which sit inside a restriction, and download the plan as a DJI Fly waypoint mission (.kmz) or KML. The full guide, with the layers key and more screenshots, is in docs/map.md.

Documentation

  • Tools: every tool, its arguments and example prompts.

  • The map: search, layers, hazards, weather, the flight planner and DJI Fly export, the phone layout and URL parameters.

  • Data sources and attribution: where each layer comes from, how often it refreshes and under what licence.

  • Configuration: environment variables for the server and the build.

  • Hosting: Cloudflare Worker, streamable HTTP and Docker.

  • Development: tests, packs and releases.

Caveats

  • Rights-of-way data is an interpretation of each council's Definitive Map, not the Definitive Map itself, and covers England and Wales. Scotland has no definitive map (access rights apply instead, and core paths need a Spatial Hub key) and Northern Ireland has no definitive map either: only councils that publish their asserted paths appear, so absence there means unknown; the tools say so.

  • The landowner rule layer holds National Trust and Forestry England land and a hand-curated list of council byelaws and policies. The National Trust's open data omits its Northern Ireland properties. Absence of a rule never means take-off is permitted.

  • Ground hazards and parking come from OpenStreetMap and are as complete as the map is; they are advisory and never change a verdict.

  • Only zones reaching below 400 ft (120 m) count towards a verdict; higher zones are listed on request.

  • NOTAMs are read from the NATS contingency bulletin, which may lag the live system by up to an hour.

  • ICAO codes for aerodromes come from a curated table covering major and well-known UK aerodromes; lookups by name always work.

Licence

MIT. Data sources carry their own licences; see the licences folder.

Available Tools

13 tools
check_drone_rulesCheck drone rulesA
Read-only

Which UK open category rules apply to a consumer drone: the subcategory (A1 fly over people, A2 near people, A3 far from people), the separation from uninvolved people, whether Flyer ID and Operator ID registration are needed, and when Remote ID is required. Give a model name from the catalogue (DJI, Autel, Potensic, HoverAir, Parrot) or a weight in grams plus any class mark. Rules follow the CAA class marks in force from 2026, including the EU C-class transition to the end of 2027.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoDate to assess the rules for; defaults to today. Use it to see what changes at a transition date.
modelNoDrone make and model, e.g. "DJI Mini 4 Pro", "Air 3S", "Mavic 3 Classic". Looked up in a curated catalogue of consumer drones.
formatNotext for a readable report (default), json for structured output, brief for two or three spoken-friendly sentences (use in voice conversations).text
weight_gNoTake-off weight in grams, when the model is not in the catalogue or a heavier battery is fitted.
class_markNoClass mark printed on the aircraft: an EU C-class (C0 to C4), a UK class (UK0 to UK4), or none for a legacy aircraft. Overrides the catalogue value.
has_cameraNoWhether the aircraft carries a camera. Defaults to the catalogue value, or true.
a2_certificateNoWhether the pilot holds an A2 Certificate of Competency (A2 CofC).

TDQS

A4.1/5.0
Behavior4/5

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

With only readOnlyHint and openWorldHint annotations, the description adds valuable behavioral context: rules are assessed under CAA class marks in force from 2026, with the EU C-class transition noted through end of 2027, and it states what the check returns. It stops short of describing edge cases like an unrecognized model with no weight supplied.

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?

Three sentences, each with a distinct job: output summary, input invocation, and legal/date caveat. It is dense but not padded.

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?

The description covers the essential decision-making context: what results to expect, how to identify the drone, and the legal regime/date sensitivity. It is slightly incomplete about behavior when conflicting or no identification inputs are provided, but the schema descriptions cover parameter-level details.

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 description coverage is 100%, so the baseline is 3. The description adds slight extra meaning by naming the catalogue brands and by instructing that a weight plus class mark can substitute for a model lookup, but it does not need to re-document the parameters.

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 names the exact verb and resource: checking which UK open category rules apply to a consumer drone, and it enumerates the output categories (subcategory, separation, Flyer/Operator ID, Remote ID). This makes it distinct from the location, weather, preflight, and NOTAM sibling tools.

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 usage context is clear: it is for UK open category consumer drone rule questions, and no sibling tool overlaps with that function. It does not spell out exclusions such as non-UK or commercial operations, but the scenario is specific enough for an agent to route correctly.

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

check_locationCheck airspace at a locationA
Read-only

Check permanent UK airspace restrictions at a single point for drone flying. Give a place name or postcode, or lat/lon. Returns a one-line verdict, then every zone containing the point (aerodrome FRZ, prohibited, restricted, danger, other) with vertical limits, activation notes and contact, and any landowner rule at the point. Does not include NOTAMs; call check_notams for temporary restrictions.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude in decimal degrees (WGS84).
lonNoLongitude in decimal degrees (WGS84), negative west of Greenwich.
placeNoPlace name, postcode or landmark in the UK, e.g. "Tyndale Monument", "BS1 6QF", "Durdle Door". Use lat/lon instead if you already have coordinates.
formatNotext for a readable report (default), json for structured output, brief for two or three spoken-friendly sentences (use in voice conversations).text
include_above_120mNoAlso list zones whose lower limit is above 400 ft AGL and so do not affect flying below 120 m.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already mark the tool as readOnly and openWorld, so the safety profile is covered. The description adds valuable behavioral context by detailing what the response contains (one-line verdict, zones with vertical limits, activation notes, contact, landowner rule) and explicitly excluding temporary restrictions. It does not go into rate limits or data source caveats, but the core behavior is well-disclosed.

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 dense but every sentence earns its place: scope, input method, output content, and exclusion with routing to the correct sibling. It opens with the primary purpose and ends with the key non-goal, with no filler or redundant restatement of the title.

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?

Given there is no output schema, the description fully compensates by enumerating the return value structure. All parameters are documented in the schema, annotations cover side effects, and the sibling tool route is provided. Nothing needed for correct invocation is missing.

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 description coverage is 100%, so the schema already documents all five parameters. The description adds a small amount of guidance (place name or postcode, or lat/lon) and signals that the point is the subject of the check, but it does not substantially expand on the parameter meanings beyond what the schema already provides. Baseline 3 is appropriate.

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 a specific verb and resource: check permanent UK airspace restrictions at a single point for drone flying. It explicitly distinguishes itself from the sibling check_notams by stating what it does not cover, so an agent can tell it apart without opening the schema.

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

Usage Guidelines5/5

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

It gives explicit input guidance ('Give a place name or postcode, or lat/lon') and states the exclusion condition ('Does not include NOTAMs') with the alternative tool to call instead ('call check_notams for temporary restrictions'). This is clear when-to-use and when-not-to-use guidance.

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

check_notamsCheck NOTAMs at a locationA
Read-only

Check temporary airspace restrictions (NOTAMs) from the NATS UK pre-flight bulletin that cover a point, optionally within a radius and on a given date. Returns each NOTAM with validity, radius and full text, sorted by distance. NOTAMs without usable coordinates are listed separately so nothing is silently dropped. Informational only; not a substitute for an official NATS pre-flight briefing.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude in decimal degrees (WGS84).
lonNoLongitude in decimal degrees (WGS84), negative west of Greenwich.
dateNoISO 8601 date or date-time (UTC assumed when no offset). Defaults to now.
placeNoPlace name, postcode or landmark in the UK, e.g. "Tyndale Monument", "BS1 6QF", "Durdle Door". Use lat/lon instead if you already have coordinates.
formatNotext for a readable report (default), json for structured output, brief for two or three spoken-friendly sentences (use in voice conversations).text
radius_kmNoAlso list NOTAMs whose circle comes within this many km of the point. 0 = only NOTAMs covering the point.
max_resultsNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, but the description adds meaningful behavior: it states the tool is informational, not a substitute for official briefings, and that NOTAMs without usable coordinates are listed separately to avoid silently dropping them. This goes beyond the annotations and gives the agent a clearer sense of the tool's limitations and output handling.

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 (four sentences) and front-loaded with the core purpose, followed by key output details and a disclaimer. Every sentence adds value without redundancy or filler, making it efficient for an agent to parse.

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 the tool has 7 parameters, no required ones, and no output schema, the description does a good job covering the main output aspects: it lists return fields (validity, radius, full text), explains sorting, handles coordinate-less NOTAMs, and describes the format parameter options. It does not mention the max_results default or pagination, but these are minor gaps and the description is adequate for an agent to call the tool correctly.

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 description coverage is 86%, which is high, so the schema already documents most parameters. The description adds a little context, such as 'optionally within a radius and on a given date' mapping to radius_km and date, and explains the output is sorted by distance. However, it does not add significant new meaning beyond the schema, so it meets the baseline for high coverage.

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 states a specific verb ('Check') and resource ('temporary airspace restrictions (NOTAMs) from the NATS UK pre-flight bulletin'), with clear scope: covering a point, optionally within a radius and on a given date. It also specifies output characteristics (sorted by distance, coordinate-less NOTAMs listed separately), which distinguishes it from sibling tools like check_route or check_location without needing to open their schemas.

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 gives context that it is informational and not a substitute for an official NATS pre-flight briefing, which implies a limitation but does not explicitly state when to use this tool versus alternatives like preflight_briefing or check_route. It lacks explicit exclusions or comparative guidance, so an agent must infer the appropriate context.

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

check_routeCheck airspace along a route or areaA
Read-only

Check permanent airspace restrictions along a drone route or across an area. Give either waypoints (at least two; each a [lon, lat] pair or a place name) or an area (bbox [west, south, east, north] or a GeoJSON Polygon). Returns the zones crossed, deduplicated, with the distance along the route at which each is first entered. Place-name waypoints are geocoded; ambiguous names are returned for you to resolve. For ground elevation along the route call check_terrain.

ParametersJSON Schema
NameRequiredDescriptionDefault
areaNoArea to check instead of a route: { bbox: [w, s, e, n] } or a GeoJSON Polygon.
formatNotext for a readable report (default), json for structured output, brief for two or three spoken-friendly sentences (use in voice conversations).text
waypointsNoOrdered route points: [lon, lat] pairs or place names.
include_above_120mNoAlso list zones whose lower limit is above 400 ft AGL and so do not affect flying below 120 m.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the readOnlyHint/openWorldHint annotations, the description discloses the return shape (zones crossed, deduplicated, first-entry distance) and the geocoding behavior, including that ambiguous place names are returned for the agent to resolve. It also scopes itself to 'permanent' restrictions, an important behavioral boundary. No contradiction with annotations.

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 three sentences with no wasted words: purpose, input requirements, and output/alternative behavior. It front-loads the most decision-relevant information and keeps the input format summary tight.

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?

For a read-only tool with four parameters, no output schema, and rich structured parameter descriptions, the description provides what is missing: accepted input forms, geocoding edge behavior, the deduplicated return value, and a pointer to check_terrain. An agent has enough context to invoke it 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?

The input schema already documents all parameters (100% coverage), so the baseline is a 3. The description adds practical meaning by explaining that place-name waypoints are geocoded and that ambiguous names are surfaced for resolution, plus the 'at least two' constraint. It does not duplicate schema field details, and the meaning it adds is genuinely useful.

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: 'Check permanent airspace restrictions along a drone route or across an area.' This immediately distinguishes the tool from siblings like check_terrain (elevation) and communicates the route/area scope. It is not a tautology and an agent can tell what it does without opening the schema.

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 gives clear usage instructions: provide at least two waypoints or an area, with accepted formats for each. It also names an alternative for a different need ('For ground elevation along the route call check_terrain'). However, it does not explicitly contrast with other relevant siblings such as check_notams or check_location, so the guidance is strong but not exhaustive.

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

check_takeoff_siteCheck a take-off siteA
Read-only

Assess a potential drone take-off spot in the UK. Returns the airspace verdict at the point, the nearest public rights of way (footpaths, bridleways, byways) with distances and the responsible council, and any known landowner rule (National Trust and Forestry England land, council byelaw or policy) at the point, plus open access land and SSSI or National Park designations as context. A public right of way is a strong indicator of legal access; rights-of-way data covers England and Wales only.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude in decimal degrees (WGS84).
lonNoLongitude in decimal degrees (WGS84), negative west of Greenwich.
droneNoOptional drone make and model; adds the open category subcategory and the separation from people that applies to it.
placeNoPlace name, postcode or landmark in the UK, e.g. "Tyndale Monument", "BS1 6QF", "Durdle Door". Use lat/lon instead if you already have coordinates.
formatNotext for a readable report (default), json for structured output, brief for two or three spoken-friendly sentences (use in voice conversations).text
max_pathsNoMaximum rights of way to return.
a2_certificateNoWhether the pilot holds an A2 Certificate of Competency (A2 CofC).
search_radius_mNoSearch radius for rights of way in metres.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and openWorldHint=true. The description goes beyond those by adding useful behavioral context: it discloses the geographic coverage limitation for rights-of-way data and the interpretive note that a public right of way is a strong indicator of legal access. No contradiction with annotations exists.

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 a single dense paragraph with no filler. Every clause earns its place: the core action, the list of returned categories, and the crucial coverage caveat about England and Wales. It is front-loaded with the main purpose and keeps the most important interpretive guidance at the end.

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?

With no output schema, the description carries the burden of explaining return values, and it does so by listing all major result components: airspace verdict, public rights of way with distances, responsible council, landowner rules, open access land, and designations. It also covers a key limitation (data coverage) and a practical interpretation (RoW as legal access indicator). For a read-only assessment tool with 8 optional params, this is fully adequate.

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 description coverage is 100%, so all parameters are already documented in the input schema (lat/lon bounds, place examples, format enum, max_paths, a2_certificate, search_radius_m). The description adds some context around the returned data but does not enrich parameter meaning beyond the schema, so the baseline 3 applies.

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 object: 'Assess a potential drone take-off spot in the UK.' It then enumerates the concrete outputs (airspace verdict, rights of way, council, landowner rules, designations), making the tool's function unmistakable and clearly distinct from siblings like check_drone_rules or check_location.

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 conveys clear context for use by explaining that a public right of way is a strong indicator of legal access and noting that rights-of-way data covers England and Wales only. It does not explicitly name sibling alternatives or state when to use another tool, but the scope and limitations are clear enough for an agent to decide when this tool applies.

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

check_terrainCheck terrainA
Read-only

Ground elevation along a route or around a point, against the 120 m rule: the 120 m limit is measured from the surface below the aircraft, so rising ground eats into clearance and falling ground can put a fixed-height flight above the limit. Give waypoints (2 to 50 places or [lon, lat] pairs) for a profile, or a place / lat and lon for the ground within radius_m. Reports the highest and lowest ground relative to the take-off point and warnings for the planned flight height. Elevations from Copernicus GLO-90 via Open-Meteo, about 90 m resolution.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude in decimal degrees (WGS84).
lonNoLongitude in decimal degrees (WGS84), negative west of Greenwich.
placeNoPlace name, postcode or landmark in the UK, e.g. "Tyndale Monument", "BS1 6QF", "Durdle Door". Use lat/lon instead if you already have coordinates.
formatNotext for a readable report (default), json for structured output, brief for two or three spoken-friendly sentences (use in voice conversations).text
step_mNoRoute mode: sample spacing along the route.
radius_mNoPoint mode: radius of ground to sample.
waypointsNoRoute as place names or [lon, lat] pairs.
flight_height_mNoPlanned height above the take-off point.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds valuable context: data source (Copernicus GLO-90 via Open-Meteo), resolution (~90 m), and what is reported (highest/lowest ground, warnings). This goes beyond the annotations without contradiction.

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 dense but each sentence adds value: purpose, modes, output, and data source. It is front-loaded with the main rule and mode explanation, and avoids unnecessary filler.

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?

Without an output schema, the description adequately describes the return content (highest/lowest ground, warnings) and the context of the rule. It does not cover error handling or edge cases, but for a read-only terrain tool, it is reasonably complete.

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% with per-parameter descriptions. The description enhances this by explaining the route vs. point distinction and how parameters like waypoints and radius_m are used. It also clarifies lat/lon vs. place usage, adding semantic value beyond the 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 states a specific purpose: checking ground elevation against the 120 m rule, with two clear modes (route and point). It distinguishes itself from sibling tools like check_route or check_location by focusing on terrain elevation relative to flight height.

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?

It explicitly describes the two input modes (waypoints for profile, place/lat/lon for radius) and explains the context of the 120 m rule. It does not name alternative tools or exclusion criteria, but the usage context is clear and actionable.

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

check_weatherCheck drone weatherA
Read-only

Drone-relevant weather forecast for a UK point from Open-Meteo: wind and gusts at 10 m, wind at 120 m, rain, visibility, cloud, temperature and daylight hours, with an advisory flyability rating per hour (good / caution / poor against typical small-drone limits). Give a place or lat/lon and optionally a date or date-time; defaults to the next few hours.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude in decimal degrees (WGS84).
lonNoLongitude in decimal degrees (WGS84), negative west of Greenwich.
dateNoISO 8601 date or date-time (UTC assumed when no offset). Defaults to now.
hoursNoHow many hours to report from the start time (a bare date reports daylight hours).
placeNoPlace name, postcode or landmark in the UK, e.g. "Tyndale Monument", "BS1 6QF", "Durdle Door". Use lat/lon instead if you already have coordinates.
formatNotext for a readable report (default), json for structured output, brief for two or three spoken-friendly sentences (use in voice conversations).text

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already mark it read-only and open-world; the description adds that it returns an hourly advisory rating (good/caution/poor), names the data source, and states the default time window. This goes beyond the structured hints without contradicting them.

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?

Three sentences front-load the core data and rating, then give input instructions and defaults. No filler or repetition of schema details.

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 six parameters and no output schema, the description covers input selection, default behavior, and what the report contains (weather variables plus categorical rating). It doesn't state units or JSON shape, but the format parameter and schema fill most of the remaining gap.

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?

All six parameters have schema descriptions (100% coverage), so the baseline is 3. The description adds meaningful aggregation by telling the agent to provide 'a place or lat/lon' and that the date defaults to the next few hours, clarifying the implicit location requirement not captured by optional fields.

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 outcome ('Drone-relevant weather forecast for a UK point') and enumerates the exact variables and the flyability rating. This clearly separates it from sibling check_* tools focused on NOTAMs, terrain, airspace, or rules.

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?

It gives actionable invocation guidance: supply a place or lat/lon and optionally a date or date-time, with a default of the next few hours. It does not explicitly name alternatives such as preflight_briefing for a full briefing, but the weather-specific context makes the intended use unmistakable.

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

find_parkingFind parking near a locationA
Read-only

Find car parks, laybys and rest areas near a UK point, nearest first, from OpenStreetMap. Give a place name or postcode, or lat/lon. Returns name, type, distance, fee and access notes. Publicly accessible places only unless include_private is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude in decimal degrees (WGS84).
lonNoLongitude in decimal degrees (WGS84), negative west of Greenwich.
placeNoPlace name, postcode or landmark in the UK, e.g. "Tyndale Monument", "BS1 6QF", "Durdle Door". Use lat/lon instead if you already have coordinates.
formatNotext for a readable report (default), json for structured output, brief for two or three spoken-friendly sentences (use in voice conversations).text
max_resultsNo
include_privateNoAlso list parking tagged private, customers-only or permit-only.
search_radius_mNoSearch radius in metres.

TDQS

A4.2/5.0
Behavior4/5

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

The annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds meaningful behavioral detail beyond that: results are sorted nearest first, sourced from OpenStreetMap, and limited to publicly accessible places unless include_private is set.

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 three tight sentences with no filler. It front-loads the core function, then covers input, output, and filtering behavior efficiently.

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 read-only lookup tool with rich schema documentation and no output schema, the description covers the essential facts: data source, geographic scope, input modes, output content, sorting, and the privacy filter. Minor gaps like error behavior or data freshness are not critical given the openWorldHint and readOnly annotations.

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 86%, so the schema already documents most parameters including lat/lon, place, format, include_private, and search_radius_m. The description summarizes the input options and output fields, adding a little useful framing, but does not need to compensate heavily for missing parameter documentation.

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 states a specific verb and resource: find car parks, laybys, and rest areas from OpenStreetMap near a UK point. It also lists the returned fields (name, type, distance, fee, access notes), making the tool's purpose unmistakable and distinct from sibling tools like find_takeoff_spots or geocode.

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 gives clear input guidance: use a place name, postcode, or lat/lon, and explains the public-access default with include_private as an override. It does not explicitly name alternatives or say when not to use this tool, so it falls just short of full usage-routing guidance.

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

find_takeoff_spotsFind take-off spotsA
Read-only

Suggest take-off spots near a UK place: points on public rights of way, next to parking or on open access land, scored on the data held here. Spots inside prohibited, restricted, prison or aerodrome zones, or on land where take-off is banned, are excluded; NOTAMs, danger areas, landowner rules and ground hazards lower the score, paths, parking and access land raise it. Returns the best few with reasons and coordinates, and the map shows them numbered. A right of way is a right to pass, not to stop and fly.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude in decimal degrees (WGS84).
lonNoLongitude in decimal degrees (WGS84), negative west of Greenwich.
droneNoDrone make and model, e.g. "DJI Mini 4 Pro", "Air 3S", "Mavic 3 Classic". Looked up in a curated catalogue of consumer drones.
placeNoPlace name, postcode or landmark in the UK, e.g. "Tyndale Monument", "BS1 6QF", "Durdle Door". Use lat/lon instead if you already have coordinates.
formatNotext for a readable report (default), json for structured output, brief for two or three spoken-friendly sentences (use in voice conversations).text
max_resultsNo
a2_certificateNoWhether the pilot holds an A2 Certificate of Competency (A2 CofC).
search_radius_mNoHow far around the point to look.

TDQS

A4.2/5.0
Behavior5/5

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

Adds substantial behavioral detail beyond the readOnlyHint and openWorldHint annotations: excluded zone types, positive and negative scoring factors, output contents (best few with reasons and coordinates), map numbering, and the legal caveat about rights of way. No contradiction with annotations.

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?

Four sentences, with the main purpose front-loaded in the first sentence. Every sentence contributes: criteria, scoring behavior, output and display, and legal context. No filler or repetition.

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 read-only suggestion tool with no output schema, the description covers purpose, exclusions, scoring logic, and return shape well enough to call it correctly. It leaves some details implicit, such as how a2_certificate influences scoring, but schema and annotations cover parameter and safety aspects.

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 description coverage is high (~88%), so the schema already documents most parameters accurately. The description adds little parameter-specific meaning beyond the 'near a UK place' framing; notably, the undocumented max_results parameter is not explained in the description either.

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?

States a specific verb ('Suggest'), resource ('take-off spots near a UK place'), and concrete criteria (public rights of way, parking, open access land). The focus on scored suggestions with exclusions clearly distinguishes it from siblings like check_takeoff_site and find_parking.

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 usage context is clearly implied: call this when the user wants suggested take-off spots near a UK location rather than a check on a specific site. However, it never explicitly names alternatives or states when not to use it, leaving the agent to infer the choice between this and check_takeoff_site or preflight_briefing.

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

geocodeGeocode a UK placeA
Read-only

Resolve a UK place name, postcode or landmark to coordinates. Use it to disambiguate before running a check when a name could match several places. Returns up to ten candidates with source and confidence.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYesPlace name, postcode or landmark.
formatNotext for a readable report (default), json for structured output, brief for two or three spoken-friendly sentences (use in voice conversations).text

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover the read-only safety profile (readOnlyHint=true). The description adds useful behavioral context beyond annotations by stating that it returns 'up to ten candidates with source and confidence,' which signals that results may be ambiguous and includes provenance. No conflicting behavior is described.

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?

Three sentences with no filler: the first states the core function, the second gives usage guidance, and the third describes the return shape. Every sentence earns its place and the most essential information is front-loaded.

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?

Without an output schema, the description compensates by describing the return value ('up to ten candidates with source and confidence'). It also covers the main trigger case and the query types. Minor gaps like coordinate system or how limit interacts with results are not critical for a read-only tool, so the definition is nearly complete.

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 67%, so the baseline is 3. The description adds a little meaning by noting 'up to ten candidates,' which hints at the limit parameter, but it does not explain the format parameter or the query semantics beyond what the schema already states. It neither significantly boosts nor hurts parameter understanding.

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 states a specific verb ('Resolve'), a clear resource ('a UK place name, postcode or landmark'), and an outcome ('to coordinates'). It also differentiates from sibling tools by framing its role as a disambiguation step before checks, making its purpose distinct from the check-oriented sibling tools.

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?

It explicitly tells the agent when to use the tool: 'Use it to disambiguate before running a check when a name could match several places.' It does not name alternative tools or state explicit when-not-to-use conditions, but the context is clear enough to route an agent correctly.

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

get_aerodrome_zoneLook up an aerodrome FRZA
Read-only

Look up a UK aerodrome's flight restriction zone (FRZ) by name or ICAO code, e.g. "Bristol" or "EGGD". Returns the zone centre, approximate radius, bounding box, vertical limits and contact, optionally with the GeoJSON geometry.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNotext for a readable report (default), json for structured output, brief for two or three spoken-friendly sentences (use in voice conversations).text
aerodromeYesAerodrome name or four-letter ICAO code (UK codes start with EG).
include_geojsonNoInclude the full zone geometry as GeoJSON.

TDQS

A4/5.0
Behavior4/5

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

Annotations already include readOnlyHint=true, and the description adds useful behavioral detail by enumerating the returned data: zone centre, approximate radius, bounding box, vertical limits, and contact, plus optional GeoJSON geometry. There is no contradiction with the annotations, and for a read-only lookup this is strong disclosure.

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 two sentences with no filler. It front-loads the operation and scope, then summarizes the return content and the optional output format. The example is compact and directly useful.

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?

With no output schema, the description usefully enumerates the returned fields and clarifies the optional geometry. Combined with the detailed input schema and readOnlyHint, an agent has what it needs to call the tool correctly. A minor gap is the lack of explicit when-to-use guidance relative to sibling tools.

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 description coverage is 100%, so the schema already documents all three parameters. The description contributes a useful example ('Bristol' or 'EGGD') and mentions the optional GeoJSON output, but it does not need to compensate for missing schema detail.

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: 'Look up a UK aerodrome's flight restriction zone (FRZ)' and clearly states the accepted inputs, name or ICAO code. This distinguishes it from the sibling tools that cover NOTAMs, drone rules, weather, and other aviation lookups.

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 context is clear: this tool is for retrieving an aerodrome's FRZ data. However, the description does not explicitly state when to choose this tool over sibling tools such as check_notams or check_drone_rules, nor does it give any exclusions. The usage guidance is implied rather than stated.

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

get_data_statusData status and attributionA
Read-only

Report the data behind this server: airspace pack version and AIRAC effective dates, when each source was fetched and its licence, NOTAM bulletin cache age, geocoding providers available, runtime details, and the attribution strings that must be shown to users.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNotext for a readable report (default), json for structured output, brief for two or three spoken-friendly sentences (use in voice conversations).text

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description's 'Report' aligns with that. It adds valuable context beyond annotations by detailing what the report covers (licences, attribution strings that must be shown to users, cache age), which informs the agent of expected content and any compliance obligations. No contradiction.

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 a single, information-dense sentence that front-loads the core purpose ('Report the data behind this server') and then efficiently lists all key elements without redundancy. Every clause adds substance; no filler or repetition.

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 the absence of an output schema, the description compensates well by listing the major report categories. It does not specify the exact structure or return format, but the 'format' parameter controls that, and the listed items give the agent a solid expectation. Some minor gaps exist, such as error handling or size limits, but these are low-risk for a read-only status tool.

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 100% and the single parameter 'format' is fully documented with enum descriptions (text, json, brief) and a default. The tool description does not add any parameter-level information, but the schema already carries the full semantic burden, so a 3 baseline is appropriate.

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 states a clear, specific action: 'Report the data behind this server' and enumerates concrete content (airspace pack version, AIRAC dates, source fetch times, licences, NOTAM cache age, geocoding providers, runtime details, attribution strings). This distinguishes it functionally from siblings like check_weather or geocode, making its purpose unambiguous.

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 data provenance and attribution queries but never explicitly states when to use this tool versus siblings. It does not mention alternatives or exclusions. The 'brief' format hint for voice conversations is a light usage clue, but overall guidance is only implied, not stated.

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

preflight_briefingPre-flight briefingA
Read-only

One pre-flight briefing for a UK take-off point and time: a GO, CAUTION or NO-GO status with reasons, from the airspace verdict, live NOTAMs, the weather window, geomagnetic activity, rights of way, parking and, when a drone is named, its open category rules. A live source that cannot be read is reported as an outage, never assumed clear. Give a place or lat/lon; date and hours set the flying window (default now, 3 hours). Set frz_permission when an aerodrome has already agreed the flight.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude in decimal degrees (WGS84).
lonNoLongitude in decimal degrees (WGS84), negative west of Greenwich.
dateNoISO 8601 date or date-time (UTC assumed when no offset). Defaults to now.
droneNoDrone make and model, e.g. "DJI Mini 4 Pro", "Air 3S", "Mavic 3 Classic". Looked up in a curated catalogue of consumer drones.
hoursNoLength of the flying window from the start time.
placeNoPlace name, postcode or landmark in the UK, e.g. "Tyndale Monument", "BS1 6QF", "Durdle Door". Use lat/lon instead if you already have coordinates.
formatNotext for a readable report (default), json for structured output, brief for two or three spoken-friendly sentences (use in voice conversations).text
max_pathsNoRights of way to list.
a2_certificateNoWhether the pilot holds an A2 Certificate of Competency (A2 CofC).
frz_permissionNoThe aerodrome has given permission to fly in its FRZ; the FRZ then counts as caution rather than no-go.
notam_radius_kmNoAlso list NOTAMs within this distance.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint. The description adds valuable behavior beyond that: unreadable live sources are reported as outages rather than assumed clear, and drone rules are only included when a drone is named. This is exactly the kind of non-obvious behavior an agent needs to know.

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 two sentences with no filler. The first sentence front-loads the status output and the list of inputs, and the second adds the outage policy and key invocation guidance. Every clause earns its place.

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 an 11-parameter aggregate tool with no output schema, the description covers purpose, input selection, default behavior, and the shape of the result (GO/CAUTION/NO-GO with reasons). It does not spell out the full output structure, but the format parameter in the schema covers the text/json/brief variants, so the description is reasonably complete.

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. The description adds extra meaning: it explains the place-or-lat/lon choice, the default 3-hour window, and the condition for frz_permission. This goes beyond the schema's field-level descriptions and helps an agent select the right combination of parameters.

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 states a specific deliverable: a one-shot pre-flight briefing with a GO, CAUTION or NO-GO status and reasons. It enumerates the data sources (airspace, NOTAMs, weather, geomagnetic, rights of way, parking, drone rules), which clearly distinguishes it from the single-purpose sibling tools like check_weather or check_notams.

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 gives clear invocation context: provide a UK place or lat/lon, set the date and hours for the flying window, and optionally set frz_permission when an aerodrome has agreed. It does not explicitly say 'use this instead of individual check tools', but the aggregate nature of the briefing makes that implicit, and no misleading exclusions are present.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 13 tool updatesv0.3.0
    • Addedcheck_drone_rules
    • Changedcheck_location2 fields changed
      • changedInput schema / properties / format / description
        Previous value: -"text for a readable report (default), json for structured output."New value: +"text for a readable report (default), json for structured output, brief for two or three spoken-friendly sentences (use in voice conversations)."
      • changedInput schema / properties / format / enum
        Previous value: -[
        -  "text",
        -  "json"
        -]New value: +[
        +  "text",
        +  "json",
        +  "brief"
        +]
    • Changedcheck_notams2 fields changed
      • changedInput schema / properties / format / description
        Previous value: -"text for a readable report (default), json for structured output."New value: +"text for a readable report (default), json for structured output, brief for two or three spoken-friendly sentences (use in voice conversations)."
      • changedInput schema / properties / format / enum
        Previous value: -[
        -  "text",
        -  "json"
        -]New value: +[
        +  "text",
        +  "json",
        +  "brief"
        +]
    • Changedcheck_route2 fields changed
      • changedInput schema / properties / format / description
        Previous value: -"text for a readable report (default), json for structured output."New value: +"text for a readable report (default), json for structured output, brief for two or three spoken-friendly sentences (use in voice conversations)."
      • changedInput schema / properties / format / enum
        Previous value: -[
        -  "text",
        -  "json"
        -]New value: +[
        +  "text",
        +  "json",
        +  "brief"
        +]
    • Changedcheck_takeoff_site4 fields changed
      • addedInput schema / properties / a2_certificate
        Added value: +{
        +  "default": false,
        +  "description": "Whether the pilot holds an A2 Certificate of Competency (A2 CofC).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / drone
        Added value: +{
        +  "description": "Optional drone make and model; adds the open category subcategory and the separation from people that applies to it.",
        +  "maxLength": 80,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • changedInput schema / properties / format / description
        Previous value: -"text for a readable report (default), json for structured output."New value: +"text for a readable report (default), json for structured output, brief for two or three spoken-friendly sentences (use in voice conversations)."
      • changedInput schema / properties / format / enum
        Previous value: -[
        -  "text",
        -  "json"
        -]New value: +[
        +  "text",
        +  "json",
        +  "brief"
        +]
    • Addedcheck_terrain
    • Addedcheck_weather
    • Addedfind_parking
    • Addedfind_takeoff_spots
    • Changedgeocode2 fields changed
      • changedInput schema / properties / format / description
        Previous value: -"text for a readable report (default), json for structured output."New value: +"text for a readable report (default), json for structured output, brief for two or three spoken-friendly sentences (use in voice conversations)."
      • changedInput schema / properties / format / enum
        Previous value: -[
        -  "text",
        -  "json"
        -]New value: +[
        +  "text",
        +  "json",
        +  "brief"
        +]
    • Changedget_aerodrome_zone2 fields changed
      • changedInput schema / properties / format / description
        Previous value: -"text for a readable report (default), json for structured output."New value: +"text for a readable report (default), json for structured output, brief for two or three spoken-friendly sentences (use in voice conversations)."
      • changedInput schema / properties / format / enum
        Previous value: -[
        -  "text",
        -  "json"
        -]New value: +[
        +  "text",
        +  "json",
        +  "brief"
        +]
    • Changedget_data_status2 fields changed
      • changedInput schema / properties / format / description
        Previous value: -"text for a readable report (default), json for structured output."New value: +"text for a readable report (default), json for structured output, brief for two or three spoken-friendly sentences (use in voice conversations)."
      • changedInput schema / properties / format / enum
        Previous value: -[
        -  "text",
        -  "json"
        -]New value: +[
        +  "text",
        +  "json",
        +  "brief"
        +]
    • Addedpreflight_briefing
  2. 7 tool updatesv0.1.0
    • First observedcheck_location
    • First observedcheck_notams
    • First observedcheck_route
    • First observedcheck_takeoff_site
    • First observedgeocode
    • First observedget_aerodrome_zone
    • First observedget_data_status

TDQS

A4.3/5.0

Scored across 13 tools

Disambiguation5/5

Each tool targets a distinct concern: permanent restrictions, NOTAMs, routes, takeoff sites, terrain, weather, rules, parking, suggestions, geocoding, and data status. No two tools overlap in purpose; even similar ones like check_location and check_takeoff_site differ in scope (airspace vs. access + designations).

Naming Consistency4/5

The vast majority follow a verb_noun pattern (check_*, find_*, get_*, geocode). 'preflight_briefing' breaks the pattern as a noun phrase, but it is the only deviation and is still clear and intuitive.

Tool Count5/5

13 tools is well-scoped for a drone airspace assistant, covering all essential operations without redundancy or bloat. Each tool serves a specific need, from preflight to parking.

Completeness4/5

The surface is highly complete for UK drone operations: permanent and temporary restrictions, takeoff site evaluation, route checks, terrain, weather, drone rules, parking, and suggestions. A minor gap is no direct NOTAM check along a route, but the point-based NOTAM with radius can be sampled. Overall no critical dead ends.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    Enables flight planning and aviation operations through intelligent airport resolution, great-circle route calculation, and aircraft performance estimation. Supports 28,000+ airports worldwide and 190+ aircraft types for comprehensive flight planning via natural language.
    46
    4
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    US drone airspace intelligence and mission planning. 24 MCP tools: check airspace restrictions across 11 FAA data layers, plan grid/orbit/corridor surveys, validate Part 107 compliance, generate pre-flight briefings, and export to KML/GPX/QGC/Litchi/WPML.
    25
    3
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables pilots to assemble a preflight briefing per 14 CFR ยง91.103 by fetching weather, airport info, aircraft performance, fuel estimates, alternates, and NOTAMs.
    6
    86 npm
    1
    AGPL 3.0