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.
noaa://stations
Section titled “noaa://stations”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:
| Field | Type | Description |
|---|---|---|
id | str | 7-digit station ID |
name | str | Station name |
state | str | Two-letter state abbreviation (may be empty for territories) |
lat | float | Latitude in decimal degrees |
lng | float | Longitude in decimal degrees |
tidal | bool | Whether the station supports tidal predictions |
greatlakes | bool | Whether the station is on the Great Lakes |
shefcode | str | SHEF (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.
noaa://stations/{station_id}
Section titled “noaa://stations/{station_id}”Expanded metadata for a single station. Includes sensor inventory, datum offsets, available products, and station disclaimers.
URI pattern: noaa://stations/{station_id}
Parameters:
| Segment | Type | Description |
|---|---|---|
station_id | str | 7-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.
noaa://stations/{station_id}/nearby
Section titled “noaa://stations/{station_id}/nearby”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:
| Segment | Type | Description |
|---|---|---|
station_id | str | 7-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.
| Field | Type | Description |
|---|---|---|
id | str | 7-digit station ID |
name | str | Station name |
state | str | Two-letter state abbreviation |
lat | float | Latitude |
lng | float | Longitude |
tidal | bool | Tidal prediction support |
greatlakes | bool | Great Lakes station |
shefcode | str | SHEF identifier |
distance_nm | float | Distance 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"}