Carbon Intensity Forecast for Scotland, England and Wales
nesodata/country-carbon-intensity-forecast
Forecast carbon intensity of the electricity grid in Scotland, England and Wales, half hour by half hour, between two UTC timestamps, in grams of CO2 per kilowatt hour, from 2018-09 to about two days ahead. Every value is NESO's modelled forecast, including for half hours already past; there is no measured value and no index. Scotland reads exactly 0 in about 4% of half hours (a floor on a model, not a measurement). Oldest first, at most 500 rows; a few half hours in the history have no row. Supported by National Energy SO Open Data. Reused under the NESO Open Data Licence; Omnial is not an official NESO product and NESO does not endorse it.
Price
$0.0026 per call
You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $5.
Data source
National Energy System Operator (NESO)
Supported by National Energy SO Open Data. Reused under the NESO Open Data Licence (https://www.neso.energy/data-portal/neso-open-licence), which permits commercial reuse provided NESO is acknowledged as the source. Served by Eden Engine; not an official NESO product, and NESO does not endorse it.
Use it
Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.
Connect once and your AI can find and run this tool, and any other it needs.
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "nesodata/country-carbon-intensity-forecast" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "nesodata/country-carbon-intensity-forecast" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "nesodata/country-carbon-intensity-forecast", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "nesodata/country-carbon-intensity-forecast", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.0026 |
- Updated
- Oct 20, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"from",
"to"
],
"properties": {
"to": {
"type": "string",
"pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$",
"description": "The end of the window, a UTC timestamp with no zone suffix, for example 2026-10-21T23:00:00. EXCLUSIVE: a row stamped exactly this is not returned. A `to` before `from` returns no rows, not an error."
},
"from": {
"type": "string",
"pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$",
"description": "The first half hour to return, a UTC timestamp with no zone suffix, for example 2026-10-21T19:00:00. Inclusive. Rows exist on :00 and :30. Data starts 2018-09-17T23:00:00; the forecast ends about two days ahead of now."
},
"limit": {
"type": "integer",
"default": 96,
"maximum": 500,
"minimum": 1,
"description": "The most rows to return, 1 to 500, default 96 (two days at one row per half hour). Rows come oldest first, so a window longer than this is cut at its newest end; if the answer has exactly this many rows, ask again from the last `datetime`."
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"required": [
"results"
],
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"required": [
"datetime",
"Scotland",
"England",
"Wales"
],
"properties": {
"Wales": {
"type": "number",
"description": "Forecast carbon intensity for Wales in gCO2/kWh."
},
"England": {
"type": "number",
"description": "Forecast carbon intensity for England in gCO2/kWh."
},
"Scotland": {
"type": "number",
"description": "Forecast carbon intensity for Scotland in gCO2/kWh. Exactly 0 in about 4% of rows: a floor on a modelled value, not a measured zero."
},
"datetime": {
"type": "string",
"description": "The half hour, UTC with no zone suffix, for example 2026-10-21T19:00:00. NESO does not say whether it marks the start or the end of the half hour."
}
},
"additionalProperties": true
},
"description": "One row per half hour that has a forecast. Empty when the window holds none (before 2018-09-17T23:00, after the forecast horizon, or inside a gap). Exactly `limit` rows means the window may continue."
}
},
"description": "The half-hour rows in the window, oldest first.",
"additionalProperties": true
}