OPenSprinkler MCP Server

by marcinn2

Not rated
GitHub

About

MCP server for managing OpenSprinkler controller via Claude Desktop or any MCP-compatible client.

Details

Author
marcinn2
Categories
Communication, Other

Setup

Install OPenSprinkler MCP Server in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/marcinn2/opensprinkler-mcp

Follow the installation instructions in the repository README, then restart your MCP client.

MCP server for managing OpenSprinkler controller via Claude Desktop or any MCP-compatible client.

MCP server for managing OpenSprinkler controller via Claude Desktop or any MCP-compatible client.

Restriction: Only one controller can be managed at a time. This can be changed in the future if needed, but for now it is a limitation of the design.

If your OpenSprinkler is behind a reverse proxy with HTTPS (e.g. nginx, Traefik), set:

OPEN_SPRINKLER_HOST=opensprinkler.example.com OPEN_SPRINKLER_PORT=443 OPEN_SPRINKLER_TLS=true

The server will then connect viahttps://opensprinkler.example.com:443.

Note:OpenSprinkler firmware does not natively support TLS — HTTPS requires a reverse proxy in front of the controller.

The server supports two transport modes, selected by a command-line argument.

Used when launched directly by an MCP client (e.g. Claude Desktop). No argument needed:

Starts an HTTP server that exposes the MCP endpoint over Streamable HTTP (SSE). Use this when you want to run the server as a persistent network service — for example in Docker or Kubernetes — and connect to it from multiple clients or over the network.

The server listens onhttp://0.0.0.0:${PORT}/mcp(default port3000).

Connect your MCP client to:http://<host>:3000/mcp

SetMCP_AUTH_TOKENto require a bearer token on every HTTP request. If the variable is not set the server accepts all connections (useful for private networks or local use).

MCP_AUTH_TOKEN=mysecrettoken TRANSPORT=http node dist/index.js

Requests without a valid token receive401 Unauthorized. The stdio transport is unaffected — authentication is not applicable there.

For testing with tools that implement the older MCP SSE transport (e.g.mcptools, older inspector versions), the server automatically handles legacy clients on thesame/mcpendpoint— no extra flag needed.

Connecting a legacy client (example withmcptools):

# Start the server node dist/index.js --sse # In another terminal mcp connect http://localhost:3000/mcp

Note:SSEServerTransportis deprecated in the MCP SDK and this compatibility layer is intended for testing only. Production clients should use the modern Streamable HTTP transport.

You can enable verbose debug output during testing by settingNODE_ENV=development:

NODE_ENV=development node dist/index.js --sse

This prints every request, response status, and session lifecycle event to stderr.

Seedocs/docker/for the full deployment guide, Docker Compose file, Claude Desktop configuration options, and troubleshooting steps.

Seedocs/kubernetes/for manifests. Adjust theConfigMapandSecretfor your environment, then:

{ "mcpServers": { "opensprinkler": { "command": "node", "args": ["/path/to/opensprinkler-mcp/dist/index.js"], "env": { "OPEN_SPRINKLER_HOST": "192.168.1.100", "OPEN_SPRINKLER_PASSWORD": "your_password" } } } }

The OpenSprinkler firmware stores whatever string was written when the password was last set. The official app MD5-hashes the password before sending it, so the stored value is an MD5 hash — andOPEN_SPRINKLER_PASSWORDmust be theMD5 hashof your password, not the plain text.

Contributions are welcome. Please open an issue or pull request onGitHub.

This project is inspired by the work atgithub.com/Lumeo-sd/opensprinkler-mcp-sdr. All code was automatically re-created from scratch using AI tools due to lack of LICENSE statement in the original repository.

- I am not affiliated with the manufacturers, sellers or any of the device brands. This plugin is a personal project that I maintain in my free time.
- Refer to the licence for more information.

MCP Server for deConz server developed by Dresden Elektronik (bridge between smart home automation platforms and wireless Zigbee networks)

Connects to a Coreflux MQTT broker, offering tools for Coreflux commands and integration with AI assistants.

An MCP server that connects to a Coreflux MQTT broker, providing Coreflux and MQTT actions as tools for AI assistants.

A free, private, and secure remote MCP server for Home Assistant.

MCP server for Azure IoT Hub - device registry, twins, direct methods, jobs, messaging

MCP server for Google Cast — discover devices, play media, control volume, launch apps, and manage queues over stdio

Home automation you can just talk to. No dashboards, no app to learn.

A safe-by-default MCP server that exposes your Control4 home automation (lights, scenes, locks, thermostats, and media) as structured tools over HTTP and Claude Desktop STDIO for reliable AI-powered control on your local network.

Control and query the status of Ecovacs cleaning robots using the MCP protocol.

Control AVM FRITZ!Box routers - manage devices, WiFi, network settings, parental controls, and schedule time-delayed actions

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.