Connection setup

Gillby / MCP reference

Every tool. Every input.

95 tools in the hosted MCP catalog. This reference is generated from the same operation registry and access filter used by the remote MCP server, so names and input schemas follow the implementation.

Using the tools

The remote endpoint is /mcp on your Gillby deployment, using Streamable HTTP. Copy the full server URL from the setup page. Follow the assistant setup guide. The client discovers tools through tools/list and invokes them through tools/call. Availability can differ between hosted and local installations; the connected server’s tool list is authoritative.

Arguments are nested under query, path or body, exactly as shown below. Required fields, enums, units, bounds and defaults are included in each expandable JSON schema. Start with list_spots to resolve a named location, then get_conditions with view: "summary" before requesting extra detail.

{
  "name": "get_conditions",
  "arguments": {
    "query": {
      "spot": "boca-inlet",
      "view": "summary"
    }
  }
}

Public coastal reads normally need no Gillby account. Personal tools require explicit OAuth account consent; write tools can change or delete your records. Keep the same requestId when retrying a save. Account tools in the selected catalog are listed separately below. The hosted catalog is the default; switch to Local catalog for the local server’s smaller toolset.

Clients supporting MCP Apps can render Gillby’s embedded coastal panel for supported results; other clients receive structured results. Map rendering is a client/panel capability, not a promise that every client exposes a separate map tool. Camera links may show older frames or unavailable imagery.

Public coastal tools

check_route_conditions

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spots": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500
        }
      },
      "required": [
        "spots"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

compare_spots

Read only · Public

Compare current conditions for up to five verified comma-separated spot IDs. Partial failures remain explicit.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spots": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500
        }
      },
      "required": [
        "spots"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

find_anchorages

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "q": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 20
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

find_beaches

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "q": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 20
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

find_boat_ramps

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "q": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 20
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

find_dive_sites

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "q": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 20
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

find_fuel_docks

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "q": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 20
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

find_inlets

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "q": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 20
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

find_marinas

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "q": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 20
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

find_piers

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "q": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 20
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

find_reefs

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "q": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 20
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

find_waterfront_dining

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "q": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 20
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

find_wrecks

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "q": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 20
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

get_activity_scores

Read only · Public

Hourly published activity scores with reasons and vetoes. Missing activity scores are unscored.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        },
        "hours": {
          "type": "integer",
          "minimum": 1,
          "maximum": 168,
          "default": 24
        },
        "activity": {
          "type": "string",
          "enum": [
            "boating",
            "sailing",
            "paddle",
            "sup-surf",
            "kite",
            "skim",
            "skim-wave",
            "swim",
            "dive",
            "fishing-inshore",
            "fishing-offshore",
            "surf",
            "inlet"
          ]
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_air_temperature

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        },
        "hours": {
          "type": "integer",
          "minimum": 1,
          "maximum": 168,
          "default": 24
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_algae_reports

Read only · Public

Reported algae samples from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "category": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

get_beach_bacteria

Read only · Public

Beach bacteria samples for a verified spot. Preserve source sample dates and unavailable states. Satellite clarity is a relative index, not measured dive visibility.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_boat

Read only · Public

A single boat record from the library.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "path": {
      "type": "object",
      "properties": {
        "boatId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        }
      },
      "required": [
        "boatId"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "path"
  ],
  "additionalProperties": false
}

get_briefing

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "path": {
      "type": "object",
      "properties": {
        "spotId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$",
          "description": "Spot id, e.g. boca-inlet"
        }
      },
      "required": [
        "spotId"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "path"
  ],
  "additionalProperties": false
}

get_canal_discharges

Read only · Public

Canal discharge and freshwater releases from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "category": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

get_chlorophyll

Read only · Public

Satellite chlorophyll and water color from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "category": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

