get_daily_consumptionLABSCO SUMMARY
The Enedis side has to be switched on first.
The most common failure is not the server: hourly consumption collection is off by default in the Enedis customer space, and until it is enabled a valid token and an authorised PRM still return nothing for the date range. The troubleshooting section maps each status code to its cause — 401 means the token, 403 means the PRM is not authorised — which makes the first setup much shorter than it otherwise would be. Rate limits come from Conso at 5 requests per second.
What it is
A Go server over the Conso API, the free proxy in front of Enedis' Linky data. It gives an assistant direct access to your own electricity readings, so questions about consumption are answered from the meter rather than from a monthly bill.
What you get
- Daily electricity consumption in Wh over a date range —
get_daily_consumption - Average power readings at 30-minute intervals in W —
get_load_curve - The maximum power reached each day, in VA —
get_max_power - Daily solar production in Wh for installations that have it, and its 30-minute production load curve in W —
get_daily_production,get_production_load_curve - An optional built-in web dashboard with connection status, summary statistics and charts for daily consumption, load curve and max power — no MCP client needed to use it
Requirements
A Conso API token, free from conso.boris.sh, in CONSO_API_TOKEN, and your 14-digit PRM meter identifier — setting LINKY_PRM makes the prm parameter optional on every call. Before any of it works, enable hourly consumption recording and collection in your Enedis customer space and authorise the PRM at Conso. Run the prebuilt image ghcr.io/mjrgr/enedis-linky-mcp-server:latest or build the Go binary. MCP_TRANSPORT defaults to stdio for Claude Desktop; set it to sse with PORT (default 8080) for an HTTP client. The dashboard is switched on with LINKY_DASHBOARD=true and listens separately, so both can run at once.
Setup effort
One command plus a key — claude mcp add linky -s local -- docker run -i --rm -e CONSO_API_TOKEN=your_token_here -e LINKY_PRM=12345678901234 ghcr.io/mjrgr/enedis-linky-mcp-server:latest
USE CASES
Understanding a bill that jumped
Pull daily consumption across the period and find the days that moved rather than accepting the total.
Finding when in the day you actually draw power
Read the half-hourly load curve to see the shape of a day, which a daily total hides completely.
Checking whether your subscribed power is right
Look at the maximum power reached each day in VA before deciding to change the contract.
Measuring what your panels produced
Read daily solar production and its load curve alongside consumption for the same days.
5 tools
Listed in project docs. Your client may show a different list.
get_load_curveget_max_powerget_daily_productionget_production_load_curveBEFORE YOU INSTALL
What to know first
Tools you get
5 tools named in the project's documentation. Prm is optional when LINKY_PRM is set. The two production tools return data only for a solar installation, and all five only read.
Requires
CONSO_API_TOKEN in your environment
INSTALLATION
Connect your client
Server setup
Setup
git clone https://github.com/mjrgr/enedis-linky-mcp-server.git
cd enedis-linky-mcp-server
go mod download
make build # Binary is at ./bin/enedis-linky-mcp-server
export CONSO_API_TOKEN="<YOUR_CONSO_API_TOKEN>"
export LINKY_PRM="12345678901234" # optional but recommended
./bin/enedis-linky-mcp-serverclaude mcp add
Claude Code — Docker
claude mcp add linky -s local -- docker run -i --rm \
-e CONSO_API_TOKEN=<YOUR_CONSO_API_TOKEN> \
-e LINKY_PRM=12345678901234 \
ghcr.io/mjrgr/enedis-linky-mcp-server:latestMCP Clients
Claude Desktop
{
"mcpServers": {
"linky": {
"command": "<YOUR_PATH_TO_BIN_ENEDIS_LINKY_MCP>",
"env": {
"CONSO_API_TOKEN": "<YOUR_CONSO_API_TOKEN>",
"LINKY_PRM": "12345678901234"
}
}
}
}Claude Code — local binary
claude mcp add linky -s local -- <YOUR_PATH_TO_BIN_ENEDIS_LINKY_MCP>Claude Code — SSE
claude mcp add linky --transport sse http://localhost:8080/sseSelf-host — SSE (Docker)
.env.example ships in the repository, so this runs in a clone.
Prepare your env file
git clone https://github.com/mjrgr/enedis-linky-mcp-server.git
cd enedis-linky-mcp-server
cp .env.example .env.local
# Edit .env.local — set CONSO_API_TOKEN, LINKY_PRM, and MCP_TRANSPORT=sseStart the server
docker run --rm \
--env-file .env.local \
-p 8080:8080 \
ghcr.io/mjrgr/enedis-linky-mcp-server:latestListening on :8080 — point your MCP client at http://localhost:8080/sse