Articles/Battery Systems

Luminus: Screening GB Battery Sites from Public Data

Platform IntegrationTool Spotlight
By Vanya SmytheOctober 16, 20264 min readVerified Oct 16, 2026
luminus(primary)
mcpbattery-storagesite-screeninggrid-connectionsgate-2open-dataluminus

Know what Luminus is

Luminus is an MCP server that puts European and British energy data behind tools an AI assistant can call. Keith So, who publishes it as kitfunso and describes himself as a London quant trading analyst, released it under the MIT licence in TypeScript for Node 20 or later, and it installs with one line: claude mcp add luminus -- npx luminus-mcp. The npm package stood at 0.7.0 on 2026-10-17, released on 2026-08-09; the Python wrapper, luminus-py 0.5.0, lags it and simply spawns the Node server. The repository dates from 2026-03-20 and last took a commit on 2026-09-18, and on 17 October 2026 it had 6 stars, no forks and 9 open issues, and about 155 of its 162 contributions were his.

That is one person's project, seven months old. It is also unusually candid about what it is not.

Check the claims against the code

The README counts 69 tools, and the server's own luminus_status call agreed. Three other things said about the project need correcting before anyone builds on them. It has no 'analyst' or 'developer' profile; the profiles are trader (8 tools), grid, generation, gas, renewables, gb, bess (11 tools), regional, weather, gis, connections and full. The '60–90% context saving' that profiles are meant to deliver appears in the README's prose and nowhere else, with no measurement behind it. And screen_site, the one-call site screen, does not read the transmission queue at all: it combines terrain, grid proximity, solar yield, protected land, agricultural land, flood risk and land cover, while the queue lives in shortlist_bess_sites and get_grid_connection_intelligence.

Land cover is weaker than that list suggests, because on my run the tool itself reported that CORINE 2018 does not cover Great Britain, so a British parcel gets no land-cover layer.

Run one point near Eggborough

A run of luminus-mcp 0.7.0 on 2026-10-17 with no API keys set, against a single point near Eggborough in North Yorkshire. The server registered 44 tools and skipped 28 for missing keys, among them estimate_site_revenue, get_price_spread_analysis and shortlist_bess_sites, which all want a free ENTSO-E key. screen_site returned an elevation of 6 m, a slope of 1.92 degrees, Grade 3 farmland of uncertain quality and Flood Zone 3, and gave an overall verdict of fail. The flood zone alone decided it. Northern Powergrid's published data, through get_distribution_headroom, put Eggborough primary substation 2.45 km away with an estimated 9.4 MW of generation headroom rated green; the TEC register, through get_grid_connection_queue, held 744 energy-storage projects with 187,732 MW of cumulative capacity.

Two layers failed quietly. The grid-proximity lookup returned null after all three of its Overpass endpoints refused the fetch, and a Ramsar wetlands query failed while the constraint summary still reported zero constraints. Both failures sat in a warnings array, which is honest of the tool and easy for an agent to skip, since the verdict field beside it reads as complete whether or not every layer behind it loaded.

Screen sites before paying for applications

The solution I would build for a storage developer or a network engineer is an agent that screens candidate parcels before anyone pays for a formal connection application. It runs each parcel through terrain, flood, protected land, grid proximity, distribution headroom, queue depth at the nearest grid supply point, the Gate 2 readiness checklist and, where a key exists, a revenue sketch from price spreads; then it grades each layer pass, warn or fail. A layer that did not load is graded unknown. Never clear. A person decides which parcels go forward, and every report repeats the README's own warning that it is not a connection offer.

The Gate 2 check earns that caution. Asked about a 50 MW battery with a land option and no planning application, get_gate2_readiness_check returned 3 passes, 1 warning and 4 fails across 10 rules, and its own disclaimer says it does not predict an outcome.

Weigh the risks

One maintainer wraps public APIs and scraped portals that their owners can change without notice, the project has had seven months and six stars to find its bugs, and I have not tested the tools' correctness beyond one run at one point. See the design, its diagram and the demo at the solution page. A screen that can say 'unknown' is worth more than one that cannot.

Subscribe to engineering insights

Get notified when we publish new technical articles.

Topics

Unsubscribe anytime. View our Privacy Policy.