Ardupilot Mavlink MCP server
io.github.rmeadomavic/ardupilot-mavlink-mcp·v0.1.0·3 starsLive ArduPilot control over MAVLink: state, params, modes, prearm diagnosis, gated arm. SITL-first.
3 stars20 downloads/wk
Reviews
Write oneNobody has reviewed Ardupilot Mavlink yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Ardupilot Mavlink tools (9)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
ardupilot_armARM the vehicle, confirmed via COMMAND_ACK.
ardupilot_connectConnect to a vehicle.
ardupilot_disarmDISARM the vehicle, confirmed via COMMAND_ACK. Same gating as arm.
ardupilot_get_paramRead one parameter by exact name.
ardupilot_list_paramsList parameters, optionally filtered by glob.
ardupilot_recent_statustextRecent STATUSTEXT / prearm messages, newest first.
ardupilot_set_modeSet flight mode by name.
ardupilot_set_paramSet one parameter and confirm via the echoed PARAM_VALUE.
ardupilot_vehicle_stateCurrent vehicle snapshot: mode, armed, GPS fix/sats, battery, attitude, position. Reads from cached telemetry and returns immediately.
Public scan report
scanner v0.1.9 · 2026-09-26 · same rubric, same numbers if you re-run it
- Code scan7 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 54 days ago12/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How Ardupilot Mavlink compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 88/100
- higher than 75% of 48,255 servers
- Tools
- 9
- the typical server has 7
- Tools that change things
- 0%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 3
- more than 80% of 28,688 servers
- Downloads a week
- 20
- more than 7% of 12,191 servers with a package
What its tools let an agent do: 9 read
Install Ardupilot Mavlink in Claude Code, Cursor or VS Code
claude mcp add ardupilot-mavlink-mcp -- uvx ardupilot-mavlink-mcp
What the publisher says
From the Ardupilot Mavlink repository's README, as published. We do not edit it. Read it on GitHub
ardupilot-mcp
An MCP server that lets an AI agent talk to an ArduPilot vehicle over MAVLink. Read state, inspect and change parameters, switch modes, read prearm failures, and (gated) arm or disarm. SITL-first.
Install: pipx install ardupilot-mavlink-mcp
mcp-name: io.github.rmeadomavic/ardupilot-mavlink-mcp
[!WARNING]
This tool can ARM and command a real aircraft. A bad command can spin props or fly a vehicle away. Defaults are built to stop that: actuation is OFF unless you pass --enable-actuation, and even then it refuses a real (non-loopback) link unless you also pass --allow-real-vehicle. Develop against SITL. On hardware, bench-test with props off first. No warranty — you own the outcome.
Why
Most ArduPilot tooling for LLMs targets post-flight log analysis. This one drives the live link: connect to a running vehicle, read its state and params, change modes, and diagnose why it won't arm — in the moment, not after landing. The useful case: point an agent at a vehicle that won't arm, have it read the params and the prearm STATUSTEXT, and tell you why, instead of you squinting at a GCS message log. The arm tool reports the real COMMAND_ACK result and hands back the prearm reasons on refusal; it never force-arms.
Architecture
agent (MCP client) ardupilot-mcp vehicle
┌──────────────────┐ JSON-RPC ┌──────────────────────┐ MAVLink ┌──────────┐
│ Claude / etc. │ ───stdio────▶ │ FastMCP tools │ ──udp/tcp/ │ ArduPilot│
│ │ ◀─────────── │ │ │ serial──▶ │ (SITL │
└──────────────────┘ │ ▼ │ ◀────────── │ or FC) │
│ recv thread (1 reader) └──────────┘
│ ├─▶ message cache (latest/type)
│ ├─▶ param store (request/collect)
│ └─▶ COMMAND_ACK + STATUSTEXT
└──────────────────────┘MAVLink is an async stream; MCP tools are synchronous. One background thread owns the link and is the only reader — it caches the latest message of each type and routes PARAMVALUE into a param store. Tool calls read from those caches (params block until the data arrives). No two threads ever call recvmatch.
What it does
- Reads vehicle state from cache, instantly. Mode, armed, GPS fix and sats, battery, attitude, position — served from cached telemetry, no blocking on the link.
- Diagnoses a no-arm. ardupilotarm returns the COMMANDACK result and, on refusal, the prearm STATUSTEXT (e.g. AHRS: waiting for home, Accels inconsistent). Safety checks are respected — no ARMING_CHECK=0, no force-arm magic number.
- Gets and sets parameters on the real param table, with set confirmed by the echoed PARAM_VALUE.
- Switches flight modes by name, mapped per vehicle type (Copter/Rover/Plane/Sub) — not hardcoded numbers.
Quick start (SITL)
You need an ArduPilot SITL instance. From an ardupilot checkout:
# starts ArduCopter SITL; serves MAVLink on tcp:127.0.0.1:5760
sim_vehicle.py -v ArduCopter --consoleInstall and run the server (read-only by default):
pipx install ardupilot-mavlink-mcp # or: uv tool install ardupilot-mavlink-mcp
ardupilot-mavlink-mcp --connect tcp:127.0.0.1:5760To allow parameter writes, mode changes, and arm/disarm against SITL, add --enable-actuation.
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Ardupilot Mavlink: common questions
- Is Ardupilot Mavlink MCP server safe?
- Yes, by our scan: it is graded A (88/100). Read the Ardupilot Mavlink safety report
- How do I install Ardupilot Mavlink?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Ardupilot Mavlink need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Ardupilot Mavlink maintained?
- The last commit was 93 days ago (2026-08-03). The latest release is v0.1.0.
- What can I use instead of Ardupilot Mavlink?
- Servers from other publishers that do the same job: Front-End Checklist MCP server.
- How does Ardupilot Mavlink compare with other MCP servers?
- safety score 88/100 (higher than 75% of 48,255 servers); tools 9 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to Ardupilot Mavlink
Same job from other publishers: the closest match first, then the best rated.
- Front-End ChecklistReview frontend code and live pages against 386 quality-gated web development rules.not reviewedWidely usedA