get_chop

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        },
        "hours": {
          "type": "integer",
          "minimum": 1,
          "maximum": 168,
          "default": 24
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_chop_history

Read only · Public

Gillby's native 0-10 chop series for up to 31 days, 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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        },
        "from": {
          "type": "string",
          "format": "date-time"
        },
        "to": {
          "type": "string",
          "format": "date-time"
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_cloud_cover

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        },
        "hours": {
          "type": "integer",
          "minimum": 1,
          "maximum": 168,
          "default": 24
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_coastal_sensors

Read only · Public

SECOORA coastal sensor observations from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "category": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

get_conditions

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$",
          "description": "Spot id, e.g. boca-inlet"
        },
        "view": {
          "type": "string",
          "enum": [
            "full",
            "summary"
          ],
          "default": "full",
          "description": "summary = compact (~10 KB) for LLMs and widgets; full = every hourly point (~250 KB)"
        },
        "boat": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$",
          "description": "Boat id from GET /api/v1/boats (adds boat-specific chop comfort), or 'custom' with loa/beam/draft/deadrise/hull/cat/name"
        },
        "loa": {
          "type": "number",
          "minimum": 1,
          "maximum": 200,
          "description": "custom boat length overall, ft"
        },
        "beam": {
          "type": "number",
          "minimum": 1,
          "maximum": 60,
          "description": "custom boat beam, ft"
        },
        "draft": {
          "type": "number",
          "minimum": 0.1,
          "maximum": 30,
          "description": "custom boat draft, ft"
        },
        "deadrise": {
          "type": "number",
          "minimum": 1,
          "maximum": 40,
          "description": "custom boat deadrise at transom, deg"
        },
        "weight": {
          "type": "number",
          "minimum": 1,
          "maximum": 200000,
          "description": "custom boat weight, lb"
        },
        "cruise": {
          "type": "number",
          "minimum": 1,
          "maximum": 80,
          "description": "custom boat cruise speed, kt"
        },
        "hull": {
          "type": "string",
          "maxLength": 40,
          "description": "custom boat hull type"
        },
        "cat": {
          "type": "string",
          "maxLength": 40,
          "description": "custom boat category"
        },
        "name": {
          "type": "string",
          "maxLength": 60,
          "description": "custom boat name"
        },
        "kiteStyle": {
          "type": "string",
          "enum": [
            "freeride",
            "waves",
            "foil"
          ],
          "default": "freeride"
        },
        "kiteExperience": {
          "type": "string",
          "enum": [
            "beginner",
            "independent",
            "advanced"
          ]
        },
        "kiteMinWindKt": {
          "type": "number",
          "minimum": 1,
          "maximum": 60,
          "description": "Rider-supplied equipment wind minimum; never infer"
        },
        "kiteMaxWindKt": {
          "type": "number",
          "minimum": 1,
          "maximum": 60,
          "description": "Rider-supplied equipment wind maximum; must exceed minimum"
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_coral_heat

Read only · Public

Coral heat stress and bleaching outlook from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "category": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

get_currents

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        },
        "hours": {
          "type": "integer",
          "minimum": 1,
          "maximum": 168,
          "default": 24
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_data_coverage

Read only · Public

Published dataset inventory and verified spot coverage; distinguishes unavailable data.

Inputs & required fields
{
  "type": "object",
  "properties": {},
  "required": [],
  "additionalProperties": false
}

get_dataset

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "path": {
      "type": "object",
      "properties": {
        "datasetId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        }
      },
      "required": [
        "datasetId"
      ],
      "additionalProperties": false
    },
    "query": {
      "type": "object",
      "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
          }
        },
        "homeZone": {
          "type": "boolean"
        },
        "geometry": {
          "type": "boolean"
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [
    "path"
  ],
  "additionalProperties": false
}

get_departure_windows

Read only · Public

Published best windows filtered by activity. No windows means none were supplied, not a guarantee that every other hour is unsafe.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        },
        "activity": {
          "type": "string",
          "enum": [
            "boating",
            "sailing",
            "paddle",
            "sup-surf",
            "kite",
            "skim",
            "skim-wave",
            "swim",
            "dive",
            "fishing-inshore",
            "fishing-offshore",
            "surf",
            "inlet"
          ]
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_depth

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "lat": {
          "type": "number",
          "minimum": 24,
          "maximum": 31
        },
        "lon": {
          "type": "number",
          "minimum": -88,
          "maximum": -78
        }
      },
      "required": [
        "lat",
        "lon"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_derelict_vessels

Read only · Public

Reported derelict vessels from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "category": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

get_fish_kills

Read only · Public

Reported fish kills from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "category": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

get_forecast

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$",
          "description": "Spot id from GET /api/v1/spots, e.g. boca-inlet. Use this or lat+lon."
        },
        "lat": {
          "type": "number",
          "minimum": -90,
          "maximum": 90,
          "description": "Latitude, decimal degrees (WGS84)"
        },
        "lon": {
          "type": "number",
          "minimum": -180,
          "maximum": 180,
          "description": "Longitude, decimal degrees (WGS84)"
        },
        "kiteStyle": {
          "type": "string",
          "enum": [
            "freeride",
            "waves",
            "foil"
          ],
          "default": "freeride"
        },
        "kiteExperience": {
          "type": "string",
          "enum": [
            "beginner",
            "independent",
            "advanced"
          ]
        },
        "kiteMinWindKt": {
          "type": "number",
          "minimum": 1,
          "maximum": 60,
          "description": "Rider-supplied equipment wind minimum; never infer"
        },
        "kiteMaxWindKt": {
          "type": "number",
          "minimum": 1,
          "maximum": 60,
          "description": "Rider-supplied equipment wind maximum; must exceed minimum"
        },
        "time": {
          "type": "string",
          "format": "date-time",
          "description": "window start, ISO with offset (default now)"
        },
        "hours": {
          "type": "integer",
          "minimum": 1,
          "maximum": 168,
          "default": 48
        },
        "boat": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$",
          "description": "Boat id from GET /api/v1/boats (adds boat-specific chop comfort), or 'custom' with loa/beam/draft/deadrise/hull/cat/name"
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

