Skip to main content
Glama
marcinn2

OpenSprinkler MCP server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HOSTNoInterface to bind in SSE mode. Use '127.0.0.1' to accept only local connections0.0.0.0
PORTNoHTTP port for SSE mode3000
MCP_AUTH_TOKENNoBearer token required on all HTTP requests (optional)
MCP_ALLOWED_HOSTSNoComma-separated Host header allowlist. When set, other hosts get 403 - this blocks DNS-rebinding attacks
OPEN_SPRINKLER_TLSNoSet to 'true' to use HTTPSfalse
MCP_ALLOWED_ORIGINSNoComma-separated Origin allowlist for browser clients. Requests with no Origin are unaffected
OPEN_SPRINKLER_HOSTNoHostname or IP address of OpenSprinklerlocalhost
OPEN_SPRINKLER_PORTNoPort number80
OPEN_SPRINKLER_PASSWORDNoMD5 hash of the controller password
OPEN_SPRINKLER_TIMEOUT_MSNoAbort a controller request after this many milliseconds10000

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_controller_statusA

Get OpenSprinkler controller status including device time, enabled state, rain delay status

get_stationsA

Get all stations with their current status (running, enabled, names, seconds remaining)

run_stationA

Start a station for a specified duration

stop_stationA

Stop a running station

stop_all_stationsA

Stop all running stations immediately

get_rain_delayA

Get the current rain delay status including remaining hours and end date

set_rain_delayA

Set rain delay in hours (0 to clear)

enable_controllerA

Enable or disable the controller

reboot_controllerA

Reboot the OpenSprinkler controller

get_programsA

Get all watering programs

view_logsA

Get watering history logs for a date range. Dates are interpreted in the controller's local timezone.

get_programA

Get full details of a single watering program by ID

add_programA

Add a new watering program with weekly or interval scheduling

delete_programA

Delete an existing watering program by ID

get_optionsC

Get controller options and settings

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 15 tools

Disambiguation4/5

Most tools target distinct resources and actions: stations, programs, rain delay, controller status, and logs are clearly separated. The only mild overlap is between get_controller_status and get_options, since both touch controller-level settings, but their descriptions are distinct enough to avoid serious misselection.

Naming Consistency4/5

The naming largely follows a consistent verb_noun pattern: get_* for reads, plus run_station, stop_station, set_rain_delay, enable_controller, and add/delete_program. The main inconsistency is view_logs instead of get_logs, and stop_all_stations is a slightly expanded variant of stop_station.

Tool Count5/5

Fifteen tools is at the upper end of the ideal range, but each tool covers a meaningful controller operation without redundancy. The count feels appropriate for the scope of an irrigation controller server, and no tools are mere duplicates.

Completeness4/5

The tool surface covers the core workflows well: station control, rain delay, controller status, logs, and program lookup/creation/deletion. The most notable gap is the lack of an update_program tool, so existing programs cannot be edited directly, though agents could work around this by deleting and re-adding.

Maintenance

ActivityMaintained
ResponsivenessNo issues