Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "read_me"
⟨50 unchanged words⟩ derate, single-pass timing, compare-windows mode semantics,Mediterraneanregionalsimplifications (tidesdefaults,currents)wind against current,andshort-period chop, what is intentionallyNOTnot modelled,inand theV1.data attributions.
Changed the definition of "get_marine_forecast" and "plan_passage"
⟨310 unchanged words⟩ blowing right now. Pass a point at sea.OverOpen-MeteolandMarineOpen-Meteoanswersstillfromreturnsthewind,nearestbutseaeverycell:seaa
Added "get_tidal_stream"; changed the definition of "get_marine_forecast" and "plan_passage" (4 tools before, 5 now)
FetchWind,windsea,(andseawhere it matters current and tide,whenatavailable)oneforpoint. For the questions about apointplaceandrathertime
Changed the definition of "list_boat_archetypes"
List the7boat archetypes with descriptive metadata. The LLM (or ⟨15 unchanged words⟩ the metadata — there is no server-side mapping. ``voile_aviron_16ft`` is for open sail-and-oar dinghies only (no cabin, rowed as well as sailed); a small cabin cruiser maps to ``cruiser_20ft``.
Changed the definition of "plan_passage"
⟨617 unchanged words⟩ ("3 fenêtres ignorées …"). - ``notices`` / ``meta_notices``: the same warnings as codes with their values (``{"code": "sweep.skipped_windows", "params": …}``), for a client that says them in another language. Read the French ``message`` and ignore these. - ``disclaimer``: usage warning to relay (see below) ⟨444 unchanged words⟩ d) → GFS (≤16 d). Passan explicit name to bypass. max_hs_m: optional max significant wave height (meters) over the route: pass it if you have a sea-state estimate from ``get_marine_forecast`` and want it factored into the score.
Certificate recorded, valid to 2026-12-04
Authorization not required
First tool surface recorded: 4 tools (server version 1.27.2)
Showing the latest 8 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨434 unchanged words⟩ by 2 km so harbours stay at sea, and any water a fine current atlas resolves counts as sea): a spit narrower than about 4 km ⟨674 unchanged words⟩ complexity, warnings) and offer ``openwind_url`` as the"View full plan →" link. ## ALWAYS include the openwind_url(s)linkintoyouradjustte
⟨182 unchanged words⟩ departure" view, often after step 2. 4. **Two ways to go** ("nord ou sud du Fromveur pour Ouessant ?", "par l'intérieur ou l'extérieur des Glénan ?", "Ré ou Aix demain ?"): one ``plan_passage`` call, the first route in ``waypoints`` and the others in ``alternatives`` (two at most), each with a short ``label`` saying how it goes ("Par le nord du Fromveur"). Every route is computed for the same departures, so the widget compares them cell by cell. Do not make one call per route. 5. **When to be at a pass** ("à quelle heure au Raz de Sein ?", "quand renverse le courant au Fromveur ?"): ``get_tidal_stream`` at the pass, with the course you will steer, and ``plan_passage`` comparing departures, both in the same turn; then pick the departure that brings you there in the favourable window. 6. **Methodology question** ("comment c'est calculé ?", ⟨39 unchanged words⟩ Waypoints must stay in the water This serverdoesrunsnoa coarse landcheck.checkItbeforesamplesanythingwindelse:andasealeg thatalongrunsthe polylineayoucouplepass,ofthenkilometresreportsoverdistanceland,ETAorandacomplexitywaypointforinland,thatgetspolylinethe call refused before any forecast request,whateverwith the leg and the place named. Redraw itcrosses.andAcalllegagain;drawnneverthroughshow the user apeninsularoute overraisesland. The shoreline is coarse (about 1 km, the coast widened byno2error:kmitsoreturnsharbours stay at sea): apassagespit narrower than about 4 km, or a leg that shaves a headland, passes the check and is timed as drawn, too short, too fast, and scoredon conditions the boat would nevermeet. So the route is still yours to draw. Between every consecutive pair of ⟨196 unchanged words⟩ a leg you drew wrong. ## Returned payload Every time comes back in the UTC offset of ``departure``: send the user's own (``+02:00`` for France in summer) and read the times as their clock. Single mode: - ``passage``: per-segment timing report ⟨29 unchanged words⟩ same passage in the standalone web app. - ``waypoints``: the route as you sent it, which the widget draws on a map. - ``route_label`` and ``alternatives[]``, only when you passed alternatives: each alternative has its ``label``, ``waypoints``, ``passage``, ``complexity`` and ``openwind_url``. - ``disclaimer``: usage warning to relay (see below) ⟨20 unchanged words⟩ ``windows[]``: each entry has ``departure``,``arrival``its ``weekday``, ``arrival``, ``duration_h``, ``distance_nm``, ``complexity`` (level+ label +rationale), ``conditions_summary`` (tws_min/max,predominant sailangle, hs_min/max), ``warnings``,``passage``(fulltheper-segmentdifficultyreport), ``complexity_full`` (full scorefirst), ``openwind_url``. - ``meta_warnings``:top-levelnotes about the whole sweep or the route ("3fenêtres ignorées …", a long route sampled more sparsely). -``notices`` / ``meta_notices````waypoints``: thesame warningsroute ascodesyouwith theirsentvaluesit,(``{"code":once"sweep.skipped_windows",for"params":all…}windows. - ``route_label`` and ``alternatives[]``),fora clientonlythatwhensaysyouthempassed alternatives:ineachanotheralternativelanguage.hasReaditsthe``label``,French``waypoints````message``andignoreitsthese.own ``windows[]``, same departures. - ``disclaimer``: usage warning to relay (see ⟨104 unchanged words⟩ response is automatically accompanied by an interactive widget:the live ohmywind.fr/plan viewserved via the``ui://openwind/plan-passage`` resource declared onthis tool's``_meta``.TheInwidgetcompare-windowsreadsmode``openwind_url``itfromlists thestructuredoutput and embedsdepartures; thematching plan view as an iframe. On hosts without MCPone theAppsusersupportselects (Cursor,theLeearliestChat,atterminalfirst),present a shortdrivestextasummarymap of theresult (route, ETA, complexity, warnings)and offer ``openwind_url`` as the "Viewyoufulldrew,plancoloured→"bylink. ##itsALWAYSwind,includeandtheitsopenwind_url(s)per-legindetail.yourIntextsingle modereply Evenitwhenshows thewidget renders inlinefigures, theuser wants the link spelled out so they canmapopenand thefull app, share it, orper-legbookmarkdetail.it.TheTreatuserthis as a hard requirement, not a fallback: - **Single mode**: endsees yourreply with a Markdown link built from the ``openwind_url`` field, e.g. ``[Voir le plan détaillé →](<openwind_url>)``. Alwayswaypointsuseon thatvalue verbatimmap,neveroneamoreURLreasonyoutocomposekeepyourself:everyit pointsleg atthe environment this server is configured for, which is not always the production site.- **Compare-windows mode**: list 2-4 of the most relevant windows and give each its own link, e.g. ``- Sam 2 mai 09h ·sea. On11h12hosts·without⚡2/5MCP·Apps[voirsupport→](url)``. The user picks one from the chatCursor,not the widget. Phrase the link with intent ("voir le planLedétaillé"Chat,"ouvrir cette fenêtre dans l'app"terminal),not just a bare URL: the user should knowpresentwhat clickingadoes. ##shortArgs waypoints:textlistsummary of``{"lat": ..., "lon": ...}`` dicts, 2 to 50. Used exactly as drawn. Read "Waypoints must stay inthewater"above before building it. departure: ISO-8601 datetime, timezone-aware. archetype: one of ``list_boat_archetypes()`` names. efficiency: multiplier on polar speed. ``0.85`` racing, ``0.75`` cruisingresult (default)route,``0.65`` loaded family cruisingETA,``0.55`` heavy seas / fouled hull. segment_length_nm: target sub-segment length. Default 10 nm balances precision vs Open-Meteo budget; drop to 5 for tight coastal workcomplexity,raise to 20 for long offshorewarnings) andlegs. model:offerwind``openwind_url``model.asDefaultthe``"auto"`` tries AROMEView(≤48fullh)plan →ICON-EU (≤5 d)"→link. ##ECMWFALWAYSIFSinclude0.25°the openwind_url(≤10 ds)→ GFSin(≤16yourd). Passte
{"properties":{"alternatives":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"default":null,"title":"Alternatives"},"archetype":{"title":"Archetype","type": ⟨10 unchanged words⟩ ":"Efficiency","type":"number"},"inland_waterway":{"default":false,"title":"Inland Waterway","type":"boolean"},"latest_departure":{"anyOf":[{"type":"string ⟨57 unchanged words⟩ "default":null,"title":"Motor Threshold Kn"},"route_label":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Route Label"},"segment_length_nm":{"default":10,"title ⟨44 unchanged words⟩
The tidal stream and the tide at one point, from the tidal atlases alone. For the questions about a pass or a harbour entrance: when to be at the Raz de Sein to carry the stream, when the Fromveur turns, how hard it runs at Port-Navalo tomorrow, when high water is at Chausey. Costs no weather request: harmonic predictions from the atlases this server ships (SHOM, MARC and others), the same ones ``plan_passage`` applies leg by leg. Args: lat: latitude in degrees, at sea, in the pass itself. lon: longitude in degr…