get_gulf_stream

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_hazards

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$",
          "description": "Spot id from GET /api/v1/spots, e.g. boca-inlet. Use this or lat+lon."
        },
        "lat": {
          "type": "number",
          "minimum": -90,
          "maximum": 90,
          "description": "Latitude, decimal degrees (WGS84)"
        },
        "lon": {
          "type": "number",
          "minimum": -180,
          "maximum": 180,
          "description": "Longitude, decimal degrees (WGS84)"
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

get_health

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "detail": {
          "type": "boolean",
          "default": false
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

get_history

Read only · Public

Read stored observations or forecast history for source and var. Forecast source uses forecast:model and requires spot. Maximum window 31 days; up to 1000 points. Latest revision/run wins. Rejected and suspect rows are excluded; unreviewed rows retain quality metadata.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "source": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "var": {
          "type": "string",
          "minLength": 1,
          "maxLength": 40
        },
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        },
        "from": {
          "type": "string",
          "format": "date-time"
        },
        "to": {
          "type": "string",
          "format": "date-time"
        },
        "maxPoints": {
          "type": "integer",
          "minimum": 1,
          "maximum": 1000,
          "default": 500
        }
      },
      "required": [
        "source",
        "var"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_jellyfish_observations

Read only · Public

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).

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 20
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

get_king_tide

Read only · Public

King tide forecast for a verified spot. Preserve source sample dates and unavailable states. Satellite clarity is a relative index, not measured dive visibility.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_lake_okeechobee

Read only · Public

Lake Okeechobee stage and releases from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "category": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

get_lightning

Read only · Public

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').

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "lat": {
          "type": "number",
          "minimum": -90,
          "maximum": 90,
          "description": "Latitude, decimal degrees (WGS84)"
        },
        "lon": {
          "type": "number",
          "minimum": -180,
          "maximum": 180,
          "description": "Longitude, decimal degrees (WGS84)"
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

get_marine_alerts

Read only · Public

Active and upcoming alerts for a spot, retaining start/end times and source links.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_navigation_notices

Read only · Public

USCG local notices to mariners from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "category": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

get_observations

Read only · Public

Actual buoy and station observations for a spot with timestamps. These may differ from blended forecast conditions.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_park_alerts

Read only · Public

Coastal national park alerts and closures from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "category": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

get_poi

Read only · Public

Look up a published coastal POI by its exact ID. Does not refresh facility details or calculate live bridge clearance.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        }
      },
      "required": [
        "id"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_pollution_notices

Read only · Public

Pollution incident notices from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "category": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

get_pressure

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        },
        "hours": {
          "type": "integer",
          "minimum": 1,
          "maximum": 168,
          "default": 24
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_protected_areas

Read only · Public

Marine protected areas from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "category": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

get_rain

Read only · Public

Rain probability and accumulation 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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        },
        "hours": {
          "type": "integer",
          "minimum": 1,
          "maximum": 168,
          "default": 24
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_red_tide

Read only · Public

Red tide samples for a verified spot. Preserve source sample dates and unavailable states. Satellite clarity is a relative index, not measured dive visibility.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_rip_risk

Read only · Public

Rip current risk for a verified spot. Preserve source sample dates and unavailable states. Satellite clarity is a relative index, not measured dive visibility.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_sargassum

Read only · Public

Local sargassum risk for a verified spot. Preserve source sample dates and unavailable states. Satellite clarity is a relative index, not measured dive visibility.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_sargassum_outlook

Read only · Public

Sargassum research product availability from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "category": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

get_shark_research

Read only · Public

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).

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 20
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

