roomba-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ROOMBA_BLID | No | robot id (default from login cache) | |
| ROOMBA_HOST | No | robot host or IP | irobot-<blid>.local |
| ROOMBA_CONFIG | No | explicit config file | <dir>/config.toml |
| ROOMBA_LOG_FILE | No | extra log file (default none) | |
| ROOMBA_ALLOW_RAW | No | enable raw_publish | off |
| ROOMBA_HTTP_HOST | No | HTTP bind address | 127.0.0.1 |
| ROOMBA_HTTP_PORT | No | HTTP port | 8785 |
| ROOMBA_LOG_LEVEL | No | log level | info |
| ROOMBA_TRANSPORT | No | auto, local or cloud | auto |
| ROOMBA_CONFIG_DIR | No | config directory | ~/.config/roomba-mcp |
| ROOMBA_HTTP_TOKEN | No | bearer token (default from http-token file) | |
| ROOMBA_ROBOT_PORT | No | local MQTT port | 8883 |
| ROOMBA_ALLOW_WRITES | No | enable commands | off |
| ROOMBA_EXPERIMENTAL | No | enable unverified parameters | off |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_statusA | Live robot state: battery, mission phase, bin, tank, pad, position and the raw reported shadow. Set refresh=true to bypass the cache. |
| get_robot_infoA | Identity, active transport, login state, capability tiers and the current safety flags. Call this first to see what is allowed. |
| get_settingsC | Current cleaning settings: suction, carpet boost, edge clean, pad wetness, multi pass, bin pause and child lock. |
| get_scheduleC | The stored cleaning schedule, including per-region parameters. |
| get_mission_historyB | Recent finished missions from the iRobot cloud (1 to 100). |
| get_consumablesA | Consumable counters: brush, filter, pads and other parts with the remaining life and whether a reset is due. |
| get_mapC | Smart maps with their regions, for use with start_clean. |
| find_robotA | Make the robot play its locating sound. Needs ROOMBA_ALLOW_WRITES=1. |
| start_cleanB | Start a whole-home clean. Region, pass, suction and edge arguments need ROOMBA_EXPERIMENTAL=1 and a map from get_map. Needs ROOMBA_ALLOW_WRITES=1. |
| pause_cleanA | Pause the current mission. Needs ROOMBA_ALLOW_WRITES=1. |
| resume_cleanA | Resume a paused mission. Needs ROOMBA_ALLOW_WRITES=1. |
| stop_cleanA | Stop the current mission. Needs ROOMBA_ALLOW_WRITES=1. |
| dockA | Send the robot back to its dock. Needs ROOMBA_ALLOW_WRITES=1. |
| set_settingA | Change one setting: suction (normal|high), carpet_boost, edge_clean, multi_pass, bin_pause, child_lock (true|false), pad_wetness (1-3). Needs ROOMBA_ALLOW_WRITES=1. |
| set_scheduleA | Replace the cleaning schedule. Each entry needs a start object (day, hour, min) and a cmdStr string. Needs ROOMBA_ALLOW_WRITES=1. |
| reset_consumableA | Reset one consumable counter by part id from get_consumables. Needs ROOMBA_ALLOW_WRITES=1. |
| raw_publishA | Debug escape hatch: publish a raw JSON payload to one local topic (cmd, delta, shadow, timeline, testcmd). Needs ROOMBA_ALLOW_RAW=1 and the local transport. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| status | Live robot status as JSON. |
| mission | Current mission phase, counters and the latest timeline. |
| settings | Current cleaning settings as JSON. |
| schedule | Stored cleaning schedule as JSON. |
TDQS
Scored across 17 tools
The set cleanly separates read tools (get_status, get_settings, get_map, get_consumables) from mission control (start/pause/resume/stop_clean) and config writes (set_setting, set_schedule, reset_consumable). Minor overlap exists between get_status and get_robot_info (both report robot state/capabilities), but the descriptions differentiate live state from identity/safety flags.
Most tools follow a predictable verb_noun pattern (get_status, start_clean, set_schedule, reset_consumable), with a consistent get_ prefix for reads. The lone bare verb 'dock' and the odd 'raw_publish' are small deviations but the overall pattern is readable and predictable.
17 tools is on the heavier side but each maps to a genuine robot capability area (status, settings, schedule, maps, consumables, mission lifecycle, raw debug). Nothing appears duplicative, though the debug escape hatch is arguably extra surface.
The surface covers the full cleaning lifecycle, read-only telemetry, schedules, maps, settings, and consumable resets — a solid end-to-end picture. Gaps are minor: no map editing/region management beyond reading, and no targeted action like emptying the bin, but core workflows are reachable.