Where Boats Anchor
Where boats stayed the night, and in what wind, at anchorages worldwide, with tonight's forecast.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"anchorages": {
"url": "https://whereboatsanchor.com/mcp"
}
}
}Remote endpoints
https://whereboatsanchor.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (4)
🟢find_anchorages(lat, lon, radius_nm, wind_from, wind_kn, ...)
Lists the places near a position where boats stopped, overnight or by day, with where boats stayed in tonight's forecast there or in a given wind. For tonight, call it without wind_from and wind_kn: the answer then carries tonight's forecast at the position and each place's nights in each of tonight's winds, as the site's Tonight does. Give a wind only to ask about that wind. Each place comes with how far and which way it lies from the position (e.g. 0.5 NM SW), its nights, where it is, its page and its place on the map. With a wind, each place gets its nights in that wind, split by strength, with the gusts on those nights (kt), and the list is sorted by those nights. A wind is counted as the site counts it: its compass point at 10 or 20 kt or more, as the forecast's band (e.g. wind_kn 15 counts E 10 kt or more). wind_from alone counts the direction at any strength. Under 3 kt (wind_kn in whole knots) the wind has no settled direction, so every night counts. A night counts once, in the wind it blew from most. Tonight is counted as the site's Tonight counts it: tonight's forecast times that are night there, each counted in its compass point at 10 or 20 kt or more, as its band (every night under 3 kt), and each place's fewest nights in any one of them. Where a place faces open water and tonight's swell there is 0.5 m or more, a time's nights are those that also had that swell, as on the site. Places with a night in every one of tonight's winds come first, by those fewest nights, then the rest. Without a forecast, by distance. Positions are WGS84 decimal degrees.
Input Schema
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude of the centre, WGS84 decimal degrees."
},
"lon": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude of the centre, WGS84 decimal degrees."
},
"radius_nm": {
"default": 15,
"description": "Radius of the circle in nautical miles, 15 when left out, at most 50.",
"type": "number",
"exclusiveMinimum": 0,
"maximum": 50
},
"wind_from": {
"description": "Direction the wind blows from: degrees true (0 to 360) or a point of the 16-point compass (N, NNE, NE ... NNW).",
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 8
}
]
},
"wind_kn": {
"description": "Mean wind speed in knots (kt). Needs wind_from. Under 3 kt as whole knots the direction counts for nothing, as on the site: every night counts.",
"type": "number",
"minimum": 0,
"maximum": 150
},
"limit": {
"default": 10,
"description": "Most places to list, 10 when left out, at most 25.",
"type": "integer",
"minimum": 1,
"maximum": 25
}
},
"required": [
"lat",
"lon"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"center": {
"type": "object",
"properties": {
"lat": {
"type": "number"
},
"lon": {
"type": "number"
}
},
"required": [
"lat",
"lon"
],
"additionalProperties": false
},
"radius_nm": {
"type": "number"
},
"wind": {
"anyOf": [
{
"type": "object",
"properties": {
"from": {
"anyOf": [
{
"type": "string",
"enum": [
"N",
"NE",
"E",
"SE",
"S",
"SW",
"W",
"NW"
]
},
{
"type": "null"
}
],
"description": "Null when the wind asked is under 3 kt: no settled direction, so every night counts, as on the site."
},
"min_kt": {
"type": "number"
}
},
"required": [
"from",
"min_kt"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"tonight": {
"anyOf": [
{
"type": "object",
"properties": {
"windows": {
"type": "array",
"items": {
"type": "object",
"properties": {
"time": {
"type": "string",
"description": "The forecast time on the clock at the position, ISO with its offset."
},
"from": {
"type": "string",
"enum": [
"N",
"NE",
"E",
"SE",
"S",
"SW",
"W",
"NW"
],
"description": "The forecast wind's compass point."
},
"mean_kt": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "The forecast mean wind, whole kt."
},
"counted_in": {
"type": "object",
"properties": {
"from": {
"anyOf": [
{
"type": "string",
"enum": [
"N",
"NE",
"E",
"SE",
"S",
"SW",
"W",
"NW"
]
},
{
"type": "null"
}
],
"description": "Null when the wind asked is under 3 kt: no settled direction, so every night counts, as on the site."
},
"min_kt": {
"type": "number"
}
},
"required": [
"from",
"min_kt"
],
"additionalProperties": false,
"description": "The wind its nights are counted in: its compass point at 10 or 20 kt or more, as its band; no point under 3 kt."
}
},
"required": [
"time",
"from",
"mean_kt",
"counted_in"
],
"additionalProperties": false
},
"description": "Tonight's 3-hour forecast times that are night at the position, in time order."
},
"missing": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Tonight's forecast times without a wind."
},
"credit": {
"type": "object",
"properties": {
"text": {
"type": "string",
"const": "Weather data by Open-Meteo.com"
},
"url": {
"type": "string",
"const": "https://open-meteo.com/"
}
},
"required": [
"text",
"url"
],
"additionalProperties": false,
"description": "The forecast's credit. Show its text, linked to its url, wherever this forecast is shown."
}
},
"required": [
"windows",
"missing",
"credit"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Tonight's forecast at the position, null when it isn't available."
},
"places": {
"type": "array",
"items": {
"type": "object",
"properties": {
"bay_id": {
"type": "string"
},
"name": {
"type": [
"string",
"null"
]
},
"where": {
"type": "object",
"properties": {
"country": {
"type": [
"string",
"null"
]
},
"region": {
"type": [
"string",
"null"
]
},
"county": {
"type": [
"string",
"null"
]
},
"area": {
"type": [
"string",
"null"
]
}
},
"required": [
"country",
"region",
"county",
"area"
],
"additionalProperties": false
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"distance": {
"type": "string",
"description": "How far and which way from the position, as the site writes it (e.g. 0.5 NM SW)."
},
"nights": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Nights boats stayed here: the site's number."
},
"matching": {
"anyOf": [
{
"type": "object",
"properties": {
"wind": {
"type": "object",
"properties": {
"from": {
"anyOf": [
{
"type": "string",
"enum": [
"N",
"NE",
"E",
"SE",
"S",
"SW",
"W",
"NW"
]
},
{
"type": "null"
}
],
"description": "Null when the wind asked is under 3 kt: no settled direction, so every night counts, as on the site."
},
"min_kt": {
"type": "number"
}
},
"required": [
"from",
"min_kt"
],
"additionalProperties": false
},
"nights": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Nights boats stayed here in this wind: the site's number."
},
"nights_by_strength": {
"type": "object",
"properties": {
"under_10_kt": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
],
"description": "Null unless the wind is counted at any strength."
},
"from_10_to_20_kt": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
],
"description": "Null when the wind is counted at 20 kt or more."
},
"from_20_kt": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"under_10_kt",
"from_10_to_20_kt",
"from_20_kt"
],
"additionalProperties": false,
"description": "The nights split by the night's strongest wind from this direction, as the site's wedge for the direction. Adds up to nights."
},
"gusts_kt": {
"anyOf": [
{
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
}
},
"required": [
"min",
"max"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Lowest and highest gust of the counted nights, kt."
}
},
"required": [
"wind",
"nights",
"nights_by_strength",
"gusts_kt"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"tonight": {
"anyOf": [
{
"type": "object",
"properties": {
"nights": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "The fewest nights in any one of tonight's winds."
},
"weakest": {
"anyOf": [
{
"type": "object",
"properties": {
"from": {
"anyOf": [
{
"type": "string",
"enum": [
"N",
"NE",
"E",
"SE",
"S",
"SW",
"W",
"NW"
]
},
{
"type": "null"
}
],
"description": "Null when the wind asked is under 3 kt: no settled direction, so every night counts, as on the site."
},
"min_kt": {
"type": "number"
}
},
"required": [
"from",
"min_kt"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "The wind those nights are counted in."
},
"weakest_swell": {
"anyOf": [
{
"type": "object",
"properties": {
"from": {
"type": "string",
"enum": [
"N",
"NE",
"E",
"SE",
"S",
"SW",
"W",
"NW"
]
},
"min_m": {
"type": "number"
}
},
"required": [
"from",
"min_m"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "The forecast swell those nights are counted with, as on the site: its compass point and the height it is counted from, m (0.5, 1.25 or 2.5 m or more). Null: the wind alone (a sheltered place, or tonight's swell there under 0.5 m)."
},
"every_window": {
"type": "boolean",
"description": "Whether boats stayed here on some night in each of tonight's winds."
}
},
"required": [
"nights",
"weakest",
"weakest_swell",
"every_window"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"url": {
"type": "string"
},
"map_url": {
"type": "string",
"description": "The site's map opened on this place."
}
},
"required": [
"bay_id",
"name",
"where",
"lat",
"lon",
"distance",
"nights",
"matching",
"tonight",
"url",
"map_url"
],
"additionalProperties": false
}
},
"places_in_radius": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"note": {
"type": [
"string",
"null"
]
},
"source": {
"type": "object",
"properties": {
"about": {
"type": "string",
"description": "The page that explains how the figures are known."
}
},
"required": [
"about"
],
"additionalProperties": false
}
},
"required": [
"center",
"radius_nm",
"wind",
"tonight",
"places",
"places_in_radius",
"note",
"source"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_bay_evidence(bay_id, name, near)
What boats did at one place, as its page on the site shows it. Its nights. Its nights by the eight compass points the wind blew from, split under 10, 10 to 20 and 20 kt or more, with the different boats and the windiest night of each. Its boats by length and type (cells under 3 boats null), its day stops by wind, its nights by swell direction where its page shows them, and the places nearby with how far and which way. It carries tonight's forecast at the place: the night's strongest forecast wind and the place's nights in that wind, as its page's Tonight shows it. Give bay_id, or name with near (WGS84 decimal degrees) to rank places of one name. Several places of one name come back as candidates.
Input Schema
{
"type": "object",
"properties": {
"bay_id": {
"description": "The place's id, as find_anchorages and list results give it (the page address's last part, e.g. cane-garden-bay).",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"name": {
"description": "The place's name, when bay_id isn't known. Several places of one name are listed as candidates, never guessed.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"near": {
"description": "A position to rank places of the same name by nearness, WGS84 decimal degrees.",
"type": "object",
"properties": {
"lat": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"lon": {
"type": "number",
"minimum": -180,
"maximum": 180
}
},
"required": [
"lat",
"lon"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"bay": {
"anyOf": [
{
"type": "object",
"properties": {
"bay_id": {
"type": "string"
},
"name": {
"type": [
"string",
"null"
]
},
"where": {
"type": "object",
"properties": {
"country": {
"type": [
"string",
"null"
]
},
"region": {
"type": [
"string",
"null"
]
},
"county": {
"type": [
"string",
"null"
]
},
"area": {
"type": [
"string",
"null"
]
}
},
"required": [
"country",
"region",
"county",
"area"
],
"additionalProperties": false
},
"kind": {
"type": [
"string",
"null"
]
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"url": {
"type": "string"
},
"map_url": {
"type": "string",
"description": "The site's map opened on this place."
},
"nights": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Nights boats stayed here: the site's number."
},
"line": {
"description": "The line under the place's name on the site.",
"type": [
"string",
"null"
]
},
"by_direction": {
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"type": "string",
"enum": [
"N",
"NE",
"E",
"SE",
"S",
"SW",
"W",
"NW"
]
},
"nights": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"nights_by_strength": {
"anyOf": [
{
"type": "object",
"properties": {
"under_10_kt": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"from_10_to_20_kt": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"from_20_kt": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"under_10_kt",
"from_10_to_20_kt",
"from_20_kt"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"boats": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
],
"description": "Different boats, overnight or by day, null under 3."
},
"windiest_night": {
"anyOf": [
{
"type": "object",
"properties": {
"date": {
"type": "string"
},
"kt": {
"type": "number"
},
"gust_kt": {
"type": [
"number",
"null"
]
}
},
"required": [
"date",
"kt",
"gust_kt"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"from",
"nights",
"nights_by_strength",
"boats",
"windiest_night"
],
"additionalProperties": false
}
},
"boats_by_size_and_type": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
}
},
{
"type": "null"
}
]
},
"boats_not_given": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"day_stops": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"type": "string",
"enum": [
"N",
"NE",
"E",
"SE",
"S",
"SW",
"W",
"NW"
]
},
"days": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"days_by_strength": {
"anyOf": [
{
"type": "object",
"properties": {
"under_10_kt": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"from_10_to_20_kt": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"from_20_kt": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"under_10_kt",
"from_10_to_20_kt",
"from_20_kt"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"windiest": {
"anyOf": [
{
"type": "object",
"properties": {
"kt": {
"type": "number"
},
"gust_kt": {
"type": [
"number",
"null"
]
}
},
"required": [
"kt",
"gust_kt"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"from",
"days",
"days_by_strength",
"windiest"
],
"additionalProperties": false
}
},
{
"type": "null"
}
]
},
"swell_by_direction": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"type": "string",
"enum": [
"N",
"NE",
"E",
"SE",
"S",
"SW",
"W",
"NW"
]
},
"by_height": {
"type": "array",
"items": {
"type": "object",
"properties": {
"min_m": {
"type": "number"
},
"nights": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"period_s": {
"anyOf": [
{
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
}
},
"required": [
"min",
"max"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"min_m",
"nights",
"period_s"
],
"additionalProperties": false
}
}
},
"required": [
"from",
"by_height"
],
"additionalProperties": false
}
},
{
"type": "null"
}
]
},
"nearby": {
"type": "array",
"items": {
"type": "object",
"properties": {
"bay_id": {
"type": "string"
},
"name": {
"type": [
"string",
"null"
]
},
"distance": {
"type": "string",
"description": "How far and which way, as the site writes it (e.g. 0.5 NM SW)."
},
"nights": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"url": {
"type": "string"
},
"map_url": {
"type": "string",
"description": "The site's map opened on this place."
}
},
"required": [
"bay_id",
"name",
"distance",
"nights",
"url",
"map_url"
],
"additionalProperties": false
}
}
},
"required": [
"bay_id",
"name",
"where",
"kind",
"lat",
"lon",
"url",
"map_url",
"nights",
"line",
"by_direction",
"boats_by_size_and_type",
"boats_not_given",
"day_stops",
"swell_by_direction",
"nearby"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"tonight": {
"anyOf": [
{
"type": "object",
"properties": {
"time": {
"type": "string",
"description": "The night's strongest forecast time on the clock at the place, ISO with its offset."
},
"from": {
"type": "string",
"enum": [
"N",
"NE",
"E",
"SE",
"S",
"SW",
"W",
"NW"
],
"description": "The forecast wind's compass point."
},
"mean_kt": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "The forecast mean wind, whole kt."
},
"gust_kt": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
],
"description": "The forecast gust, whole kt."
},
"counted_in": {
"type": "object",
"properties": {
"from": {
"anyOf": [
{
"type": "string",
"enum": [
"N",
"NE",
"E",
"SE",
"S",
"SW",
"W",
"NW"
]
},
{
"type": "null"
}
],
"description": "Null when the wind asked is under 3 kt: no settled direction, so every night counts, as on the site."
},
"min_kt": {
"type": "number"
}
},
"required": [
"from",
"min_kt"
],
"additionalProperties": false,
"description": "The wind its nights are counted in: its compass point at 10 or 20 kt or more, as its band; no point under 3 kt."
},
"nights": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Nights boats stayed here in that wind."
},
"gusts_kt": {
"anyOf": [
{
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
}
},
"required": [
"min",
"max"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Lowest and highest gust of those nights, kt."
},
"counted_with_swell": {
"anyOf": [
{
"type": "object",
"properties": {
"from": {
"type": "string",
"enum": [
"N",
"NE",
"E",
"SE",
"S",
"SW",
"W",
"NW"
]
},
"min_m": {
"type": "number"
}
},
"required": [
"from",
"min_m"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "The forecast swell those nights are counted with, as on the site: its compass point and the height it is counted from, m (0.5, 1.25 or 2.5 m or more). Null: the wind alone (a sheltered place, or the swell there under 0.5 m)."
},
"credit": {
"type": "object",
"properties": {
"text": {
"type": "string",
"const": "Weather data by Open-Meteo.com"
},
"url": {
"type": "string",
"const": "https://open-meteo.com/"
}
},
"required": [
"text",
"url"
],
"additionalProperties": false,
"description": "The forecast's credit. Show its text, linked to its url, wherever this forecast is shown."
}
},
"required": [
"time",
"from",
"mean_kt",
"gust_kt",
"counted_in",
"nights",
"gusts_kt",
"counted_with_swell",
"credit"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Tonight at this place, null when the forecast isn't available or for candidates."
},
"candidates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"bay_id": {
"type": "string"
},
"name": {
"type": "string"
},
"where": {
"type": [
"string",
"null"
]
},
"distance": {
"type": [
"string",
"null"
]
},
"url": {
"type": "string"
},
"map_url": {
"type": "string",
"description": "The site's map opened on this place."
}
},
"required": [
"bay_id",
"name",
"where",
"distance",
"url",
"map_url"
],
"additionalProperties": false
}
},
"note": {
"type": [
"string",
"null"
]
},
"source": {
"type": "object",
"properties": {
"about": {
"type": "string",
"description": "The page that explains how the figures are known."
}
},
"required": [
"about"
],
"additionalProperties": false
}
},
"required": [
"bay",
"tonight",
"candidates",
"note",
"source"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_climatology(bay_id, month)
Wind through the year at a place, as its page shows it: for each month, the nights whose strongest hour reached 20 kt and 30 kt, each year's fewest and most of them, the commonest directions of the nights of 20 kt or more, and the strongest gust, over ten years, for the area round the place. The first call for an area can answer preparing, then ready a few minutes later.
Input Schema
{
"type": "object",
"properties": {
"bay_id": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "The place's id, as find_anchorages gives it."
},
"month": {
"description": "One month, 1 (January) to 12 (December). Every month when left out.",
"type": "integer",
"minimum": 1,
"maximum": 12
}
},
"required": [
"bay_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"bay_id": {
"type": "string"
},
"name": {
"type": [
"string",
"null"
]
},
"status": {
"type": "string",
"enum": [
"ready",
"preparing",
"off"
]
},
"years": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
],
"description": "How many years the wind through the year covers."
},
"source": {
"type": "object",
"properties": {
"about": {
"type": "string",
"description": "The page that explains how the figures are known."
}
},
"required": [
"about"
],
"additionalProperties": false
},
"months": {
"type": "array",
"items": {
"type": "object",
"properties": {
"month": {
"type": "integer",
"minimum": 1,
"maximum": 12
},
"nights_20_kt_or_more": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"nights_30_kt_or_more": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"each_year_20_kt_or_more": {
"anyOf": [
{
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
}
},
"required": [
"min",
"max"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Each year's fewest and most nights of 20 kt or more in this month."
},
"each_year_30_kt_or_more": {
"anyOf": [
{
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
}
},
"required": [
"min",
"max"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Each year's fewest and most nights of 30 kt or more in this month."
},
"mostly_from": {
"type": "array",
"items": {
"type": "string",
"enum": [
"N",
"NE",
"E",
"SE",
"S",
"SW",
"W",
"NW"
]
},
"description": "The commonest directions of the nights of 20 kt or more, at most two."
},
"strongest_gust": {
"anyOf": [
{
"type": "object",
"properties": {
"kt": {
"type": "number"
},
"night": {
"type": "string"
}
},
"required": [
"kt",
"night"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"month",
"nights_20_kt_or_more",
"nights_30_kt_or_more",
"each_year_20_kt_or_more",
"each_year_30_kt_or_more",
"mostly_from",
"strongest_gust"
],
"additionalProperties": false
}
},
"note": {
"type": [
"string",
"null"
]
}
},
"required": [
"bay_id",
"name",
"status",
"years",
"source",
"months",
"note"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_regions(country)
The site's directory of places where boats stayed the night. Without a country: each country with its number of places. With a country (directory slug or ISO code): its regions and cruising areas with their number of places. Each with the address of its directory page.
Input Schema
{
"type": "object",
"properties": {
"country": {
"description": "A country's directory slug (new-zealand) or ISO 3166 two-letter code (NZ). Every country when left out.",
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"countries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"places": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"url": {
"type": "string"
}
},
"required": [
"slug",
"name",
"places",
"url"
],
"additionalProperties": false
}
},
"country": {
"anyOf": [
{
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"places": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"url": {
"type": "string"
}
},
"required": [
"slug",
"name",
"places",
"url"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"regions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"places": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"url": {
"type": "string"
}
},
"required": [
"slug",
"name",
"places",
"url"
],
"additionalProperties": false
}
},
"areas": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"places": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"url": {
"type": "string"
}
},
"required": [
"slug",
"name",
"places",
"url"
],
"additionalProperties": false
}
},
"note": {
"type": [
"string",
"null"
]
},
"source": {
"type": "object",
"properties": {
"about": {
"type": "string",
"description": "The page that explains how the figures are known."
}
},
"required": [
"about"
],
"additionalProperties": false
}
},
"required": [
"countries",
"country",
"regions",
"areas",
"note",
"source"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Community
Evidence