get_source_status

Read only · Public

Fresh, stale, unavailable and QC-rejected sources used by spot conditions.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_spot

Read only · Public

A single spot record plus now.scores (go/caution/nogo per activity for the current hour) when the worker has scored it.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "path": {
      "type": "object",
      "properties": {
        "spotId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$",
          "description": "Spot id, e.g. boca-inlet"
        }
      },
      "required": [
        "spotId"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "path"
  ],
  "additionalProperties": false
}

get_surf_forecast

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_temperature_fronts

Read only · Public

Satellite sea temperature fronts from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "category": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

get_thunder_forecast

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        },
        "hours": {
          "type": "integer",
          "minimum": 1,
          "maximum": 168,
          "default": 24
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_tides

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$",
          "description": "Spot id from GET /api/v1/spots, e.g. boca-inlet. Use this or lat+lon."
        },
        "lat": {
          "type": "number",
          "minimum": -90,
          "maximum": 90,
          "description": "Latitude, decimal degrees (WGS84)"
        },
        "lon": {
          "type": "number",
          "minimum": -180,
          "maximum": 180,
          "description": "Longitude, decimal degrees (WGS84)"
        },
        "days": {
          "type": "integer",
          "minimum": 1,
          "maximum": 7,
          "default": 3
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

get_usgs_water

Read only · Public

USGS flow, salinity and water temperature from the published agency dataset, with source and availability. Empty reports do not establish safe conditions.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "category": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

get_uv_forecast

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        },
        "hours": {
          "type": "integer",
          "minimum": 1,
          "maximum": 168,
          "default": 24
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_visibility

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        },
        "hours": {
          "type": "integer",
          "minimum": 1,
          "maximum": 168,
          "default": 24
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_water_clarity

Read only · Public

Satellite water clarity for a verified spot. Preserve source sample dates and unavailable states. Satellite clarity is a relative index, not measured dive visibility.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_water_temperature

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        },
        "hours": {
          "type": "integer",
          "minimum": 1,
          "maximum": 168,
          "default": 24
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_wave_models

Read only · Public

Published wave-model series and model spread for a spot; absent models stay unavailable.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_waves

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        },
        "hours": {
          "type": "integer",
          "minimum": 1,
          "maximum": 168,
          "default": 24
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

get_wind

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        },
        "hours": {
          "type": "integer",
          "minimum": 1,
          "maximum": 168,
          "default": 24
        }
      },
      "required": [
        "spot"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

list_boats

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "q": {
          "type": "string",
          "minLength": 2,
          "maxLength": 60,
          "description": "make/model search"
        },
        "category": {
          "type": "string",
          "maxLength": 40
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 1000
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

list_bridges

Read only · Public

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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "q": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 20
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

list_cams

Read only · Public

Live source links and credits near a spot or coordinate; archived imagery may be unavailable.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "spot": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "pattern": "^[A-Za-z0-9:._-]+$"
        },
        "lat": {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        "lon": {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

list_datasets

Read only · Public

Index of government datasets (SFWMD discharges, Lake O, USGS, CoastWatch chlorophyll / SST fronts, coral heat, USCG notices, derelicts, MPAs, algae, fish kills, shark research and jellyfish/man-of-war observations) with ok/stale/unavailable status and last-good time.

Inputs & required fields
{
  "type": "object",
  "properties": {},
  "required": [],
  "additionalProperties": false
}

list_sandbars

Read only · Public

Search published sandbars 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.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "q": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 20
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

list_spots

Read only · Public

Every named South Florida spot the app scores, with its lat/lon, kind, region and the NOAA stations used for it. Use the returned id with conditions, forecast, tides, hazards and briefing tools. include=status adds the current-hour go/caution/nogo band per activity.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "include": {
          "type": "string",
          "enum": [
            "status"
          ],
          "description": "status = add now.scores per activity"
        },
        "region": {
          "type": "string",
          "enum": [
            "palm-beach",
            "broward",
            "miami-dade",
            "keys"
          ]
        },
        "homeZone": {
          "type": "boolean",
          "description": "only the Deerfield/Boca/Pompano home zone"
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

plan_route

Read only · Public / optional OAuth vessel

Chart-aware water routing between from/to spot IDs or lat,lon. Supply a confirmed library boat ID or measured draft, with beam, airDraft, ukc, bridgeMargin and speed overrides in feet/knots. Checks chart depths and tides along the geometry, samples across supplied beam, identifies bridges and restrictions, checks predicted MHW bridge clearance when data permits, and adds route weather samples. Does not infer saved vessel settings. Supports ordered via stops and a hard corridor=icw constraint. Cold charts may take 110 seconds.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "via": {
          "type": "string",
          "minLength": 1,
          "maxLength": 800,
          "description": "Up to eight required stops in order: spot IDs or lat,lon separated by semicolons. Stops may snap up to 300 m; inspect reached offsets. No straight-line gaps are implied safe."
        },
        "corridor": {
          "type": "string",
          "enum": [
            "any",
            "icw"
          ],
          "default": "any",
          "description": "icw is a hard USACE/FWC published ICW channel boundary, with no ocean fallback. Unknown/missing channel or depth coverage returns no verified route."
        },
        "from": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "to": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "draft": {
          "type": "number",
          "minimum": 0.3,
          "maximum": 15
        },
        "beam": {
          "type": "number",
          "minimum": 1,
          "maximum": 60
        },
        "airDraft": {
          "type": "number",
          "minimum": 0,
          "maximum": 150
        },
        "bridgeMargin": {
          "type": "number",
          "minimum": 0,
          "maximum": 20
        },
        "ukc": {
          "type": "number",
          "minimum": 0,
          "maximum": 10
        },
        "speed": {
          "type": "number",
          "minimum": 3,
          "maximum": 60
        },
        "boat": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        "time": {
          "type": "string",
          "format": "date-time"
        }
      },
      "required": [
        "from",
        "to"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

search_pois

Read only · Public

Search public marine POIs. Optional cats is a comma-separated category list. Fuel prices and current bridge clearance are not verified.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "q": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "bbox": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 20
        },
        "cats": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [],
  "additionalProperties": false
}

Personal account tools

delete_my_place

Changes account data · OAuth consent

Delete a saved place. Repeat deletes return deleted=false. Requires your Gillby account and explicit account consent.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "path": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "minimum": 1
        }
      },
      "required": [
        "id"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "path"
  ],
  "additionalProperties": false
}

