Ocean conditions by location: water visibility, swell, wind, tide, plus dive and snorkel spot picks.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
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.
Which day in a window (max 7 days) is best for an activity at a destination — a spot, a region, or lat+lon with a radius — and why, versus the runner-up. Returns every day's best score, confidence, caveats and a KaiCast spot card for the winner. Free during early access.
What the user wants to do.
Window end, inclusive, at most 7 days. Default: from + 6.
Latitude, decimal degrees. Use with lon.
Longitude, decimal degrees. Use with lat.
Window start, spot-local. Default: today.
Spot id, e.g. "hanauma-bay".
Region id, e.g. "us-hi-oahu".
Search radius around lat/lon in km (default 40, max 100).
Which day in a window (max 7 days) is best for an activity at a destination — a spot, a region, or lat+lon with a radius — and why, versus the runner-up. Returns every day's best score, confidence, caveats and a KaiCast spot card for the winner. Free during early access.
| Argument | Type | Description |
|---|---|---|
| to | string | Window end, inclusive, at most 7 days. Default: from + 6. |
| lat | number | Latitude, decimal degrees. Use with lon. |
| lon | number | Longitude, decimal degrees. Use with lat. |
| from | string | Window start, spot-local. Default: today. |
| spot | string | Spot id, e.g. "hanauma-bay". |
| region | string | Region id, e.g. "us-hi-oahu". |
| activity* | string | What the user wants to do. |
| radius_km | number | Search radius around lat/lon in km (default 40, max 100). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"activity"
],
"properties": {
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Window end, inclusive, at most 7 days. Default: from + 6."
},
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Latitude, decimal degrees. Use with lon."
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Longitude, decimal degrees. Use with lat."
},
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Window start, spot-local. Default: today."
},
"spot": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "Spot id, e.g. \"hanauma-bay\"."
},
"region": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "Region id, e.g. \"us-hi-oahu\"."
},
"activity": {
"enum": [
"snorkel",
"dive",
"freedive",
"spearfish",
"surf"
],
"type": "string",
"description": "What the user wants to do."
},
"radius_km": {
"type": "number",
"maximum": 100,
"description": "Search radius around lat/lon in km (default 40, max 100).",
"exclusiveMinimum": 0
}
}
}Facts for ONE covered spot over up to 7 days: 3-hour forecast periods with condition score (0-100) and rating, water visibility (ft), swell height/period/direction, wind, tide state and height, water temperature, plus tide events and data quality. Pass a spot id, or lat+lon to use the nearest covered spot within 30 km. Free.
| Argument | Type | Description |
|---|---|---|
| to | string | Last day, inclusive. At most 7 days after from. Default: from + 6. |
| lat | number | Latitude; snaps to the nearest covered spot within 30 km. |
| lon | number | Longitude; use with lat. |
| from | string | First day, spot-local YYYY-MM-DD. Default: today. |
| spot | string | Spot id, e.g. "electric-beach". Pass this OR lat+lon. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Last day, inclusive. At most 7 days after from. Default: from + 6."
},
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Latitude; snaps to the nearest covered spot within 30 km."
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Longitude; use with lat."
},
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First day, spot-local YYYY-MM-DD. Default: today."
},
"spot": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "Spot id, e.g. \"electric-beach\". Pass this OR lat+lon."
}
}
}Which regions and spots KaiCast covers, and whether each region supports ranked decisions (spot picks and best-day answers) or facts only. Also lists supported activities and how directly each is modeled. Anywhere not listed is not covered. Free.
| Argument | Type | Description |
|---|---|---|
| region | string | Limit to one region id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"region": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "Limit to one region id."
}
}
}Ranked top picks (max 5) for an activity in one area on one day — by region id, or lat+lon with a radius. Each pick has the best daylight window, why (from the published conditions), a confidence score with its factors, caveats, and a KaiCast spot card. Returns status "not_covered" / "conditions_only" / "activity_not_modeled" honestly instead of guessing. Activities: snorkel (native model), dive, freedive, spearfish (proxy model; spots in water closed to spearfishing are excluded), surf (not modeled). Free during early access.
| Argument | Type | Description |
|---|---|---|
| lat | number | Latitude, decimal degrees. Use with lon. |
| lon | number | Longitude, decimal degrees. Use with lat. |
| date | string | Spot-local day to plan for. Default: today, or tomorrow once today's daylight has passed. Up to 6 days ahead. |
| spot | string | Spot id, e.g. "hanauma-bay". |
| limit | integer | How many picks (default 3, max 5). |
| region | string | Region id, e.g. "us-hi-oahu". |
| activity* | string | What the user wants to do. |
| radius_km |
| number |
| Search radius around lat/lon in km (default 40, max 100). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"activity"
],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Latitude, decimal degrees. Use with lon."
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Longitude, decimal degrees. Use with lat."
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Spot-local day to plan for. Default: today, or tomorrow once today's daylight has passed. Up to 6 days ahead."
},
"spot": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "Spot id, e.g. \"hanauma-bay\"."
},
"limit": {
"type": "integer",
"maximum": 5,
"minimum": 1,
"description": "How many picks (default 3, max 5)."
},
"region": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "Region id, e.g. \"us-hi-oahu\"."
},
"activity": {
"enum": [
"snorkel",
"dive",
"freedive",
"spearfish",
"surf"
],
"type": "string",
"description": "What the user wants to do."
},
"radius_km": {
"type": "number",
"maximum": 100,
"description": "Search radius around lat/lon in km (default 40, max 100).",
"exclusiveMinimum": 0
}
}
}