{"$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-05T19:26:27.934Z","url":"https://verifymcp.io/servers/com-whereboatsanchor-anchorages/whereboatsanchor","markdownUrl":"https://verifymcp.io/servers/com-whereboatsanchor-anchorages/whereboatsanchor.md","server":{"slug":"com-whereboatsanchor-anchorages","name":"Where Boats Anchor","registryName":"com.whereboatsanchor/anchorages","description":"Where boats stayed the night, and in what wind, at anchorages worldwide, with tonight's forecast.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"whereboatsanchor","type":"remote","identifier":"https://whereboatsanchor.com/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/com-whereboatsanchor-anchorages/whereboatsanchor","version":"1.0.0","transport":null,"scoredAt":"2026-11-05T03:20:59.666Z"},"score":{"total":71,"tier":"medium","status":"scored","weekDelta":3,"history":[{"date":"2026-11-05","total":71},{"date":"2026-11-04","total":71},{"date":"2026-11-03","total":70},{"date":"2026-11-02","total":70},{"date":"2026-11-01","total":69},{"date":"2026-10-31","total":69},{"date":"2026-10-30","total":68},{"date":"2026-10-29","total":68}]},"categories":[{"name":"Endpoint Security","score":74,"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 check failed: this domain isn't protected by DNSSEC."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.none_no_destructive","args":{}},{"code":"https.enforced","args":{}},{"code":"headers.hsts_absent","args":{}},{"code":"dnssec.absent","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":57,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 1133 tokens (~283/item across 4 items; 4 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"283","items":"4","tools":"4","tokens":"1133","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":23,"verdict":"partial","reasons":["Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"7"}}]},{"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.","Structured output schemas are declared (100% of tools); any adoption earns full credit."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}},{"code":"toolquality.output_present","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 4 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 5 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":"4"}},{"code":"toolsafety.manipulation_clean","args":{"units":"5","judged":"5"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a current MCP spec version (2026-07-28)."],"codes":[{"code":"protocol.current","args":{"version":"2026-07-28"}}]}],"inconclusive":[],"malware":[],"components":[{"slug":"whereboatsanchor","type":"remote","identifier":"https://whereboatsanchor.com/mcp","withdrawn":false,"score":71,"current":true,"url":"https://verifymcp.io/servers/com-whereboatsanchor-anchorages/whereboatsanchor","markdownUrl":"https://verifymcp.io/servers/com-whereboatsanchor-anchorages/whereboatsanchor.md"}],"facts":[{"label":"Endpoint","value":"https://whereboatsanchor.com/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.0.0"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"find_anchorages","title":"Find anchorages near a position, tonight or in a wind","description":"Lists the places near a position where boats stopped, overnight or by day, with where boats stayed in tonight's forecast there or in a given wind. For tonight, call it without wind_from and wind_kn: the answer then carries tonight's forecast at the position and each place's nights in each of tonight's winds, as the site's Tonight does. Give a wind only to ask about that wind. Each place comes with how far and which way it lies from the position (e.g. 0.5 NM SW), its nights, where it is, its page and its place on the map. With a wind, each place gets its nights in that wind, split by strength, with the gusts on those nights (kt), and the list is sorted by those nights. A wind is counted as the site counts it: its compass point at 10 or 20 kt or more, as the forecast's band (e.g. wind_kn 15 counts E 10 kt or more). wind_from alone counts the direction at any strength. Under 3 kt (wind_kn in whole knots) the wind has no settled direction, so every night counts. A night counts once, in the wind it blew from most. Tonight is counted as the site's Tonight counts it: tonight's forecast times that are night there, each counted in its compass point at 10 or 20 kt or more, as its band (every night under 3 kt), and each place's fewest nights in any one of them. Where a place faces open water and tonight's swell there is 0.5 m or more, the nights of that count that also had that swell are given beside it, as on the site. The swell never changes the count. Places with a night in every one of tonight's winds come first, by those fewest nights, then the rest. Without a forecast, by distance. Positions are WGS84 decimal degrees.","inputs":[{"name":"lat","type":"number","required":true,"description":"Latitude of the centre, WGS84 decimal degrees."},{"name":"limit","type":"integer","required":false,"description":"Most places to list, 10 when left out, at most 25."},{"name":"lon","type":"number","required":true,"description":"Longitude of the centre, WGS84 decimal degrees."},{"name":"radius_nm","type":"number","required":false,"description":"Radius of the circle in nautical miles, 15 when left out, at most 50."},{"name":"wind_from","type":null,"required":false,"description":"Direction the wind blows from: degrees true (0 to 360) or a point of the 16-point compass (N, NNE, NE ... NNW)."},{"name":"wind_kn","type":"number","required":false,"description":"Mean wind speed in knots (kt). Needs wind_from. Under 3 kt as whole knots the direction counts for nothing, as on the site: every night counts."}],"outputs":[{"name":"center","type":"object","required":true,"description":null},{"name":"note","type":"string|null","required":true,"description":null},{"name":"places","type":"array","required":true,"description":null},{"name":"places_in_radius","type":"integer","required":true,"description":null},{"name":"radius_nm","type":"number","required":true,"description":null},{"name":"source","type":"object","required":true,"description":null},{"name":"tonight","type":null,"required":true,"description":"Tonight's forecast at the position, null when it isn't available."},{"name":"wind","type":null,"required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":563},{"name":"get_bay_evidence","title":"Get what boats did at one place","description":"What boats did at one place, as its page on the site shows it. Its nights. Its nights by the eight compass points the wind blew from, split under 10, 10 to 20 and 20 kt or more, with the different boats and the windiest night of each. Its boats by length and type (cells under 3 boats null), its day stops by wind, its nights by swell direction where its page shows them, and the places nearby with how far and which way. It carries tonight's forecast at the place: the night's strongest forecast wind and the place's nights in that wind, as its page's Tonight shows it. Give bay_id, or name with near (WGS84 decimal degrees) to rank places of one name. Several places of one name come back as candidates.","inputs":[{"name":"bay_id","type":"string","required":false,"description":"The place's id, as find_anchorages and list results give it (the page address's last part, e.g. cane-garden-bay)."},{"name":"name","type":"string","required":false,"description":"The place's name, when bay_id isn't known. Several places of one name are listed as candidates, never guessed."},{"name":"near","type":"object","required":false,"description":"A position to rank places of the same name by nearness, WGS84 decimal degrees."}],"outputs":[{"name":"bay","type":null,"required":true,"description":null},{"name":"candidates","type":"array","required":true,"description":null},{"name":"note","type":"string|null","required":true,"description":null},{"name":"source","type":"object","required":true,"description":null},{"name":"tonight","type":null,"required":true,"description":"Tonight at this place, null when the forecast isn't available or for candidates."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":270},{"name":"get_climatology","title":"Get the wind through the year at a place","description":"Wind through the year at a place, as its page shows it: for each month, the nights whose strongest hour reached 20 kt and 30 kt, each year's fewest and most of them, the commonest directions of the nights of 20 kt or more, and the strongest gust, over ten years, for the area round the place. The first call for an area can answer preparing, then ready a few minutes later.","inputs":[{"name":"bay_id","type":"string","required":true,"description":"The place's id, as find_anchorages gives it."},{"name":"month","type":"integer","required":false,"description":"One month, 1 (January) to 12 (December). Every month when left out."}],"outputs":[{"name":"bay_id","type":"string","required":true,"description":null},{"name":"months","type":"array","required":true,"description":null},{"name":"name","type":"string|null","required":true,"description":null},{"name":"note","type":"string|null","required":true,"description":null},{"name":"source","type":"object","required":true,"description":null},{"name":"status","type":"string","required":true,"description":null},{"name":"years","type":null,"required":true,"description":"How many years the wind through the year covers."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":143},{"name":"list_regions","title":"List countries, regions and cruising areas","description":"The site's directory of places where boats stayed the night. Without a country: each country with its number of places. With a country (directory slug or ISO code): its regions and cruising areas with their number of places. Each with the address of its directory page.","inputs":[{"name":"country","type":"string","required":false,"description":"A country's directory slug (new-zealand) or ISO 3166 two-letter code (NZ). Every country when left out."}],"outputs":[{"name":"areas","type":"array","required":true,"description":null},{"name":"countries","type":"array","required":true,"description":null},{"name":"country","type":null,"required":true,"description":null},{"name":"note","type":"string|null","required":true,"description":null},{"name":"regions","type":"array","required":true,"description":null},{"name":"source","type":"object","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":93}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T03:20:59.000Z","track":"remote","endpoint":"https://whereboatsanchor.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=whereboatsanchor.com","issuer":"CN=WE1,O=Google Trust Services,C=US","notBefore":"2026-10-07T04:48:48Z","notAfter":"2027-01-05T05:48:35Z","keyType":"ECDSA","keyBits":256,"isCa":false},{"subject":"CN=WE1,O=Google Trust Services,C=US","issuer":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","notBefore":"2023-12-13T09:00:00Z","notAfter":"2029-02-20T14:00:00Z","keyType":"ECDSA","keyBits":256,"isCa":true},{"subject":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","issuer":"CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE","notBefore":"2023-11-15T03:43:21Z","notAfter":"2028-01-28T00:00:42Z","keyType":"ECDSA","keyBits":384,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"whereboatsanchor.com.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"com.","outcome":"verified","label":"Verified"},{"zone":"whereboatsanchor.com.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"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-10-29","recent":[{"id":"chg_01a1a492-09ee-7cac-ac7b-1379626fdbd0","kind":"score.total_changed","summary":"Trust score (70 → 71)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/com-whereboatsanchor-anchorages/whereboatsanchor#chg-chg_01a1a492-09ee-7cac-ac7b-1379626fdbd0"},{"id":"chg_01a19f6b-0032-7bf9-9b9d-9001dd48b27a","kind":"tool.description_changed","summary":"Tool “find_anchorages” rewrote its description, which is the text the model reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/com-whereboatsanchor-anchorages/whereboatsanchor#chg-chg_01a19f6b-0032-7bf9-9b9d-9001dd48b27a"},{"id":"chg_01a19a45-d3db-798d-a77f-5828a5750471","kind":"tool.description_changed","summary":"Tool “find_anchorages” rewrote its description, which is the text the model reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-whereboatsanchor-anchorages/whereboatsanchor#chg-chg_01a19a45-d3db-798d-a77f-5828a5750471"},{"id":"chg_01a19a45-d3dc-7b8b-8d06-da5a2c30f5e9","kind":"score.total_changed","summary":"Trust score (69 → 70)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-whereboatsanchor-anchorages/whereboatsanchor#chg-chg_01a19a45-d3dc-7b8b-8d06-da5a2c30f5e9"},{"id":"chg_01a19520-7bae-74df-9e36-9a57c67fa3cc","kind":"tool.description_changed","summary":"Tool “find_anchorages” rewrote its description, which is the text the model reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/com-whereboatsanchor-anchorages/whereboatsanchor#chg-chg_01a19520-7bae-74df-9e36-9a57c67fa3cc"},{"id":"chg_01a19520-7baf-795b-89d9-088ebbd4f427","kind":"param.description_changed","summary":"“find_anchorages” reworded the description of “wind_kn”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/com-whereboatsanchor-anchorages/whereboatsanchor#chg-chg_01a19520-7baf-795b-89d9-088ebbd4f427"},{"id":"chg_01a18ff8-d3dc-76df-8435-51eef3d143c4","kind":"score.total_changed","summary":"Trust score (68 → 69)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/com-whereboatsanchor-anchorages/whereboatsanchor#chg-chg_01a18ff8-d3dc-76df-8435-51eef3d143c4"},{"id":"chg_01a18ad2-b380-7f07-aebb-96db95a1cf0a","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/com-whereboatsanchor-anchorages/whereboatsanchor#chg-chg_01a18ad2-b380-7f07-aebb-96db95a1cf0a"},{"id":"chg_01a18976-c3b3-78d9-94e1-b7d944564c78","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/com-whereboatsanchor-anchorages/whereboatsanchor#chg-chg_01a18976-c3b3-78d9-94e1-b7d944564c78"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/com-whereboatsanchor-anchorages/whereboatsanchor/changelog.json"},"links":{"html":"https://verifymcp.io/servers/com-whereboatsanchor-anchorages/whereboatsanchor","markdown":"https://verifymcp.io/servers/com-whereboatsanchor-anchorages/whereboatsanchor.md","changelogJson":"https://verifymcp.io/servers/com-whereboatsanchor-anchorages/whereboatsanchor/changelog.json","changelogRss":"https://verifymcp.io/servers/com-whereboatsanchor-anchorages/whereboatsanchor.xml","external":[{"label":"Remote endpoint","href":"https://whereboatsanchor.com/mcp"},{"label":"Website","href":"https://whereboatsanchor.com/connect"}]}}