delete_my_trip

Changes account data · OAuth consent

Delete a saved trip. Repeat deletes return deleted=false. Requires your Gillby account and explicit account consent.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "path": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "minimum": 1
        }
      },
      "required": [
        "id"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "path"
  ],
  "additionalProperties": false
}

get_my_notification_settings

Read only · OAuth consent

Read notification preferences and actual delivery availability. Requires your Gillby account and explicit account consent.

Inputs & required fields
{
  "type": "object",
  "properties": {},
  "required": [],
  "additionalProperties": false
}

get_my_place

Read only · OAuth consent

Read one saved place. Requires your Gillby account and explicit account consent.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "path": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "minimum": 1
        }
      },
      "required": [
        "id"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "path"
  ],
  "additionalProperties": false
}

get_my_settings

Read only · OAuth consent

Read saved vessel, preferences and notification settings. Missing vessel measurements remain null. Requires your Gillby account and explicit account consent.

Inputs & required fields
{
  "type": "object",
  "properties": {},
  "required": [],
  "additionalProperties": false
}

get_my_trip

Read only · OAuth consent

Read one saved trip. Requires your Gillby account and explicit account consent.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "path": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "minimum": 1
        }
      },
      "required": [
        "id"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "path"
  ],
  "additionalProperties": false
}

get_my_vessel

Read only · OAuth consent

Requires OAuth login to your Gillby account. Reads only your saved vessel and route clearance settings. No writes and no other account access.

Inputs & required fields
{
  "type": "object",
  "properties": {},
  "required": [],
  "additionalProperties": false
}

list_my_places

Read only · OAuth consent

Read your saved places and favorites. Requires your Gillby account and explicit account consent.

Inputs & required fields
{
  "type": "object",
  "properties": {},
  "required": [],
  "additionalProperties": false
}

list_my_trips

Read only · OAuth consent

Read your saved trips. Requires your Gillby account and explicit account consent.

Inputs & required fields
{
  "type": "object",
  "properties": {},
  "required": [],
  "additionalProperties": false
}

plan_my_route

Read only · OAuth consent

