Skip to main content
Glama

pyBittle MCP Server

by cluesang
README.md3.01 kB
# pyBittle-mcp-server A Python MCP (Model Context Protocol) server for controlling the Bittle robot via Bluetooth. This server exposes a set of commands to move, pose, and interact with Bittle using the MCP protocol. ## Features - 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` ## Requirements - Python 3.10+ - [uv](https://github.com/astral-sh/uv) for package management - Bittle robot with Bluetooth enabled - [pyBittle](https://github.com/cluesang/pyBittle) library - [mcp-server](https://github.com/cluesang/pyBittle-mcp-server) library ## Installation & Setup 1. **Install uv (recommended for fast, reliable Python package management):** ```bash curl -Ls https://astral.sh/uv/install.sh | sh ``` 2. **Install uvx (required for MCP server):** ```bash curl -Ls https://astral.sh/uvx/install.sh | sh ``` 3. **Install dependencies:** ```bash # Option 1: Using start_server.sh (recommended) chmod +x start_server.sh ./start_server.sh # Option 2: Manual installation uv pip install -r requirements.txt # or, if using pyproject.toml: uv pip install -r pyproject.toml ``` ## Usage 1. **Configure Bluetooth:** Ensure your Bittle robot is powered on and in Bluetooth pairing mode. 2. **Run the MCP server:** ```bash # Option 1: Using start_server.sh (recommended) ./start_server.sh # Option 2: Manual start uvx mcpo --port 8080 -- uv run --with 'mcp[cli]' --with git+https://github.com/cluesang/pyBittle.git mcp run ./server.py ``` The server will attempt to connect to Bittle and log status to `bittle_mcp.log`. 3. **Integrate with MCP tools:** - This server exposes commands via the MCP protocol, making them accessible to any MCP-compatible client or tool. - You can use the [MCP CLI](https://github.com/modelcontext/mcp-cli) or other MCP tools to discover and invoke available commands on your Bittle robot. - Example (using MCP CLI): ```bash mcp call move_forward mcp call sit mcp call rest ``` - All available commands are decorated with `@mcp.tool()` in `server.py` and are automatically registered with the MCP server. ## Development - The main logic is in `server.py`. - Logging is configured to output to both console and `bittle_mcp.log`. - Commands are decorated with `@mcp.tool()` for MCP exposure. - Use `start_server.sh` for development as it handles environment setup and process management. ## Troubleshooting - If the server fails to connect, check Bluetooth pairing and ensure no other process is using the Bittle connection. - Review `bittle_mcp.log` for detailed error messages. - If you encounter port conflicts, `start_server.sh` will automatically handle killing existing server processes. - Make sure both `uv` and `uvx` are installed and available in your PATH. ## License MIT License

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cluesang/pyBittle-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server