Airports, runways and frequencies worldwide, tides, UK road collisions and London transport.
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.
An airport by ICAO, IATA or ident: name, type, town, country and region, location, elevation, runways and frequencies. Free within the daily allowance, then $0.001 USDC per call via x402.
ICAO (EGLL), IATA (LHR) or OurAirports ident
An airport by ICAO, IATA or ident: name, type, town, country and region, location, elevation, runways and frequencies. Free within the daily allowance, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| code* | string | ICAO (EGLL), IATA (LHR) or OurAirports ident |
{
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "ICAO (EGLL), IATA (LHR) or OurAirports ident"
}
}
}Airport counts by type, the large airports and the regions for a country. Free within the daily allowance, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| country* | string | 2-letter country code |
{
"type": "object",
"required": [
"country"
],
"properties": {
"country": {
"type": "string",
"description": "2-letter country code"
}
}
}An airport's radio frequencies (tower, ground, ATIS, approach…) in MHz. Free within the daily allowance, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| code* | string | ICAO (EGLL), IATA (LHR) or OurAirports ident |
{
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "ICAO (EGLL), IATA (LHR) or OurAirports ident"
}
}
}VORs, NDBs, DMEs and other navaids within a radius of a point, with frequency and associated airport. Free within the daily allowance, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| lat | string | Latitude (or give a UK postcode) |
| lng | string | Longitude |
| limit | integer | Max results (default 20) |
| postcode | string | UK postcode instead of lat/lng |
| radius_km | integer | Radius in km (default 50) |
{
"type": "object",
"properties": {
"lat": {
"type": "string",
"description": "Latitude (or give a UK postcode)"
},
"lng": {
"type": "string",
"description": "Longitude"
},
"limit": {
"type": "integer",
"description": "Max results (default 20)"
},
"postcode": {
"type": "string",
"description": "UK postcode instead of lat/lng"
},
"radius_km": {
"type": "integer",
"description": "Radius in km (default 50)"
}
}
}Airports (large/medium/small by default) within a radius of a point or UK postcode, nearest first. Free within the daily allowance, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| lat | string | Latitude (or give a UK postcode) |
| lng | string | Longitude |
| type | string | large | medium | small | heliport | … |
| limit | integer | Max results (default 10) |
| postcode | string | UK postcode instead of lat/lng |
| radius_km | integer | Radius in km (default 50, max 300) |
| scheduled | string | 1 = scheduled passenger service only |
{
"type": "object",
"properties": {
"lat": {
"type": "string",
"description": "Latitude (or give a UK postcode)"
},
"lng": {
"type": "string",
"description": "Longitude"
},
"type": {
"type": "string",
"description": "large | medium | small | heliport | …"
},
"limit": {
"type": "integer",
"description": "Max results (default 10)"
},
"postcode": {
"type": "string",
"description": "UK postcode instead of lat/lng"
},
"radius_km": {
"type": "integer",
"description": "Radius in km (default 50, max 300)"
},
"scheduled": {
"type": "string",
"description": "1 = scheduled passenger service only"
}
}
}An airport's runways: length, width, surface, lighting and each end's identifier, heading and elevation. Free within the daily allowance, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| code* | string | ICAO (EGLL), IATA (LHR) or OurAirports ident |
{
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "ICAO (EGLL), IATA (LHR) or OurAirports ident"
}
}
}Find airports by name or town and/or country, optionally by type or scheduled service only; biggest first. Free within the daily allowance, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| name | string | Airport name or town |
| type | string | large | medium | small | heliport | seaplane_base | closed |
| limit | integer | Max results (default 20) |
| country | string | 2-letter country code |
| scheduled | string | 1 = scheduled passenger service only |
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Airport name or town"
},
"type": {
"type": "string",
"description": "large | medium | small | heliport | seaplane_base | closed"
},
"limit": {
"type": "integer",
"description": "Max results (default 20)"
},
"country": {
"type": "string",
"description": "2-letter country code"
},
"scheduled": {
"type": "string",
"description": "1 = scheduled passenger service only"
}
}
}London air quality forecast for today and tomorrow. A few free samples a day, then $0.001 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Live bikes, e-bikes and empty docks at one station. A few free samples a day, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| id* | string | BikePoint id |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "BikePoint id"
}
}
}Every Santander Cycles docking station with live bike and space counts. A few free samples a day, then $0.002 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Journey options between two places (postcodes, stop ids or "lat,lon"). A few free samples a day, then $0.003 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| to* | string | Destination |
| from* | string | Origin |
{
"type": "object",
"required": [
"from",
"to"
],
"properties": {
"to": {
"type": "string",
"description": "Destination"
},
"from": {
"type": "string",
"description": "Origin"
}
}
}Live arrival predictions for every stop on a line. A few free samples a day, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| line* | string | Line id, e.g. "victoria", "elizabeth", "northern" |
{
"type": "object",
"required": [
"line"
],
"properties": {
"line": {
"type": "string",
"description": "Line id, e.g. \"victoria\", \"elizabeth\", \"northern\""
}
}
}Live status and disruption for one line. A few free samples a day, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| line* | string | Line id, e.g. "victoria", "elizabeth", "northern" |
{
"type": "object",
"required": [
"line"
],
"properties": {
"line": {
"type": "string",
"description": "Line id, e.g. \"victoria\", \"elizabeth\", \"northern\""
}
}
}Live status of every line for a mode (tube, overground, elizabeth-line, dlr, tram, bus). A few free samples a day, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| mode* | string | Mode |
{
"type": "object",
"required": [
"mode"
],
"properties": {
"mode": {
"type": "string",
"description": "Mode"
}
}
}Current disruption on a road corridor, e.g. "a2", "a406". A few free samples a day, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| road* | string | Road id |
{
"type": "object",
"required": [
"road"
],
"properties": {
"road": {
"type": "string",
"description": "Road id"
}
}
}Live status of major London road corridors. A few free samples a day, then $0.001 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Lines, modes, facilities and child stops of a station. A few free samples a day, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| stop* | string | StopPoint id (NaPTAN), e.g. "940GZZLUOXC" (Oxford Circus) |
{
"type": "object",
"required": [
"stop"
],
"properties": {
"stop": {
"type": "string",
"description": "StopPoint id (NaPTAN), e.g. \"940GZZLUOXC\" (Oxford Circus)"
}
}
}Live arrival predictions at a stop or station. A few free samples a day, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| stop* | string | StopPoint id (NaPTAN), e.g. "940GZZLUOXC" (Oxford Circus) |
{
"type": "object",
"required": [
"stop"
],
"properties": {
"stop": {
"type": "string",
"description": "StopPoint id (NaPTAN), e.g. \"940GZZLUOXC\" (Oxford Circus)"
}
}
}Find stations and stops by name. A few free samples a day, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| q* | string | Name |
{
"type": "object",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"description": "Name"
}
}
}Stations and stops within a radius of a point. A few free samples a day, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| lat* | string | Latitude |
| lon* | string | Longitude |
| radius | integer | Metres (default 200) |
{
"type": "object",
"required": [
"lat",
"lon"
],
"properties": {
"lat": {
"type": "string",
"description": "Latitude"
},
"lon": {
"type": "string",
"description": "Longitude"
},
"radius": {
"type": "integer",
"description": "Metres (default 200)"
}
}
}Live status of every Tube line. A few free samples a day, then $0.001 USDC per call via x402.
No arguments.
{
"type": "object",
"properties": {}
}Latest water temperature, air temperature, wind and air pressure reported at a station (whichever it measures). Free within the daily allowance, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| units | string | metric (default) | english |
| station* | string | NOAA CO-OPS station id |
{
"type": "object",
"required": [
"station"
],
"properties": {
"units": {
"type": "string",
"description": "metric (default) | english"
},
"station": {
"type": "string",
"description": "NOAA CO-OPS station id"
}
}
}Predicted high and low tide times (local) and heights for up to 7 days from today. Free within the daily allowance, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| days | integer | Days (1–7, default 2) |
| datum | string | MLLW (default) | MLW | MSL | MHW | MHHW | NAVD |
| units | string | metric (default) | english |
| station* | string | NOAA CO-OPS station id |
{
"type": "object",
"required": [
"station"
],
"properties": {
"days": {
"type": "integer",
"description": "Days (1–7, default 2)"
},
"datum": {
"type": "string",
"description": "MLLW (default) | MLW | MSL | MHW | MHHW | NAVD"
},
"units": {
"type": "string",
"description": "metric (default) | english"
},
"station": {
"type": "string",
"description": "NOAA CO-OPS station id"
}
}
}Search NOAA tide stations by name and/or state. Free within the daily allowance, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| name | string | Station name contains |
| state | string | 2-letter state |
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Station name contains"
},
"state": {
"type": "string",
"description": "2-letter state"
}
}
}A station's location, time zone, products offered and tidal datums. Free within the daily allowance, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| station* | string | NOAA CO-OPS station id |
{
"type": "object",
"required": [
"station"
],
"properties": {
"station": {
"type": "string",
"description": "NOAA CO-OPS station id"
}
}
}NOAA tide-prediction stations within a radius (default 50 km) of a point, nearest first. Free within the daily allowance, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| lat* | string | Latitude |
| lng* | string | Longitude |
| limit | integer | Max results (default 10) |
| radius_km | integer | Radius in km (default 50) |
{
"type": "object",
"required": [
"lat",
"lng"
],
"properties": {
"lat": {
"type": "string",
"description": "Latitude"
},
"lng": {
"type": "string",
"description": "Longitude"
},
"limit": {
"type": "integer",
"description": "Max results (default 10)"
},
"radius_km": {
"type": "integer",
"description": "Radius in km (default 50)"
}
}
}Observed 6-minute water levels for the last hours (default 6, max 72) with the latest reading. Free within the daily allowance, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| datum | string | MLLW (default) | MLW | MSL | MHW | MHHW | NAVD |
| hours | integer | Hours back (default 6) |
| units | string | metric (default) | english |
| station* | string | NOAA CO-OPS station id |
{
"type": "object",
"required": [
"station"
],
"properties": {
"datum": {
"type": "string",
"description": "MLLW (default) | MLW | MSL | MHW | MHHW | NAVD"
},
"hours": {
"type": "integer",
"description": "Hours back (default 6)"
},
"units": {
"type": "string",
"description": "metric (default) | english"
},
"station": {
"type": "string",
"description": "NOAA CO-OPS station id"
}
}
}One reported collision by its STATS19 index: date, time, severity, vehicles, casualties, road and conditions. A few free samples a day, then $0.001 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| id* | string | Collision index |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Collision index"
}
}
}Five-year (or one-year) collision totals for a local authority district by severity and year, road class, speed limit, light, weather, surface and urban/rural. A few free samples a day, then $0.003 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| code* | string | ONS local authority district code |
| year | integer | One year only |
{
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "ONS local authority district code"
},
"year": {
"type": "integer",
"description": "One year only"
}
}
}Collisions in a 2021 LSOA (neighbourhood of ~1,500 people) over five years, with the 50 most recent. A few free samples a day, then $0.002 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| code* | string | LSOA 2021 code |
{
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "LSOA 2021 code"
}
}
}Reported collisions within a radius (default 500 m, max 2 km) of a UK postcode or point over the last five years: totals by severity and year, and the most recent collisions with road, speed limit, light and weather. A few free samples a day, then $0.003 USDC per call via x402.
| Argument | Type | Description |
|---|---|---|
| lat | string | Latitude |
| lng | string | Longitude |
| year | integer | One year only |
| limit | integer | Recent collisions to list (default 20) |
| postcode | string | UK postcode (or give lat and lng) |
| radius_m | integer | Radius in metres (default 500, max 2000) |
{
"type": "object",
"properties": {
"lat": {
"type": "string",
"description": "Latitude"
},
"lng": {
"type": "string",
"description": "Longitude"
},
"year": {
"type": "integer",
"description": "One year only"
},
"limit": {
"type": "integer",
"description": "Recent collisions to list (default 20)"
},
"postcode": {
"type": "string",
"description": "UK postcode (or give lat and lng)"
},
"radius_m": {
"type": "integer",
"description": "Radius in metres (default 500, max 2000)"
}
}
}