Listed from the MCP registry; nobody on Odel publishes it.
Octopus Energy usage and costs, tariffs, Agile prices, bills, EV charging and Saving Sessions
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/octopus-mcp:0.3.1
MCP client config
{
"mcpServers": {
"octopus-energy-octopus-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/mattoddie/octopus-mcp:0.3.1"
]
}
}
}Distributed as an MCP bundle (`https://github.com/mattoddie/octopus-mcp/releases/download/v0.3.1/octopus-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/octopus-mcp/releases/download/v0.3.1/octopus-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/octopus-mcp/releases/download/v0.3.1/octopus-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/octopus-mcp/releases/download/v0.3.1/octopus-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/octopus-mcp/releases/download/v0.3.1/octopus-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/octopus-mcp/releases/download/v0.3.1/octopus-mcp-0.3.1-linux-arm64.mcpb`) — download it and import the bundle in your MCP client.
Talk to your energy.
An open-source Model Context Protocol server for Octopus Energy customers in the UK. It lets Claude and other AI assistants read your smart meter usage, costs, tariffs and bills, find the cheapest Agile half-hours and, if you allow it, manage Intelligent Octopus EV charging and join Saving Sessions, all from one small Docker container.
Note
octopus-mcp is an unofficial, independent community project. It is not affiliated with, endorsed by or supported by Octopus Energy. It uses the public customer APIs with your own API key.
"How much did I spend on electricity last week, and when should I run the dishwasher tonight?" Last week you used 58.4 kWh for £11.92, including £2.66 of standing charges, an average of 15.9p/kWh on Agile. Wednesday was the priciest day: you used 4.1 kWh between 4pm and 7pm, when prices were over 30p. Tonight the cheapest two hours are 01:30 to 03:30 at an average of 7.8p/kWh, so a 1.5 kWh dishwasher cycle would cost about 12p, against 46p if you started it now.
Ask about your energy in plain English. The assistant picks from 22 tools to look things up and, if you allow it, make changes. Some examples:
ghcr.io/mattoddie/octopus-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 with nothing to write. It serves Streamable HTTP for a long-running service, or stdio for docker run -i. You can also run the binary on its own, and for Claude Desktop there's a one-click extension bundle (.mcpb) that needs no Docker.You need Docker, an Octopus Energy account (with a smart meter for usage data) and an MCP client such as Claude Code.
1. Get your API key from Personal details → API access in your Octopus account. Note your account number (A-1234ABCD) too.
2. Set up and start the server.
mkdir octopus-mcp && cd octopus-mcp
curl -fsSLO https://raw.githubusercontent.com/mattoddie/octopus-mcp/main/compose.yaml
curl -fsSL https://raw.githubusercontent.com/mattoddie/octopus-mcp/main/example.env -o .env
# Edit .env: set OCTOPUS_API_KEY, OCTOPUS_ACCOUNT
# and a random MCP_AUTH_TOKEN (e.g. `openssl rand -hex 32`)
docker compose up -d
docker compose exec octopus-mcp /octopus-mcp status # checks the API key
3. Connect your assistant.
claude mcp add --transport http octopus http://<docker-host>:8080/mcp \
--header "Authorization: Bearer <MCP_AUTH_TOKEN>"
Now ask "What tariff am I on, and what's my electricity price right now?" in Claude Code.
Using Claude Desktop on a Mac or Windows PC? You don't need Docker at all. Download the .mcpb bundle for your computer from the latest release, open it, and enter your API key in the settings. See Claude Desktop.
Using 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.
octopus-mcp is listed in the MCP Registry as io.github.mattoddie/octopus-mcp, so clients that install from the registry can find it there, with the Docker image and the bundles.
Out of the box the assistant can look but not touch. To let it change Intelligent Octopus charging settings, start a bump charge and join Saving Sessions, add this to .env and restart:
OCTOPUS_ALLOW_WRITES=true
OCTOPUS_TOOLSETS=account,consumption,tariffs,intelligent,octoplus # optional: expose fewer tools
Octopus API keys can't be limited to read-only, so this switch, enforced by octopus-mcp, is what keeps the assistant read-only. Read Security before turning it on. To keep a record of every change the assistant makes, set OCTOPUS_AUDIT_LOG to a file path (see Audit log).
| Toolset | What's covered |
|---|---|
account | The account overview (properties, MPAN/MPRN, meter serials, smart meter device IDs, current tariffs), balance, bills and transactions |
consumption | Smart meter usage for electricity import and export and gas, by half-hour, hour, day, week or month, with cost estimates; live demand from a Home Mini |
tariffs | Products on sale, prices by region, half-hourly unit rates (Agile, Go and more), standing charges, the cheapest times to use electricity, region by postcode. No account needed |
intelligent | Intelligent Octopus cars and chargers: status, schedule, planned and completed charging slots; with writes, target and ready-by time, bump charge, smart control |
octoplus | Octoplus points, Saving Sessions with rewards and results; with writes, joining a session |
raw | Escape hatches: any GraphQL query (mutations only with writes) and any REST GET |
See the tool reference for every tool and argument. Ready-made prompts like energy_report, plan_cheap_usage and compare_tariffs chain the tools together for common jobs.
The docs are also published at octopus-mcp.mattoddie.dev/docs, with search.
| 🚀 Getting started | Step-by-step setup, from API key to first question |
| 🔌 Connecting MCP clients | Claude Code, Claude Desktop, VS Code, Cursor, Codex, stdio mode |
| ⚙️ Configuration | Every environment variable, how authentication works, Docker secrets, toolsets |
| 🐳 Deployment | Compose, image tags, upgrades, TLS reverse proxy, hardening, running without Docker |
| 💬 Using octopus-mcp | Example conversations, prompts, units, cost estimates, gas in m³, EV charging, Saving Sessions |
| 🧰 Tool reference | Every tool and prompt, generated from the code |
| 🛡️ Security | Threat model, the API key, safe write setups |
| 📡 Compatibility | The Octopus APIs, meters and tariffs, and known gaps |
| 🩹 Troubleshooting | Common errors and how to fix them |
| 🛠️ Development | Architecture, adding a tool, testing |
Contributions are very welcome, whether that's bug reports, 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
octopus-mcp is an independent community project. It is not affiliated with, endorsed by or sponsored by Octopus Energy Ltd or Kraken Technologies Ltd. "Octopus Energy", "Agile Octopus", "Intelligent Octopus", "Octoplus" and related names are trademarks of their owners and are used here only to describe what the software works with.