# rachio-mcp [Health: Active]

**Category:** 🏠 Home Automation  
**Repository:** https://github.com/rwestergren/rachio-mcp  
**GitHub Stars:** 7  
**Views:** 2  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/rachio-mcp

## Description
MCP server for Rachio sprinkler controllers — schedules, zones, and live watering control

## Tools
Capabilities this server exposes over MCP:

- **list_devices** — Every device on the account — controllers, sensors, weather stations
- **get_device** — Full details + live state for a single device
- **list_zones** — Zones configured on a controller, with agronomic metadata
- **get_zone** — Full detail for a single zone
- **get_calendar** — Scheduled runs + skip events for a date range
- **get_run_history** — Observed recent/past zone-run telemetry plus calendar context
- **get_active_alerts** — Unresolved alerts on a device or zone
- **get_weather** — Observed + forecast weather readings for a location
- **list_schedules** — Filter by device, location, zone, or schedule id
- **get_schedule** — Single schedule + its locations/devices
- **preview_schedule** — Dry-run** — returns the Schedule that `create_schedule` would produce, including the server-generated human-readable summary. Never persists
- **create_schedule** — Create a new schedule
- **update_schedule** — Partial-merge edit: name, enabled, timing/criteria, day restrictions, and per-zone add/update/remove
- **delete_schedule** — Permanent, destructive
- **copy_schedule** — Duplicate an existing schedule
- **run_schedule** — Trigger an immediate run
- **skip_schedule** — Skip or re-arm the next scheduled run
- **get_schedule_runs** — Past runs + skip events for a schedule
- **stop_watering** — Stop whatever is running
- **start_zones** — Start one or more zones manually by zone number + duration
- **set_rain_delay** — Defer all schedules until a given time
- **skip_current_zone** — Skip to the next zone in the active run
- **pause_watering** — Pause the current zone for N seconds
- **resume_watering** — Resume a paused run

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `uvx` (confidence: high):

```json
"mcpServers": {
  "rachio-mcp": {
    "command": "uvx",
    "args": ["--from","rachio-mcp","rachio-mcp-token"],
    "env": {
      "RACHIO_ACCESS_TOKEN": ""
    }
  }
}
```

**Requires environment variables:** `RACHIO_ACCESS_TOKEN` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What rachio-mcp does

The rachio-mcp MCP server gives an MCP client access to Rachio account data and controller operations. Discovery tools enumerate controllers, sensors, weather stations, and zones, while detail tools return device state, zone configuration, alerts, weather readings, scheduled events, and observed run history.

Schedule tools cover the full lifecycle of a schedule. An agent can list and inspect schedules, preview a proposed schedule without saving it, create or copy schedules, apply partial updates, delete schedules, trigger immediate runs, skip or re-arm the next run, and inspect schedule run history. The preview response includes the generated schedule representation, a human-readable summary, and zone details before any write occurs.

Live operations include starting selected zones by zone number and duration, stopping active watering, applying a rain delay, skipping the current zone, and pausing or resuming a running zone.

## How it works

The server communicates with `cloud.rach.io:443` using TLS-protected gRPC. This is the internal backend used by the Rachio Android application rather than the public read-oriented API. Its protocol definitions were recovered from Rachio Android version 4.21.18, and generated Python stubs are included with the package.

Authentication uses a long-lived bearer token. The separate `rachio-mcp-token` command obtains that token through Rachio authentication; the MCP process itself does not receive or store the account password. During operation, the client derives the account user ID on first use and keeps the token and identifier in memory for the process lifetime. It does not write them to disk.

Most operations require UUIDs for a device, zone, schedule, or location. Obtain those identifiers from the corresponding listing tools before making detail or mutation calls. Dates use `YYYY-MM-DD`, with `MM-DD` also supported for annual recurring schedules, and times use `HH:MM`.

## Setup and configuration

Install `uv`, then run `uvx --from rachio-mcp rachio-mcp-token` to mint an access token. The command prompts for the Rachio email and password unless `RACHIO_EMAIL` and `RACHIO_PASSWORD` are supplied for the token-minting command. Put the resulting `RACHIO_ACCESS_TOKEN` in the MCP client's environment configuration.

The server can then be launched on demand with `uvx rachio-mcp`. `RACHIO_ACCESS_TOKEN` is required by the server. `LOG_LEVEL` is optional and defaults to `INFO`; logging goes to stderr so stdout remains available for MCP messages.

For schedule changes, first identify the controller and zones, inspect existing schedules, and call `preview_schedule` with the proposed arguments. If the returned summary and zone breakdown are correct, call `create_schedule` with the same arguments and then retrieve the new schedule for confirmation. Use `update_schedule` for partial edits to an existing schedule. Deletion is permanent.

## Limitations and notes

The rachio-mcp MCP server is unofficial and depends on a reverse-engineered API. The documented implementation matches Rachio Android version 4.21.18, but Rachio can change the backend or schema without notice. Rachio does not support this integration.

The access token remains valid for roughly 25 years under the documented conditions, but it can become invalid if the password changes or the account is logged out from another device. If a call reports a rejected token, mint a new one and update the MCP client configuration.

Operations that start, stop, pause, skip, delay, create, update, or delete affect the physical irrigation system or its schedules. Treat destructive and live-control calls differently from read-only inspection, and use the preview operation before creating schedules.

_Full upstream README: https://allmcps.com/mcp/rachio-mcp/readme_

