ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

Rachio MCP

โดย rwestergrenรุ่น 0.1.4i★ –iรันบนเครื่อง
ชื่อใน registryio.github.rwestergren/rachio-mcp

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

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

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: อื่น ๆ
  • ต้องใส่ค่าเหล่านี้: RACHIO_ACCESS_TOKEN

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต

ต้องเตรียมก่อน

  • PyPIติดตั้ง uv ของ Python (มีคำสั่ง uvx) ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "rachio": {
      "command": "uvx",
      "args": [
        "rachio-mcp"
      ],
      "env": {
        "RACHIO_ACCESS_TOKEN": "ใส่ค่าของคุณ"
      }
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add rachio --env RACHIO_ACCESS_TOKEN='ใส่ค่าของคุณ' -- uvx rachio-mcp

เติมค่าที่เว้นว่างไว้ก่อนรัน

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "rachio": {
      "command": "uvx",
      "args": [
        "rachio-mcp"
      ],
      "env": {
        "RACHIO_ACCESS_TOKEN": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "rachio": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "rachio-mcp"
      ],
      "env": {
        "RACHIO_ACCESS_TOKEN": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าที่ต้องใส่เอง

  • RACHIO_ACCESS_TOKEN ความลับ จำเป็น env
    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.

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub rwestergren ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

เทียบกับตัวอื่นในหมวด อื่น ๆi

  • ดาวมากกว่า 0% ของอีก 32583 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 23% ของอีก 32583 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 32583 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

Rachio MCP ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

ต้องใส่ค่าเหล่านี้: RACHIO_ACCESS_TOKEN

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.4) เข้า registry 3 เดือนที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, sync. labs

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Spec Driven Development

โดย formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

รันบนเครื่อง★ 440MITอัปเดต 14 เดือนที่ผ่านมา
ติดตั้ง

Remote Desktop Commander

โดย desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

รันบนคลาวด์★ 211อัปเดต เมื่อวาน
ติดตั้ง

sync. labs

โดย synchronicity-labs

Lipsync videos, dub them into other languages, make talking videos and open sync. Studio.

บนเครื่องหรือคลาวด์อัปเดต วันนี้
ติดตั้ง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

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

  • Devices and zones — list controllers, sensors, and weather stations; inspect zone soil/nozzle/plant configuration and live state
  • Schedules — list, read, preview (dry-run), create, update, delete, copy, run, and skip schedules
  • Live control — stop watering, run specific zones manually, set rain delays, skip/pause/resume the currently-running zone
  • Context — calendar of upcoming runs, recent/past run history, active alerts, observed/forecast weather readings

Quick Start

1. Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
2. Mint a long-lived access token

The MCP server itself never sees your Rachio password. Instead you mint a long-lived (~25-year) access token once, and supply only the token to the MCP client.

uvx --from rachio-mcp rachio-mcp-token

It will prompt for your Rachio email and password, then print a RACHIO_ACCESS_TOKEN value to paste into your MCP client config. The token remains valid until you change your password or explicitly log out from another device.

Or, if you'd rather have the commands on your PATH permanently, install once:

uv tool install rachio-mcp

Then rachio-mcp-token (and rachio-mcp itself) are available as regular commands.

For scripting (e.g. pipe into a password manager):

RACHIO_EMAIL=you@example.com RACHIO_PASSWORD=... \

uvx --from rachio-mcp rachio-mcp-token --json | jq .access_token

3. Configure your MCP client

uvx downloads and runs the server on demand — no separate install step required.

OpenCode (opencode.json)
{

"$schema": "https://opencode.ai/config.json", "mcp": { "rachio": { "type": "local", "command": ["uvx", "rachio-mcp"], "environment": { "RACHIO_ACCESS_TOKEN": "{env:RACHIO_ACCESS_TOKEN}" }, "enabled": true } } }

Claude Desktop (claude_desktop_config.json)
{

"mcpServers": { "rachio": { "command": "uvx", "args": ["rachio-mcp"], "env": { "RACHIO_ACCESS_TOKEN": "paste-your-token-here" } } } }

If a tool call later returns a "token rejected" error, rerun rachio-mcp-token to mint a fresh one and update the config.

Available Tools

24 tools over stdio transport.

Discovery
ToolDescription
list_devicesEvery device on the account — controllers, sensors, weather stations
get_deviceFull details + live state for a single device
list_zonesZones configured on a controller, with agronomic metadata
get_zoneFull detail for a single zone
get_calendarScheduled runs + skip events for a date range
get_run_historyObserved recent/past zone-run telemetry plus calendar context
get_active_alertsUnresolved alerts on a device or zone
get_weatherObserved + forecast weather readings for a location
Schedule CRUD
ToolDescription
list_schedulesFilter by device, location, zone, or schedule id
get_scheduleSingle schedule + its locations/devices
preview_scheduleDry-run — returns the Schedule that create_schedule would produce, including the server-generated human-readable summary. Never persists
create_scheduleCreate a new schedule
update_schedulePartial-merge edit: name, enabled, timing/criteria, day restrictions, and per-zone add/update/remove
delete_schedulePermanent, destructive
copy_scheduleDuplicate an existing schedule
run_scheduleTrigger an immediate run
skip_scheduleSkip or re-arm the next scheduled run
get_schedule_runsPast runs + skip events for a schedule
Live controller ops
ToolDescription
stop_wateringStop whatever is running
start_zonesStart one or more zones manually by zone number + duration
set_rain_delayDefer all schedules until a given time
skip_current_zoneSkip to the next zone in the active run
pause_wateringPause the current zone for N seconds
resume_wateringResume a paused run

All device_id, zone_id, schedule_id, and location_id parameters are UUIDs obtained from the list_* tools. Dates use YYYY-MM-DD (or MM-DD for annual-recurring schedules); times use HH:MM.

Recommended Workflow for Schedule Changes

  1. list_devices → pick your controller
  2. list_zones(device_id=...) → note each zone's id and zone_number
  3. list_schedules(device_id=...) and get_schedule(schedule_id=...) → understand what's already configured
  4. preview_schedule(...) → dry-run your proposed schedule. Read the returned summary string and the per-zone breakdown
  5. create_schedule(...) (same arguments) → commit
  6. get_schedule(schedule_id= ) → confirm
  7. delete_schedule(schedule_id= ) → rollback if needed

preview_schedule is safe to call repeatedly — it never writes anything.

To edit an existing schedule instead of recreating it, use update_schedule. It performs a partial merge: read the schedule with get_schedule, then pass only the fields you want to change (name, enabled, timing/criteria, days, or zones/zone_ids_to_remove). Omitted fields are left untouched.

How It Works

This server talks to cloud.rach.io:443 over TLS-protected gRPC, the same backend used by the Rachio Android app. Authentication uses the OAuth 2 password grant against oauth.rach.io/oAuth/token with the Android app's hardcoded client credentials.

The gRPC .proto definitions were recovered by decompiling the Rachio Android APK (v4.21.18) with jadx, extracting the embedded FileDescriptorProto payloads from the generated Java classes, and round-tripping them through protoc to produce clean .proto source. Pre-compiled Python stubs for the 40-odd messages/services used by the 23 MCP tools ship in src/rachio_mcp/proto/.

Regenerate those stubs any time the app's proto surface changes:

scripts/build_protos.sh

The stub generator reads from reverse-engineering/protos/, which is not shipped in the wheel but is kept alongside the source for future updates.

Python API

The MCP server wraps a standalone client you can use directly:

from rachio_mcp import RachioClient

c = RachioClient()

Discovery

for d in c.list_devices(): print(d["type"], d["id"], d.get("name"))

Preview a proposed schedule

preview = c.preview_schedule( name="Fall Lawn", schedule_type="FIXED", zones=[ {"device_id": " ", "zone_id": " ", "watering_time": 1200}, ], start_time="06:00", days=["WED"], annual_start="09-16", annual_end="11-15", smart_cycle=True, ) print(preview["summary"])

Commit

created = c.create_schedule(name="Fall Lawn", ...) print("created", created["id"])

Rollback

c.delete_schedule(created["id"])

The client reads RACHIO_ACCESS_TOKEN from the environment, derives the user's user_id lazily on first use (via LocationService.ListLocations), and keeps both in memory for the lifetime of the process. Nothing is written to disk.

Environment

VariableRequiredDescription
RACHIO_ACCESS_TOKENYesLong-lived bearer token minted by rachio-mcp-token. Valid for ~25 years unless revoked.
LOG_LEVELNoPython logging level (default: INFO). Logs go to stderr; stdio transport's stdout is reserved for the MCP protocol.
Minting a token (one-time setup)
VariableUsed byDescription
RACHIO_EMAILrachio-mcp-token onlyRachio account email. If unset, rachio-mcp-token prompts interactively.
RACHIO_PASSWORDrachio-mcp-token onlyRachio account password. If unset, rachio-mcp-token prompts interactively with a masked input.

Neither RACHIO_EMAIL nor RACHIO_PASSWORD is ever read by the MCP server itself — they exist only to feed the one-time token-mint CLI.

Transport

stdio only. Remote HTTP with OAuth 2.1 is not supported in v0.1.

License

MIT — see LICENSE.

ถาม PopNx