rwestergren avatar

Rachio Mcp

rwestergren/rachio-mcp

Talks directly to Rachio's internal gRPC backend, the same API their mobile app uses, giving you full read/write access instead of the limited public REST API. You get 23 tools covering device discovery, complete schedule CRUD (including a dry-run preview before committing changes), live zone control, rain delays, and calendar lookups. Built by reverse engineering the Android app's protobuf definitions. Requires minting a long-lived access token once via the included CLI tool. Reach for this when you need an agent to actually manage irrigation schedules or respond to weather conditions, not just read sensor data. The unofficial nature means it could break on app updates, but the author ships the proto regeneration scripts in the repo.

GitHub stars
8
tools
24
auth
Secret needed
transport
STDIO
env var
1
last updated
Aug 12, 2026

Tools

24 tools

Public tool metadata for what this MCP can expose to an agent.

list_devicesEvery device on the account — controllers, sensors, weather stations

Every device on the account — controllers, sensors, weather stations

No parameter schema in public metadata yet.

get_deviceFull details + live state for a single device

Full details + live state for a single device

No parameter schema in public metadata yet.

list_zonesZones configured on a controller, with agronomic metadata

Zones configured on a controller, with agronomic metadata

No parameter schema in public metadata yet.

get_zoneFull detail for a single zone

Full detail for a single zone

No parameter schema in public metadata yet.

get_calendarScheduled runs + skip events for a date range

Scheduled runs + skip events for a date range

No parameter schema in public metadata yet.

get_run_historyObserved recent/past zone-run telemetry plus calendar context

Observed recent/past zone-run telemetry plus calendar context

No parameter schema in public metadata yet.

get_active_alertsUnresolved alerts on a device or zone

Unresolved alerts on a device or zone

No parameter schema in public metadata yet.

get_weatherObserved + forecast weather readings for a location

Observed + forecast weather readings for a location

No parameter schema in public metadata yet.

list_schedulesFilter by device, location, zone, or schedule id

Filter by device, location, zone, or schedule id

No parameter schema in public metadata yet.

get_scheduleSingle schedule + its locations/devices

Single schedule + its locations/devices

No parameter schema in public metadata yet.

preview_scheduleDry-run — returns the Schedule that create_schedule would produce, including the server-generated human-readable summary. Never persists

Dry-run — returns the Schedule that create_schedule would produce, including the server-generated human-readable summary. Never persists

No parameter schema in public metadata yet.

create_scheduleCreate a new schedule

Create a new schedule

No parameter schema in public metadata yet.

update_schedulePartial-merge edit: name, enabled, timing/criteria, day restrictions, and per-zone add/update/remove

Partial-merge edit: name, enabled, timing/criteria, day restrictions, and per-zone add/update/remove

No parameter schema in public metadata yet.

delete_schedulePermanent, destructive

Permanent, destructive

No parameter schema in public metadata yet.

copy_scheduleDuplicate an existing schedule

Duplicate an existing schedule

No parameter schema in public metadata yet.

run_scheduleTrigger an immediate run

Trigger an immediate run

No parameter schema in public metadata yet.

skip_scheduleSkip or re-arm the next scheduled run

Skip or re-arm the next scheduled run

No parameter schema in public metadata yet.

get_schedule_runsPast runs + skip events for a schedule

Past runs + skip events for a schedule

No parameter schema in public metadata yet.

stop_wateringStop whatever is running

Stop whatever is running

No parameter schema in public metadata yet.

start_zonesStart one or more zones manually by zone number + duration

Start one or more zones manually by zone number + duration

No parameter schema in public metadata yet.

set_rain_delayDefer all schedules until a given time

Defer all schedules until a given time

No parameter schema in public metadata yet.

skip_current_zoneSkip to the next zone in the active run

Skip to the next zone in the active run

No parameter schema in public metadata yet.

pause_wateringPause the current zone for N seconds

Pause the current zone for N seconds

No parameter schema in public metadata yet.

resume_wateringResume a paused run

Resume a paused run

No parameter schema in public metadata yet.

Sponsors

Configuration

RACHIO_ACCESS_TOKEN*secret

Long-lived Rachio OAuth access token. Mint one with `rachio-mcp-token` (or `uvx --from rachio-mcp rachio-mcp-token`). The token lasts ~25 years and replaces sending your password to the MCP process.

Readme

rachio-mcp

An MCP (Model Context Protocol) server for Rachio sprinkler controllers, built on the reverse-engineered Android-app gRPC API.

The public Rachio API exposes only read-only access to schedules and a handful of single-action endpoints. This server instead talks to the same internal gRPC backend (cloud.rach.io:443) that the official mobile app uses, giving an agent the full set of operations: listing devices and zones, inspecting schedules, creating and previewing new schedules, updating and deleting them, starting and stopping manual zone runs, setting rain delays, and more.

⚠️ Unofficial. This server uses a reverse-engineered API. It works as of Rachio Android v4.21.18 and is not supported by Rachio. The schema can change without notice.

Features


View the full README on GitHub

Details

Repository
github.com/rwestergren/rachio-mcp
Package
rachio-mcp
Transport
STDIO
Auth
Required
Registry
MCP registry, active

More from rwestergren