servomotor-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GEAROTONS_LIMITS | No | JSON object mapping motor alias to position/speed limits (e.g., '{"x":{"min_deg":-180,"max_deg":180,"max_speed":300}}'). | |
| GEAROTONS_SERIAL_PORT | No | Serial port path (e.g., /dev/ttyUSB0) required when backend is serial. | |
| GEAROTONS_MOTOR_ALIASES | No | Comma-separated alias allow-list for motors (e.g., 'x,y,z'). | |
| GEAROTONS_MOTOR_BACKEND | No | Backend type: 'mock' (default) or 'serial' for real hardware. | mock |
| GEAROTONS_MOCK_SIM_SECONDS | No | Simulated move duration in seconds for mock backend (e.g., '0.4'). |
Capabilities
Features and capabilities supported by this server
| 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 |
|---|---|
| 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 |
| 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 Prefer this over |
| homeA | Run homing on one motor, or ALL motors if 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 |
| 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 |
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
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