Hydrawise
Hosted MCP endpoint
Paste this into your AI client as a custom connector. Using it more than once? Here’s how.
Local connector: download and install
Download the extension (.mcpb)
Runs on your own computer in Claude Desktop, so there is no address to paste. Steps are on the Install tab.
Sign in to save favorites to My Account.
Sign in with GoogleHunter’s Hydrawise app shows your sprinkler controller one screen at a time. This connector lets your AI read the whole thing at once and answer in a sentence: which zones ran last night and for how long, what is scheduled next, and, if you have a flow meter, how many gallons went through it each day and how much of that was not your sprinklers.
Local and read-only. It runs on your own computer, signs in to Hydrawise as you, and cannot start, stop or change anything on your controller.
Unofficial. Hunter Industries did not make this and is not affiliated with it. Hunter’s public API has no programs, no history and no flow data, so this connector reads the same private API the Hydrawise app uses, the way Home Assistant and the open-source pydrawise library do. Hunter’s API terms prohibit reverse engineering their API, and Hunter could block this kind of access at any time. We intend to ask Hunter for permission to do this properly.
What It Can Do
Nine tools, all read-only. Your AI decides which to call. The full reference is on the Tools tab.
- See your setup. Your account and every controller: model, serial number, firmware, online state and last check-in.
- See what is happening. Every zone: what is running now, what runs next, when it last ran, suspensions, watering adjustment and cycle and soak.
- Read your programs. Days, start times, which zones each program runs and for how long.
- Look back. Every zone run that actually happened, with its duration, status and, with a flow meter, the water it used. Up to 31 days at a time.
- Log your water use. Gallons per day from your flow meter, split into water used by zone runs and water that moved while nothing was scheduled, which is how hose use and leaks show up. Up to 92 days at a time, with a per-zone breakdown.
- Watch the flow now. The flow meter’s current reading.
- Look ahead. The forecast Hydrawise waters by, and the controller’s recent alerts.
Things Worth Knowing Before You Start
- It needs Claude Desktop (Mac or Windows) or another AI app that runs local MCP servers. It does not work from a browser or a phone, because there is nothing hosted to connect to.
- You type your Hydrawise email and password once, when you install it. Claude Desktop keeps the password in your Mac Keychain or Windows Credential Manager. The connector sends it only to Hydrawise.
- Water-use numbers need a flow meter wired to the controller and set up as a Flow sensor in the Hydrawise app. Without one, you get run times only.
- Finished days of water use are saved to a small log file in a
.letsmcp-hydrawisefolder in your home folder, so the history builds up and asking again is free. It holds dates, gallons and zone names, never your password. - Hydrawise blocks accounts that call this API too often. The connector makes at most 10 Hydrawise calls per 30 minutes and remembers answers for 5 to 60 minutes. If Hydrawise ever says slow down, it pauses for 15 minutes.
- This is version 0.1.0 and new. If something comes back wrong, tell us on the contact form.
Download the extension (letsmcp-hydrawise-local-0.1.0.mcpb, 16 KB), then follow the Install tab.
Claude Desktop
- Download letsmcp-hydrawise-local-0.1.0.mcpb.
- Open Claude Desktop and go to Settings, then Extensions, then Advanced settings, then Extension Developer, and choose Install Extension. Pick the file you downloaded. Double-clicking the file may also open the installer.
- When it asks, enter the email and password you use in the Hydrawise app. Leave Time zone blank unless days come out wrong; the connector uses your controller’s own time zone.
- Start a new chat. The connector’s tools are available from then on; you never have to name them.
Try: “Using Hydrawise, how much water did we use each day this week, and how much of it was outside the watering schedule?”
Other AI apps that run on your computer and support local MCP servers can run the same connector. The bundle is a standard .mcpb file, a zip containing one Node.js script, so a developer can unzip it and point their client at server/index.mjs.
Quick Start (Claude Desktop)
- Download letsmcp-hydrawise-local-0.1.0.mcpb.
- In Claude Desktop: Settings, Extensions, Advanced settings, Extension Developer, Install Extension. Pick the file.
- Enter your Hydrawise email and password.
- Ask about your sprinklers in a new chat.
How It Works
The connector is one small Node.js script with no other dependencies. Claude Desktop runs it with its built-in Node.js and talks to it over standard input and output, the standard way local MCP servers work. When your AI asks something, the script signs in to Hydrawise with the email and password Claude Desktop hands it, sends one read-only query to the Hydrawise app API, and returns the answer. The sign-in token is kept in memory only and is gone when Claude Desktop quits.
It contains no commands that change anything. The code that talks to Hydrawise holds query documents only, and refuses to send anything that is not a query.
Water Use, And How It Is Counted
Water use follows the method in pydrawise, the library Home Assistant uses for Hydrawise:
- Active use is the water Hydrawise reports for each zone run, added up.
- Total use is what the flow meter measured over the day.
- Inactive use is the difference: water that moved while no zone was running. A hose bib downstream of the meter, or a leak.
- If the meter’s total lags behind the run reports, total is set to active and inactive to zero rather than showing a negative number.
Days are counted midnight to midnight in your controller’s time zone. Up to 31 days come back from Hydrawise in a single call. A day is written to the local log three hours after it ends, once the controller has checked in since then.
Limits
- 10 Hydrawise calls per rolling 30 minutes. Answers are remembered for 5 to 60 minutes, and logged days cost nothing.
- A 15-minute pause after any rate-limit reply from Hydrawise.
- Watering history: up to 31 days per request. Water use: up to 92 days per request.
- Every call is labelled
letsmcp-hydrawise-local/0.1.0so Hunter can see what is calling.
Privacy
Let’s MCP is not involved once you have downloaded the file. Your password stays in your operating system’s keychain and goes only to Hydrawise. Sprinkler data reaches the AI model only as answers inside your own AI app, under that app’s privacy terms. The connector itself makes no other network calls.
Source And License
MIT licensed, written by John Pozadzides for Let’s MCP. The sign-in method, the Hydrawise schema and the water-use method come from pydrawise by David Knowles (Apache License 2.0). The downloaded file contains the complete, readable source of the server.
Connector Status
hydrawise_connector_status
The connector’s own state: version, Hydrawise calls left in the current 30 minutes, any rate-limit pause, and where the water log is kept. Makes no Hydrawise call.
Account And Controllers
hydrawise_account
Your Hydrawise account and every controller: id, name, model, serial number, firmware, online state and last contact. Remembered for 30 minutes.
refresh(boolean, optional): Skip the remembered answer. Costs one Hydrawise call.
Controller Detail And Live Flow
hydrawise_controller
One controller: status, time zone, master valve, today’s weather observations, and every sensor, including the flow meter’s current reading. Remembered for 5 minutes.
controller_id(integer, optional): Controller id. Not needed when the account has one controller.refresh(boolean, optional): Skip the remembered answer. Costs one Hydrawise call.
Zones
hydrawise_zones
Every zone: number, name, what is running now, next and last run, suspensions, watering adjustment, cycle and soak, and the programs that water it. Remembered for 5 minutes.
controller_id(integer, optional): Controller id. Not needed when the account has one controller.refresh(boolean, optional): Skip the remembered answer. Costs one Hydrawise call.
Programs
hydrawise_programs
Every watering program: days, start times, which zones it runs and for how long, monthly adjustments and the rain-sensor setting. Read-only. Remembered for 30 minutes.
controller_id(integer, optional): Controller id. Not needed when the account has one controller.refresh(boolean, optional): Skip the remembered answer. Costs one Hydrawise call.
Watering History
hydrawise_watering_history
Every zone run that actually happened between two dates: zone, program, start and end, duration in seconds, status, stop reason, and the water used when a flow meter is installed. Up to 31 days; defaults to the last 7. Remembered for 10 minutes.
controller_id(integer, optional): Controller id. Not needed when the account has one controller.start_date(string, optional): First day, YYYY-MM-DD, in the controller’s time zone.end_date(string, optional): Last day, YYYY-MM-DD. Default: today.
Water Use By Day
hydrawise_water_use
Daily water use from the flow meter: total through the meter, used by zone runs, used while nothing was running, run time and a per-zone breakdown, plus totals for the whole range. Up to 92 days; defaults to the last 7 including today. Finished days are saved locally and cost nothing to ask for again; each 31 days not yet saved costs one Hydrawise call.
controller_id(integer, optional): Controller id. Not needed when the account has one controller.start_date(string, optional): First day, YYYY-MM-DD, in the controller’s time zone.end_date(string, optional): Last day, YYYY-MM-DD. Default: today.
Weather Forecast
hydrawise_forecast
The forecast Hydrawise uses for your controller’s location: conditions, chance and amount of rain, temperatures, wind and evapotranspiration. Remembered for 60 minutes.
controller_id(integer, optional): Controller id. Not needed when the account has one controller.days(integer, optional): Days ahead, 1 to 7. Default 3.
Events And Alerts
hydrawise_events
The controller’s recent events and alerts, such as sensor trips, faults and offline periods, newest first. Remembered for 10 minutes.
controller_id(integer, optional): Controller id. Not needed when the account has one controller.count(integer, optional): How many events, 1 to 100. Default 25.