Requires OAuth login. Uses your saved vessel, draft, air draft, speed, under-keel and bridge margins for actual chart routing. Explicit measurements override saved values. Never guesses missing required measurements.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "via": {
          "type": "string",
          "minLength": 1,
          "maxLength": 800,
          "description": "Up to eight required stops in order: spot IDs or lat,lon separated by semicolons. Stops may snap up to 300 m; inspect reached offsets. No straight-line gaps are implied safe."
        },
        "corridor": {
          "type": "string",
          "enum": [
            "any",
            "icw"
          ],
          "default": "any",
          "description": "icw is a hard USACE/FWC published ICW channel boundary, with no ocean fallback. Unknown/missing channel or depth coverage returns no verified route."
        },
        "from": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "to": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "draft": {
          "type": "number",
          "minimum": 0.3,
          "maximum": 15
        },
        "beam": {
          "type": "number",
          "minimum": 1,
          "maximum": 60
        },
        "airDraft": {
          "type": "number",
          "minimum": 0,
          "maximum": 150
        },
        "bridgeMargin": {
          "type": "number",
          "minimum": 0,
          "maximum": 20
        },
        "ukc": {
          "type": "number",
          "minimum": 0,
          "maximum": 10
        },
        "speed": {
          "type": "number",
          "minimum": 3,
          "maximum": 60
        },
        "time": {
          "type": "string",
          "format": "date-time"
        }
      },
      "required": [
        "from",
        "to"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

save_my_place

Changes account data · OAuth consent

Save a place or favorite. Supply a unique requestId and reuse it when retrying the same save; reused IDs with different input are rejected. Requires your Gillby account and explicit account consent.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "body": {
      "type": "object",
      "properties": {
        "requestId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80,
          "pattern": "^[A-Za-z0-9_-]{8,80}$"
        },
        "place": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 120
            },
            "spotId": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 1,
              "maxLength": 80
            },
            "lat": {
              "type": "number",
              "minimum": -90,
              "maximum": 90
            },
            "lon": {
              "type": "number",
              "minimum": -180,
              "maximum": 180
            },
            "kind": {
              "type": "string",
              "minLength": 1,
              "maxLength": 30
            },
            "activity": {
              "type": "string",
              "enum": [
                "boating",
                "sailing",
                "paddle",
                "sup-surf",
                "kite",
                "skim",
                "skim-wave",
                "swim",
                "dive",
                "fishing-inshore",
                "fishing-offshore",
                "surf",
                "inlet"
              ]
            },
            "boatId": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 1,
              "maxLength": 80
            },
            "notes": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 1,
              "maxLength": 2000
            },
            "sort": {
              "type": "number",
              "minimum": -1000000,
              "maximum": 1000000
            }
          },
          "required": [],
          "additionalProperties": false
        }
      },
      "required": [
        "requestId",
        "place"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "body"
  ],
  "additionalProperties": false
}

save_my_trip

Changes account data · OAuth consent

Save a trip. Supply a unique requestId and reuse it on retry. Saving does not assess navigation safety. Requires your Gillby account and explicit account consent.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "body": {
      "type": "object",
      "properties": {
        "requestId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80,
          "pattern": "^[A-Za-z0-9_-]{8,80}$"
        },
        "trip": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 120
            },
            "from": {
              "type": "object",
              "properties": {
                "lat": {
                  "type": "number",
                  "minimum": -90,
                  "maximum": 90
                },
                "lon": {
                  "type": "number",
                  "minimum": -180,
                  "maximum": 180
                },
                "label": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 120
                }
              },
              "required": [
                "lat",
                "lon"
              ],
              "additionalProperties": false
            },
            "to": {
              "type": "object",
              "properties": {
                "lat": {
                  "type": "number",
                  "minimum": -90,
                  "maximum": 90
                },
                "lon": {
                  "type": "number",
                  "minimum": -180,
                  "maximum": 180
                },
                "label": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 120
                }
              },
              "required": [
                "lat",
                "lon"
              ],
              "additionalProperties": false
            },
            "via": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "lat": {
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90
                  },
                  "lon": {
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180
                  },
                  "label": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  }
                },
                "required": [
                  "lat",
                  "lon"
                ],
                "additionalProperties": false
              },
              "maxItems": 20
            },
            "departAt": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80,
              "format": "date-time"
            },
            "returnAt": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 1,
              "maxLength": 80,
              "format": "date-time"
            },
            "boatId": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 1,
              "maxLength": 80
            },
            "draftFt": {
              "type": [
                "number",
                "null"
              ],
              "minimum": 0.1,
              "maximum": 30
            },
            "ukcFt": {
              "type": "number",
              "minimum": 0,
              "maximum": 20
            },
            "speedKt": {
              "type": "number",
              "minimum": 1,
              "maximum": 80
            },
            "activity": {
              "type": "string",
              "enum": [
                "boating",
                "sailing",
                "paddle",
                "sup-surf",
                "kite",
                "skim",
                "skim-wave",
                "swim",
                "dive",
                "fishing-inshore",
                "fishing-offshore",
                "surf",
                "inlet"
              ]
            },
            "notes": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 1,
              "maxLength": 2000
            },
            "status": {
              "type": "string",
              "enum": [
                "planned",
                "done",
                "cancelled"
              ]
            }
          },
          "required": [
            "name",
            "from",
            "to",
            "departAt"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "requestId",
        "trip"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "body"
  ],
  "additionalProperties": false
}

