Public leaderboard

Public assessment

markpdxt/dronelytics-mcp (@dronelytics/mcp)

dronelytics-mcp · v0.3.3 · scanned

What changed in the harness

Selection accuracy 97→95, token cost up 4%, unconfirmed writes 4%→4%.

Category breakdown

Where the score comes from.

Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.

01Safety

1.3 / 30

1.3 out of 30
02Legibility

23.6 / 30

23.6 out of 30
03Economics

16.3 / 20

16.3 out of 20
04Discoverability

10.9 / 20

10.9 out of 20

Highest-impact fix

Estimated gain +29 points

Add explicit identity and permission preflight tools

Expose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.

Description evidence

Defects and rewrites.

14 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.

Tool Defect types Suggested rewrite
get_mission
no_return_description
Get the full details of a drone mission and return all its waypoints, generation settings, and area polygon. Use list_missions to find available mission IDs.
create_mission
no_return_description
Create a new drone mission manually with custom waypoints and return the saved mission with its ID. Supported types: waypoint, grid, orbit, spiral, panorama, corridor. For automated survey generation with optimal waypoint placement, use generate_grid_survey, generate_orbit_mission, or other generate_* tools instead.
update_mission
params_unexplained no_return_description
Update an existing mission and return the updated mission. Fetches the current version and merges your changes — omitted fields remain unchanged, so pass only the fields you want to change: name (new mission name), type (mission type: waypoint, grid, orbit, spiral, panorama, or corridor), waypoints (replacement waypoint array), tags (labels for the mission), or drone_profile_id (UUID of the drone profile to associate). Use list_missions to find mission IDs.
delete_mission
no_return_description
Permanently delete a mission and all its waypoints and return confirmation once the deletion succeeds. This action cannot be undone. Use list_missions to find mission IDs.
duplicate_mission
no_return_description
Create a full copy of an existing mission including all waypoints and settings and return the new mission with its unique ID. Use list_missions to find mission IDs.
share_mission
no_return_description
Generate a public share link for a mission and return the share URL. Anyone with the link can view the mission details and waypoints. Use list_missions to find mission IDs.
import_litchi
no_return_description
Import a Litchi CSV file, create a new waypoint mission from it, and return the saved mission with its ID. Parses the standard Litchi CSV format (latitude, longitude, altitude, heading, gimbal pitch, actions). Automatically saves the imported mission to your account.
create_drone
params_unexplained no_return_description
Create a new drone profile with manufacturer and model information and return the created profile with its ID. Optionally include camera specs and flight characteristics, such as max_speed_mph (the drone's maximum speed in miles per hour, used for mission flight time and coverage estimates). Created profiles can be linked to missions for flight time and coverage estimates.
update_drone
params_unexplained no_return_description
Update an existing drone profile and return the updated profile. Pass only the fields you want to change — omitted fields remain unchanged. Provide model (model name, e.g., Mavic 3), camera_model (camera model name, e.g., Hasselblad L2D-20c), or max_speed_mph (the drone's maximum speed in miles per hour). Use list_drones to find drone IDs.
delete_drone
no_return_description
Permanently delete a drone profile and return confirmation once the deletion succeeds. This action cannot be undone. Fails if the drone is currently referenced by any missions — unlink it from missions first.
generate_orbit_mission
params_unexplained
Generate an orbit/POI mission that flies a circle around a point of interest. All waypoints face the center for consistent framing. Automatically saves the mission to your account — returns the saved mission with ID and waypoint count. Pass drone_profile_id (UUID of the drone profile to associate) to link the mission to a specific drone profile.
generate_panorama_mission
params_unexplained
Generate a panorama capture mission at a fixed hover location. Creates a grid of heading/pitch combinations for photo stitching. Automatically saves the mission to your account — returns the saved mission with ID and photo count. Pass drone_profile_id (UUID of the drone profile to associate) to link the mission to a specific drone profile.
generate_spiral_mission
params_unexplained
Generate a spiral survey mission expanding outward or contracting inward from a center point. Useful for search patterns or radial coverage. Automatically saves the mission to your account — returns the saved mission with ID and waypoint count. Pass drone_profile_id (UUID of the drone profile to associate) to link the mission to a specific drone profile.
generate_corridor_mission
params_unexplained no_return_description
Generate a linear corridor mapping mission along a path (roads, pipelines, power lines). Creates parallel flight passes with camera-based spacing for full coverage. Automatically saves the mission to your account and returns the saved mission with ID and waypoint count. Call list_cameras first to see available camera_model values. Pass drone_profile_id (UUID of the drone profile to associate) to link the mission to a specific drone profile.

Selection evidence

Confusable tool pairs.

6 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.

Tool A Tool B Confidence Why they collide
get_active_tfrs get_notams medium Both return FAA airspace notices near a lat/lng; a task like 'check for flight restrictions near this location' could resolve to either since TFRs and NOTAMs are overlapping categories.
check_airspace check_live_traffic medium A task like 'check traffic in my flight area' is ambiguous: check_live_traffic returns ADS-B aircraft, but check_airspace also summarizes nearby hazards and restrictions and is the recommended full assessment.
generate_grid_survey generate_spiral_mission medium Both are automated survey generators sharing the mission/survey vocabulary; 'generate a survey of this area' could lead to either, with spiral being the less-obvious choice despite its 'survey' naming.
generate_orbit_mission generate_spiral_mission medium Both create concentric flight paths centered on a point with cw/ccw direction options; a task like 'fly a circular search pattern around the center' could plausibly pick either.
generate_orbit_mission generate_panorama_mission medium Both build 360-degree capture around a center point; a task like 'take a full 360 capture of this point' could resolve to orbit (circle, facing center) or panorama (fixed-hover heading grid).
create_mission duplicate_mission low A task like 'create a new mission based on my existing one' could resolve to duplicate_mission (copies all waypoints) instead of create_mission, though the descriptions mostly disambiguate them.

Compare the field

One score is useful.
The evidence makes it actionable.

Back to the leaderboard