rachio-mcp

rachio-mcp

Enables natural language querying and control of Rachio smart irrigation controllers, including watering status, zone runs, schedules, rain delays, and standby mode.

Category
Visit Server

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"], with RACHIO_API_TOKEN in 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 device argument (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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured