ABB RobotStudio MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ABB_RWS_URL | No | Initial controller RWS base URL; not automatically discovered | http://localhost:80 |
| ABB_RWS_PASS | No | RWS password | robotics |
| ABB_RWS_USER | No | RWS account name | Default User |
| ABB_BRIDGE_URL | No | HTTP base URL for the loaded ClaudeBridge Add-In | http://localhost:58080 |
| ABB_RWS_ALLOWED_HOSTS | No | Comma-separated additional hostnames/IP addresses permitted by runtime target switching |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| rs_pingA | Check if RobotStudio ClaudeBridge Add-In is running and connected |
| rs_get_stationB | Get active RobotStudio station info (name, controllers) |
| rs_get_station_objectsA | List all objects in the station (robots, tools, smart components). Set bbox=true for bounding box and position data. |
| rs_save_stationB | Save the active station to disk |
| rs_get_tasksA | List RAPID tasks with module counts (SDK) |
| rs_get_modulesA | List RAPID modules in a task (SDK) |
| rs_read_moduleC | Read full RAPID source code of a module (SDK) |
| rs_write_moduleB | Write RAPID module source code into running controller (SDK). Auto-validates RAPID syntax and uses file upload for large modules. |
| rs_read_variableC | Read a RAPID variable initial value (SDK) |
| rs_write_variableC | Set a RAPID variable initial value (SDK) |
| rs_list_variablesB | List RAPID variables with optional type/module filter (SDK) |
| rs_get_execution_errorsA | Read controller event log for errors and warnings (SDK) |
| rs_get_screenshotB | Capture 3D view screenshot as base64 PNG (SDK) |
| rs_controller_statusA | Get controller state via SDK (systemState, runMode, simulation) |
| rs_start_simulationA | Start RobotStudio simulation (Play). Blocks if RAPID errors detected — use force=true to override. |
| rs_stop_simulationA | Stop RobotStudio simulation |
| rs_pause_simulationB | Pause RobotStudio simulation |
| rs_reset_simulationA | Reset simulation to start position (stops simulation and resets PP) |
| rs_simulation_statusB | Get simulation state and time |
| rs_set_sim_speedB | Set simulation speed multiplier |
| rs_get_pathsA | List all robot paths in the station |
| rs_get_path_targetsC | Get targets/waypoints in a path |
| rs_create_pathC | Create a new robot path |
| rs_create_targetC | Create a new robot target at coordinates |
| rs_read_configA | Read controller config file (SYS.cfg, EIO.cfg, SIO.cfg, MOC.cfg) |
| rs_write_configD | Write controller config file |
| rs_check_collisionsB | Run collision check on station objects |
| rs_get_positionB | Get robot position via SDK |
| rs_get_io_signalsB | List I/O signals via SDK |
| rs_read_io_signalB | Read individual IO signal state and value via SDK |
| rs_write_io_signalC | Set individual IO signal value via SDK |
| rs_validate_rapidB | Validate RAPID source code syntax (block balance: IF/ENDIF, PROC/ENDPROC, etc.) |
| rs_check_safetyA | Check if it is safe to start simulation (no RAPID errors, controller ready) |
| rws_set_controller_urlB | Switch RWS target controller at runtime (virtual ↔ real, no restart needed) |
| rws_controller_statusB | Get controller state via RWS (opmode, motors, RAPID execution) |
| rws_set_motorsB | Turn motors on/off via RWS (real controller command) |
| rws_start_programB | Start RAPID execution on the controller via RWS. Blocks if errors detected — use force=true to override. |
| rws_stop_programC | Stop RAPID execution via RWS |
| rws_reset_ppA | Reset RAPID program pointer via RWS |
| rws_execution_stateB | Get RAPID execution state via RWS |
| rws_get_tasksB | List RAPID tasks via RWS |
| rws_get_modulesC | List RAPID modules in a task via RWS |
| rws_read_moduleC | Read RAPID module text via RWS |
| rws_write_moduleC | Write RAPID module text via RWS (auto-mastership). Validates RAPID syntax before upload. |
| rws_load_module_from_fileC | Load a RAPID module from a file on the controller filesystem via RWS |
| rws_unload_moduleC | Unload (delete) a RAPID module from a task via RWS |
| rws_save_programC | Save entire RAPID program to a directory on the controller via RWS |
| rws_load_programC | Load a RAPID program from the controller filesystem via RWS |
| rws_restart_controllerC | Restart the robot controller via RWS (warm-start, resets RAPID) |
| rws_read_variableC | Read a RAPID variable's live runtime value via RWS |
| rws_write_variableC | Write a RAPID variable's live value via RWS |
| rws_get_positionC | Get live robot TCP position via RWS |
| rws_get_io_signalsB | List all I/O signals via RWS |
| rws_read_ioC | Read a single I/O signal via RWS |
| rws_write_ioC | Set an I/O signal value via RWS |
| rws_get_speed_overrideA | Get speed override percentage via RWS |
| rws_set_speed_overrideC | Set speed override (0-100%) via RWS |
| rws_event_logC | Get controller event log via RWS |
| rws_list_filesB | List files on controller filesystem via RWS |
| rws_read_fileC | Read a file from controller filesystem via RWS |
| rws_write_fileC | Write a file to controller filesystem via RWS |
| rws_request_mastershipA | Request mastership (needed for writes) |
| rws_release_mastershipD | Release mastership |
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 63 tools
The set exposes two parallel interfaces (rs_* SDK and rws_* RWS) with many near-duplicate operations: get_modules, read_module, write_module, read/write_variable, get_position, I/O reads/writes, controller status, and event logs. The protocol qualifiers help somewhat, but an agent must still choose between closely overlapping tools, making misselection likely.
Tool names use a predictable snake_case convention with clear rs_/rws_ interface prefixes. There are minor deviations from strict verb_noun form, such as rs_controller_status and rws_execution_state, but the pattern is largely consistent and readable.
63 tools is far beyond a well-scoped MCP surface; the dual SDK/RWS split multiplies overlapping capabilities. This is an extreme count mismatch for practical agent selection, even for a broad robotics domain.
Coverage is broad: station inspection/save, RAPID module and variable access, simulation control, paths/targets, config, collision checks, I/O, filesystem operations, and mastership. Minor gaps exist, such as deleting paths/targets or managing tasks/routines, but core RobotStudio workflows are represented.