{
  "data": {
    "tool": {
      "category": "",
      "endpoint": "https://mcp.ohmywind.fr/mcp",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/ohmywind-sailing-planner.json",
      "kind": "mcp",
      "listed": "indexed",
      "liveUrl": "https://www.anchorterminal.com/api/v1/live/ohmywind-sailing-planner.json",
      "markdownUrl": "https://www.anchorterminal.com/tools/ohmywind-sailing-planner.md",
      "mcpTools": {
        "check": {
          "checker": "anchor-check/1.0",
          "totalTokens": 3841,
          "counts": {
            "error": 0,
            "note": 2,
            "warn": 3
          },
          "findings": [
            {
              "rule": "TC07",
              "severity": "warn",
              "tool": "plan_passage",
              "message": "the description is about 2,629 tokens",
              "fix": "Keep the description to what a model needs to choose and call the tool; move the manual to a resource or the docs."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "plan_passage",
              "message": "3 parameters without a description: latest_departure, sweep_interval_hours, target_eta",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC22",
              "severity": "warn",
              "tool": "plan_passage",
              "message": "the definition is about 3,075 tokens",
              "fix": "Trim the description and parameter docs, or split the tool."
            },
            {
              "rule": "TC11",
              "severity": "note",
              "tool": "get_marine_forecast",
              "message": "parameters are documented in the description but not in the schema: end, lat, lon, models, start",
              "fix": "Put each one in its property's description (in Python: Annotated[str, Field(description=...)])."
            },
            {
              "rule": "TC11",
              "severity": "note",
              "tool": "plan_passage",
              "message": "parameters are documented in the description but not in the schema: archetype, departure, efficiency, max_hs_m, min_upwind_twa_deg, model and 4 more",
              "fix": "Put each one in its property's description (in Python: Annotated[str, Field(description=...)])."
            }
          ]
        },
        "checkedAt": "2026-10-04T22:25:05Z",
        "count": 4,
        "schemaTokens": 3841,
        "status": "ok",
        "tools": [
          {
            "name": "read_me",
            "description": "Return OhMyWind's calculation methodology as Markdown.\n\n        Call this when the user asks how passage timing, complexity, or\n        boat speed are computed (e.g. \"comment c'est calculé ?\",\n        \"what assumptions does the model use?\", \"is tacking modelled?\").\n\n        The returned text covers: polar lookup, default efficiency 0.75,\n        VMG / tacking correction, wave derate, single-pass timing,\n        compare-windows mode semantics, Mediterranean simplifications\n        (tides, currents), and what is intentionally NOT modelled in V1.\n        ",
            "inputSchema": {
              "properties": {},
              "title": "read_meArguments",
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "title": "Result",
                  "type": "string"
                }
              },
              "required": [
                "result"
              ],
              "title": "read_meOutput",
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Calculation method"
            }
          },
          {
            "name": "list_boat_archetypes",
            "description": "List the 7 boat archetypes with descriptive metadata.\n\n        The LLM (or user) maps a commercial model (e.g. \"Sun Odyssey 32\") to one\n        of these archetypes from the metadata — there is no server-side mapping.\n        ",
            "inputSchema": {
              "properties": {},
              "title": "list_boat_archetypesArguments",
              "type": "object"
            },
            "outputSchema": {
              "properties": {
                "result": {
                  "items": {
                    "additionalProperties": true,
                    "type": "object"
                  },
                  "title": "Result",
                  "type": "array"
                }
              },
              "required": [
                "result"
              ],
              "title": "list_boat_archetypesOutput",
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": false,
              "readOnlyHint": true,
              "title": "Boat archetypes"
            }
          },
          {
            "name": "get_marine_forecast",
            "description": "Fetch wind (and sea, when available) for a point and time window.\n\n        Args:\n            lat: latitude in degrees.\n            lon: longitude in degrees.\n            start: ISO-8601 datetime, timezone-aware (e.g. \"2026-05-01T06:00:00+00:00\").\n            end: ISO-8601 datetime, timezone-aware.\n            models: optional list of model names; defaults to AROME for the Med.\n\n        Pass a point at sea. Over land Open-Meteo still returns wind, but\n        every sea value comes back null, so the ``sea`` array is present and\n        empty of information rather than absent.\n\n        Note: the first request after inactivity may incur ~5s of cold-start.\n\n        ",
            "inputSchema": {
              "properties": {
                "end": {
                  "title": "End",
                  "type": "string"
                },
                "lat": {
                  "title": "Lat",
                  "type": "number"
                },
                "lon": {
                  "title": "Lon",
                  "type": "number"
                },
                "models": {
                  "anyOf": [
                    {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Models"
                },
                "start": {
                  "title": "Start",
                  "type": "string"
                }
              },
              "required": [
                "lat",
                "lon",
                "start",
                "end"
              ],
              "title": "get_marine_forecastArguments",
              "type": "object"
            },
            "outputSchema": {
              "additionalProperties": true,
              "title": "get_marine_forecastDictOutput",
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": true,
              "readOnlyHint": true,
              "title": "Marine forecast"
            }
          },
          {
            "name": "plan_passage",
            "description": "(not repeated here: it reads like a rating or a usage claim)",
            "inputSchema": {
              "properties": {
                "archetype": {
                  "title": "Archetype",
                  "type": "string"
                },
                "departure": {
                  "title": "Departure",
                  "type": "string"
                },
                "efficiency": {
                  "default": 0.75,
                  "title": "Efficiency",
                  "type": "number"
                },
                "latest_departure": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Latest Departure"
                },
                "max_hs_m": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Max Hs M"
                },
                "min_upwind_twa_deg": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Min Upwind Twa Deg"
                },
                "model": {
                  "default": "auto",
                  "title": "Model",
                  "type": "string"
                },
                "motor_speed_kn": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Motor Speed Kn"
                },
                "motor_threshold_kn": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Motor Threshold Kn"
                },
                "segment_length_nm": {
                  "default": 10,
                  "title": "Segment Length Nm",
                  "type": "number"
                },
                "sweep_interval_hours": {
                  "default": 1,
                  "title": "Sweep Interval Hours",
                  "type": "integer"
                },
                "target_eta": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "default": null,
                  "title": "Target Eta"
                },
                "waypoints": {
                  "items": {
                    "additionalProperties": {
                      "type": "number"
                    },
                    "type": "object"
                  },
                  "title": "Waypoints",
                  "type": "array"
                }
              },
              "required": [
                "waypoints",
                "departure",
                "archetype"
              ],
              "title": "plan_passageArguments",
              "type": "object"
            },
            "outputSchema": {
              "additionalProperties": true,
              "title": "plan_passageDictOutput",
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "idempotentHint": true,
              "openWorldHint": true,
              "readOnlyHint": true,
              "title": "Plan a passage"
            }
          }
        ]
      },
      "name": "OhMyWind",
      "note": "Indexed from the official MCP registry: facts and our own checks, not reviewed, so no score, grade or rank.",
      "packages": null,
      "pageJsonUrl": "https://www.anchorterminal.com/tools/ohmywind-sailing-planner.json",
      "popularity": {
        "githubStars": 10
      },
      "registryName": "fr.ohmywind/sailing-planner",
      "remotes": [
        {
          "type": "streamable-http",
          "url": "https://mcp.ohmywind.fr/mcp"
        }
      ],
      "repository": "https://github.com/qdonnars/ohmywind",
      "reviewed": false,
      "slug": "ohmywind-sailing-planner",
      "source": "the official MCP registry",
      "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers?search=fr.ohmywind/sailing-planner",
      "summary": "Sailing passage planner for any coast, with high-precision tides on the French Atlantic.",
      "updatedAt": "2026-08-01T23:15:02Z",
      "url": "https://www.anchorterminal.com/tools/ohmywind-sailing-planner",
      "vendor": "ohmywind.fr",
      "vendorUrl": "https://ohmywind.fr",
      "version": "1.0.1",
      "websiteUrl": "https://ohmywind.fr",
      "where": "hosted",
      "why": [
        "vendor"
      ]
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/tools/ohmywind-sailing-planner",
    "json": "https://www.anchorterminal.com/tools/ohmywind-sailing-planner.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/tools/ohmywind-sailing-planner.md",
    "slim": "https://www.anchorterminal.com/tools/ohmywind-sailing-planner.min.md"
  },
  "markdown": "# OhMyWind\n\n\u003e Indexed, not reviewed: facts from the official MCP registry and our own checks. No score, grade or rank, and not in the rankings until the panel reviews it. How the index works: https://www.anchorterminal.com/indexed/\n\n- Kind: MCP server, by ohmywind.fr (https://ohmywind.fr)\n- Listed because: It's published in the registry under ohmywind.fr, a namespace the registry only gives to whoever proves they control that domain.\n- What the official MCP registry says: Sailing passage planner for any coast, with high-precision tides on the French Atlantic.\n\n## Facts\n\n- MCP registry: `fr.ohmywind/sailing-planner` 1.0.1\n- Endpoint: https://mcp.ohmywind.fr/mcp (streamable HTTP)\n- Source: https://github.com/qdonnars/ohmywind\n- Website: https://ohmywind.fr\n- GitHub stars: 10\n- Registry entry updated: 2026-08-01\n\n## Tools\n\n- Tools it lists (4, about 3,841 tokens of context, `tools/list` without credentials over MCP 2025-11-25, checked 2026-10-04 22:25 UTC):\n  - `read_me` (read-only): Return OhMyWind's calculation methodology as Markdown. Call this when the user asks how passage timing, complexity, or boat speed are computed (e.g. \"comment…\n  - `list_boat_archetypes` (read-only): List the 7 boat archetypes with descriptive metadata. The LLM (or user) maps a commercial model (e.g. \"Sun Odyssey 32\") to one of these archetypes from the…\n  - `get_marine_forecast` (read-only): Fetch wind (and sea, when available) for a point and time window. Args: lat: latitude in degrees. lon: longitude in degrees. start: ISO-8601 datetime,…\n  - `plan_passage` (read-only): (not repeated here: it reads like a rating or a usage claim)\n- How its tools read to an agent (0 errors, 3 warnings, 2 notes, about 3,841 tokens; rules at https://www.anchorterminal.com/check.md; not part of the score):\n  - warn TC07 plan_passage: the description is about 2,629 tokens\n  - warn TC11 plan_passage: 3 parameters without a description: latest_departure, sweep_interval_hours, target_eta\n  - warn TC22 plan_passage: the definition is about 3,075 tokens\n  - note TC11 get_marine_forecast: parameters are documented in the description but not in the schema: end, lat, lon, models, start\n  - note TC11 plan_passage: parameters are documented in the description but not in the schema: archetype, departure, efficiency, max_hs_m, min_upwind_twa_deg, model and 4 more\n\n- JSON: https://www.anchorterminal.com/api/v1/tools/ohmywind-sailing-planner.json\n- Being indexed says nothing about quality, and nobody can pay for it. Ask for a review: https://www.anchorterminal.com/builders/#claiming\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Indexed",
        "url": "https://www.anchorterminal.com/indexed/"
      },
      {
        "name": "OhMyWind",
        "url": ""
      }
    ],
    "description": "OhMyWind, an MCP server by ohmywind.fr, listed from the official MCP registry. Indexed, not reviewed: facts and our own checks, no score or ranking. Sailing passage planner for any coast, with high-precision tides on the French Atlantic.",
    "facts": [
      "not reviewed",
      "not ranked",
      "facts only"
    ],
    "h1": "OhMyWind",
    "image": "https://www.anchorterminal.com/assets/og/indexed.png",
    "path": "/tools/ohmywind-sailing-planner",
    "published": "",
    "section": "indexed",
    "title": "OhMyWind: MCP server, indexed from the official MCP registry",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/tools/ohmywind-sailing-planner"
  },
  "tokens": {
    "markdown": 800,
    "slim": 730
  },
  "version": 1
}
