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.
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
# 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`.
|
||||
Reference in New Issue
Block a user