update_my_notification_settings

Changes account data · OAuth consent

Save notification preferences. Hosted delivery is in-app only; this does not enable push, email or notifications on this AI client. Requires your Gillby account and explicit account consent.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "body": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "macNotifications": {
          "type": "boolean"
        },
        "quietStart": {
          "type": "string",
          "minLength": 1,
          "maxLength": 5,
          "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$"
        },
        "quietEnd": {
          "type": "string",
          "minLength": 1,
          "maxLength": 5,
          "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$"
        },
        "lightningMi": {
          "type": "number",
          "minimum": 1,
          "maximum": 50
        },
        "chopThreshold": {
          "type": "string",
          "minLength": 1,
          "maxLength": 30
        },
        "bestWindow": {
          "type": "boolean"
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [
    "body"
  ],
  "additionalProperties": false
}

update_my_place

Changes account data · OAuth consent

Update specified saved-place fields. Requires your Gillby account and explicit account consent.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "path": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "minimum": 1
        }
      },
      "required": [
        "id"
      ],
      "additionalProperties": false
    },
    "body": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        "spotId": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 1,
          "maxLength": 80
        },
        "lat": {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        "lon": {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        },
        "kind": {
          "type": "string",
          "minLength": 1,
          "maxLength": 30
        },
        "activity": {
          "type": "string",
          "enum": [
            "boating",
            "sailing",
            "paddle",
            "sup-surf",
            "kite",
            "skim",
            "skim-wave",
            "swim",
            "dive",
            "fishing-inshore",
            "fishing-offshore",
            "surf",
            "inlet"
          ]
        },
        "boatId": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 1,
          "maxLength": 80
        },
        "notes": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 1,
          "maxLength": 2000
        },
        "sort": {
          "type": "number",
          "minimum": -1000000,
          "maximum": 1000000
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [
    "path",
    "body"
  ],
  "additionalProperties": false
}

update_my_settings

Changes account data · OAuth consent

Update only specified vessel or preference fields. Requires your Gillby account and explicit account consent.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "body": {
      "type": "object",
      "properties": {
        "boatId": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 1,
          "maxLength": 80
        },
        "draftFt": {
          "type": [
            "number",
            "null"
          ],
          "minimum": 0.1,
          "maximum": 30
        },
        "airDraftFt": {
          "type": [
            "number",
            "null"
          ],
          "minimum": 1,
          "maximum": 150
        },
        "bridgeMarginFt": {
          "type": "number",
          "minimum": 0,
          "maximum": 20
        },
        "ukcFt": {
          "type": "number",
          "minimum": 0,
          "maximum": 20
        },
        "cruiseKt": {
          "type": [
            "number",
            "null"
          ],
          "minimum": 1,
          "maximum": 80
        },
        "defaultActivity": {
          "type": "string",
          "enum": [
            "boating",
            "sailing",
            "paddle",
            "sup-surf",
            "kite",
            "skim",
            "skim-wave",
            "swim",
            "dive",
            "fishing-inshore",
            "fishing-offshore",
            "surf",
            "inlet"
          ]
        },
        "homeSpotIds": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "maxItems": 50
        },
        "units": {
          "type": "object",
          "properties": {
            "distance": {
              "type": "string",
              "enum": [
                "nm",
                "mi"
              ]
            },
            "temp": {
              "type": "string",
              "enum": [
                "F",
                "C"
              ]
            }
          },
          "required": [],
          "additionalProperties": false
        },
        "theme": {
          "type": "string",
          "enum": [
            "auto",
            "light",
            "dark"
          ]
        },
        "view": {
          "type": "string",
          "enum": [
            "auto",
            "desktop",
            "mobile"
          ]
        },
        "alerts": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean"
            },
            "macNotifications": {
              "type": "boolean"
            },
            "quietStart": {
              "type": "string",
              "minLength": 1,
              "maxLength": 5,
              "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$"
            },
            "quietEnd": {
              "type": "string",
              "minLength": 1,
              "maxLength": 5,
              "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$"
            },
            "lightningMi": {
              "type": "number",
              "minimum": 1,
              "maximum": 50
            },
            "chopThreshold": {
              "type": "string",
              "minLength": 1,
              "maxLength": 30
            },
            "bestWindow": {
              "type": "boolean"
            }
          },
          "required": [],
          "additionalProperties": false
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [
    "body"
  ],
  "additionalProperties": false
}

