Generate and parse QGroundControl .plan mission files programmatically
domain: docs.qgroundcontrol.com · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Understand the top-level JSON schema: fileType must be "Plan", plus groundStation, version, mission, optional geoFence, and optional rallyPoints
Populate the mission object's items array with SimpleItem entries (single MAVLink MISSION_ITEM commands) and/or ComplexItem entries (e.g., survey or corridor-scan patterns)
Set mission-level parameters such as cruiseSpeed, hoverSpeed, firmwareType, and globalPlanAltitudeMode consistently with the target airframe
Optionally define geoFence polygons/circles and rallyPoints (lat/lon/altitude above home) if the operation requires them
Validate the file by loading it in QGroundControl before deploying it through an automated pipeline
For direct autopilot upload without QGC, convert plan items into MAVLink mission items via MAVSDK's MissionRaw import rather than hand-rolling the protocol
Known gotchas
ComplexItem structures (survey, corridor scan) carry their own nested schema and version numbers that differ across QGC releases — an older tool may not parse a newer file's complex items correctly
geoFence and rallyPoints are optional and frequently omitted by generators, which can silently disable safety boundaries the operator assumed were present
firmwareType and globalPlanAltitudeMode must match the connected autopilot (PX4 vs ArduPilot) or altitude/frame interpretation will be wrong on upload
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?