https://github.com/bracketbotcapstone/bracketbot-mcp
An MCP server to control a bracket bot that runs the example_server.py in the quickstart repo
https://github.com/bracketbotcapstone/bracketbot-mcp
Last synced: 5 months ago
JSON representation
An MCP server to control a bracket bot that runs the example_server.py in the quickstart repo
- Host: GitHub
- URL: https://github.com/bracketbotcapstone/bracketbot-mcp
- Owner: BracketBotCapstone
- Created: 2025-03-14T05:39:55.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-03-14T05:47:42.000Z (8 months ago)
- Last Synced: 2025-03-14T06:29:06.591Z (8 months ago)
- Language: Python
- Size: 0 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- toolsdk-mcp-registry - ❌ bracketbot-multi-robot-control
README
# Multi-Robot Control MCP Agent
This project creates an MCP (Model Context Protocol) server that allows AI agents to control multiple robots via existing FastAPI robot control servers.
## Features
- Control multiple robots simultaneously
- Control robot movement (forward, backward, left, right)
- Play sounds through the robots' speakers
- Get robot status information
- Precise velocity control
- Access robot camera images
- Unified API with port specification
## Prerequisites
- Python 3.10+
- UV (Python package manager)
- Multiple running robot control FastAPI servers (as provided in the example)
## Setup
1. Ensure you have a Python 3.10 environment active
2. Install dependencies using UV:
```bash
uv pip install -e .
```
## Usage
1. Start the robot control FastAPI servers:
- First robot on port 8000
- any other robots on 8001, 8002, etc
2. **Important Update:** The Claude desktop client now automatically runs the MCP server for you
- No need to manually start the server with `python server.py`
- The MCP server functionality is integrated directly into the Claude desktop client
3. The MCP server allows AI agents to control multiple robots and access their cameras.
## Available Tools
All tools accept a `port` parameter (default: 8000) to specify which robot to control.
### Movement Control
- `drive_forward`: Move a robot forward
- `drive_backward`: Move a robot backward
- `turn_left`: Turn a robot left
- `turn_right`: Turn a robot right
- `stop`: Stop robot movement
- `drive`: Control with precise velocity values
### Audio Control
- `beep`: Play a sound through a robot's speaker
### Camera Access
- `get_camera_image`: Get an image from a robot's camera
### System Information
- `robot_status`: Get robot status information
- `list_available_robots`: List all available robots and their status
## Available Resources
- `robot://info/{port}`: Get information about a specific robot's capabilities
## Examples
```python
# Get status from robot on port 8000
status_robot1 = await client.robot_status(port=8000)
# Get status from robot on port 8001
status_robot2 = await client.robot_status(port=8001)
# Make both robots beep with different tones
await client.beep(port=8000, frequency=440, duration=1.0) # A4 note on robot 1
await client.beep(port=8001, frequency=523.25, duration=1.0) # C5 note on robot 2
# Get a list of all available robots
robots = await client.list_available_robots()
```
## Note on Image Handling
The camera image tools use MCP's native `Image` class for handling image data. This allows the AI agent to receive the image data in a format that can be properly handled by the client without need for additional conversion.