update_my_trip

Changes account data · OAuth consent

Update specified trip fields; this does not recheck route safety. Requires your Gillby account and explicit account consent.

Inputs & required fields
{
  "type": "object",
  "properties": {
    "path": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "minimum": 1
        }
      },
      "required": [
        "id"
      ],
      "additionalProperties": false
    },
    "body": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        "from": {
          "type": "object",
          "properties": {
            "lat": {
              "type": "number",
              "minimum": -90,
              "maximum": 90
            },
            "lon": {
              "type": "number",
              "minimum": -180,
              "maximum": 180
            },
            "label": {
              "type": "string",
              "minLength": 1,
              "maxLength": 120
            }
          },
          "required": [
            "lat",
            "lon"
          ],
          "additionalProperties": false
        },
        "to": {
          "type": "object",
          "properties": {
            "lat": {
              "type": "number",
              "minimum": -90,
              "maximum": 90
            },
            "lon": {
              "type": "number",
              "minimum": -180,
              "maximum": 180
            },
            "label": {
              "type": "string",
              "minLength": 1,
              "maxLength": 120
            }
          },
          "required": [
            "lat",
            "lon"
          ],
          "additionalProperties": false
        },
        "via": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "lat": {
                "type": "number",
                "minimum": -90,
                "maximum": 90
              },
              "lon": {
                "type": "number",
                "minimum": -180,
                "maximum": 180
              },
              "label": {
                "type": "string",
                "minLength": 1,
                "maxLength": 120
              }
            },
            "required": [
              "lat",
              "lon"
            ],
            "additionalProperties": false
          },
          "maxItems": 20
        },
        "departAt": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80,
          "format": "date-time"
        },
        "returnAt": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 1,
          "maxLength": 80,
          "format": "date-time"
        },
        "boatId": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 1,
          "maxLength": 80
        },
        "draftFt": {
          "type": [
            "number",
            "null"
          ],
          "minimum": 0.1,
          "maximum": 30
        },
        "ukcFt": {
          "type": "number",
          "minimum": 0,
          "maximum": 20
        },
        "speedKt": {
          "type": "number",
          "minimum": 1,
          "maximum": 80
        },
        "activity": {
          "type": "string",
          "enum": [
            "boating",
            "sailing",
            "paddle",
            "sup-surf",
            "kite",
            "skim",
            "skim-wave",
            "swim",
            "dive",
            "fishing-inshore",
            "fishing-offshore",
            "surf",
            "inlet"
          ]
        },
        "notes": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 1,
          "maxLength": 2000
        },
        "status": {
          "type": "string",
          "enum": [
            "planned",
            "done",
            "cancelled"
          ]
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "required": [
    "path",
    "body"
  ],
  "additionalProperties": false
}

Sources & limitations

Preserve returned source names, timestamps, stale flags and unavailable/QC-failed states. A recent response does not mean every upstream source is available. Missing readings are unknown, never zero.

Local model waves and official NWS marine-zone seas cover different areas and can differ substantially. Show both with their scope and time; do not silently replace official guidance with a lower local value. Sea-model wave height is also different from breaking surf height. Choppiness describes modeled ride conditions, not a safety clearance.

Bridge charted clearance and tide-adjusted estimates are distinct. Check datum, water level, vessel air draft, margin and opening restrictions. A point depth cannot establish route clearance. Routes and saved trips do not guarantee safe navigation.

Beach camera photos are source frames, not a guarantee of a live view. Report frame time when known, retrieval time separately, and unverified freshness when the source time is missing. Place listings do not confirm current hours, fuel stock or access.

For response contracts and underlying HTTP endpoints, see the OpenAPI schema. The MCP tools return structured data and errors; assistants must keep source caveats visible in their answers.

MCP tool reference · Gillby