rachio-mcp
Enables natural language querying and control of Rachio smart irrigation controllers, including watering status, zone runs, schedules, rain delays, and standby mode.
README
<p align="center"> <img src="assets/logo.svg" width="128" alt="rachio-mcp logo"> </p>
<h1 align="center">rachio-mcp</h1>
<p align="center"> An <a href="https://modelcontextprotocol.io">MCP</a> server for <b>Rachio</b> smart sprinkler controllers, via the official public cloud API. </p>
What it does
Exposes your Rachio irrigation system to any MCP client (Claude Code, Claude Desktop, etc.) so you can ask "is anything watering right now?", "run the front lawn for 10 minutes", or "put it on a 2-day rain delay" in natural language.
Uses the Rachio public API — cloud, token-based, works from anywhere (no need to be on the same network as the controller).
Tools
| Tool | Purpose |
|---|---|
list_devices |
all controllers on the account, with status and zone summary |
get_status |
one-shot: online, on/paused, rain sensor & delay, what's watering now |
list_zones |
zones on a controller (number, name, enabled) |
list_schedules |
stored schedule rules (watering times) |
start_zone |
run one zone for N minutes (max 180) |
start_zones |
run several zones in sequence |
stop_watering |
stop everything now |
set_rain_delay |
set/clear a rain delay (0–7 days) |
run_schedule |
start a stored schedule rule by name or id |
set_device_power |
take the controller out of / into standby |
Zones and devices can be referenced by name or number, not just their API ids.
Requirements
- Python 3.12+
uv- A Rachio account and an API token
Get your API token
In the Rachio mobile app: Profile → Get API Key → Copy.
It's a single bearer token tied to your account — treat it like a password.
Install
git clone https://github.com/rudy325/rachio-mcp.git
cd rachio-mcp
uv sync
Configure
export RACHIO_API_TOKEN=your-api-token
See .env.example.
Register with Claude Code
claude mcp add rachio \
--env RACHIO_API_TOKEN=your-api-token \
-- uv --directory /path/to/rachio-mcp run server.py
Or with Claude Desktop, in claude_desktop_config.json:
{
"mcpServers": {
"rachio": {
"command": "uv",
"args": ["--directory", "/path/to/rachio-mcp", "run", "server.py"],
"env": { "RACHIO_API_TOKEN": "your-api-token" }
}
}
}
Use with other clients (OpenAI, local models, etc.)
This is a standard MCP server — it speaks the open protocol over stdio and doesn't care which model or client drives it. Anything that supports MCP works:
- OpenAI — the Agents SDK and
Responses API accept MCP servers. Point them at:
command: "uv",args: ["--directory", "/path/to/rachio-mcp", "run", "server.py"], withRACHIO_API_TOKENin the environment. - Local / open-source models — via any MCP-capable client (Cline, Continue, LibreChat, Open WebUI, Goose, Zed, Cursor) running Ollama, Llama, Qwen, etc.
- Any other MCP client — same stdio command as the Claude examples above.
The only requirement is a model that's competent at tool/function calling; the large hosted models and stronger local ones (Llama 3.1+, Qwen 2.5+) handle it well.
Notes
- Multiple controllers: every tool takes an optional
deviceargument (name or id), required only when the account has more than one controller. - Durations: zone runs are capped at 180 minutes and rain delays at 7 days, matching the API limits.
- Standby:
set_device_power(on=false)puts the controller in standby, pausing all scheduled watering until turned back on. - Rate limits: the Rachio API allows 1700 calls/day per token; these tools are all single calls, so normal use is nowhere near the limit.
How it fits together
MCP client ──stdio──> server.py ──HTTPS──> api.rach.io/1 ──> your Rachio controller
License
MIT. Not affiliated with or endorsed by Rachio, Inc. "Rachio" is a trademark of Rachio, Inc.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.