# ardupilot-mcp — Flight Log Diagnosis Tool

> An open-source MCP server that reads ArduPilot flight logs (.bin and .tlog) and explains in plain language why a drone crashed or flew badly. A deterministic check engine produces the findings; the AI only explains them.

URL: https://furkanisikay.com/projects/ardupilot-mcp/

- Role: Sole developer
- Period: 2026
- Status: Open source · MCP server
- Tech stack: Python, MCP, ArduPilot, MAVLink, Açık Kaynak

## Highlights

- **18** deterministic checks
- **12** read-only tools
- **49** real crash logs benchmarked

## Overview

ardupilot-mcp is an MCP (Model Context Protocol) server with no window of its own: it plugs into an AI client such as Claude Desktop, Cursor or VS Code. Give it a drone's ".bin" flight log or a ground station's ".tlog" telemetry and ask "why did it crash?"; the client explains vibration, low battery, GPS loss, motor loss or a bad setting in your own words.

## The Problem

A typical ArduPilot log has over 100,000 rows; reading vibration, EKF, battery and attitude traces after a crash takes time and experience. Existing tools (Mission Planner Auto Analysis, UAV Log Viewer) show the data but leave interpretation to the user — neither answers "why did this happen?" with reasoning or takes natural-language follow-up questions.

## Deterministic Check Engine

18 checks cover flight dynamics (vibration, EKF, GPS, power, attitude, RC loss) and setup faults (wiring, calibration, bad parameters, power margin), each threshold with a documented source. An event's error record, failsafe mode change and firmware message merge into one finding, and the first anomaly before the crash leads the report. 12 read-only tools add an incident timeline, a two-flight comparison, a ready-to-post forum report and harmonic notch/PID advice. A fixed engine decides, not the AI.

## MCP Integration, Offline & Read-Only

Works with any MCP client (Claude, Cursor, VS Code, LM Studio…) and any model, local ones included. The log never leaves the machine: the server does not touch the network, send commands to a vehicle or write parameters. On the MCP Python SDK 2 it speaks both the 2026-07-28 protocol and the older handshake most desktop clients use. One line installs it from PyPI ("uvx ardupilot-mcp"); it is listed on the official MCP Registry.

## Outputs & Results

With 1.0.0 the tool set, report schema and check catalogue are under semantic versioning. The engine is measured on 49 real crash logs from the ArduPilot forum, each labelled with the cause stated by a developer or an experienced helper who analysed it. Vehicle-aware: a multirotor check never runs on a helicopter's swashplate servos. Open source under AGPL-3.0 (0.1.3 and earlier stay MIT), with a test suite, a benchmark harness and documentation generated from the code.

## Live status

- PyPI v1.0.0 · MCP Registry v1.0.0 · source v1.0.0 · last updated 2026-10-18 · 19 commits in 90 days
- v1.0.0 (2026-10-18): Arming refusals were dropped as boot chatter when they contained "calibrated" or " ready" ("PreArm: Compass calibrated requires reboot", "Arm: GPS not ready"), and an "Arm:"…; Fields compared sample by sample (ATT demand vs actual, GPS HDop vs Status, MAG X/Y/Z, BAT Volt vs Curr, the RCIN primary channels) were read one by one and paired by index, so…; The battery thresholds counted samples taken before arming (a monitor reads 0 V before the pack is connected) and any momentary sag. A threshold now counts only within one…; "Sudden voltage drop" kept only the largest step; when that was a glitch that recovered, a smaller drop that persisted went unreported. The largest persistent step is reported,…
- v0.1.3 (2026-10-17): Pinned mcp to >=1.27,<2. mcp 2.0 (July 2026) removed mcp.server.fastmcp, so fresh installs (uvx ardupilot-mcp, pip install ardupilot-mcp) crashed on startup with…; .oss-scanner/Dockerfile and .oss-scanner/threat_model.md for Anthropic's OSS Scanner.; A security contact email in SECURITY.md.
- v0.1.2 (2026-06-14): One-click "Add to X" install buttons (Cursor, VS Code, VS Code Insiders, LM Studio) and per-client setup snippets for Claude Code, Claude Desktop, Cursor, VS Code, Antigravity…; server.json — Model Context Protocol registry manifest (PyPI package, stdio transport).; Claude Code plugin: .claude-plugin/plugin.json, .claude-plugin/marketplace.json, a root .mcp.json, and a /diagnose command that drives a full log diagnosis with the tools.; Beginner onboarding in both READMEs: a plain-language opener (what it is, and that it plugs into an AI client), a 5-minute Quick start with one client, a "where to get a .bin…

## Links

- https://github.com/furkanisikay/ardupilot-mcp

## To build something like this

- Free discovery call: https://www.softivation.com/book-online
- E-mail: contact@furkanisikay.com
- Phone / WhatsApp: +90 850 242 21 60
