Listed from the MCP registry; nobody on Odel publishes it.
Check and control Hive smart heating: thermostats, radiator valves, hot water and holiday mode
Runs on your machine from its package; the steps are below.
At most: creates or changes data: records, files, settings.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
docker run -i --rm ghcr.io/mattoddie/hive-mcp:0.3.1
MCP client config
{
"mcpServers": {
"hive-heating": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/mattoddie/hive-mcp:0.3.1"
]
}
}
}Distributed as an MCP bundle (`https://github.com/mattoddie/hive-mcp/releases/download/v0.3.1/hive-mcp-0.3.1-darwin-arm64.mcpb`) — download it and import the bundle in your MCP client.
Distributed as an MCP bundle (`https://github.com/mattoddie/hive-mcp/releases/download/v0.3.1/hive-mcp-0.3.1-darwin-amd64.mcpb`) — download it and import the bundle in your MCP client.
Distributed as an MCP bundle (`https://github.com/mattoddie/hive-mcp/releases/download/v0.3.1/hive-mcp-0.3.1-windows-amd64.mcpb`) — download it and import the bundle in your MCP client.
Distributed as an MCP bundle (`https://github.com/mattoddie/hive-mcp/releases/download/v0.3.1/hive-mcp-0.3.1-windows-arm64.mcpb`) — download it and import the bundle in your MCP client.
Distributed as an MCP bundle (`https://github.com/mattoddie/hive-mcp/releases/download/v0.3.1/hive-mcp-0.3.1-linux-amd64.mcpb`) — download it and import the bundle in your MCP client.
Distributed as an MCP bundle (`https://github.com/mattoddie/hive-mcp/releases/download/v0.3.1/hive-mcp-0.3.1-linux-arm64.mcpb`) — download it and import the bundle in your MCP client.
Talk to your heating.
An open-source Model Context Protocol server for Hive, British Gas's smart heating. It lets Claude and other AI assistants check your Hive thermostats, radiator valves, hot water, plugs and lights, and, if you allow it, boost the heating, set temperatures, switch the hot water on and set holiday mode, all from one small Docker container.
Important
hive-mcp is an unofficial project. It isn't made, endorsed or supported by Hive, British Gas or Centrica. Hive has no public API: hive-mcp uses the same undocumented API as the Hive app and the Home Assistant integration, which Hive can change at any time.
"It's freezing in here. Can you warm the house up?" The living room is 17.5 °C and the heating is on its schedule, which has it at 16 °C until 17:00. I can boost it to 21 °C for an hour, after which it goes back to the schedule. Shall I? "Yes, and put the hot water on too, I want a bath." Done: the heating is boosting to 21 °C until 15:40, and the hot water is boosting for 30 minutes. By the way, the bedroom radiator valve's battery is down to 20%.
Ask about your home in plain English. The assistant picks from 24 tools to look things up and, if you allow it, make changes. Some examples:
ghcr.io/mattoddie/hive-mcp) for linux/amd64 and linux/arm64, about 20 MB. It's a single static Go binary on a distroless base, with no shell or package manager, running as a non-root user. It serves Streamable HTTP for a long-running service, or stdio for docker run -i. You can also run the binary on its own. For Claude Desktop there's also a one-click extension bundle (.mcpb) that needs no Docker.HIVE_MAX_TEMP), boosts are limited to six hours, holiday mode to 60 days, and settings that last indefinitely (manual heating, hot water on) need an explicit confirmation.hive-mcp login, and the server registers itself as a remembered device, so it can log in again on its own without another code. Passwords, tokens and device secrets never appear in tool output or logs.Using Claude Desktop? Skip Docker: download the extension bundle (.mcpb) for your computer from the latest release, open it to install, fill in your Hive email and password, and ask Claude to "log in to Hive". See Claude Desktop.
hive-mcp is listed in the MCP Registry as io.github.mattoddie/hive-mcp, so clients that browse the registry can install it (the Docker image in stdio mode, or the bundle). See From the MCP Registry.
Otherwise, you need Docker, a Hive account that works in the Hive app, the phone that gets your Hive text messages, and an MCP client such as Claude Code.
1. Set up the server.
mkdir hive-mcp && cd hive-mcp
curl -fsSLO https://raw.githubusercontent.com/mattoddie/hive-mcp/main/compose.yaml
curl -fsSL https://raw.githubusercontent.com/mattoddie/hive-mcp/main/example.env -o .env
# Edit .env: set HIVE_USERNAME and HIVE_PASSWORD (your Hive app login)
# and a random MCP_AUTH_TOKEN (e.g. `openssl rand -hex 32`)
2. Log in to Hive once and start the server.
docker compose run --rm hive-mcp login # type in the code Hive texts you
docker compose up -d
3. Connect your assistant.
claude mcp add --transport http hive http://<docker-host>:8080/mcp \
--header "Authorization: Bearer <MCP_AUTH_TOKEN>"
Now ask "How warm is the house?" in Claude Code.
Using Claude Desktop, VS Code, Cursor or Codex? See Connecting MCP clients. Prefer not to run a service? Use stdio mode with docker run -i or the local binary.
Out of the box the assistant can look but not touch. To let it change your heating, hot water, plugs and lights, add this to .env and restart:
HIVE_ALLOW_WRITES=true
HIVE_TOOLSETS=home,heating,hotwater # optional: expose fewer tools
docker compose up -d
Read Security before turning on writes. A heating system is a real thing in a real home. To keep a record of every change the assistant makes, set HIVE_AUDIT_LOG to a file path (see Audit log).
| Toolset | What's covered |
|---|---|
home | Login, a one-call overview of the home, the list of Hive devices with batteries and signal, and holiday mode |
heating | Heating zones and radiator valve (TRV) zones: temperatures, modes and schedules; set the temperature or mode, boost and cancel a boost |
hotwater | Hot water: status and schedule; switch it on, off or back to its schedule, boost and cancel a boost |
devices | Smart plugs, lights and sensors: on or off, power use, brightness, colour temperature, open or closed |
raw | An escape hatch that calls any path of Hive's API. Off unless you list it (HIVE_TOOLSETS=all,raw) |
See the tool reference for every tool and argument. Ready-made prompts like home_check, warm_up and going_away chain the tools together for common jobs. Changing schedules isn't supported yet; see Compatibility.
The docs are also published at hive-mcp.mattoddie.dev/docs, with search.
| 🚀 Getting started | Step-by-step setup, including the one-time SMS login |
| 🔌 Connecting MCP clients | Claude Code, Claude Desktop, VS Code, Cursor, Codex, stdio mode |
| ⚙️ Configuration | Every environment variable, how login and remembered devices work, Docker secrets, toolsets |
| 🐳 Deployment | Compose, image tags, upgrades, TLS reverse proxy, hardening, running without Docker |
| 💬 Using hive-mcp | Example conversations, prompts, how changes and boosts work |
| 🧰 Tool reference | Every tool and prompt, generated from the code |
| 🛡️ Security | Threat model, what the token file holds, safe write setups |
| 📡 Compatibility | Supported Hive devices, discontinued products, and how the unofficial API is used |
| 🩹 Troubleshooting | Login and SMS problems, common errors and how to fix them |
| 🛠️ Development | Architecture, the mock Hive, adding a tool, testing |
Contributions are very welcome, whether that's bug reports, notes on how Hive's API behaves, docs or new tools. Read the contributing guide to get started, and please follow the code of conduct. To report a vulnerability, see the security policy. Please don't open a public issue for one.
MIT © Matt Oddie
hive-mcp is an independent community project. It is not affiliated with, endorsed by or sponsored by Hive, British Gas or Centrica plc. "Hive" and "British Gas" are trademarks of Centrica plc or its subsidiaries. hive-mcp builds on what the community learned writing pyhiveapi, the library behind the Home Assistant Hive integration.