{"server":"io.github.OneWave-AI/gillby","count":100,"tools":[{"name":"check_route_conditions","title":"Check conditions at route stops","description":"Weather and marine conditions at up to five ordered spot IDs. Checks sampled stops only; does not create a navigable route or check depth, bridges, zones, or conditions between stops.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spots"],"properties":{"spots":{"type":"string","maxLength":500,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"compare_spots","title":"Compare spot conditions","description":"Compare current conditions for up to five verified comma-separated spot IDs. Partial failures remain explicit.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spots"],"properties":{"spots":{"type":"string","maxLength":500,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"delete_my_place","title":"delete my place","description":"Delete a saved place. Repeat deletes return deleted=false. Requires your Gillby account and explicit account consent.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["path"],"properties":{"path":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":true,"destructiveHint":true},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"delete_my_trip","title":"delete my trip","description":"Delete a saved trip. Repeat deletes return deleted=false. Requires your Gillby account and explicit account consent.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["path"],"properties":{"path":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":true,"destructiveHint":true},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"find_anchorages","title":"Find anchorages","description":"Search published anchorages by name or west,south,east,north bbox. Verify access and operating details with the facility. Bridge data is published, not a live clearance calculation.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"q":{"type":"string","maxLength":80,"minLength":1},"bbox":{"type":"string","maxLength":100,"minLength":1},"limit":{"type":"integer","default":20,"maximum":100,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"find_beaches","title":"Find beaches","description":"Search published beaches by name or west,south,east,north bbox. Verify access and operating details with the facility. Bridge data is published, not a live clearance calculation.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"q":{"type":"string","maxLength":80,"minLength":1},"bbox":{"type":"string","maxLength":100,"minLength":1},"limit":{"type":"integer","default":20,"maximum":100,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"find_boat_ramps","title":"Find boat ramps","description":"Search published boat ramps by name or west,south,east,north bbox. Verify access and operating details with the facility. Bridge data is published, not a live clearance calculation.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"q":{"type":"string","maxLength":80,"minLength":1},"bbox":{"type":"string","maxLength":100,"minLength":1},"limit":{"type":"integer","default":20,"maximum":100,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"find_dive_sites","title":"Find dive sites","description":"Search published dive sites by name or west,south,east,north bbox. Verify access and operating details with the facility. Bridge data is published, not a live clearance calculation.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"q":{"type":"string","maxLength":80,"minLength":1},"bbox":{"type":"string","maxLength":100,"minLength":1},"limit":{"type":"integer","default":20,"maximum":100,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"find_fuel_docks","title":"Find fuel docks","description":"Search published fuel docks by name or west,south,east,north bbox. Verify access and operating details with the facility. Bridge data is published, not a live clearance calculation.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"q":{"type":"string","maxLength":80,"minLength":1},"bbox":{"type":"string","maxLength":100,"minLength":1},"limit":{"type":"integer","default":20,"maximum":100,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"find_inlets","title":"Find inlets","description":"Search published inlets by name or west,south,east,north bbox. Verify access and operating details with the facility. Bridge data is published, not a live clearance calculation.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"q":{"type":"string","maxLength":80,"minLength":1},"bbox":{"type":"string","maxLength":100,"minLength":1},"limit":{"type":"integer","default":20,"maximum":100,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"find_marinas","title":"Find marinas","description":"Search published marinas by name or west,south,east,north bbox. Verify access and operating details with the facility. Bridge data is published, not a live clearance calculation.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"q":{"type":"string","maxLength":80,"minLength":1},"bbox":{"type":"string","maxLength":100,"minLength":1},"limit":{"type":"integer","default":20,"maximum":100,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"find_piers","title":"Find piers","description":"Search published piers by name or west,south,east,north bbox. Verify access and operating details with the facility. Bridge data is published, not a live clearance calculation.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"q":{"type":"string","maxLength":80,"minLength":1},"bbox":{"type":"string","maxLength":100,"minLength":1},"limit":{"type":"integer","default":20,"maximum":100,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"find_reefs","title":"Find reefs","description":"Search published reefs by name or west,south,east,north bbox. Verify access and operating details with the facility. Bridge data is published, not a live clearance calculation.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"q":{"type":"string","maxLength":80,"minLength":1},"bbox":{"type":"string","maxLength":100,"minLength":1},"limit":{"type":"integer","default":20,"maximum":100,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"find_waterfront_dining","title":"Find waterfront restaurants","description":"Search published waterfront restaurants by name or west,south,east,north bbox. Verify access and operating details with the facility. Bridge data is published, not a live clearance calculation.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"q":{"type":"string","maxLength":80,"minLength":1},"bbox":{"type":"string","maxLength":100,"minLength":1},"limit":{"type":"integer","default":20,"maximum":100,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"find_wrecks","title":"Find wrecks","description":"Search published wrecks by name or west,south,east,north bbox. Verify access and operating details with the facility. Bridge data is published, not a live clearance calculation.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"q":{"type":"string","maxLength":80,"minLength":1},"bbox":{"type":"string","maxLength":100,"minLength":1},"limit":{"type":"integer","default":20,"maximum":100,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_activity_scores","title":"Activity suitability scores","description":"Hourly published activity scores with reasons and vetoes. Missing activity scores are unscored.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1},"hours":{"type":"integer","default":24,"maximum":168,"minimum":1},"activity":{"enum":["boating","sailing","paddle","sup-surf","kite","skim","skim-wave","swim","dive","fishing-inshore","fishing-offshore","surf","inlet"],"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_air_temperature","title":"Air temperature","description":"Air temperature for a verified spot over the next hours. Includes timestamp, source status and explicit nulls when unavailable. Water temperature is F; atmospheric visibility is mi, not underwater visibility; current sign follows the assigned station convention.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1},"hours":{"type":"integer","default":24,"maximum":168,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_algae_reports","title":"Reported algae samples","description":"Reported algae samples from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"bbox":{"type":"string","maxLength":100,"minLength":1},"category":{"type":"string","maxLength":100,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_beach_bacteria","title":"Beach bacteria samples","description":"Beach bacteria samples for a verified spot. Preserve source sample dates and unavailable states. Satellite clarity is a relative index, not measured dive visibility.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_boat","title":"One boat's specs","description":"A single boat record from the library.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["path"],"properties":{"path":{"type":"object","required":["boatId"],"properties":{"boatId":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_briefing","title":"Plain-language briefing for a spot","description":"A short headline + <=60-word body written from the live data (numbers validated against the fact sheet; falls back to a template when no model is available). source says claude/openai/template. Rate limited: may call an LLM on a cold cache.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["path"],"properties":{"path":{"type":"object","required":["spotId"],"properties":{"spotId":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1,"description":"Spot id, e.g. boca-inlet"}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_california_coverage","title":"California beta data coverage and gaps","description":"Explain California API/MCP beta coverage, sources and missing capabilities. Check before claiming Florida parity, continuous advisories or break-level surf scores.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_california_lake","title":"California lake weather and gauge readings","description":"On-demand lake weather with wind/gusts kt, air F and source-dated gauge measurements. Preserve original elevation datum, units, CDEC source time and provisional flags. No wave forecast or launch opening guarantee.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["path"],"properties":{"path":{"type":"object","required":["lakeId"],"properties":{"lakeId":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_california_protected_areas","title":"California protected-area source boundaries","description":"Paginated CDFW protected-area boundary geometry from a dated archive. Verify current CDFW fishing and access regulations; geometry alone does not establish permitted activities.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"limit":{"type":"integer","default":5,"maximum":10,"minimum":1},"offset":{"type":"integer","default":0,"maximum":1000,"minimum":0}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_california_river","title":"California river observations and weather","description":"Get source-dated USGS river flow cfs, local gauge height ft and water temperature F where available, plus weather. Preserve measurement units and provisional flags; stage is not navigable depth. No navigation or water-contact safety rating.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["path"],"properties":{"path":{"type":"object","required":["riverId"],"properties":{"riverId":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_california_surf","title":"California swell, wind, tides and buoy observations","description":"Get an on-demand California surf outlook for a forecastSupported spot ID from list_california_spots. Offshore swell ft/period s/directions FROM, wind kt/FROM, NOAA tide predictions ft MLLW and dated buoy observations. Offshore waves are not breaking-wave heights. No calibrated surf rating, beach advisory or shark-risk assessment is supplied. Preserve issues and timestamps.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_camera_image","title":"Camera still image","description":"Fetch a public camera JPEG with source timestamp metadata for the Gillby panel. Returns image bytes through MCP, without a browser network request.","input_schema":{"type":"object","required":["camId"],"properties":{"camId":{"type":"string","pattern":"^[a-z0-9-]+$","maxLength":100}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_canal_discharges","title":"Canal discharge and freshwater releases","description":"Canal discharge and freshwater releases from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"bbox":{"type":"string","maxLength":100,"minLength":1},"category":{"type":"string","maxLength":100,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_chlorophyll","title":"Satellite chlorophyll and water color","description":"Satellite chlorophyll and water color from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"bbox":{"type":"string","maxLength":100,"minLength":1},"category":{"type":"string","maxLength":100,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_chop","title":"Boat ride and chop (use get_chop_history for past trends)","description":"Boat ride and chop (use get_chop_history for past trends) for a verified spot over the next hours. Includes timestamp, source status and explicit nulls when unavailable. Water temperature is F; atmospheric visibility is mi, not underwater visibility; current sign follows the assigned station convention.\nFor chop history or trends use get_chop_history with a verified spot ID. Preserve recorded versus reconstructed provenance, native 0–10 index and labels, coverage and gaps. Never invent assistant-defined rough/calm thresholds or silently substitute wave/wind series for native chop.\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1},"hours":{"type":"integer","default":24,"maximum":168,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_chop_history","title":"Canonical chop history and trends","description":"Gillby's native 0-10 chop series: the latest 72 hours publicly, up to 31 days with a free Gillby account (OAuth sign-in); daily mean/max, coverage and 7-day trends. Recorded outputs and historical model reconstructions are identified separately. Never replace these with assistant-defined Calm/Moderate/Rough cutoffs or fabricate gaps.\nFor chop history or trends use get_chop_history with a verified spot ID. Preserve recorded versus reconstructed provenance, native 0–10 index and labels, coverage and gaps. Never invent assistant-defined rough/calm thresholds or silently substitute wave/wind series for native chop.\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"to":{"type":"string","format":"date-time"},"from":{"type":"string","format":"date-time"},"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_cloud_cover","title":"Cloud cover","description":"Cloud cover for a verified spot over the next hours. Includes timestamp, source status and explicit nulls when unavailable. Water temperature is F; atmospheric visibility is mi, not underwater visibility; current sign follows the assigned station convention.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1},"hours":{"type":"integer","default":24,"maximum":168,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_coastal_sensors","title":"SECOORA coastal sensor observations","description":"SECOORA coastal sensor observations from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"bbox":{"type":"string","maxLength":100,"minLength":1},"category":{"type":"string","maxLength":100,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_conditions","title":"Conditions for a spot: now, 7-day hourly, tides, scores, alerts, hazards","description":"The full conditions bundle for a named spot: current waves (ft, s, deg FROM), wind (kt), tide (ft MLLW), water temp (F), activity scores with reasons, 7-day hourly forecast, hi/lo tides, best windows, NWS alerts, rip/red tide/bacteria hazards, lightning and an AI briefing. Kitesurf: kiteboarding contains rider-specific weather screening and unverified launch status; supply kiteStyle, kiteExperience, kiteMinWindKt and kiteMaxWindKt. No overall kite score or verified launch is implied. Activities: kite, surf, skim (flatland), skim-wave (wave riding), paddle (flatwater paddleboard), sup-surf (SUP surf). Skim scores are absent without shoreline observations; do not substitute other activity scores. Prefer view=summary unless you need every hour. boat=<id> adds boat-specific chop comfort. For an arbitrary lat/lon use get_point_conditions.\nStart here for a current spot question with view=summary: this single result includes forecast, tides, scores, advisories, hazards, lightning and source status. Avoid duplicate hazard/tide calls unless a needed detail is absent. For beach questions, sea-model wave heights and NWS breaking-surf heights measure different things; their difference alone is not a forecast conflict. A swim no-go must not be followed by a recommendation to wade.\nInterpretation: omit boat unless the user supplied or confirmed it. Describe lightning as flashes observed or not detected in the stated window, never a clear/safe guarantee. Report unavailable/QC-failed sources even when freshness.stale=false; fresh does not mean every source is usable. Model sea height is not breaking surf height. Tide heights at different local MLLW gauges do not establish relative channel depths. High tide is not necessarily slack current. For kitesurfing use get_conditions with kiteStyle (freeride/waves/foil), kiteExperience and rider-supplied kiteMinWindKt/kiteMaxWindKt. Read kiteboarding for weather screening, gust spread and explicitly unverified launch status. Never infer the rider wind range, legal launch access or rescue coverage. Activity keys: kite, surf, skim (flatland), skim-wave (wave riding), paddle (flatwater paddleboard), sup-surf (SUP surf). Skim suitability is unscored without shoreline observations; missing scores must not inherit another activity. Offshore wind can favor surf while increasing paddleboard drift risk. A point depth cannot prove route clearance. Do not invent detection percentages, future readings, vessel ownership, or app settings instructions.\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"cat":{"type":"string","maxLength":40,"description":"custom boat category"},"loa":{"type":"number","maximum":200,"minimum":1,"description":"custom boat length overall, ft"},"beam":{"type":"number","maximum":60,"minimum":1,"description":"custom boat beam, ft"},"boat":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1,"description":"Boat id from GET /api/v1/boats (adds boat-specific chop comfort), or 'custom' with loa/beam/draft/deadrise/hull/cat/name"},"hull":{"type":"string","maxLength":40,"description":"custom boat hull type"},"name":{"type":"string","maxLength":60,"description":"custom boat name"},"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1,"description":"Spot id, e.g. boca-inlet"},"view":{"enum":["full","summary"],"type":"string","default":"full","description":"summary = compact (~10 KB) for LLMs and widgets; full = every hourly point (~250 KB)"},"draft":{"type":"number","maximum":30,"minimum":0.1,"description":"custom boat draft, ft"},"cruise":{"type":"number","maximum":80,"minimum":1,"description":"custom boat cruise speed, kt"},"weight":{"type":"number","maximum":200000,"minimum":1,"description":"custom boat weight, lb"},"deadrise":{"type":"number","maximum":40,"minimum":1,"description":"custom boat deadrise at transom, deg"},"kiteStyle":{"enum":["freeride","waves","foil"],"type":"string","default":"freeride"},"kiteMaxWindKt":{"type":"number","maximum":60,"minimum":1,"description":"Rider-supplied equipment wind maximum; must exceed minimum"},"kiteMinWindKt":{"type":"number","maximum":60,"minimum":1,"description":"Rider-supplied equipment wind minimum; never infer"},"kiteExperience":{"enum":["beginner","independent","advanced"],"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_coral_heat","title":"Coral heat stress and bleaching outlook","description":"Coral heat stress and bleaching outlook from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"bbox":{"type":"string","maxLength":100,"minLength":1},"category":{"type":"string","maxLength":100,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_currents","title":"Predicted inlet currents","description":"Predicted inlet currents for a verified spot over the next hours. Includes timestamp, source status and explicit nulls when unavailable. Water temperature is F; atmospheric visibility is mi, not underwater visibility; current sign follows the assigned station convention.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1},"hours":{"type":"integer","default":24,"maximum":168,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_data_coverage","title":"Published data coverage","description":"Published dataset inventory and verified spot coverage; distinguishes unavailable data.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_dataset","title":"One government dataset","description":"The latest payload of one dataset from list_datasets, including sharks and jellyfish. These marine-life records are dated observations, not live beach warnings; no records does not imply absence. bbox filters list datasets; category filters USCG notices (e.g. bridge,hazard); homeZone=true limits discharges to the home zone; geometry=true includes MPA polygons. 503 when the dataset has never loaded.\nShark, jellyfish and man-of-war records are dated published observations, not live tracking, beach warnings, abundance estimates or swimming-safety scores. Preserve observation dates, uncertainty, attribution and source availability. No records does not mean the animals are absent. Source checked time is not observation time. Man-of-war are siphonophores, not true jellyfish. Local lifeguard links are not ingested current warnings; check the source report date. Never apply NOAA's Chesapeake sea-nettle forecast to Florida.\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["path"],"properties":{"path":{"type":"object","required":["datasetId"],"properties":{"datasetId":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1}},"additionalProperties":false},"query":{"type":"object","required":[],"properties":{"bbox":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?(,-?\\d+(\\.\\d+)?){3}$","description":"w,s,e,n in decimal degrees"},"category":{"type":"array","items":{"type":"string","maxLength":40}},"geometry":{"type":"boolean"},"homeZone":{"type":"boolean"}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_departure_windows","title":"Activity departure windows","description":"Published best windows filtered by activity. No windows means none were supplied, not a guarantee that every other hour is unsafe.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1},"activity":{"enum":["boating","sailing","paddle","sup-surf","kite","skim","skim-wave","swim","dive","fishing-inshore","fishing-offshore","surf","inlet"],"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_depth","title":"Inspect chart depth and restrictions","description":"Actual NOAA ENC chart depth and optional DEM depth at a Florida coordinate, with charted hazards, channel context and restriction zones. A point check does not prove clearance along a route.\nInterpretation: omit boat unless the user supplied or confirmed it. Describe lightning as flashes observed or not detected in the stated window, never a clear/safe guarantee. Report unavailable/QC-failed sources even when freshness.stale=false; fresh does not mean every source is usable. Model sea height is not breaking surf height. Tide heights at different local MLLW gauges do not establish relative channel depths. High tide is not necessarily slack current. For kitesurfing use get_conditions with kiteStyle (freeride/waves/foil), kiteExperience and rider-supplied kiteMinWindKt/kiteMaxWindKt. Read kiteboarding for weather screening, gust spread and explicitly unverified launch status. Never infer the rider wind range, legal launch access or rescue coverage. Activity keys: kite, surf, skim (flatland), skim-wave (wave riding), paddle (flatwater paddleboard), sup-surf (SUP surf). Skim suitability is unscored without shoreline observations; missing scores must not inherit another activity. Offshore wind can favor surf while increasing paddleboard drift risk. A point depth cannot prove route clearance. Do not invent detection percentages, future readings, vessel ownership, or app settings instructions.\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["lat","lon"],"properties":{"lat":{"type":"number","maximum":31,"minimum":24},"lon":{"type":"number","maximum":-78,"minimum":-88}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_derelict_vessels","title":"Reported derelict vessels","description":"Reported derelict vessels from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"bbox":{"type":"string","maxLength":100,"minLength":1},"category":{"type":"string","maxLength":100,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_fishing_heatmap","title":"Fishing record-density heatmap cells","description":"Published state-isolated Florida and California fishing evidence (state defaults to florida; California default species california-halibut): dated NOAA commercial catches and research/community occurrences, source/license credits, coordinate uncertainty, seasonal record counts and configurable 0.25/0.10/0.05/0.02/0.01/0.005-degree heatmap cells. Historical records are not live fish locations, migration tracks, abundance, catch rates or catch probabilities. Sampling/fishing effort is uncorrected; absent records do not establish fish absence. from/to are inclusive YYYY-MM-DD observation dates; month pools all selected years. state selects separate publications; species must belong to that state. Publication checks older than 26 hours are stale; query last-good times preserve partial outage age. California uses bounded OBIS/iNaturalist occurrences, not a comprehensive catch survey. Source check time is not observation time. Recency weighting defaults to recent: exponential 365-day half-life based on observation dates, not source retrieval. weighting=historical gives equal weights. No upstream downloads on tool calls.\nPreserve species, observation dates, source credits, coordinate uncertainty, query coverage, partial/stale flags and fishing-effort bias. Heatmap color is record density, never fish abundance or catch odds. Commercial catches and occurrences must remain distinguishable. No generated migration paths.\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"to":{"type":"string","maxLength":10,"minLength":1},"bbox":{"type":"string","maxLength":100,"minLength":1},"from":{"type":"string","maxLength":10,"minLength":1},"limit":{"type":"integer","default":20,"maximum":100,"minimum":1},"month":{"type":"integer","default":0,"maximum":12,"minimum":0},"state":{"enum":["florida","california"],"type":"string","default":"florida"},"offset":{"type":"integer","default":0,"maximum":100000,"minimum":0},"species":{"enum":["mahi","blue-marlin","white-marlin","tarpon","snook","california-halibut","kelp-bass","pacific-yellowtail","lingcod"],"type":"string"},"weighting":{"enum":["recent","historical"],"type":"string","default":"recent"},"catchesOnly":{"type":"boolean","default":false},"cellDegrees":{"enum":[0.25,0.1,0.05,0.02,0.01,0.005],"type":"number","default":0.05}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_fishing_insights","title":"Fishing evidence and seasonal summaries","description":"Published state-isolated Florida and California fishing evidence (state defaults to florida; California default species california-halibut): dated NOAA commercial catches and research/community occurrences, source/license credits, coordinate uncertainty, seasonal record counts and configurable 0.25/0.10/0.05/0.02/0.01/0.005-degree heatmap cells. Historical records are not live fish locations, migration tracks, abundance, catch rates or catch probabilities. Sampling/fishing effort is uncorrected; absent records do not establish fish absence. from/to are inclusive YYYY-MM-DD observation dates; month pools all selected years. state selects separate publications; species must belong to that state. Publication checks older than 26 hours are stale; query last-good times preserve partial outage age. California uses bounded OBIS/iNaturalist occurrences, not a comprehensive catch survey. Source check time is not observation time. Recency weighting defaults to recent: exponential 365-day half-life based on observation dates, not source retrieval. weighting=historical gives equal weights. No upstream downloads on tool calls.\nPreserve species, observation dates, source credits, coordinate uncertainty, query coverage, partial/stale flags and fishing-effort bias. Heatmap color is record density, never fish abundance or catch odds. Commercial catches and occurrences must remain distinguishable. No generated migration paths.\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"to":{"type":"string","maxLength":10,"minLength":1},"bbox":{"type":"string","maxLength":100,"minLength":1},"from":{"type":"string","maxLength":10,"minLength":1},"limit":{"type":"integer","default":20,"maximum":100,"minimum":1},"month":{"type":"integer","default":0,"maximum":12,"minimum":0},"state":{"enum":["florida","california"],"type":"string","default":"florida"},"offset":{"type":"integer","default":0,"maximum":100000,"minimum":0},"species":{"enum":["mahi","blue-marlin","white-marlin","tarpon","snook","california-halibut","kelp-bass","pacific-yellowtail","lingcod"],"type":"string"},"weighting":{"enum":["recent","historical"],"type":"string","default":"recent"},"catchesOnly":{"type":"boolean","default":false},"cellDegrees":{"enum":[0.25,0.1,0.05,0.02,0.01,0.005],"type":"number","default":0.05}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_fishing_records","title":"Dated fishing catches and occurrences","description":"Published state-isolated Florida and California fishing evidence (state defaults to florida; California default species california-halibut): dated NOAA commercial catches and research/community occurrences, source/license credits, coordinate uncertainty, seasonal record counts and configurable 0.25/0.10/0.05/0.02/0.01/0.005-degree heatmap cells. Historical records are not live fish locations, migration tracks, abundance, catch rates or catch probabilities. Sampling/fishing effort is uncorrected; absent records do not establish fish absence. from/to are inclusive YYYY-MM-DD observation dates; month pools all selected years. state selects separate publications; species must belong to that state. Publication checks older than 26 hours are stale; query last-good times preserve partial outage age. California uses bounded OBIS/iNaturalist occurrences, not a comprehensive catch survey. Source check time is not observation time. Recency weighting defaults to recent: exponential 365-day half-life based on observation dates, not source retrieval. weighting=historical gives equal weights. No upstream downloads on tool calls.\nPreserve species, observation dates, source credits, coordinate uncertainty, query coverage, partial/stale flags and fishing-effort bias. Heatmap color is record density, never fish abundance or catch odds. Commercial catches and occurrences must remain distinguishable. No generated migration paths.\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"to":{"type":"string","maxLength":10,"minLength":1},"bbox":{"type":"string","maxLength":100,"minLength":1},"from":{"type":"string","maxLength":10,"minLength":1},"limit":{"type":"integer","default":20,"maximum":100,"minimum":1},"month":{"type":"integer","default":0,"maximum":12,"minimum":0},"state":{"enum":["florida","california"],"type":"string","default":"florida"},"offset":{"type":"integer","default":0,"maximum":100000,"minimum":0},"species":{"enum":["mahi","blue-marlin","white-marlin","tarpon","snook","california-halibut","kelp-bass","pacific-yellowtail","lingcod"],"type":"string"},"weighting":{"enum":["recent","historical"],"type":"string","default":"recent"},"catchesOnly":{"type":"boolean","default":false},"cellDegrees":{"enum":[0.25,0.1,0.05,0.02,0.01,0.005],"type":"number","default":0.05}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_fish_kills","title":"Reported fish kills","description":"Reported fish kills from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"bbox":{"type":"string","maxLength":100,"minLength":1},"category":{"type":"string","maxLength":100,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_florida_lakes","title":"Florida USGS lake monitoring inventory, levels with original vertical datum, temperature and storage where measured; historical stations and stale readings identified","description":"Florida USGS lake monitoring inventory, levels with original vertical datum, temperature and storage where measured; historical stations and stale readings identified from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"bbox":{"type":"string","maxLength":100,"minLength":1},"category":{"type":"string","maxLength":100,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_florida_rivers","title":"Florida NOAA river and water gauges, observed readings and separate forecast summaries","description":"Florida NOAA river and water gauges, observed readings and separate forecast summaries from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"bbox":{"type":"string","maxLength":100,"minLength":1},"category":{"type":"string","maxLength":100,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_forecast","title":"Hourly forecast window with activity scores","description":"Hourly forecast for a spot (or lat+lon) starting at `time` (default now) for `hours` hours: waves, swell/wind-wave split, wind, gusts, tide, current, precip/thunder chance, and go/caution/nogo scores with reasons per activity. Also returns 7 daily score rows and best windows. Units: ft, s, kt, deg FROM, F.\nUse one call per spot for a time-window comparison; request only the hours needed. Hourly rows include tide/current and score reasons. Do not infer one inlet has deeper water by comparing local tide heights.\nInterpretation: omit boat unless the user supplied or confirmed it. Describe lightning as flashes observed or not detected in the stated window, never a clear/safe guarantee. Report unavailable/QC-failed sources even when freshness.stale=false; fresh does not mean every source is usable. Model sea height is not breaking surf height. Tide heights at different local MLLW gauges do not establish relative channel depths. High tide is not necessarily slack current. For kitesurfing use get_conditions with kiteStyle (freeride/waves/foil), kiteExperience and rider-supplied kiteMinWindKt/kiteMaxWindKt. Read kiteboarding for weather screening, gust spread and explicitly unverified launch status. Never infer the rider wind range, legal launch access or rescue coverage. Activity keys: kite, surf, skim (flatland), skim-wave (wave riding), paddle (flatwater paddleboard), sup-surf (SUP surf). Skim suitability is unscored without shoreline observations; missing scores must not inherit another activity. Offshore wind can favor surf while increasing paddleboard drift risk. A point depth cannot prove route clearance. Do not invent detection percentages, future readings, vessel ownership, or app settings instructions.\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"lat":{"type":"number","maximum":90,"minimum":-90,"description":"Latitude, decimal degrees (WGS84)"},"lon":{"type":"number","maximum":180,"minimum":-180,"description":"Longitude, decimal degrees (WGS84)"},"boat":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1,"description":"Boat id from GET /api/v1/boats (adds boat-specific chop comfort), or 'custom' with loa/beam/draft/deadrise/hull/cat/name"},"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1,"description":"Spot id from GET /api/v1/spots, e.g. boca-inlet. Use this or lat+lon."},"time":{"type":"string","format":"date-time","description":"window start, ISO with offset (default now)"},"hours":{"type":"integer","default":48,"maximum":168,"minimum":1},"kiteStyle":{"enum":["freeride","waves","foil"],"type":"string","default":"freeride"},"kiteMaxWindKt":{"type":"number","maximum":60,"minimum":1,"description":"Rider-supplied equipment wind maximum; must exceed minimum"},"kiteMinWindKt":{"type":"number","maximum":60,"minimum":1,"description":"Rider-supplied equipment wind minimum; never infer"},"kiteExperience":{"enum":["beginner","independent","advanced"],"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_gulf_stream","title":"Approximate Gulf Stream edge","description":"Approximate Gulf Stream edge for a verified spot. Preserve source sample dates and unavailable states. Satellite clarity is a relative index, not measured dive visibility.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_hazards","title":"Active alerts and water hazards","description":"Active NWS marine/coastal alerts (small craft, rip current, high surf, special marine, waterspout...) plus water hazards for a spot or lat+lon: rip current risk, red tide (FWC samples), bacteria (FDOH), sargassum, water clarity, king tide, Gulf Stream distance, lightning. Use before recommending swimming, diving or running an inlet.\nInterpretation: omit boat unless the user supplied or confirmed it. Describe lightning as flashes observed or not detected in the stated window, never a clear/safe guarantee. Report unavailable/QC-failed sources even when freshness.stale=false; fresh does not mean every source is usable. Model sea height is not breaking surf height. Tide heights at different local MLLW gauges do not establish relative channel depths. High tide is not necessarily slack current. For kitesurfing use get_conditions with kiteStyle (freeride/waves/foil), kiteExperience and rider-supplied kiteMinWindKt/kiteMaxWindKt. Read kiteboarding for weather screening, gust spread and explicitly unverified launch status. Never infer the rider wind range, legal launch access or rescue coverage. Activity keys: kite, surf, skim (flatland), skim-wave (wave riding), paddle (flatwater paddleboard), sup-surf (SUP surf). Skim suitability is unscored without shoreline observations; missing scores must not inherit another activity. Offshore wind can favor surf while increasing paddleboard drift risk. A point depth cannot prove route clearance. Do not invent detection percentages, future readings, vessel ownership, or app settings instructions.\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"lat":{"type":"number","maximum":90,"minimum":-90,"description":"Latitude, decimal degrees (WGS84)"},"lon":{"type":"number","maximum":180,"minimum":-180,"description":"Longitude, decimal degrees (WGS84)"},"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1,"description":"Spot id from GET /api/v1/spots, e.g. boca-inlet. Use this or lat+lon."}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_health","title":"Service health: worker heartbeat and data freshness","description":"Rolls up whether the ingest worker is running, which feed families (ndbc, coops, nws, openmeteo, goes19, coastwatch...) have stale sources, government dataset status and the GLM lightning feed. status is ok | degraded | down; HTTP 503 only when down. Check this before trusting 'no data' from other tools. detail=true lists every source.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"detail":{"type":"boolean","default":false}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_history","title":"Stored environmental history","description":"Read stored observations or forecast history for source and var. Forecast source uses forecast:model and requires spot. Public access covers the latest 72 hours; a free Gillby account (OAuth sign-in) allows windows up to 31 days; up to 1000 points. Latest revision/run wins. Rejected and suspect rows are excluded; unreviewed rows retain quality metadata.\nThis is a stored source archive. source=forecast:* returns model estimates or predictions, even when valid times are in the past; it does not establish observed rainfall. For measured historical daily precipitation use get_rainfall_history and preserve coverage. For chop trends use get_chop_history with recorded/reconstructed provenance and gaps.\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["source","var"],"properties":{"to":{"type":"string","format":"date-time"},"var":{"type":"string","maxLength":40,"minLength":1},"from":{"type":"string","format":"date-time"},"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1},"source":{"type":"string","maxLength":80,"minLength":1},"maxPoints":{"type":"integer","default":500,"maximum":1000,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_hurricane_history","title":"Historical hurricane tracks (26 seasons)","description":"Search 26 completed seasons of NOAA NHC HURDAT2 best-track history (2000–2025), Atlantic and eastern/central Pacific. Includes tropical cyclones, not only hurricanes. Filter by basin, year range, name, storm ID, hurricane strength or recorded landfall. Paginated summaries by default; includeTrack=true returns UTC positions, sustained wind kt, pressure mb, status, special-event flags and 34/50/64 kt wind radii in nautical miles ordered NE, SE, SW, NW. Missing measurements are null. Landfall flags cover any coastline, not specifically the US. Finalized retrospective tracks are not forecasts; current 2026 advisories use get_hurricanes. Historical tracks alone do not measure local damage or future risk.\n\nUnits: sustained wind kt; pressure mb; coordinates degrees; UTC track timestamps; wind radii nautical miles ordered NE, SE, SW, NW. Missing measurements are null. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"id":{"type":"string","pattern":"^(al|ep|cp)[0-9]{6}$","maxLength":8},"name":{"type":"string","maxLength":80,"minLength":1},"basin":{"enum":["all","al","ep","cp"],"type":"string","default":"all"},"limit":{"type":"integer","default":20,"maximum":100,"minimum":1},"offset":{"type":"integer","default":0,"maximum":10000,"minimum":0},"endYear":{"type":"integer","default":2025,"maximum":2025,"minimum":2000},"startYear":{"type":"integer","default":2000,"maximum":2025,"minimum":2000},"includeTrack":{"type":"boolean","default":false},"landfallOnly":{"type":"boolean","default":false},"hurricanesOnly":{"type":"boolean","default":false}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_hurricanes","title":"Active hurricanes and tropical cyclones","description":"Active NHC tropical cyclones in the Atlantic and eastern/central Pacific. Returns position, maximum sustained wind (kt), pressure (mb), movement (degrees toward and kt), advisory timestamps and official advisory/forecast/cone links. Preserve stale/unavailable status. An empty active-storm list does not rule out developing systems or local hazards. The cone is not an impact boundary. Follow official local warnings.\n\nUnits: sustained wind and movement speed kt; pressure mb; coordinates degrees; movement bearings TOWARD. Advisory and retrieval timestamps are separate. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"basin":{"enum":["all","al","ep","cp"],"type":"string","default":"all"}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_jellyfish_observations","title":"Jellyfish and man-of-war observations","description":"Published Florida jellyfish, box jellyfish and man-of-war observations from OBIS and iNaturalist, with observation dates, uncertainty, observer credits and licenses. Includes official Boca Raton/Fort Lauderdale lifeguard-report links. Community records are not live beach warnings; no sightings does not establish absence. Man-of-war are siphonophores. Use bbox to narrow the sample; limit defaults to 20 (maximum 100).\nShark, jellyfish and man-of-war records are dated published observations, not live tracking, beach warnings, abundance estimates or swimming-safety scores. Preserve observation dates, uncertainty, attribution and source availability. No records does not mean the animals are absent. Source checked time is not observation time. Man-of-war are siphonophores, not true jellyfish. Local lifeguard links are not ingested current warnings; check the source report date. Never apply NOAA's Chesapeake sea-nettle forecast to Florida.\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"bbox":{"type":"string","maxLength":100,"minLength":1},"limit":{"type":"integer","default":20,"maximum":100,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_king_tide","title":"King tide forecast","description":"King tide forecast for a verified spot. Preserve source sample dates and unavailable states. Satellite clarity is a relative index, not measured dive visibility.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_lake_okeechobee","title":"Lake Okeechobee stage and releases","description":"Lake Okeechobee stage and releases from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"bbox":{"type":"string","maxLength":100,"minLength":1},"category":{"type":"string","maxLength":100,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_lightning","title":"Lightning status near a point, or for every spot","description":"GOES-19 GLM lightning. With lat+lon: level (clear | watch 10-25 mi | danger < 10 mi in the last 5 min), nearest strike distance (mi) and time, strikes in 15 min, all-clear time (30 min after the last strike within 10 mi), SPC thunder outlook, and the last 30 min of flashes. Without lat/lon: status per spot. When the feed is stale, status is null and unavailableReason explains why (never a false 'clear').\nPrefer list_spots for named spot coordinates. State no flashes detected in the observed window rather than no lightning exists. Stale/incomplete coverage means unknown. Do not supply detection rates that are absent from this result.\nInterpretation: omit boat unless the user supplied or confirmed it. Describe lightning as flashes observed or not detected in the stated window, never a clear/safe guarantee. Report unavailable/QC-failed sources even when freshness.stale=false; fresh does not mean every source is usable. Model sea height is not breaking surf height. Tide heights at different local MLLW gauges do not establish relative channel depths. High tide is not necessarily slack current. For kitesurfing use get_conditions with kiteStyle (freeride/waves/foil), kiteExperience and rider-supplied kiteMinWindKt/kiteMaxWindKt. Read kiteboarding for weather screening, gust spread and explicitly unverified launch status. Never infer the rider wind range, legal launch access or rescue coverage. Activity keys: kite, surf, skim (flatland), skim-wave (wave riding), paddle (flatwater paddleboard), sup-surf (SUP surf). Skim suitability is unscored without shoreline observations; missing scores must not inherit another activity. Offshore wind can favor surf while increasing paddleboard drift risk. A point depth cannot prove route clearance. Do not invent detection percentages, future readings, vessel ownership, or app settings instructions.\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"lat":{"type":"number","maximum":90,"minimum":-90,"description":"Latitude, decimal degrees (WGS84)"},"lon":{"type":"number","maximum":180,"minimum":-180,"description":"Longitude, decimal degrees (WGS84)"}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_marine_alerts","title":"Marine advisories and warnings","description":"Active and upcoming alerts for a spot, retaining start/end times and source links.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_my_notification_settings","title":"get my notification settings","description":"Read notification preferences and actual delivery availability. Requires your Gillby account and explicit account consent.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_my_place","title":"get my place","description":"Read one saved place. Requires your Gillby account and explicit account consent.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["path"],"properties":{"path":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_my_settings","title":"get my settings","description":"Read saved vessel, preferences and notification settings. Missing vessel measurements remain null. Requires your Gillby account and explicit account consent.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_my_trip","title":"get my trip","description":"Read one saved trip. Requires your Gillby account and explicit account consent.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["path"],"properties":{"path":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_my_vessel","title":"Read my saved vessel","description":"Requires OAuth login to your Gillby account. Reads only your saved vessel and route clearance settings. No writes and no other account access.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_navigation_notices","title":"USCG local notices to mariners","description":"USCG local notices to mariners from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"bbox":{"type":"string","maxLength":100,"minLength":1},"category":{"type":"string","maxLength":100,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_observations","title":"Latest station observations","description":"Actual buoy and station observations for a spot with timestamps. These may differ from blended forecast conditions.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_park_alerts","title":"Coastal national park alerts and closures","description":"Coastal national park alerts and closures from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"bbox":{"type":"string","maxLength":100,"minLength":1},"category":{"type":"string","maxLength":100,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_poi","title":"Get coastal place","description":"Look up a published coastal POI by its exact ID. Does not refresh facility details or calculate live bridge clearance.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["id"],"properties":{"id":{"type":"string","maxLength":120,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_pollution_notices","title":"Pollution incident notices","description":"Pollution incident notices from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"bbox":{"type":"string","maxLength":100,"minLength":1},"category":{"type":"string","maxLength":100,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_pressure","title":"Air pressure","description":"Air pressure for a verified spot over the next hours. Includes timestamp, source status and explicit nulls when unavailable. Water temperature is F; atmospheric visibility is mi, not underwater visibility; current sign follows the assigned station convention.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1},"hours":{"type":"integer","default":24,"maximum":168,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_protected_areas","title":"Marine protected areas","description":"Marine protected areas from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"bbox":{"type":"string","maxLength":100,"minLength":1},"category":{"type":"string","maxLength":100,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_rain","title":"Rain forecast probability and amount","description":"Rain forecast probability and amount for a verified spot over the next hours. Includes timestamp, source status and explicit nulls when unavailable. Water temperature is F; atmospheric visibility is mi, not underwater visibility; current sign follows the assigned station convention.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1},"hours":{"type":"integer","default":24,"maximum":168,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_rainfall_history","title":"Observed station rainfall history","description":"Observed daily precipitation from NOAA NCEI GHCN-Daily at one of six selected Florida airport stations, not archived forecasts. Required station, start and end (YYYY-MM-DD); completed dates only, 1900 onward, at most 366 inclusive days per request. Public, no API key. Returns daily values in inches, original flags, coverage, monthly summaries and totals. totalIn is null for incomplete coverage; partialTotalIn is only the sum of accepted reported values. Trace is not dry. Presumed-zero, incomplete-period and quality-flagged reports are excluded. Reporting dates are station climate days, not UTC hours. A station does not measure rainfall at a nearby beach, inlet or across a region. Recent records may lag or be revised.\nUse for how much precipitation fell: NOAA observed station records, not forecast archives. Preserve station, reporting dates, trace days, missing/excluded counts and coverage. Never present partialTotalIn as a complete monthly/yearly total. Station rainfall is not an area-wide measurement. Use get_rain for future amounts and get_history source=forecast:om_weather_best var=precip_in only for archived model estimates.\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["station","start","end"],"properties":{"end":{"type":"string","format":"date"},"start":{"type":"string","format":"date"},"station":{"enum":["USW00012844","USW00012839","USW00012836","USW00012842","USW00012815","USW00013899"],"type":"string","description":"USW00012844 = West Palm Beach airport; USW00012839 = Miami International Airport; USW00012836 = Key West International Airport; USW00012842 = Tampa International Airport; USW00012815 = Orlando International Airport; USW00013899 = Pensacola airport"}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_red_tide","title":"Red tide samples","description":"Red tide samples for a verified spot. Preserve source sample dates and unavailable states. Satellite clarity is a relative index, not measured dive visibility.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_release_updates","title":"Gillby API and MCP release updates","description":"Read the current Gillby release version, date, supported MCP protocol and dated changes shared by the API and MCP. API URL versions are separate from product release versions.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_rip_risk","title":"Rip current risk","description":"Rip current risk for a verified spot. Preserve source sample dates and unavailable states. Satellite clarity is a relative index, not measured dive visibility.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_sargassum","title":"Local sargassum risk","description":"Local sargassum risk for a verified spot. Preserve source sample dates and unavailable states. Satellite clarity is a relative index, not measured dive visibility.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_sargassum_outlook","title":"Sargassum research product availability","description":"Sargassum research product availability from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"bbox":{"type":"string","maxLength":100,"minLength":1},"category":{"type":"string","maxLength":100,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_shark_research","title":"Published shark research occurrences","description":"Published Florida shark research occurrences with observation dates, location uncertainty, source credits and licenses. Historical acoustic detections and tag releases, not live shark tracking or beach warnings. No records does not mean sharks are absent. Use bbox to narrow the published sample; limit defaults to 20 (maximum 100).\nShark, jellyfish and man-of-war records are dated published observations, not live tracking, beach warnings, abundance estimates or swimming-safety scores. Preserve observation dates, uncertainty, attribution and source availability. No records does not mean the animals are absent. Source checked time is not observation time. Man-of-war are siphonophores, not true jellyfish. Local lifeguard links are not ingested current warnings; check the source report date. Never apply NOAA's Chesapeake sea-nettle forecast to Florida.\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"bbox":{"type":"string","maxLength":100,"minLength":1},"limit":{"type":"integer","default":20,"maximum":100,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_source_status","title":"Source health for a spot","description":"Fresh, stale, unavailable and QC-rejected sources used by spot conditions.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_spot","title":"One spot with its current-hour status","description":"A single spot record plus now.scores (go/caution/nogo per activity for the current hour) when the worker has scored it.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["path"],"properties":{"path":{"type":"object","required":["spotId"],"properties":{"spotId":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1,"description":"Spot id, e.g. boca-inlet"}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_surf_forecast","title":"NWS surf zone forecast","description":"NWS surf zone forecast for a verified spot. Preserve source sample dates and unavailable states. Satellite clarity is a relative index, not measured dive visibility.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_temperature_fronts","title":"Satellite sea temperature fronts","description":"Satellite sea temperature fronts from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"bbox":{"type":"string","maxLength":100,"minLength":1},"category":{"type":"string","maxLength":100,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_thunder_forecast","title":"Thunderstorm forecast","description":"Thunderstorm forecast for a verified spot over the next hours. Includes timestamp, source status and explicit nulls when unavailable. Water temperature is F; atmospheric visibility is mi, not underwater visibility; current sign follows the assigned station convention.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1},"hours":{"type":"integer","default":24,"maximum":168,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_tides","title":"High/low tides, hourly tide curve, sun and moon","description":"Predicted high and low tides (ft above MLLW, NOAA CO-OPS) for the next `days` days at a spot or lat+lon, the hourly tide height curve and inlet current (kt, + flood / - ebb), plus sunrise/sunset and moon phase. Times are ISO with the Eastern offset.\nInterpretation: omit boat unless the user supplied or confirmed it. Describe lightning as flashes observed or not detected in the stated window, never a clear/safe guarantee. Report unavailable/QC-failed sources even when freshness.stale=false; fresh does not mean every source is usable. Model sea height is not breaking surf height. Tide heights at different local MLLW gauges do not establish relative channel depths. High tide is not necessarily slack current. For kitesurfing use get_conditions with kiteStyle (freeride/waves/foil), kiteExperience and rider-supplied kiteMinWindKt/kiteMaxWindKt. Read kiteboarding for weather screening, gust spread and explicitly unverified launch status. Never infer the rider wind range, legal launch access or rescue coverage. Activity keys: kite, surf, skim (flatland), skim-wave (wave riding), paddle (flatwater paddleboard), sup-surf (SUP surf). Skim suitability is unscored without shoreline observations; missing scores must not inherit another activity. Offshore wind can favor surf while increasing paddleboard drift risk. A point depth cannot prove route clearance. Do not invent detection percentages, future readings, vessel ownership, or app settings instructions.\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"lat":{"type":"number","maximum":90,"minimum":-90,"description":"Latitude, decimal degrees (WGS84)"},"lon":{"type":"number","maximum":180,"minimum":-180,"description":"Longitude, decimal degrees (WGS84)"},"days":{"type":"integer","default":3,"maximum":7,"minimum":1},"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1,"description":"Spot id from GET /api/v1/spots, e.g. boca-inlet. Use this or lat+lon."}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_usgs_water","title":"USGS flow, local gauge height, salinity and water temperature","description":"USGS flow, local gauge height, salinity and water temperature from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"bbox":{"type":"string","maxLength":100,"minLength":1},"category":{"type":"string","maxLength":100,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_uv_forecast","title":"UV forecast","description":"UV forecast for a verified spot over the next hours. Includes timestamp, source status and explicit nulls when unavailable. Water temperature is F; atmospheric visibility is mi, not underwater visibility; current sign follows the assigned station convention.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1},"hours":{"type":"integer","default":24,"maximum":168,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_visibility","title":"Atmospheric visibility","description":"Atmospheric visibility for a verified spot over the next hours. Includes timestamp, source status and explicit nulls when unavailable. Water temperature is F; atmospheric visibility is mi, not underwater visibility; current sign follows the assigned station convention.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1},"hours":{"type":"integer","default":24,"maximum":168,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_water_clarity","title":"Satellite water clarity","description":"Satellite water clarity for a verified spot. Preserve source sample dates and unavailable states. Satellite clarity is a relative index, not measured dive visibility.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_water_temperature","title":"Water temperature","description":"Water temperature for a verified spot over the next hours. Includes timestamp, source status and explicit nulls when unavailable. Water temperature is F; atmospheric visibility is mi, not underwater visibility; current sign follows the assigned station convention.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1},"hours":{"type":"integer","default":24,"maximum":168,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_wave_models","title":"Compare wave forecast models","description":"Published wave-model series and model spread for a spot; absent models stay unavailable.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_waves","title":"Wave height, period and swell","description":"Wave height, period and swell for a verified spot over the next hours. Includes timestamp, source status and explicit nulls when unavailable. Water temperature is F; atmospheric visibility is mi, not underwater visibility; current sign follows the assigned station convention.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1},"hours":{"type":"integer","default":24,"maximum":168,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"get_wind","title":"Wind and gusts","description":"Wind and gusts for a verified spot over the next hours. Includes timestamp, source status and explicit nulls when unavailable. Water temperature is F; atmospheric visibility is mi, not underwater visibility; current sign follows the assigned station convention.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"object","required":["spot"],"properties":{"spot":{"type":"string","pattern":"^[A-Za-z0-9:._-]+$","maxLength":120,"minLength":1},"hours":{"type":"integer","default":24,"maximum":168,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"list_boats","title":"Boat library (sourced specs)","description":"Boats with published specs (LOA, beam, draft, deadrise, weight, hull type, fuel, cruise speed) and their sources. Pass a boat id to conditions/forecast/routes for boat-specific comfort and draft. The user's boat is contender-21-open-2008.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"q":{"type":"string","maxLength":60,"minLength":2,"description":"make/model search"},"limit":{"type":"integer","maximum":1000,"minimum":1},"category":{"type":"string","maxLength":40}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"list_bridges","title":"Find bridges","description":"Search published bridges by name or west,south,east,north bbox. Verify access and operating details with the facility. Bridge data is published, not a live clearance calculation.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"q":{"type":"string","maxLength":80,"minLength":1},"bbox":{"type":"string","maxLength":100,"minLength":1},"limit":{"type":"integer","default":20,"maximum":100,"minimum":1}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"list_california_facilities","title":"California boating facility directory","description":"Paginated dated State Parks boating-facility source records. Unverified facilities have no map coordinates; opening/access and amenities require operator confirmation.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"q":{"type":"string","maxLength":100},"limit":{"type":"integer","default":50,"maximum":100,"minimum":1},"county":{"type":"string","maxLength":80},"offset":{"type":"integer","default":0,"maximum":10000,"minimum":0}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"list_california_lakes","title":"California lake catalog","description":"List California lake IDs, model point coordinates and gauge references. Lake centers are approximate, not surveyed launches. Use get_california_lake for weather and gauge data.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"q":{"type":"string","maxLength":100}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"list_california_places","title":"California coastal source locations","description":"Browse dated California station, access and port source records from a packaged archive. This is historical source data, not continuous live conditions. Times on observations may precede archive download time. No current beach-advisory status.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"q":{"type":"string","maxLength":100},"limit":{"type":"integer","default":50,"maximum":100,"minimum":1},"offset":{"type":"integer","default":0,"maximum":10000,"minimum":0},"region":{"enum":["south","central","bay","north","lakes","rivers"],"type":"string"},"category":{"enum":["station","access","port"],"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"list_california_rivers","title":"California river gauge catalog","description":"List configured California river gauge IDs and source references. Use get_california_river for observations and local forecast; stage is local gauge height, not navigation depth.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"q":{"type":"string","maxLength":100}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"},{"name":"list_california_spots","title":"California surf location catalog","description":"List California surf locations with source links, coordinate roles and forecastSupported flags. Includes 8 forecast-enabled locations plus 98 historical/community listings; overlapping breaks are not 106 unique verified surf breaks. Pagination uses offset/limit. Use a forecastSupported ID with get_california_surf. Locations without forecasts remain unavailable; do not substitute Florida tools or invent a rating.\n\nUnits: ft, kt, s, F, mi; directions FROM. Returns data and source/freshness metadata.","input_schema":{"type":"object","required":[],"properties":{"query":{"type":"object","required":[],"properties":{"q":{"type":"string","maxLength":100},"limit":{"type":"integer","default":50,"maximum":100,"minimum":1},"offset":{"type":"integer","default":0,"maximum":10000,"minimum":0},"region":{"enum":["south","central","bay","north","lakes","rivers"],"type":"string"},"forecastOnly":{"type":"boolean","default":false}},"additionalProperties":false}},"additionalProperties":false},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T23:50:50.796Z"}],"next_cursor":"list_california_spots","next_actions":[{"action":"list_tools","description":"Next page","href":"/v1/servers/io.github.OneWave-AI%2Fgillby/tools?cursor=list_california_spots&limit=100","arguments":{"name":"io.github.OneWave-AI/gillby","cursor":"list_california_spots","limit":100}},{"action":"get_connection","description":"Connection block to call these tools","href":"/v1/servers/io.github.OneWave-AI%2Fgillby/connection?target=mcpServers","arguments":{"name":"io.github.OneWave-AI/gillby","target":"mcpServers"}},{"action":"get_server","description":"Full descriptor with trust and connectability","href":"/v1/servers/io.github.OneWave-AI%2Fgillby","arguments":{"name":"io.github.OneWave-AI/gillby"}}]}