Overview
What is pyBittle-mcp-server?
pyBittle-mcp-server is a Python MCP (Model Context Protocol) server for controlling the Bittle robot via Bluetooth. It exposes movement and pose commands such as forward, backward, turn, sit, and rest, making them accessible through any MCP‑compatible client.
How to use pyBittle-mcp-server?
Install uv and uvx, then set up dependencies using the provided start_server.sh script or by manually running uv pip install -r requirements.txt. Power on the Bittle robot in Bluetooth pairing mode and start the server with ./start_server.sh. Once running, use MCP tools (e.g., the MCP CLI) to invoke commands like mcp call move_forward.
Key features of pyBittle-mcp-server
- Connects to Bittle via Bluetooth.
- Exposes movement and pose commands (forward, backward, turn, sit, rest, etc.).
- Integrates with MCP tools for remote and programmatic control.
- Logs all activity to
bittle_mcp.log.
Use cases of pyBittle-mcp-server
- Remote control of a Bittle robot from any MCP‑compatible client.
- Automating robot movements in scripts or AI‑driven workflows.
- Integrating robot commands into larger MCP‑based systems.
FAQ from pyBittle-mcp-server
What does pyBittle-mcp-server do?
It acts as a bridge between the MCP protocol and the Bittle robot, allowing movement and pose commands to be sent via Bluetooth.
What are the system requirements?
Python 3.10+, uv, uvx, the pyBittle library, the mcp-server library, and a Bittle robot with Bluetooth enabled.
How do I connect the server to Bittle?
Ensure the Bittle is powered on and in Bluetooth pairing mode before launching the server. The server attempts to connect automatically and logs the status.
What if the server fails to start?
Check Bluetooth pairing and confirm no other process is using the Bittle connection. Review bittle_mcp.log for detailed error messages. If port conflicts occur, start_server.sh automatically handles killing existing server processes.
What commands are available?
Commands include move_forward, sit, rest, and others. All are decorated with @mcp.tool() in server.py and automatically registered with the MCP server. Use mcp call to invoke them.