{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T15:52:18.933Z","url":"https://verifymcp.io/servers/com-tidesatlas-tides/tidesatlas","markdownUrl":"https://verifymcp.io/servers/com-tidesatlas-tides/tidesatlas.md","server":{"slug":"com-tidesatlas-tides","name":"TidesAtlas","registryName":"com.tidesatlas/tides","description":"Worldwide tide times and heights, marine weather, sea temperature, sun and moon for 13,000+ ports.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"tidesatlas","type":"remote","identifier":"https://tidesatlas.com/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/com-tidesatlas-tides/tidesatlas","version":"1.1.1","transport":null,"scoredAt":"2026-11-05T10:31:24.163Z"},"score":{"total":70,"tier":"medium","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":70},{"date":"2026-11-04","total":69},{"date":"2026-11-03","total":62}]},"categories":[{"name":"Endpoint Security","score":77,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","No authorisation is required to call this server. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation.","HTTPS is enforced; there's no plaintext access path.","HSTS check failed: the Strict-Transport-Security header is absent.","DNSSEC is configured correctly; the domain's records validate against the full chain to the root."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.none_no_destructive","args":{}},{"code":"https.enforced","args":{}},{"code":"headers.hsts_absent","args":{}},{"code":"dnssec.validated","args":{}}]},{"name":"Transport & Reachability","score":100,"verdict":"pass","reasons":["Verified streamable-http transport via a live MCP handshake."],"codes":[{"code":"transport.verified","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":73,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Tool/resource definitions use about 917 tokens (~91/item across 10 items; 10 tools + 0 resources), lean.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_lean","args":{"avg":"91","items":"10","tools":"10","tokens":"917","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":7,"verdict":"partial","reasons":["Stability observed for 2 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"2"}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 10 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 10 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"10"}},{"code":"toolsafety.manipulation_clean","args":{"units":"10","judged":"10"}}]},{"name":"Capabilities","score":20,"verdict":"fail","reasons":["Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28."],"codes":[{"code":"protocol.outdated","args":{"latest":"2026-07-28","version":"2024-11-05"}}]}],"inconclusive":[],"malware":[],"components":[{"slug":"tidesatlas","type":"remote","identifier":"https://tidesatlas.com/mcp","withdrawn":false,"score":70,"current":true,"url":"https://verifymcp.io/servers/com-tidesatlas-tides/tidesatlas","markdownUrl":"https://verifymcp.io/servers/com-tidesatlas-tides/tidesatlas.md"}],"facts":[{"label":"Endpoint","value":"https://tidesatlas.com/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.1.1"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"get_tides","title":null,"description":"Get tide predictions (high/low water times and heights) for a port or coordinates. Returns extremes with datetime, height in meters, and type (high/low). Supports 13,000+ stations in 180 countries.","inputs":[{"name":"date","type":"string","required":false,"description":"Start date in YYYY-MM-DD format (default: today)."},{"name":"datum","type":"string","required":false,"description":"Vertical datum: LAT, MSL, MLLW, MHW, MLW, MHHW, MTL, HAT (default: native datum of station)."},{"name":"days","type":"integer","required":false,"description":"Number of days, 1-14 (default: 1)."},{"name":"lat","type":"number","required":false,"description":"Latitude (-90 to 90). Alternative to port — finds the nearest station."},{"name":"lon","type":"number","required":false,"description":"Longitude (-180 to 180). Must be used with lat."},{"name":"port","type":"string","required":false,"description":"Station slug, e.g. \"aberdeen\" or \"san-francisco\". Use search_ports to find slugs."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":207},{"name":"search_ports","title":null,"description":"Search for tide stations by name or country. Returns port name, slug, coordinates, timezone, country.","inputs":[{"name":"country","type":"string","required":false,"description":"Filter by country slug, e.g. \"united-kingdom\" or \"france\"."},{"name":"limit","type":"integer","required":false,"description":"Max results, 1-500 (default: 50)."},{"name":"search","type":"string","required":false,"description":"Search by station name (partial match)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":88},{"name":"list_countries","title":null,"description":"List all 188 countries that have tide stations, with their station counts and ISO codes.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":27},{"name":"get_weather","title":null,"description":"Get weather forecast (temperature, wind, precipitation, UV, conditions) for a port or coordinates. Returns hourly and daily data.","inputs":[{"name":"days","type":"integer","required":false,"description":"Forecast days, 1-7 (default: 3)."},{"name":"lat","type":"number","required":false,"description":"Latitude."},{"name":"lon","type":"number","required":false,"description":"Longitude."},{"name":"port","type":"string","required":false,"description":"Station slug."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":78},{"name":"get_marine","title":null,"description":"Get ocean and wave forecast (wave height, swell, sea state on Douglas scale). Returns hourly and daily data.","inputs":[{"name":"days","type":"integer","required":false,"description":"Forecast days, 1-7 (default: 3)."},{"name":"lat","type":"number","required":false,"description":"Latitude."},{"name":"lon","type":"number","required":false,"description":"Longitude."},{"name":"port","type":"string","required":false,"description":"Station slug."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":76},{"name":"get_astronomy","title":null,"description":"Get sun and moon data: sunrise, sunset, dawn, dusk, day length, moon phase, illumination, moonrise, moonset.","inputs":[{"name":"date","type":"string","required":false,"description":"Start date YYYY-MM-DD (default: today)."},{"name":"days","type":"integer","required":false,"description":"Number of days, 1-7 (default: 1)."},{"name":"lat","type":"number","required":false,"description":"Latitude."},{"name":"lon","type":"number","required":false,"description":"Longitude."},{"name":"port","type":"string","required":false,"description":"Station slug."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":99},{"name":"get_conditions","title":null,"description":"Get unified weather + marine + astronomy data in one call. More efficient than calling each separately.","inputs":[{"name":"days","type":"integer","required":false,"description":"Forecast days, 1-7 (default: 3)."},{"name":"include","type":"string","required":false,"description":"Comma-separated list: weather,marine,astronomy (default: all three)."},{"name":"lat","type":"number","required":false,"description":"Latitude."},{"name":"lon","type":"number","required":false,"description":"Longitude."},{"name":"port","type":"string","required":false,"description":"Station slug."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":94},{"name":"get_history","title":null,"description":"Get historical tide predictions and weather data for past dates. Tides up to 365 days, weather up to 90 days.","inputs":[{"name":"date","type":"string","required":true,"description":"Start date in the past, YYYY-MM-DD (required)."},{"name":"days","type":"integer","required":false,"description":"Number of days, 1-365 (default: 7)."},{"name":"include","type":"string","required":false,"description":"Comma-separated: tides,weather (default: tides)."},{"name":"port","type":"string","required":true,"description":"Station slug (required)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":101},{"name":"get_observations","title":null,"description":"Get real-time sea level observations from REFMAR/SHOM tide gauges (French stations only). Returns 10-minute interval readings.","inputs":[{"name":"date","type":"string","required":false,"description":"Start date YYYY-MM-DD (default: today)."},{"name":"days","type":"integer","required":false,"description":"Number of days, 1-7 (default: 1)."},{"name":"port","type":"string","required":true,"description":"Station slug (must be a French REFMAR station)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":91},{"name":"get_radar","title":null,"description":"Get rain radar tile URLs for a location. Returns past frames and short-term nowcast frames for map overlays.","inputs":[{"name":"lat","type":"number","required":false,"description":"Latitude."},{"name":"lon","type":"number","required":false,"description":"Longitude."},{"name":"port","type":"string","required":false,"description":"Station slug."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":56}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T10:31:24.000Z","track":"remote","endpoint":"https://tidesatlas.com/mcp","declaredUrl":null,"truncated":false,"tls":{"outcome":"valid","label":"Valid","version":"TLS 1.3","cipherSuite":"TLS_AES_128_GCM_SHA256","chainError":null,"certificates":[{"subject":"CN=tidesatlas.com","issuer":"CN=YE2,O=Let's Encrypt,C=US","notBefore":"2026-09-24T18:30:13Z","notAfter":"2026-12-23T18:30:12Z","keyType":"ECDSA","keyBits":256,"isCa":false},{"subject":"CN=YE2,O=Let's Encrypt,C=US","issuer":"CN=Root YE,O=ISRG,C=US","notBefore":"2025-09-03T00:00:00Z","notAfter":"2028-09-02T23:59:59Z","keyType":"ECDSA","keyBits":384,"isCa":true},{"subject":"CN=Root YE,O=ISRG,C=US","issuer":"CN=ISRG Root X2,O=Internet Security Research Group,C=US","notBefore":"2026-05-13T00:00:00Z","notAfter":"2032-09-02T23:59:59Z","keyType":"ECDSA","keyBits":384,"isCa":true},{"subject":"CN=ISRG Root X2,O=Internet Security Research Group,C=US","issuer":"CN=ISRG Root X1,O=Internet Security Research Group,C=US","notBefore":"2026-05-13T00:00:00Z","notAfter":"2032-09-02T23:59:59Z","keyType":"ECDSA","keyBits":384,"isCa":true}]},"dnssec":{"result":"secure","label":"Secure","name":"tidesatlas.com.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"com.","outcome":"verified","label":"Verified"},{"zone":"tidesatlas.com.","outcome":"verified","label":"Verified"},{"zone":"tidesatlas.com.","outcome":"verified","label":"Verified"}]},"auth":{"outcome":"none","label":"No authorisation required","gate":null,"gateLabel":null,"status":200,"authorizationServers":[]},"httpsRedirect":{"outcome":"https_enforced","label":"HTTPS enforced","status":301},"transports":[{"transport":"streamable-http","outcome":"verified","label":"Verified","status":200,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-11-03","recent":[{"id":"chg_01a1ab43-6926-71f9-8110-d4e3006de0a2","kind":"score.total_changed","summary":"Trust score (69 → 70)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/com-tidesatlas-tides/tidesatlas#chg-chg_01a1ab43-6926-71f9-8110-d4e3006de0a2"},{"id":"chg_01a1a61a-3348-74fa-bd20-28312802955e","kind":"check.reverified","summary":"Authorization (unverified → partial)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/com-tidesatlas-tides/tidesatlas#chg-chg_01a1a61a-3348-74fa-bd20-28312802955e"},{"id":"chg_01a1a61a-3349-7997-a80a-aa26fafe5f88","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/com-tidesatlas-tides/tidesatlas#chg-chg_01a1a61a-3349-7997-a80a-aa26fafe5f88"},{"id":"chg_01a1a61a-3349-7f08-b9ed-62a3b77d2e4e","kind":"tool.description_changed","summary":"Tool “get_tides” rewrote its description, which is the text the model reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/com-tidesatlas-tides/tidesatlas#chg-chg_01a1a61a-3349-7f08-b9ed-62a3b77d2e4e"},{"id":"chg_01a1a61a-334a-7566-9f81-346d1dd93cdd","kind":"score.total_changed","summary":"Trust score (62 → 69)","materiality":"functional","direction":"improvement","scoreDelta":7,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/com-tidesatlas-tides/tidesatlas#chg-chg_01a1a61a-334a-7566-9f81-346d1dd93cdd"},{"id":"chg_01a1a11b-cf54-7ec2-bf3c-c6d0e04405b6","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/com-tidesatlas-tides/tidesatlas#chg-chg_01a1a11b-cf54-7ec2-bf3c-c6d0e04405b6"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/com-tidesatlas-tides/tidesatlas/changelog.json"},"links":{"html":"https://verifymcp.io/servers/com-tidesatlas-tides/tidesatlas","markdown":"https://verifymcp.io/servers/com-tidesatlas-tides/tidesatlas.md","changelogJson":"https://verifymcp.io/servers/com-tidesatlas-tides/tidesatlas/changelog.json","changelogRss":"https://verifymcp.io/servers/com-tidesatlas-tides/tidesatlas.xml","external":[{"label":"Remote endpoint","href":"https://tidesatlas.com/mcp"},{"label":"Authorisation metadata","href":"https://tidesatlas.com/.well-known/oauth-protected-resource/mcp"},{"label":"Repository","href":"https://github.com/TidesAtlas/tidesatlas-api"},{"label":"Website","href":"https://tidesatlas.com/en/api/docs"}]}}