Live Environment Agency river levels, flows, rainfall and tide gauges across England
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional. Bearer <key> for more than the free daily allowance; free key from POST https://ukdata.reliness.co.uk/keys
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.
How much rain fell over the last 24 hours (or up to 7 days) at the nearest working Environment Agency rain gauge, in millimetres, with the wettest 15 minutes and how complete the record is. Observed rainfall for gardeners, farmers, groundskeepers and anyone checking "how much rain did we get". Source: Environment Agency real-time flood-monitoring API (tipping-bucket gauges). It measures one point, not your exact location, and is not a forecast. (cost: 1 credit)
number, required, latitude (England)
number, required, longitude
integer, optional, hours to total back from now, 1-168, default 24
number, optional, search radius in km, 0.5-50, default 10
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http uk-water-levels https://ukdata.reliness.co.uk/mcp/uk-water-levels
Headers
Authorization (optional, not in the config above): Optional. Bearer <key> for more than the free daily allowance; free key from POST https://ukdata.reliness.co.uk/keysHow much rain fell over the last 24 hours (or up to 7 days) at the nearest working Environment Agency rain gauge, in millimetres, with the wettest 15 minutes and how complete the record is. Observed rainfall for gardeners, farmers, groundskeepers and anyone checking "how much rain did we get". Source: Environment Agency real-time flood-monitoring API (tipping-bucket gauges). It measures one point, not your exact location, and is not a forecast. (cost: 1 credit)
| Argument | Type | Description |
|---|---|---|
| lat | number | string | number, required, latitude (England) |
| lon | number | string | number, required, longitude |
| hours | string | integer, optional, hours to total back from now, 1-168, default 24 |
| dist_km | number | string | number, optional, search radius in km, 0.5-50, default 10 |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"lat": {
"type": [
"number",
"string"
],
"description": "number, required, latitude (England)"
},
"lon": {
"type": [
"number",
"string"
],
"description": "number, required, longitude"
},
"hours": {
"type": "string",
"description": "integer, optional, hours to total back from now, 1-168, default 24"
},
"dist_km": {
"type": [
"number",
"string"
],
"description": "number, optional, search radius in km, 0.5-50, default 10"
}
}
}Latest river flow in cubic metres per second (cumecs) at one gauge, or at the nearest flow gauges to a point. The number kayakers, canoeists and anglers ask for. Source: Environment Agency real-time flood-monitoring API. Pass station_id for one gauge, or lat and lon to search nearby; only some gauges measure flow, and readings older than 6 hours are flagged stale. (cost: 1 credit)
| Argument | Type | Description |
|---|---|---|
| lat | number | string | number, optional, latitude (required if no station_id) |
| lon | number | string | number, optional, longitude (required if no station_id) |
| limit | string | integer, optional, gauges returned when searching, 1-5, default 3 |
| dist_km | number | string | number, optional, search radius in km, 0.5-50, default 15 |
| station_id | string | string, optional, Environment Agency station reference, e.g. 1490TH; use this or lat and lon |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"lat": {
"type": [
"number",
"string"
],
"description": "number, optional, latitude (required if no station_id)"
},
"lon": {
"type": [
"number",
"string"
],
"description": "number, optional, longitude (required if no station_id)"
},
"limit": {
"type": "string",
"description": "integer, optional, gauges returned when searching, 1-5, default 3"
},
"dist_km": {
"type": [
"number",
"string"
],
"description": "number, optional, search radius in km, 0.5-50, default 15"
},
"station_id": {
"type": "string",
"description": "string, optional, Environment Agency station reference, e.g. 1490TH; use this or lat and lon"
}
}
}River level readings at one gauge since a time (default the last 24 hours, up to 7 days back), with the lowest and highest point, change since the start and whether the river is rising, falling or steady over the last hour. Answers "has the river peaked yet" for flood watchers and anglers. Source: Environment Agency real-time flood-monitoring API. The series is thinned to a manageable number of points; it is not a forecast. (cost: 1 credit)
| Argument | Type | Description |
|---|---|---|
| since | string | string, optional, ISO date-time (UTC if no offset) or YYYY-MM-DD within the last 7 days, default 24 hours ago |
| points | string | integer, optional, max points in the returned series, 2-100, default 24 |
| station_id | string | string, required, Environment Agency station reference, e.g. 2200TH |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"since": {
"type": "string",
"description": "string, optional, ISO date-time (UTC if no offset) or YYYY-MM-DD within the last 7 days, default 24 hours ago"
},
"points": {
"type": "string",
"description": "integer, optional, max points in the returned series, 2-100, default 24"
},
"station_id": {
"type": "string",
"description": "string, required, Environment Agency station reference, e.g. 2200TH"
}
}
}Latest water level at one Environment Agency gauge, compared with its typical range (low, normal or high), plus the latest flow where the gauge measures it. Useful for boaters, anglers and residents asking whether the river is high right now. Source: Environment Agency real-time flood-monitoring API; readings are usually 15 minutes apart and old readings are flagged stale. Level is a gauge height, not water depth, and this is not a flood warning service. (cost: 1 credit)
| Argument | Type | Description |
|---|---|---|
| station_id | string | string, required, Environment Agency station reference, e.g. 2200TH (Reading); find ids with river_levels_near |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"station_id": {
"type": "string",
"description": "string, required, Environment Agency station reference, e.g. 2200TH (Reading); find ids with river_levels_near"
}
}
}Record high, record low and highest recent level at one Environment Agency gauge, with how far today's level is below the record. Answers "is this a record flood" for journalists, residents and property buyers. Source: Environment Agency real-time flood-monitoring API (station stage scale). Records only cover the years the gauge has operated, and some gauges publish none. (cost: 1 credit)
| Argument | Type | Description |
|---|---|---|
| station_id | string | string, required, Environment Agency station reference, e.g. 1491TH (Kings Mill, Oxford) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"station_id": {
"type": "string",
"description": "string, required, Environment Agency station reference, e.g. 1491TH (Kings Mill, Oxford)"
}
}
}Lists the Environment Agency level gauges on a named river in England (for example River Thames or River Severn) with station ids, towns and coordinates. Useful for boaters planning a trip or anyone following a river downstream. Source: Environment Agency real-time flood-monitoring API. The upstream name match is exact, so if nothing matches the tool retries once as "River <Name>" in title case (e.g. "thames" becomes "River Thames") and reports the name it used; other spellings are not guessed, and the list is not in upstream-to-downstream order. (cost: 1 credit)
| Argument | Type | Description |
|---|---|---|
| limit | string | integer, optional, max stations returned, 1-100, default 25 |
| river_name | string | string, required, river name as the Environment Agency writes it, e.g. River Thames; "thames" or "river thames" is retried as "River Thames" |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "string",
"description": "integer, optional, max stations returned, 1-100, default 25"
},
"river_name": {
"type": "string",
"description": "string, required, river name as the Environment Agency writes it, e.g. River Thames; \"thames\" or \"river thames\" is retried as \"River Thames\""
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 6, 2026.