Skip to main content
Glama
Gearotons

servomotor-mcp

by Gearotons

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GEAROTONS_LIMITSNoJSON object mapping motor alias to position/speed limits (e.g., '{"x":{"min_deg":-180,"max_deg":180,"max_speed":300}}').
GEAROTONS_SERIAL_PORTNoSerial port path (e.g., /dev/ttyUSB0) required when backend is serial.
GEAROTONS_MOTOR_ALIASESNoComma-separated alias allow-list for motors (e.g., 'x,y,z').
GEAROTONS_MOTOR_BACKENDNoBackend type: 'mock' (default) or 'serial' for real hardware.mock
GEAROTONS_MOCK_SIM_SECONDSNoSimulated move duration in seconds for mock backend (e.g., '0.4').

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_motorsA

List every motor on the RS-485 bus with its alias and current position.

Call this FIRST in any session to discover what is connected before issuing moves.

move_toA

Move one motor to an ABSOLUTE angle in degrees (closed-loop, won't lose steps).

Use when the user names a target position ("go to 90 degrees", "point straight up"). The target is clamped to the motor's configured software limits; any clamp is reported in safety_notes. speed is degrees/second (optional).

move_relativeA

Nudge one motor by a RELATIVE amount in degrees (+ / -).

Use for "turn a bit more", "back off 10 degrees", or incremental jogging. The move is clamped so the resulting absolute position stays within software limits.

trapezoid_moveA

Move to an absolute angle with smooth acceleration/deceleration over duration_s.

Prefer this over move_to for arms, plotters, or anything where a sudden move would jerk the mechanism. Good for choreographed motion.

homeA

Run homing on one motor, or ALL motors if motor is omitted.

Call at the start of a build, or when the user says "home", "reset", or "go to zero".

get_statusA

Report position, motion state, voltage, and any error for one motor or all motors.

Call after a move to CONFIRM it completed, or when the user asks "where is it / what's its state".

stopA

Immediately halt motion on one motor, or ALL motors if omitted.

Use for "stop", "halt", "cancel", or any sign something is wrong. Always available.

resetA

Recover a motor from a latched fault by issuing a firmware system reset (reboots ~2s).

Call when get_status reports an error the motor won't clear on its own. The motor returns to a clean, idle state afterward. Omit motor to reset all.

run_sequenceA

Execute a choreographed sequence of moves, e.g. to "draw a square" or "wave".

Each step is one of: {"action": "move_to", "motor": "x", "degrees": 90, "speed": 120} {"action": "move_relative", "motor": "y", "degrees": -30} {"action": "trapezoid_move", "motor": "z", "degrees": 45, "duration_s": 1.5} {"action": "home", "motor": "x"} # motor optional -> all {"action": "stop"} # motor optional -> all

Steps run in order; each is individually safety-checked and clamped. Returns the final state of every motor plus any safety notes that fired. Engine lives in sequencer.py (pure, unit- and hardware-tested without the MCP SDK).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/Gearotons/servomotor-mcp'

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