EV3 MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| EV3_HOST | No | Hostname or IP address of the EV3 brick. | |
| EV3_USER | No | SSH username for the EV3 brick. | |
| EV3_DRY_RUN | No | Dry-run mode. When set to '1', no SSH connection is made; set to '0' to enable real SSH connection. | 1 |
| EV3_PASSWORD | No | SSH password for the EV3 (primary authentication method). | |
| EV3_MAX_SPEED | No | Maximum allowed speed percentage, used as a clamp. | 80 |
| EV3_LEFT_MOTOR | No | Motor port for the left drive motor. | B |
| EV3_RIGHT_MOTOR | No | Motor port for the right drive motor. | C |
| EV3_MAX_DURATION | No | Maximum allowed duration in seconds, used as a clamp. | 5.0 |
| EV3_SSH_KEY_PATH | No | Path to the SSH private key, used when EV3_PASSWORD is not set. | ~/.ssh/id_ev3 |
| EV3_DEFAULT_SPEED | No | Default speed percentage for drive commands. | 40 |
| EV3_DEFAULT_DURATION | No | Default duration in seconds for drive commands. | 1.0 |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| move_forwardA | Drive the EV3 tank motors forward for a timed duration at a given speed percent. |
| move_backwardA | Drive the EV3 tank motors backward for a timed duration at a given speed percent. |
| turn_leftA | Differential turn left (left motor reverse, right forward) for a timed duration. |
| turn_rightA | Differential turn right (left motor forward, right reverse) for a timed duration. |
| stopA | Immediately stop both drive motors. Bypasses the command lock (safety fast path). |
| beepA | Play a short confirmation beep on the EV3 speaker. |
| list_connected_devicesA | List motors and sensors currently connected to the EV3 (port address, driver name; sensors also include mode). |
| robot_statusA | Report dry-run flag, SSH connection state, motor ports, busy flag, and last error. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each tool has a clearly distinct purpose: movement commands (forward/backward/turn/stop) are mutually exclusive, and beep, list_connected_devices, and robot_status cover separate concerns. No overlapping functionality.
All tool names use lowercase snake_case and follow a consistent verb-first pattern (move_forward, turn_left, list_connected_devices). Minor variance like 'robot_status' is still in the same style, so the set feels predictable.
With 8 tools, the server is well-scoped for EV3 remote control and status monitoring. Each tool addresses a necessary operation without redundancy or bloat.
The core movement and status operations are covered, including safety stop and device enumeration. A minor gap is the lack of direct sensor reading (e.g., reading a sensor value), but the current surface handles common remote-control workflows.