Files
mcbebop/README.md
T
rsp2k 5732befe82 Scaffold: package, settings, errors, server factory, shared contracts
protocol/types.py and arsdk/types.py are the interfaces the parallel streams
build against: command/arg/enum/expectation specs and the safety tiers on one
side, frame encoding and the buffer conventions on the other.

Logging goes to stderr throughout, since stdout carries JSON-RPC. That is also
why this package will speak ARSDK itself rather than through pyparrot, which
prints from its receive thread.
2026-10-01 23:53:15 -06:00

44 lines
1.5 KiB
Markdown

# mcbebop
An MCP server for the Parrot Bebop 2, so an agent can talk to the drone without
anyone writing code for each question.
Parrot abandoned the Bebop line, but the aircraft is still a capable, cheap
platform and its protocol is fully described by Parrot's own XML, which this
package vendors. Every one of the **264 commands** is reachable; nothing is
hand-wrapped.
> **Status: in development.** Not flight-tested. See the safety section.
## What it talks to
| Interface | Notes |
|---|---|
| ARSDK3 over UDP | commands and telemetry; this package implements the protocol directly |
| ARStream2 | live H.264 video. The Bebop 2 serves no RTSP, despite what older libraries assume |
| FTP | media, flight plans, blackbox logs |
| Telnet | read-only shell, only after the drone's debug mode is enabled |
## Safety
Commands are classified by consequence. Observing and configuring are open;
anything that can spin a motor or change the flight envelope refuses until
`arm()` is called with a reason, and re-locks on a timer and on disconnect.
`Landing` and `Emergency` are deliberately never locked, because refusing to
land an airborne aircraft is the more dangerous answer.
`connect(target="sim")` runs everything against a protocol-accurate simulator,
which is where anything involving motion should be rehearsed.
## Install
```bash
uvx mcbebop
claude mcp add mcbebop -- uvx mcbebop
```
## Credits
`arsdk-xml/` is Parrot SA's own protocol definition, BSD-3-Clause. See
`arsdk-xml/PROVENANCE.md`.