Skip to content

Resources Reference

MCP resources provide read-only data accessible via URI. Unlike tools, resources do not accept arbitrary parameters — they are addressed by URI pattern and return structured data. The mcnoaa-tides server registers three resources.


The full NOAA CO-OPS station catalog. Returns a JSON array of all ~301 tide and current stations with basic metadata.

URI: noaa://stations

Parameters: None

Response fields:

FieldTypeDescription
idstr7-digit station ID
namestrStation name
statestrTwo-letter state abbreviation (may be empty for territories)
latfloatLatitude in decimal degrees
lngfloatLongitude in decimal degrees
tidalboolWhether the station supports tidal predictions
greatlakesboolWhether the station is on the Great Lakes
shefcodestrSHEF (Standard Hydrologic Exchange Format) identifier

Example response (truncated):

[
{
"id": "8410140",
"name": "Eastport",
"state": "ME",
"lat": 44.9033,
"lng": -66.985,
"tidal": true,
"greatlakes": false,
"shefcode": "EPTT1"
},
{
"id": "8413320",
"name": "Bar Harbor",
"state": "ME",
"lat": 44.3922,
"lng": -68.205,
"tidal": true,
"greatlakes": false,
"shefcode": "BRHM3"
},
{
"id": "8454000",
"name": "Providence",
"state": "RI",
"lat": 41.8071,
"lng": -71.4012,
"tidal": true,
"greatlakes": false,
"shefcode": "PRVR1"
}
]

The station catalog is cached in memory with a 24-hour TTL. If the cache refresh fails, stale data is served rather than raising an error.


Expanded metadata for a single station. Includes sensor inventory, datum offsets, available products, and station disclaimers.

URI pattern: noaa://stations/{station_id}

Parameters:

SegmentTypeDescription
station_idstr7-digit NOAA station ID

Example URI: noaa://stations/8454000

Example response (abbreviated):

{
"id": "8454000",
"name": "Providence",
"state": "RI",
"lat": 41.8071,
"lng": -71.4012,
"timezone": "EST",
"timezonecorr": -5,
"observedst": true,
"stormsurge": false,
"nearby": {
"self": "https://api.tidesandcurrents.noaa.gov/mdapi/prod/webapi/stations/8454000.json"
},
"details": {
"datumoffset": -3.42,
"ctrlStation": "8449130",
"shefcode": "PRVR1",
"accepted": 1938
},
"sensors": [
{"name": "Water Level", "status": "active"},
{"name": "Air Temperature", "status": "active"},
{"name": "Wind", "status": "active"},
{"name": "Barometric Pressure", "status": "active"}
],
"datums": [
{"name": "MHHW", "value": 5.09},
{"name": "MHW", "value": 4.63},
{"name": "MSL", "value": 2.235},
{"name": "MLW", "value": 0.37},
{"name": "MLLW", "value": 0.0},
{"name": "NAVD", "value": 2.159},
{"name": "STND", "value": 6.455}
],
"products": {
"predictions": true,
"water_level": true,
"air_temperature": true,
"water_temperature": false,
"wind": true,
"air_pressure": true,
"conductivity": false,
"visibility": false,
"humidity": false,
"salinity": false
},
"disclaimers": {
"self": "https://api.tidesandcurrents.noaa.gov/mdapi/prod/webapi/stations/8454000/disclaimers.json"
}
}

This resource calls the NOAA metadata API with the expand=details,sensors,datums,products,disclaimers parameter to retrieve all available metadata in one request. A 404 response from NOAA raises a ValueError indicating the station was not found.


Stations within 50 nautical miles of a given station, sorted by distance. The queried station itself is excluded from the results.

URI pattern: noaa://stations/{station_id}/nearby

Parameters:

SegmentTypeDescription
station_idstr7-digit NOAA station ID to search around

Example URI: noaa://stations/8454000/nearby

Response fields: Same as noaa://stations with an additional distance_nm field.

FieldTypeDescription
idstr7-digit station ID
namestrStation name
statestrTwo-letter state abbreviation
latfloatLatitude
lngfloatLongitude
tidalboolTidal prediction support
greatlakesboolGreat Lakes station
shefcodestrSHEF identifier
distance_nmfloatDistance in nautical miles from the queried station

Example response:

[
{
"id": "8452660",
"name": "Newport",
"state": "RI",
"lat": 41.5043,
"lng": -71.3261,
"tidal": true,
"greatlakes": false,
"shefcode": "NWPR1",
"distance_nm": 19.2
},
{
"id": "8447930",
"name": "Woods Hole",
"state": "MA",
"lat": 41.5236,
"lng": -70.6714,
"tidal": true,
"greatlakes": false,
"shefcode": "WHDM3",
"distance_nm": 38.7
},
{
"id": "8449130",
"name": "Nantucket Island",
"state": "MA",
"lat": 41.285,
"lng": -70.0967,
"tidal": true,
"greatlakes": false,
"shefcode": "NTKM3",
"distance_nm": 48.1
}
]

Returns up to 10 nearby stations. Uses the haversine formula to compute distances in nautical miles from the station’s coordinates. If the queried station ID is not found in the catalog, an error object is returned:

{
"error": "Station 9999999 not found"
}