Zovo Tide Tables MCP
Generates printable monthly tide calendars, tide charts, and CSV/ICS files from NOAA CO-OPS predictions. It highlights low tides based on specific criteria like height or daylight hours for US coastal stations.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://tide-tables.zovo.one/mcpWhat its tools do
2 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (2)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Generate a tide calendar for a specific US location and month
- Find low tides below a certain height during daylight hours
- Export tide data as CSV or ICS calendar files
- Print tide tables in Letter or A4 format
Source and maintenance
Protocol and capabilities
- Server
- tide-tables 1.0.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 2 advertised
- Resources
- 1 advertised
- Resource templates
- 1 advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
},
"resources": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
2 advertised
find_tide_stations — Find tide stations
Use this when the user names a US coastal place and needs the NOAA tide prediction station to use for a tide table. Takes a city or town (US places of about 15,000 people or more), a station name, or a NOAA station id, and returns the nearest stations with distance in miles. Does not return tide times; use generate_tide_calendar for those. Does not cover places outside the NOAA CO-OPS station list.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"place"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "How many stations to return, 1 to 10. Default 5, e.g. 5."
},
"place": {
"type": "string",
"maxLength": 200,
"description": "A US coastal city or town, a NOAA tide station name, or a NOAA station id. Add the state after a comma if you know it, e.g. Monterey, CA or Montauk or 9414290."
},
"state": {
"type": "string",
"maxLength": 30,
"description": "Optional two-letter US state or territory code to narrow the search, e.g. FL."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query",
"state",
"matched_city",
"stations",
"name_matches",
"note",
"source"
],
"properties": {
"note": {
"type": "string"
},
"query": {
"type": "string"
},
"state": {
"type": "string"
},
"source": {
"type": "string"
},
"stations": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"state",
"kind",
"reference_station",
"distance_mi",
"lat",
"lon"
],
"properties": {
"id": {
"type": "string"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"kind": {
"type": "string"
},
"name": {
"type": "string"
},
"state": {
"type": "string"
},
"distance_mi": {
"type": [
"number",
"null"
]
},
"reference_station": {
"type": "string"
}
},
"additionalProperties": false
}
},
"matched_city": {
"anyOf": [
{
"type": "object",
"required": [
"name",
"state"
],
"properties": {
"name": {
"type": "string"
},
"state": {
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
},
"name_matches": {
"type": "number"
}
},
"additionalProperties": false
}{
"title": "Find tide stations",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}generate_tide_calendar — Generate tide calendar
Use this when the user wants a tide table, tide calendar or tide times for a NOAA station for a month or up to 31 days: high and low times and heights (MLLW, ft or m, local time), sunrise and sunset, an optional low-tide filter, a printable PDF calendar (Letter and A4), CSV and ICS calendar files. Data is NOAA CO-OPS predictions (fetched from NOAA, cached up to 24 hours), not observations. Needs a NOAA station id (get one from find_tide_stations). Does not give currents, surf, weather or observed water levels.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"station_id"
],
"properties": {
"month": {
"type": "string",
"maxLength": 20,
"description": "Calendar month as YYYY-MM, e.g. 2026-12. Use this or start_date and end_date."
},
"units": {
"enum": [
"ft",
"m"
],
"type": "string",
"description": "Height units: ft (default) or m, e.g. ft."
},
"end_date": {
"type": "string",
"maxLength": 20,
"description": "Last day as YYYY-MM-DD (inclusive), e.g. 2027-01-05."
},
"start_date": {
"type": "string",
"maxLength": 20,
"description": "First day as YYYY-MM-DD, e.g. 2026-12-20. Needs end_date; at most 31 days in total."
},
"station_id": {
"type": "string",
"maxLength": 20,
"description": "NOAA tide station id from find_tide_stations: 7 digits, or 3 letters and 4 digits for some subordinate stations, e.g. 9414290 or TPT2799."
},
"low_tide_filter": {
"type": "object",
"properties": {
"to_hour": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Latest local hour 1-24, e.g. 11."
},
"from_hour": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Earliest local hour 0-23, e.g. 6."
},
"max_height": {
"type": "number",
"description": "Only low tides at or below this height (same units), e.g. 0.5."
},
"daylight_only": {
"type": "boolean",
"description": "Only low tides between sunrise and sunset, e.g. true."
}
},
"description": "Optional: highlight low tides that fit a plan such as tide pooling or clamming, e.g. {\"max_height\":0,\"daylight_only\":true}."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"station",
"period",
"units",
"datum",
"time_zones",
"summary",
"filter",
"windows",
"days",
"days_shown",
"note",
"source",
"downloads"
],
"properties": {
"days": {
"type": "array",
"items": {
"type": "object",
"required": [
"date",
"weekday",
"tides",
"sunrise",
"sunset",
"clock_change"
],
"properties": {
"date": {
"type": "string"
},
"tides": {
"type": "array",
"items": {
"type": "string"
}
},
"sunset": {
"type": "string"
},
"sunrise": {
"type": "string"
},
"weekday": {
"type": "string"
},
"clock_change": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"note": {
"type": "string"
},
"datum": {
"type": "string"
},
"units": {
"type": "string"
},
"filter": {
"type": "string"
},
"period": {
"type": "object",
"required": [
"start",
"end",
"days",
"label"
],
"properties": {
"end": {
"type": "string"
},
"days": {
"type": "number"
},
"label": {
"type": "string"
},
"start": {
"type": "string"
}
},
"additionalProperties": false
},
"source": {
"type": "object",
"required": [
"name",
"url",
"api",
"retrieved_utc"
],
"properties": {
"api": {
"type": "string"
},
"url": {
"type": "string"
},
"name": {
"type": "string"
},
"retrieved_utc": {
"type": "string"
}
},
"additionalProperties": false
},
"station": {
"type": "object",
"required": [
"id",
"name",
"state",
"kind",
"lat",
"lon"
],
"properties": {
"id": {
"type": "string"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"kind": {
"type": "string"
},
"name": {
"type": "string"
},
"state": {
"type": "string"
}
},
"additionalProperties": false
},
"summary": {
"type": "object",
"required": [
"highs",
"lows",
"lowest_low",
"highest_high",
"matching_lows"
],
"properties": {
"lows": {
"type": "number"
},
"highs": {
"type": "number"
},
"lowest_low": {
"anyOf": [
{
"type": "object",
"required": [
"date",
"time",
"height"
],
"properties": {
"date": {
"type": "string"
},
"time": {
"type": "string"
},
"height": {
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
},
"highest_high": {
"anyOf": [
{
"type": "object",
"required": [
"date",
"time",
"height"
],
"properties": {
"date": {
"type": "string"
},
"time": {
"type": "string"
},
"height": {
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
},
"matching_lows": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": false
},
"windows": {
"type": "array",
"items": {
"type": "object",
"required": [
"date",
"time",
"height"
],
"properties": {
"date": {
"type": "string"
},
"time": {
"type": "string"
},
"height": {
"type": "string"
}
},
"additionalProperties": false
}
},
"downloads": {
"type": "object",
"required": [
"pdf_letter",
"pdf_a4",
"csv",
"ics_all",
"ics_lows"
],
"properties": {
"csv": {
"type": "string"
},
"pdf_a4": {
"type": "string"
},
"ics_all": {
"type": "string"
},
"ics_lows": {
"type": "string"
},
"pdf_letter": {
"type": "string"
}
},
"additionalProperties": false
},
"days_shown": {
"type": "number"
},
"time_zones": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}{
"title": "Generate tide calendar",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
1 advertised
tide-tables-widget — Zovo Tide Tables view
Interactive view for Zovo Tide Tables.
ui://widget/tide-tables-1-1.0.0-edc547ac5c3197a5bd135091a58230e966a879d6085f824c33ab5b89dc465405.htmltide-tables-widget-legacy — Zovo Tide Tables view (previous versions)
ui://widget/tide-tables-{version}.html30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 446 ms
- 95th percentile latency
- 446 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 446 ms · metadata changed · 2 tool(s), 1 resource(s), 1 resource template(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http zovo-tide-tables-mcp https://tide-tables.zovo.one/mcpCodex
codex mcp add zovo-tide-tables-mcp --url https://tide-tables.zovo.one/mcpCursor
{
"mcpServers": {
"zovo-tide-tables-mcp": {
"url": "https://tide-tables.zovo.one/mcp"
}
}
}Cline
{
"mcpServers": {
"zovo-tide-tables-mcp": {
"type": "streamableHttp",
"url": "https://tide-tables.zovo.one/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"zovo-tide-tables-mcp": {
"type": "http",
"url": "https://tide-tables.zovo.one/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http zovo-tide-tables-mcp https://tide-tables.zovo.one/mcpClaude Desktop
https://tide-tables.zovo.one/mcpWindsurf
{
"mcpServers": {
"zovo-tide-tables-mcp": {
"serverUrl": "https://tide-tables.zovo.one/mcp"
}
}
}Let your agent find its tools
Find servers like Zovo Tide Tables MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.