UK river levels and rainfall, bathing waters, flood warnings, weather, earthquakes and the GB…
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional free key from https://fourzerotwo.si/free (raises the free allowance from 100 to 500 calls/day)
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Designated bathing waters within a radius (default 25 km) of a UK postcode or point, nearest first, with classification and pollution risk. Free within the daily allowance, then $0.002 USDC per call via x402.
Latitude
Longitude
Max results (default 10)
UK postcode (or give lat and lng)
Radius in km (default 25, max 100)
Designated bathing waters within a radius (default 25 km) of a UK postcode or point, nearest first, with classification and pollution risk. Free within the daily allowance, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| lat | string | Latitude |
| lng | string | Longitude |
| limit | integer | Max results (default 10) |
| postcode | string | UK postcode (or give lat and lng) |
| radius_km | integer | Radius in km (default 25, max 100) |
{
"type": "object",
"properties": {
"lat": {
"type": "string",
"description": "Latitude"
},
"lng": {
"type": "string",
"description": "Longitude"
},
"limit": {
"type": "integer",
"description": "Max results (default 10)"
},
"postcode": {
"type": "string",
"description": "UK postcode (or give lat and lng)"
},
"radius_km": {
"type": "integer",
"description": "Radius in km (default 25, max 100)"
}
}
}Find bathing waters by name or district, and/or by classification (e.g. every "poor" site). Free within the daily allowance, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| name | string | Site or district name |
| classification | string | excellent | good | sufficient | poor | closed |
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Site or district name"
},
"classification": {
"type": "string",
"description": "excellent | good | sufficient | poor | closed"
}
}
}One bathing water: classification and year, pollution-risk forecast, latest sample date, water company and profile link. Free within the daily allowance, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| id* | string | Bathing water id |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Bathing water id"
}
}
}How many earthquakes match a time and magnitude window. Free within the daily allowance, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| starttime* | string | YYYY-MM-DD |
| minmagnitude | string | Minimum magnitude |
{
"type": "object",
"required": [
"starttime"
],
"properties": {
"starttime": {
"type": "string",
"description": "YYYY-MM-DD"
},
"minmagnitude": {
"type": "string",
"description": "Minimum magnitude"
}
}
}Full detail for one earthquake by USGS event id. Free within the daily allowance, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| eventid* | string | USGS event id |
{
"type": "object",
"required": [
"eventid"
],
"properties": {
"eventid": {
"type": "string",
"description": "USGS event id"
}
}
}Magnitude 2.5+ earthquakes worldwide in the past day. Free within the daily allowance, then $0.001 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Magnitude 4.5+ earthquakes worldwide in the past 7 days. Free within the daily allowance, then $0.001 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Earthquakes within a radius of a point since a date. Free within the daily allowance, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| latitude* | string | Latitude |
| longitude* | string | Longitude |
| starttime | string | YYYY-MM-DD |
| maxradiuskm | integer | Radius km (default 20001) |
| minmagnitude | string | Minimum magnitude |
{
"type": "object",
"required": [
"latitude",
"longitude"
],
"properties": {
"latitude": {
"type": "string",
"description": "Latitude"
},
"longitude": {
"type": "string",
"description": "Longitude"
},
"starttime": {
"type": "string",
"description": "YYYY-MM-DD"
},
"maxradiuskm": {
"type": "integer",
"description": "Radius km (default 20001)"
},
"minmagnitude": {
"type": "string",
"description": "Minimum magnitude"
}
}
}Significant earthquakes worldwide in the past 7 days. Free within the daily allowance, then $0.001 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Most recent bid-offer acceptances issued by the system operator. Free within the daily allowance, then $0.002 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Forecast available generation capacity by fuel type for the next two weeks. Free within the daily allowance, then $0.002 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Total national demand per day, recent days. Free within the daily allowance, then $0.001 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Half-hourly national and transmission demand forecast for the next day. Free within the daily allowance, then $0.001 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Daily peak demand forecast for the next two weeks. Free within the daily allowance, then $0.001 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Weekly peak demand forecast for the year ahead. Free within the daily allowance, then $0.001 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Initial national and transmission demand, half-hourly, last ~2 days. Free within the daily allowance, then $0.001 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Daily peak transmission demand. Free within the daily allowance, then $0.001 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Grid frequency (Hz) every 15 seconds, last hour. Free within the daily allowance, then $0.001 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Half-hourly generation by fuel type, recent history. Free within the daily allowance, then $0.002 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Current GB generation by fuel type (MW and %), latest 5-minute reading and last half hour / 24 hours. Free within the daily allowance, then $0.001 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Actual generation by production type over the last 24 hours (solar, wind, nuclear, gas…). Free within the daily allowance, then $0.001 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Day-ahead indicated demand, generation, imbalance and margin. Free within the daily allowance, then $0.001 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Every GB interconnector and the bidding zone it connects to. Free within the daily allowance, then $0.0005 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Latest half-hourly flows on each interconnector (France, Norway, Netherlands, Belgium, Ireland, Denmark…), newest first. Free within the daily allowance, then $0.002 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Daily operating margin forecast (OCNMFD2), days 2–14. Free within the daily allowance, then $0.001 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Market Index Data: half-hourly wholesale price (£/MWh) and volume between two dates. Free within the daily allowance, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| to* | string | End date YYYY-MM-DD |
| from* | string | Start date YYYY-MM-DD |
{
"type": "object",
"required": [
"from",
"to"
],
"properties": {
"to": {
"type": "string",
"description": "End date YYYY-MM-DD"
},
"from": {
"type": "string",
"description": "Start date YYYY-MM-DD"
}
}
}One outage notice: plant, fuel, normal/available capacity, cause and event window. Free within the daily allowance, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| id* | integer | Message id from outages |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Message id from outages"
}
}
}Outage and unavailability messages published between two times (ids; fetch each with outage). Free within the daily allowance, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| to* | string | To (ISO time) |
| from* | string | From (ISO time, e.g. 2026-10-10T00:00Z) |
{
"type": "object",
"required": [
"from",
"to"
],
"properties": {
"to": {
"type": "string",
"description": "To (ISO time)"
},
"from": {
"type": "string",
"description": "From (ISO time, e.g. 2026-10-10T00:00Z)"
}
}
}Daily generating plant surplus forecast, days 2–14. Free within the daily allowance, then $0.001 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}System sell/buy price and net imbalance volume for every settlement period of a day. Free within the daily allowance, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| date* | string | Settlement date YYYY-MM-DD |
{
"type": "object",
"required": [
"date"
],
"properties": {
"date": {
"type": "string",
"description": "Settlement date YYYY-MM-DD"
}
}
}Daily GB average temperature against seasonal reference values (drives demand). Free within the daily allowance, then $0.001 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}System operator warnings and notices (margin notices, SO-SO trades, electricity capacity warnings). Free within the daily allowance, then $0.001 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Current wind generation forecast, half-hourly, for the next ~2 days. Free within the daily allowance, then $0.001 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Forecast peak wind generation for each day. Free within the daily allowance, then $0.001 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Actual or estimated wind (on/offshore) and solar generation between two dates. Free within the daily allowance, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| to* | string | End date YYYY-MM-DD |
| from* | string | Start date YYYY-MM-DD |
{
"type": "object",
"required": [
"from",
"to"
],
"properties": {
"to": {
"type": "string",
"description": "End date YYYY-MM-DD"
},
"from": {
"type": "string",
"description": "Start date YYYY-MM-DD"
}
}
}Hourly-then-6-hourly forecast for ~9 days: temperature, wind, cloud, precipitation, symbol. Free within the daily allowance, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| lat* | string | Latitude |
| lon* | string | Longitude |
{
"type": "object",
"required": [
"lat",
"lon"
],
"properties": {
"lat": {
"type": "string",
"description": "Latitude"
},
"lon": {
"type": "string",
"description": "Longitude"
}
}
}Full forecast including humidity, pressure, fog, UV and precipitation ranges. Free within the daily allowance, then $0.003 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| lat* | string | Latitude |
| lon* | string | Longitude |
{
"type": "object",
"required": [
"lat",
"lon"
],
"properties": {
"lat": {
"type": "string",
"description": "Latitude"
},
"lon": {
"type": "string",
"description": "Longitude"
}
}
}Moonrise, moonset and moon phase for a point and date. Free within the daily allowance, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| lat* | string | Latitude |
| lon* | string | Longitude |
| date | string | YYYY-MM-DD |
{
"type": "object",
"required": [
"lat",
"lon"
],
"properties": {
"lat": {
"type": "string",
"description": "Latitude"
},
"lon": {
"type": "string",
"description": "Longitude"
},
"date": {
"type": "string",
"description": "YYYY-MM-DD"
}
}
}Wave height and direction, sea temperature and currents (Nordic and North Sea waters). Free within the daily allowance, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| lat* | string | Latitude |
| lon* | string | Longitude |
{
"type": "object",
"required": [
"lat",
"lon"
],
"properties": {
"lat": {
"type": "string",
"description": "Latitude"
},
"lon": {
"type": "string",
"description": "Longitude"
}
}
}Sunrise, sunset and solar noon for a point and date. Free within the daily allowance, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| lat* | string | Latitude |
| lon* | string | Longitude |
| date | string | YYYY-MM-DD (default today) |
{
"type": "object",
"required": [
"lat",
"lon"
],
"properties": {
"lat": {
"type": "string",
"description": "Latitude"
},
"lon": {
"type": "string",
"description": "Longitude"
},
"date": {
"type": "string",
"description": "YYYY-MM-DD (default today)"
}
}
}Description, river or sea and polygon reference for one flood area. Free within the daily allowance, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| area* | string | Flood area code |
{
"type": "object",
"required": [
"area"
],
"properties": {
"area": {
"type": "string",
"description": "Flood area code"
}
}
}Flood alert and warning areas within a radius of a point. Free within the daily allowance, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| lat* | string | Latitude |
| dist | integer | Radius in km (default 5) |
| long* | string | Longitude |
{
"type": "object",
"required": [
"lat",
"long"
],
"properties": {
"lat": {
"type": "string",
"description": "Latitude"
},
"dist": {
"type": "integer",
"description": "Radius in km (default 5)"
},
"long": {
"type": "string",
"description": "Longitude"
}
}
}Rainfall stations near a point. Free within the daily allowance, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| lat* | string | Latitude |
| dist | integer | Radius in km (default 5) |
| long* | string | Longitude |
{
"type": "object",
"required": [
"lat",
"long"
],
"properties": {
"lat": {
"type": "string",
"description": "Latitude"
},
"dist": {
"type": "integer",
"description": "Radius in km (default 5)"
},
"long": {
"type": "string",
"description": "Longitude"
}
}
}Monitoring stations on a named river. Free within the daily allowance, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| riverName* | string | River name, e.g. "River Thames" |
{
"type": "object",
"required": [
"riverName"
],
"properties": {
"riverName": {
"type": "string",
"description": "River name, e.g. \"River Thames\""
}
}
}Only severe flood warnings (danger to life) and flood warnings currently in force. Free within the daily allowance, then $0.002 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Location, river, typical range and measures for one monitoring station. Free within the daily allowance, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| station* | string | Station reference, e.g. "1491TH" |
{
"type": "object",
"required": [
"station"
],
"properties": {
"station": {
"type": "string",
"description": "Station reference, e.g. \"1491TH\""
}
}
}Readings from a station since a date-time (max 4 weeks back). Free within the daily allowance, then $0.003 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| since | string | ISO date-time, e.g. 2026-10-01T00:00:00Z |
| _limit | integer | Max readings (default 500) |
| station* | string | Station reference, e.g. "1491TH" |
{
"type": "object",
"required": [
"station"
],
"properties": {
"since": {
"type": "string",
"description": "ISO date-time, e.g. 2026-10-01T00:00:00Z"
},
"_limit": {
"type": "integer",
"description": "Max readings (default 500)"
},
"station": {
"type": "string",
"description": "Station reference, e.g. \"1491TH\""
}
}
}Latest readings from every measure at a station. Free within the daily allowance, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| station* | string | Station reference, e.g. "1491TH" |
{
"type": "object",
"required": [
"station"
],
"properties": {
"station": {
"type": "string",
"description": "Station reference, e.g. \"1491TH\""
}
}
}River level, flow, tidal and rainfall monitoring stations near a point. Free within the daily allowance, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| lat* | string | Latitude |
| dist | integer | Radius in km (default 5) |
| long* | string | Longitude |
{
"type": "object",
"required": [
"lat",
"long"
],
"properties": {
"lat": {
"type": "string",
"description": "Latitude"
},
"dist": {
"type": "integer",
"description": "Radius in km (default 5)"
},
"long": {
"type": "string",
"description": "Longitude"
}
}
}Every tidal level monitoring station in England. Free within the daily allowance, then $0.001 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Every flood alert and warning currently in force in England. Free within the daily allowance, then $0.002 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Flood alerts and warnings in force within a radius of a point. Free within the daily allowance, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| lat* | string | Latitude |
| dist | integer | Radius in km (default 5) |
| long* | string | Longitude |
{
"type": "object",
"required": [
"lat",
"long"
],
"properties": {
"lat": {
"type": "string",
"description": "Latitude"
},
"dist": {
"type": "integer",
"description": "Radius in km (default 5)"
},
"long": {
"type": "string",
"description": "Longitude"
}
}
}The latest reading for each measure of a type (level, flow, rainfall or groundwater) at a station. Free within the daily allowance, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| id* | string | Hydrology station id (from stations-near or search) |
| type* | string | level | flow | rainfall | groundwater |
{
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "string",
"description": "Hydrology station id (from stations-near or search)"
},
"type": {
"type": "string",
"description": "level | flow | rainfall | groundwater"
}
}
}The nearest rain gauges to a postcode or point with their latest rainfall totals. Free within the daily allowance, then $0.003 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| lat | string | Latitude |
| lng | string | Longitude |
| postcode | string | UK postcode (or give lat and lng) |
| radius_km | integer | Radius in km (default 10) |
{
"type": "object",
"properties": {
"lat": {
"type": "string",
"description": "Latitude"
},
"lng": {
"type": "string",
"description": "Longitude"
},
"postcode": {
"type": "string",
"description": "UK postcode (or give lat and lng)"
},
"radius_km": {
"type": "integer",
"description": "Radius in km (default 10)"
}
}
}Recent 15-minute readings (or daily means) for one type at a station, up to 7 days, newest first. Free within the daily allowance, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| id* | string | Hydrology station id (from stations-near or search) |
| days | integer | Days back (1–7, default 1) |
| type* | string | level | flow | rainfall | groundwater |
{
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "string",
"description": "Hydrology station id (from stations-near or search)"
},
"days": {
"type": "integer",
"description": "Days back (1–7, default 1)"
},
"type": {
"type": "string",
"description": "level | flow | rainfall | groundwater"
}
}
}Search hydrology stations by station or river name. Free within the daily allowance, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| name* | string | Station or river name |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Station or river name"
}
}
}One station: river, location, catchment area, date opened and its measures. Free within the daily allowance, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| id* | string | Hydrology station id (from stations-near or search) |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Hydrology station id (from stations-near or search)"
}
}
}River level, flow, rainfall and groundwater stations within a radius (default 10 km, max 25) of a postcode or point, nearest first. Free within the daily allowance, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| lat | string | Latitude |
| lng | string | Longitude |
| type | string | level | flow | rainfall | groundwater |
| limit | integer | Max results (default 25) |
| postcode | string | UK postcode (or give lat and lng) |
| radius_km | integer | Radius in km (default 10) |
{
"type": "object",
"properties": {
"lat": {
"type": "string",
"description": "Latitude"
},
"lng": {
"type": "string",
"description": "Longitude"
},
"type": {
"type": "string",
"description": "level | flow | rainfall | groundwater"
},
"limit": {
"type": "integer",
"description": "Max results (default 25)"
},
"postcode": {
"type": "string",
"description": "UK postcode (or give lat and lng)"
},
"radius_km": {
"type": "integer",
"description": "Radius in km (default 10)"
}
}
}Weather alerts in force for a US state or marine area. Free within the daily allowance, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| area* | string | State code, e.g. CA |
{
"type": "object",
"required": [
"area"
],
"properties": {
"area": {
"type": "string",
"description": "State code, e.g. CA"
}
}
}Weather alerts in force at a lat,lon. Free within the daily allowance, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| point* | string | "lat,lon" |
{
"type": "object",
"required": [
"point"
],
"properties": {
"point": {
"type": "string",
"description": "\"lat,lon\""
}
}
}Twice-daily forecast periods for a grid square. Free within the daily allowance, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| x* | integer | Grid X |
| y* | integer | Grid Y |
| office* | string | Forecast office id from the points endpoint |
{
"type": "object",
"required": [
"office",
"x",
"y"
],
"properties": {
"x": {
"type": "integer",
"description": "Grid X"
},
"y": {
"type": "integer",
"description": "Grid Y"
},
"office": {
"type": "string",
"description": "Forecast office id from the points endpoint"
}
}
}Hourly forecast for a grid square. Free within the daily allowance, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| x* | integer | Grid X |
| y* | integer | Grid Y |
| office* | string | Forecast office id from the points endpoint |
{
"type": "object",
"required": [
"office",
"x",
"y"
],
"properties": {
"x": {
"type": "integer",
"description": "Grid X"
},
"y": {
"type": "integer",
"description": "Grid Y"
},
"office": {
"type": "string",
"description": "Forecast office id from the points endpoint"
}
}
}Forecast office, grid and nearby stations for a US lat,lon. Free within the daily allowance, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| point* | string | "lat,lon" |
{
"type": "object",
"required": [
"point"
],
"properties": {
"point": {
"type": "string",
"description": "\"lat,lon\""
}
}
}Latest observed conditions at a weather station. Free within the daily allowance, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| station* | string | Station id, e.g. KNYC |
{
"type": "object",
"required": [
"station"
],
"properties": {
"station": {
"type": "string",
"description": "Station id, e.g. KNYC"
}
}
}