sphero-rvr-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| RVR_BAUD_RATE | No | Serial baud rate | 115200 |
| RVR_LOG_LEVEL | No | Log level (DEBUG, INFO, WARNING, ERROR) | INFO |
| RVR_LOG_FORMAT | No | Log format (json, console) | json |
| RVR_SERIAL_PORT | No | Serial port for RVR | /dev/ttyAMA0 |
| RVR_COMMAND_TIMEOUT | No | Auto-stop timeout (seconds, 0=disabled) | 5.0 |
| RVR_MAX_SPEED_PERCENT | No | Default speed limit (0-100) | 50.0 |
| RVR_COMMAND_QUEUE_SIZE | No | Max queued commands | 100 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| test_immediate_returnB | Test tool that returns immediately. |
| test_slow_returnB | Test tool that takes 3 seconds. |
| connect_simpleB | Simple connect test without parameters. |
| connectC | Connect to the Sphero RVR robot and wake it up. |
| disconnectB | Disconnect from RVR. |
| get_connection_statusB | Get connection status. |
| drive_with_headingC | Drive at speed toward heading. |
| drive_tankC | Drive with tank controls. |
| drive_rcD | Drive with RC controls. |
| stopB | Stop RVR. |
| emergency_stopC | Emergency stop. |
| clear_emergency_stopB | Clear emergency stop. |
| reset_yawC | Reset yaw. |
| reset_locatorC | Reset locator. |
| pivotA | Pivot (turn in place) by a specified number of degrees. Rotates the RVR without forward motion. Uses internal heading control for accurate turning. |
| drive_forwardA | Drive forward a specified distance in meters. Uses RVR's internal position controller for accurate movement. |
| drive_backwardA | Drive backward a specified distance in meters. Uses RVR's internal position controller for accurate movement. |
| set_all_ledsC | Set all LEDs. |
| set_ledC | Set specific LED group. |
| turn_leds_offA | Turn off all LEDs. |
| start_sensor_streamingD | Start sensor streaming. |
| stop_sensor_streamingA | Stop sensor streaming. |
| get_sensor_dataB | Get sensor data. Note: Sensor queries use blocking serial I/O. Each query typically completes in <100ms but may block the event loop briefly. |
| get_ambient_lightB | Get ambient light. |
| enable_color_detectionD | Enable color detection. |
| get_color_detectionD | Get color detection. |
| get_battery_statusC | Get battery status. |
| get_safety_statusC | Get safety status. |
| set_speed_limitC | Set speed limit. |
| set_command_timeoutD | Set command timeout. |
| send_ir_messageD | Send IR message. |
| start_ir_broadcastingC | Start IR broadcasting. |
| stop_ir_broadcastingA | Stop IR broadcasting. |
| get_temperatureA | Get temperature sensor readings (motor and Nordic die temps). Returns temperatures in Celsius for left_motor, right_motor, and nordic_die. |
| get_motor_thermal_protection_statusA | Get motor thermal protection status. Returns temperature and status for each motor. Status: 0=ok, 1=warning, 2=critical |
| get_firmware_versionA | Get firmware version (major.minor.revision) for both processors. |
| get_mac_addressA | Get Bluetooth MAC address. |
| get_board_revisionA | Get PCB board revision for both processors. |
| get_processor_nameA | Get processor identifier strings for both processors. |
| get_skuA | Get product SKU string. |
| get_core_uptimeA | Get core uptime in milliseconds since power-on for both processors. |
| get_battery_voltageB | Get battery voltage in volts (calibrated). |
| get_battery_voltage_stateA | Get battery voltage state (ok/low/critical). |
| get_battery_thresholdsA | Get battery voltage thresholds (critical, low, hysteresis). |
| get_encoder_countsA | Get wheel encoder tick counts (left and right). |
| get_magnetometerA | Get magnetometer X, Y, Z readings with heading and cardinal direction. |
| calibrate_magnetometerA | Start magnetometer calibration (calibrate to north). This is an async operation - the RVR will notify when complete. Rotate the RVR 360 degrees during calibration. |
| get_motor_fault_stateA | Check if motor fault is currently active. |
| enable_motor_stall_notifyB | Enable or disable motor stall detection notifications. |
| enable_motor_fault_notifyC | Enable or disable motor fault detection notifications. |
| start_ir_followingB | Start following an IR-broadcasting robot. |
| stop_ir_followingA | Stop IR following behavior. |
| start_ir_evadingC | Start evading an IR-broadcasting robot. |
| stop_ir_evadingC | Stop IR evading behavior. |
| get_ir_readingsA | Get all 4 IR sensor readings (front_left, front_right, back_right, back_left). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/jsperson/sphero_rvr_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server