{
  "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"
  },
  "tool": {
    "category": "weather",
    "endpoint": "https://mcp.nausika.app",
    "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/nausika-mcp.json",
    "kind": "mcp",
    "listed": "indexed",
    "liveUrl": "https://www.anchorterminal.com/api/v1/live/nausika-mcp.json",
    "markdownUrl": "https://www.anchorterminal.com/tools/nausika-mcp.md",
    "mcpTools": {
      "check": {
        "checker": "anchor-check/1.0",
        "totalTokens": 17337,
        "counts": {
          "error": 0,
          "note": 0,
          "warn": 3
        },
        "findings": [
          {
            "rule": "TC22",
            "severity": "warn",
            "tool": "nausika_marine_forecast",
            "message": "the definition is about 2,114 tokens",
            "fix": "Trim the description and parameter docs, or split the tool."
          },
          {
            "rule": "TC22",
            "severity": "warn",
            "tool": "nausika_search_places",
            "message": "the definition is about 2,112 tokens",
            "fix": "Trim the description and parameter docs, or split the tool."
          },
          {
            "rule": "TC23",
            "severity": "warn",
            "message": "19 tools, about 17,162 tokens of definitions",
            "fix": "Split the server by job, or offer a smaller default toolset (a read-only set, or a search-then-call pattern)."
          }
        ]
      },
      "checkedAt": "2026-10-04T22:21:11Z",
      "count": 19,
      "schemaTokens": 17337,
      "status": "ok",
      "tools": [
        {
          "name": "nausika_marine_forecast",
          "title": "Marine + Atmospheric Forecast",
          "description": "Marine + atmospheric forecast at (latitude, longitude in decimal degrees). Returns waves, swell, currents, SST, wind, gusts, pressure, weather_code, visibility, precipitation, temperature, UV. Directions FROM.\n\nPresets: now, today, tactical (default 3d), planning (8d), extended (14d), none. Windows: start_hour/end_hour, start_date/end_date, forecast_hours, forecast_days. Extra via variables[]. Covers only a rolling window near today (~16 days ahead for atmospheric data, ~8 days for marine/wave data) — for dates further out, use nausika_seasonal_forecast (1-7 month outlook) instead.\n\nPass include_percentiles=true to also fetch the ECMWF IFS-ENS 50-member ensemble and expose \u003cvar\u003e_p10/_p50/_p90 series for atmospheric variables (precipitation, wind, gusts, pressure, temperature, etc.) alongside the deterministic forecast. Use it when forecast uncertainty matters — convective setups, planning/extended horizons, or any time the deterministic precip total looks inconsistent with the precipitation_probability. Waves/swell/currents/SST remain deterministic (no public ensemble). Default false to keep payload small.\n\nExample: latitude=41.39, longitude=9.16, preset=\"today\". Chain nausika_geocode for place→coords.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "end_date": {
                "description": "Window end date YYYY-MM-DD. Used with start_date. Defaults to preset. Same ~16-day (forecast) / ~8-day (marine) window limit as start_date — use nausika_seasonal_forecast beyond that.",
                "examples": [
                  "2026-06-22"
                ],
                "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                "type": "string"
              },
              "end_hour": {
                "description": "Window end ISO YYYY-MM-DDThh:mm. Used with start_hour. Defaults to preset.",
                "examples": [
                  "2026-06-15T18:00",
                  "2026-06-15T23:00"
                ],
                "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}$",
                "type": "string"
              },
              "forecast_days": {
                "description": "Override preset days (1-16). Forecast endpoint caps at 16, Marine at 8. Defaults to preset.",
                "examples": [
                  3,
                  7
                ],
                "maximum": 16,
                "minimum": 1,
                "type": "integer"
              },
              "forecast_hours": {
                "description": "Override with an hourly window. Wins over forecast_days. Defaults to preset.",
                "examples": [
                  12,
                  24
                ],
                "maximum": 9007199254740991,
                "minimum": 1,
                "type": "integer"
              },
              "include_percentiles": {
                "default": false,
                "description": "When true, ALSO fetch the Open-Meteo ECMWF IFS-ENS ensemble (50 perturbed members) and expose `\u003cvar\u003e_p10/_p50/_p90` percentile series alongside the deterministic forecast for atmospheric variables (precipitation, wind, gusts, pressure, temperature, etc.). Reveals forecast uncertainty — useful at planning/extended horizons or for convective setups where the deterministic run can disagree wildly with the ensemble median. Waves/swell/currents/SST stay deterministic (no public ensemble). Adds one extra HTTP call (~200ms latency) and grows the hourly payload ~4×. Default false.",
                "type": "boolean"
              },
              "latitude": {
                "description": "Latitude in decimal degrees (WGS84, -90 to 90)",
                "examples": [
                  38.7,
                  43.55,
                  41.39
                ],
                "maximum": 90,
                "minimum": -90,
                "type": "number"
              },
              "longitude": {
                "description": "Longitude in decimal degrees (WGS84, -180 to 180)",
                "examples": [
                  9.14,
                  10.32,
                  2.17
                ],
                "maximum": 180,
                "minimum": -180,
                "type": "number"
              },
              "preset": {
                "default": "tactical",
                "description": "High-level mode. now=current snapshot, today=24h hourly+daily, tactical=3d hourly_3+daily (default), planning=8d daily, extended=14d daily, none=3d hourly_3+daily but with NO core variables (caller supplies full variables list).",
                "enum": [
                  "now",
                  "today",
                  "tactical",
                  "planning",
                  "extended",
                  "none"
                ],
                "type": "string"
              },
              "start_date": {
                "description": "Window start date YYYY-MM-DD. Used with end_date. Wins over forecast_hours/forecast_days. Defaults to preset. Must fall within the rolling forecast window (~16 days ahead for atmospheric data, ~8 days for marine/wave data) — for dates further out, use nausika_seasonal_forecast instead.",
                "examples": [
                  "2026-06-15"
                ],
                "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                "type": "string"
              },
              "start_hour": {
                "description": "Window start ISO YYYY-MM-DDThh:mm. Used with end_hour. Most specific override (wins over date and hour-count windows). Defaults to preset.",
                "examples": [
                  "2026-06-15T06:00",
                  "2026-06-15T12:00"
                ],
                "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}$",
                "type": "string"
              },
              "temporal_resolution": {
                "description": "Override hourly granularity. hourly_1=every hour, hourly_3=every 3h, hourly_6=every 6h. Defaults to the preset's resolution.",
                "enum": [
                  "hourly_1",
                  "hourly_3",
                  "hourly_6"
                ],
                "type": "string"
              },
              "variables": {
                "description": "Extra variables added to the preset core (additive). Each is routed to its endpoint automatically. Required (non-empty) when preset='none'. Examples: swell_wave_height/swell_wave_direction/swell_wave_period for swell breakdown, ocean_current_velocity/ocean_current_direction (FROM-corrected) for currents, cape for thunderstorm risk, uv_index_max for UV.",
                "examples": [
                  [
                    "wave_height",
                    "wind_speed_10m"
                  ],
                  [
                    "swell_wave_height",
                    "uv_index_max"
                  ]
                ],
                "items": {
                  "enum": [
                    "wave_height",
                    "wave_direction",
                    "wave_period",
                    "wind_wave_height",
                    "wind_wave_direction",
                    "wind_wave_period",
                    "wind_wave_peak_period",
                    "swell_wave_height",
                    "swell_wave_direction",
                    "swell_wave_period",
                    "swell_wave_peak_period",
                    "secondary_swell_wave_height",
                    "secondary_swell_wave_direction",
                    "secondary_swell_wave_period",
                    "tertiary_swell_wave_height",
                    "tertiary_swell_wave_direction",
                    "tertiary_swell_wave_period",
                    "ocean_current_velocity",
                    "ocean_current_direction",
                    "sea_surface_temperature",
                    "sea_level_height_msl",
                    "invert_barometer_height",
                    "wind_speed_10m",
                    "wind_direction_10m",
                    "wind_gusts_10m",
                    "pressure_msl",
                    "surface_pressure",
                    "weather_code",
                    "visibility",
                    "cloud_cover",
                    "cloud_cover_low",
                    "cloud_cover_mid",
                    "cloud_cover_high",
                    "precipitation",
                    "precipitation_probability",
                    "rain",
                    "showers",
                    "temperature_2m",
                    "apparent_temperature",
                    "relative_humidity_2m",
                    "dew_point_2m",
                    "cape",
                    "is_day",
                    "shortwave_radiation",
                    "sunrise",
                    "sunset",
                    "daylight_duration",
                    "sunshine_duration",
                    "uv_index_max",
                    "uv_index_clear_sky_max"
                  ],
                  "type": "string"
                },
                "type": "array"
              }
            },
            "required": [
              "latitude",
              "longitude"
            ],
            "type": "object"
          },
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "_attribution": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "license": {
                      "type": "string"
                    },
                    "license_url": {
                      "type": "string"
                    },
                    "source_url": {
                      "type": "string"
                    },
                    "text": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "text",
                    "license",
                    "source_url"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "_disclaimer": {
                "type": "string"
              },
              "coordinates_requested": {
                "additionalProperties": false,
                "properties": {
                  "latitude": {
                    "type": "number"
                  },
                  "longitude": {
                    "type": "number"
                  }
                },
                "required": [
                  "latitude",
                  "longitude"
                ],
                "type": "object"
              },
              "current": {
                "additionalProperties": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "propertyNames": {
                  "type": "string"
                },
                "type": "object"
              },
              "daily": {
                "additionalProperties": {
                  "items": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "type": "array"
                },
                "properties": {
                  "time": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "required": [
                  "time"
                ],
                "type": "object"
              },
              "forecast_resolved": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "distance_km": {
                        "type": "number"
                      },
                      "latitude": {
                        "type": "number"
                      },
                      "longitude": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "latitude",
                      "longitude",
                      "distance_km"
                    ],
                    "type": "object"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "forecast_unavailable_reason": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "hourly": {
                "additionalProperties": {
                  "items": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "type": "array"
                },
                "properties": {
                  "time": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "required": [
                  "time"
                ],
                "type": "object"
              },
              "marine_resolved": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "distance_km": {
                        "type": "number"
                      },
                      "latitude": {
                        "type": "number"
                      },
                      "longitude": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "latitude",
                      "longitude",
                      "distance_km"
                    ],
                    "type": "object"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "marine_unavailable_reason": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "preset": {
                "enum": [
                  "now",
                  "today",
                  "tactical",
                  "planning",
                  "extended",
                  "none"
                ],
                "type": "string"
              },
              "timezone": {
                "type": "string"
              },
              "units": {
                "additionalProperties": {
                  "type": "string"
                },
                "propertyNames": {
                  "type": "string"
                },
                "type": "object"
              }
            },
            "required": [
              "preset",
              "timezone",
              "coordinates_requested",
              "marine_resolved",
              "forecast_resolved",
              "marine_unavailable_reason",
              "forecast_unavailable_reason",
              "units"
            ],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "openWorldHint": true,
            "readOnlyHint": true
          }
        },
        {
          "name": "nausika_seasonal_forecast",
          "title": "Seasonal Forecast",
          "description": "Fetch 1-7 month ECMWF SEAS5 seasonal forecast for one Mediterranean point. Returns ensemble-mean DAILY + MONTHLY aggregates of wind, SST, temperature, precipitation, cloud cover (extend via variables[]). NO waves — chain nausika_marine_forecast for short-term wind + waves.\n\nInputs: latitude, longitude, start_date, end_date, variables.\nExample: latitude=40.12, longitude=9.01, start_date=\"2026-08-01\", end_date=\"2026-08-31\". SEAS5 forecasts forward only: a start_date in the past is clamped to today and an end_date beyond today+210d is clamped to the horizon, both reported in the response. A window that ends in the past is rejected.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "end_date": {
                "description": "Window end date (UTC, ISO YYYY-MM-DD). Must be ≥ start_date. Dates beyond the SEAS5 horizon (today + 210 days) are clamped — the response reports the adjustment.",
                "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                "type": "string"
              },
              "include_members": {
                "default": false,
                "description": "When true, expose all 50 ECMWF SEAS5 ensemble members (`\u003cvar\u003e_memberNN`) in the response. Default (false) collapses them into `_p10/_p50/_p90` percentile series alongside the ensemble mean — ~20× smaller payload, same statistical signal.",
                "type": "boolean"
              },
              "latitude": {
                "description": "Latitude in decimal degrees (WGS84, -90 to 90)",
                "examples": [
                  38.7,
                  43.55,
                  41.39
                ],
                "maximum": 90,
                "minimum": -90,
                "type": "number"
              },
              "longitude": {
                "description": "Longitude in decimal degrees (WGS84, -180 to 180)",
                "examples": [
                  9.14,
                  10.32,
                  2.17
                ],
                "maximum": 180,
                "minimum": -180,
                "type": "number"
              },
              "start_date": {
                "description": "Window start date (UTC, ISO YYYY-MM-DD). Dates before today are clamped to today (SEAS5 forecasts forward only) — the response reports the adjustment.",
                "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                "type": "string"
              },
              "variables": {
                "description": "Additional variables, additive to the core set (wind_speed_10m, wind_direction_10m, sea_surface_temperature, temperature_2m, precipitation, cloud_cover). Each is expanded server-side into the appropriate daily and monthly aggregates. Defaults to core variables only.",
                "examples": [
                  [
                    "sunshine_duration",
                    "pressure_msl"
                  ],
                  [
                    "apparent_temperature",
                    "relative_humidity_2m"
                  ]
                ],
                "items": {
                  "enum": [
                    "wind_speed_10m",
                    "wind_direction_10m",
                    "sea_surface_temperature",
                    "temperature_2m",
                    "precipitation",
                    "cloud_cover",
                    "pressure_msl",
                    "surface_pressure",
                    "sunshine_duration",
                    "shortwave_radiation",
                    "apparent_temperature",
                    "dew_point_2m",
                    "relative_humidity_2m",
                    "weather_code",
                    "sunrise_sunset",
                    "snowfall",
                    "snow_depth"
                  ],
                  "type": "string"
                },
                "type": "array"
              }
            },
            "required": [
              "latitude",
              "longitude",
              "start_date",
              "end_date"
            ],
            "type": "object"
          },
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "_attribution": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "license": {
                      "type": "string"
                    },
                    "license_url": {
                      "type": "string"
                    },
                    "source_url": {
                      "type": "string"
                    },
                    "text": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "text",
                    "license",
                    "source_url"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "_disclaimer": {
                "type": "string"
              },
              "coordinates_requested": {
                "additionalProperties": false,
                "properties": {
                  "latitude": {
                    "type": "number"
                  },
                  "longitude": {
                    "type": "number"
                  }
                },
                "required": [
                  "latitude",
                  "longitude"
                ],
                "type": "object"
              },
              "coordinates_resolved": {
                "additionalProperties": false,
                "properties": {
                  "distance_km": {
                    "type": "number"
                  },
                  "latitude": {
                    "type": "number"
                  },
                  "longitude": {
                    "type": "number"
                  }
                },
                "required": [
                  "latitude",
                  "longitude",
                  "distance_km"
                ],
                "type": "object"
              },
              "daily": {
                "additionalProperties": {
                  "items": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "type": "array"
                },
                "properties": {
                  "time": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "required": [
                  "time"
                ],
                "type": "object"
              },
              "model": {
                "enum": [
                  "seas5"
                ],
                "type": "string"
              },
              "monthly": {
                "additionalProperties": {
                  "items": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "type": "array"
                },
                "properties": {
                  "time": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "required": [
                  "time"
                ],
                "type": "object"
              },
              "monthly_derived": {
                "type": "boolean"
              },
              "range": {
                "additionalProperties": false,
                "properties": {
                  "end_date": {
                    "type": "string"
                  },
                  "start_date": {
                    "type": "string"
                  }
                },
                "required": [
                  "start_date",
                  "end_date"
                ],
                "type": "object"
              },
              "timezone": {
                "enum": [
                  "UTC"
                ],
                "type": "string"
              },
              "units": {
                "additionalProperties": {
                  "type": "string"
                },
                "propertyNames": {
                  "type": "string"
                },
                "type": "object"
              },
              "window_adjusted": {
                "type": "string"
              }
            },
            "required": [
              "coordinates_requested",
              "coordinates_resolved",
              "range",
              "model",
              "timezone",
              "daily",
              "monthly",
              "units"
            ],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "openWorldHint": true,
            "readOnlyHint": true
          }
        },
        {
          "name": "nausika_tides",
          "title": "Tides",
          "description": "Tide predictions or station discovery at a coordinate (latitude, longitude). Default: predictions from the nearest NOAA station; outside US waters falls back to a global modeled-tide source (forecast horizon ~15 days — longer windows are truncated, not rejected). Set stations_only=true to discover stations (capped by limit). Tune the window with begin_date (YYYYMMDD) + range_hours, the reference with datum, and output units (metric/english).\n\nThe modeled path reports range_m (peak-to-trough). Across most of the Mediterranean this is under 0.3 m, i.e. negligible for recreational navigation — the response says so explicitly, and you should not present such values as an actionable tide window. Tides matter on the Atlantic coasts, in the Gulf of Gabès, the northern Adriatic, and in the tidal streams of the Messina and Gibraltar straits.\n\nExample: latitude=37.77, longitude=-122.42. Chain nausika_geocode for place→coordinates; pair with nausika_marine_forecast.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "begin_date": {
                "description": "Start date in YYYYMMDD format (defaults to today UTC).",
                "examples": [
                  "20260615",
                  "20260701"
                ],
                "pattern": "^\\d{8}$",
                "type": "string"
              },
              "datum": {
                "default": "MLLW",
                "description": "Tidal datum reference (default MLLW)",
                "enum": [
                  "MLLW",
                  "MLW",
                  "MSL",
                  "MHW",
                  "MHHW",
                  "NAVD",
                  "STND"
                ],
                "type": "string"
              },
              "interval": {
                "default": "hilo",
                "description": "Interval: 'hilo' for high/low only (default), 'h' for hourly predictions",
                "enum": [
                  "h",
                  "hilo"
                ],
                "type": "string"
              },
              "latitude": {
                "description": "Latitude in decimal degrees (WGS84, -90 to 90)",
                "examples": [
                  38.7,
                  43.55,
                  41.39
                ],
                "maximum": 90,
                "minimum": -90,
                "type": "number"
              },
              "limit": {
                "default": 5,
                "description": "Max stations to return in stations_only mode (default 5, max 10).",
                "examples": [
                  5,
                  10
                ],
                "maximum": 10,
                "minimum": 1,
                "type": "integer"
              },
              "longitude": {
                "description": "Longitude in decimal degrees (WGS84, -180 to 180)",
                "examples": [
                  9.14,
                  10.32,
                  2.17
                ],
                "maximum": 180,
                "minimum": -180,
                "type": "number"
              },
              "range_hours": {
                "default": 48,
                "description": "Duration in hours (default 48, max 744 = ~31 days).",
                "examples": [
                  24,
                  48
                ],
                "maximum": 744,
                "minimum": 1,
                "type": "integer"
              },
              "stations_only": {
                "default": false,
                "description": "If true, return nearby stations without fetching predictions (station discovery mode). Defaults to false.",
                "examples": [
                  true,
                  false
                ],
                "type": "boolean"
              },
              "units": {
                "default": "metric",
                "description": "Units: metric (meters) or english (feet)",
                "enum": [
                  "metric",
                  "english"
                ],
                "type": "string"
              }
            },
            "required": [
              "latitude",
              "longitude"
            ],
            "type": "object"
          },
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "_attribution": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "license": {
                      "type": "string"
                    },
                    "license_url": {
                      "type": "string"
                    },
                    "source_url": {
                      "type": "string"
                    },
                    "text": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "text",
                    "license",
                    "source_url"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "_disclaimer": {
                "type": "string"
              },
              "center": {
                "additionalProperties": false,
                "properties": {
                  "latitude": {
                    "type": "number"
                  },
                  "longitude": {
                    "type": "number"
                  }
                },
                "required": [
                  "latitude",
                  "longitude"
                ],
                "type": "object"
              },
              "count": {
                "type": "number"
              },
              "data_source": {
                "enum": [
                  "stations",
                  "model"
                ],
                "type": "string"
              },
              "datum": {
                "enum": [
                  "MLLW",
                  "MLW",
                  "MSL",
                  "MHW",
                  "MHHW",
                  "NAVD",
                  "STND"
                ],
                "type": "string"
              },
              "interval": {
                "enum": [
                  "h",
                  "hilo"
                ],
                "type": "string"
              },
              "location": {
                "additionalProperties": false,
                "properties": {
                  "latitude": {
                    "type": "number"
                  },
                  "longitude": {
                    "type": "number"
                  }
                },
                "required": [
                  "latitude",
                  "longitude"
                ],
                "type": "object"
              },
              "mode": {
                "enum": [
                  "stations",
                  "predictions"
                ],
                "type": "string"
              },
              "model": {
                "additionalProperties": false,
                "properties": {
                  "disclaimer": {
                    "type": "string"
                  },
                  "resolution_km": {
                    "type": "number"
                  }
                },
                "required": [
                  "resolution_km",
                  "disclaimer"
                ],
                "type": "object"
              },
              "note": {
                "type": "string"
              },
              "predictions": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "level_m": {
                      "type": "number"
                    },
                    "time": {
                      "type": "string"
                    },
                    "type": {
                      "enum": [
                        "high",
                        "low"
                      ],
                      "type": "string"
                    }
                  },
                  "required": [
                    "time",
                    "level_m"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "range_m": {
                "type": "number"
              },
              "station": {
                "additionalProperties": false,
                "properties": {
                  "distance_nm": {
                    "type": "number"
                  },
                  "id": {
                    "type": "string"
                  },
                  "latitude": {
                    "type": "number"
                  },
                  "longitude": {
                    "type": "number"
                  },
                  "name": {
                    "type": "string"
                  },
                  "state": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "name",
                  "state",
                  "latitude",
                  "longitude",
                  "distance_nm"
                ],
                "type": "object"
              },
              "stations": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "distance_nm": {
                      "type": "number"
                    },
                    "id": {
                      "type": "string"
                    },
                    "latitude": {
                      "type": "number"
                    },
                    "longitude": {
                      "type": "number"
                    },
                    "name": {
                      "type": "string"
                    },
                    "state": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "state",
                    "latitude",
                    "longitude",
                    "distance_nm"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "units": {
                "enum": [
                  "meters",
                  "feet"
                ],
                "type": "string"
              }
            },
            "required": [
              "mode",
              "count",
              "_attribution"
            ],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "openWorldHint": true,
            "readOnlyHint": true
          }
        },
        {
          "name": "nausika_search_places",
          "title": "Search Places",
          "description": "Mediterranean nautical place search by proximity. latitude+longitude are ALWAYS required — this is not a standalone text search. 'query' is only a name filter applied within that radius; to find a place by name without known coordinates, call nausika_geocode first. Returns name, coords, distance_km, ratings, i18n names, wiki/OSM links. Each result is prefixed with an 8-char [xxxxxxxx] short-id usable as place_id in nausika_get_place / nausika_manage_favorite / nausika_manage_rating / nausika_manage_route legs[].pois[].\n\nInputs: latitude, longitude, radius_km, query, type, types, category, shelter_from, bottom_type, names_lang, min_coverage_score, max_coverage_score, limit, offset.\n\nExample: latitude=44.3, longitude=9.21, radius_km=50, query=\"marina genova\", category=\"poi\". Chain nausika_geocode → nausika_search_places → nausika_get_place(short-id).",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "bottom_type": {
                "description": "Bottom type filter (e.g. 'sand')",
                "enum": [
                  "sand",
                  "mud",
                  "rock",
                  "gravel",
                  "clay",
                  "coral",
                  "weed",
                  "shells"
                ],
                "type": "string"
              },
              "category": {
                "description": "Filter by category",
                "enum": [
                  "poi",
                  "location"
                ],
                "examples": [
                  "poi",
                  "location"
                ],
                "type": "string"
              },
              "latitude": {
                "description": "Center latitude for proximity search",
                "examples": [
                  38.7,
                  44.4
                ],
                "maximum": 90,
                "minimum": -90,
                "type": "number"
              },
              "limit": {
                "default": 30,
                "description": "Max results, default 30, max 100",
                "examples": [
                  10,
                  20,
                  50
                ],
                "maximum": 100,
                "minimum": 1,
                "type": "integer"
              },
              "longitude": {
                "description": "Center longitude for proximity search",
                "examples": [
                  9.14,
                  15.6
                ],
                "maximum": 180,
                "minimum": -180,
                "type": "number"
              },
              "max_coverage_score": {
                "description": "Maximum coverage score 0-100 — filter to low-coverage places that need enrichment",
                "examples": [
                  30,
                  50
                ],
                "maximum": 100,
                "minimum": 0,
                "type": "integer"
              },
              "min_coverage_score": {
                "description": "Minimum coverage score 0-100 — filter places by data completeness",
                "examples": [
                  60,
                  80
                ],
                "maximum": 100,
                "minimum": 0,
                "type": "integer"
              },
              "names_lang": {
                "description": "ISO 639-1 lang code. When set, response `name` is replaced with attributes.i18n.names[lang] if present; canonical OSM name kept as `name_canonical`.",
                "examples": [
                  "it",
                  "fr",
                  "en"
                ],
                "pattern": "^[a-z]{2,3}(-[A-Z]{2})?$",
                "type": "string"
              },
              "offset": {
                "default": 0,
                "description": "Offset for pagination",
                "examples": [
                  0,
                  30,
                  60
                ],
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "query": {
                "description": "Fuzzy text filter on place name, applied WITHIN the proximity search — requires latitude/longitude too, it is not a standalone text search. For 'find this place by name anywhere', use nausika_geocode instead.",
                "examples": [
                  "marina genova",
                  "porto antico",
                  "Bonifacio"
                ],
                "maxLength": 200,
                "minLength": 1,
                "type": "string"
              },
              "radius_km": {
                "default": 50,
                "description": "Search radius in km (default 50, max 200)",
                "examples": [
                  25,
                  50,
                  100
                ],
                "maximum": 200,
                "minimum": 0.5,
                "type": "number"
              },
              "shelter_from": {
                "description": "Compass direction to filter shelter (e.g. 'NW')",
                "enum": [
                  "N",
                  "NE",
                  "E",
                  "SE",
                  "S",
                  "SW",
                  "W",
                  "NW"
                ],
                "type": "string"
              },
              "type": {
                "description": "Filter by place type (ignored if 'types' is provided)",
                "enum": [
                  "marina",
                  "port",
                  "bay",
                  "fuel_station",
                  "yacht_club",
                  "city",
                  "island",
                  "cape",
                  "gulf",
                  "lighthouse",
                  "beach",
                  "town",
                  "village",
                  "peninsula",
                  "strait",
                  "restaurant",
                  "bar",
                  "cafe",
                  "supermarket",
                  "convenience",
                  "bakery",
                  "pharmacy",
                  "atm",
                  "laundry",
                  "post_office",
                  "clinic",
                  "water_point",
                  "chandlery"
                ],
                "type": "string"
              },
              "types": {
                "description": "Filter by multiple place types (takes precedence over 'type')",
                "examples": [
                  [
                    "marina",
                    "anchorage"
                  ],
                  [
                    "marina",
                    "port"
                  ]
                ],
                "items": {
                  "enum": [
                    "marina",
                    "port",
                    "bay",
                    "fuel_station",
                    "yacht_club",
                    "city",
                    "island",
                    "cape",
                    "gulf",
                    "lighthouse",
                    "beach",
                    "town",
                    "village",
                    "peninsula",
                    "strait",
                    "restaurant",
                    "bar",
                    "cafe",
                    "supermarket",
                    "convenience",
                    "bakery",
                    "pharmacy",
                    "atm",
                    "laundry",
                    "post_office",
                    "clinic",
                    "water_point",
                    "chandlery"
                  ],
                  "type": "string"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "_attribution": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "license": {
                      "type": "string"
                    },
                    "license_url": {
                      "type": "string"
                    },
                    "source_url": {
                      "type": "string"
                    },
                    "text": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "text",
                    "license",
                    "source_url"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "center": {
                "additionalProperties": false,
                "properties": {
                  "latitude": {
                    "type": "number"
                  },
                  "longitude": {
                    "type": "number"
                  }
                },
                "required": [
                  "latitude",
                  "longitude"
                ],
                "type": "object"
              },
              "count": {
                "type": "number"
              },
              "places": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "avg_rating": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "bottom_type": {
                      "items": {
                        "enum": [
                          "sand",
                          "mud",
                          "rock",
                          "gravel",
                          "clay",
                          "coral",
                          "weed",
                          "shells"
                        ],
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "category": {
                      "enum": [
                        "poi",
                        "location"
                      ],
                      "type": "string"
                    },
                    "coverage_score": {
                      "type": "number"
                    },
                    "data_origin_unverified": {
                      "type": "boolean"
                    },
                    "description": {
                      "type": "string"
                    },
                    "distance_km": {
                      "type": "number"
                    },
                    "elevation_m": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "email": {
                      "type": "string"
                    },
                    "i18n": {
                      "additionalProperties": false,
                      "properties": {
                        "descriptions": {
                          "additionalProperties": {
                            "type": "string"
                          },
                          "propertyNames": {
                            "type": "string"
                          },
                          "type": "object"
                        },
                        "names": {
                          "additionalProperties": {
                            "type": "string"
                          },
                          "propertyNames": {
                            "type": "string"
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "id": {
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$",
                      "type": "string"
                    },
                    "images": {
                      "items": {
                        "additionalProperties": false,
                        "properties": {
                          "alt_text": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "attribution_url": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "caption": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "credit": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "height": {
                            "anyOf": [
                              {
                                "maximum": 9007199254740991,
                                "minimum": -9007199254740991,
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "id": {
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$",
                            "type": "string"
                          },
                          "large_url": {
                            "type": "string"
                          },
                          "sort_order": {
                            "maximum": 9007199254740991,
                            "minimum": -9007199254740991,
                            "type": "integer"
                          },
                          "status": {
                            "enum": [
                              "pending",
                              "processing",
                              "ready",
                              "failed"
                            ],
                            "type": "string"
                          },
                          "thumb_url": {
                            "type": "string"
                          },
                          "width": {
                            "anyOf": [
                              {
                                "maximum": 9007199254740991,
                                "minimum": -9007199254740991,
                                "type": "integer"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "status",
                          "sort_order",
                          "thumb_url",
                          "large_url"
                        ],
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "is_favorited": {
                      "type": "boolean"
                    },
                    "latitude": {
                      "type": "number"
                    },
                    "links": {
                      "additionalProperties": false,
                      "properties": {
                        "osm_url": {
                          "type": "string"
                        },
                        "wikidata_url": {
                          "type": "string"
                        },
                        "wikipedia_url": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "longitude": {
                      "type": "number"
                    },
                    "max_loa_m": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "name": {
                      "type": "string"
                    },
                    "name_canonical": {
                      "type": "string"
                    },
                    "opening_hours": {
                      "type": "string"
                    },
                    "osm_primary_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "osm_primary_type": {
                      "anyOf": [
                        {
                          "enum": [
                            "node",
                            "way",
                            "relation"
                          ],
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "own_rating": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "phone": {
                      "type": "string"
                    },
                    "port_of_entry": {
                      "anyOf": [
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "rating_count": {
                      "type": "number"
                    },
                    "shelter_from": {
                      "items": {
                        "enum": [
                          "N",
                          "NE",
                          "E",
                          "SE",
                          "S",
                          "SW",
                          "W",
                          "NW"
                        ],
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "sources": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "type": {
                      "enum": [
                        "marina",
                        "port",
                        "bay",
                        "fuel_station",
                        "yacht_club",
                        "city",
                        "island",
                        "cape",
                        "gulf",
                        "lighthouse",
                        "beach",
                        "town",
                        "village",
                        "peninsula",
                        "strait",
                        "restaurant",
                        "bar",
                        "cafe",
                        "supermarket",
                        "convenience",
                        "bakery",
                        "pharmacy",
                        "atm",
                        "laundry",
                        "post_office",
                        "clinic",
                        "water_point",
                        "chandlery"
                      ],
                      "type": "string"
                    },
                    "vhf_channel": {
                      "type": "string"
                    },
                    "website": {
                      "type": "string"
                    },
                    "wiki_images": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "wikidata_id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "wikipedia": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "category",
                    "type",
                    "latitude",
                    "longitude",
                    "coverage_score",
                    "sources",
                    "avg_rating",
                    "rating_count",
                    "images",
                    "wiki_images",
                    "links"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "radius_km": {
                "type": "number"
              }
            },
            "required": [
              "center",
              "radius_km",
              "count",
              "places",
              "_attribution"
            ],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "openWorldHint": false,
            "readOnlyHint": true
          }
        },
        {
          "name": "nausika_get_place",
          "title": "Get Place",
          "description": "Fetch full detail for a single place given its 'id'. Accepts either a full UUID or the 8-char [xxxxxxxx] short-id shown by nausika_search_places. Returns canonical attributes (name/coords/category/type), localized i18n names+descriptions, wiki image URLs, ratings aggregates, plus extras only this tool provides: the raw OpenStreetMap tags of the primary OSM feature, and direct links to OSM, Wikidata, and Wikipedia.\n\nUse this after nausika_search_places returns a result you want to drill into. For proximity / text search, use nausika_search_places.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "id": {
                "description": "Place id — full UUID or 8+ char hex prefix (the [xxxxxxxx] shown by nausika_search_places).",
                "examples": [
                  "550e8400-e29b-41d4-a716-446655440000",
                  "550e8400"
                ],
                "maxLength": 64,
                "minLength": 8,
                "type": "string"
              }
            },
            "required": [
              "id"
            ],
            "type": "object"
          },
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "_attribution": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "license": {
                      "type": "string"
                    },
                    "license_url": {
                      "type": "string"
                    },
                    "source_url": {
                      "type": "string"
                    },
                    "text": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "text",
                    "license",
                    "source_url"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "avg_rating": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "bottom_type": {
                "items": {
                  "enum": [
                    "sand",
                    "mud",
                    "rock",
                    "gravel",
                    "clay",
                    "coral",
                    "weed",
                    "shells"
                  ],
                  "type": "string"
                },
                "type": "array"
              },
              "category": {
                "enum": [
                  "poi",
                  "location"
                ],
                "type": "string"
              },
              "coverage_score": {
                "type": "number"
              },
              "data_origin_unverified": {
                "type": "boolean"
              },
              "description": {
                "type": "string"
              },
              "distance_km": {
                "type": "number"
              },
              "elevation_m": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "email": {
                "type": "string"
              },
              "i18n": {
                "additionalProperties": false,
                "properties": {
                  "descriptions": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "propertyNames": {
                      "type": "string"
                    },
                    "type": "object"
                  },
                  "names": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "propertyNames": {
                      "type": "string"
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "id": {
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$",
                "type": "string"
              },
              "images": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "alt_text": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "attribution_url": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "caption": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "credit": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "height": {
                      "anyOf": [
                        {
                          "maximum": 9007199254740991,
                          "minimum": -9007199254740991,
                          "type": "integer"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "id": {
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$",
                      "type": "string"
                    },
                    "large_url": {
                      "type": "string"
                    },
                    "sort_order": {
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "status": {
                      "enum": [
                        "pending",
                        "processing",
                        "ready",
                        "failed"
                      ],
                      "type": "string"
                    },
                    "thumb_url": {
                      "type": "string"
                    },
                    "width": {
                      "anyOf": [
                        {
                          "maximum": 9007199254740991,
                          "minimum": -9007199254740991,
                          "type": "integer"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "status",
                    "sort_order",
                    "thumb_url",
                    "large_url"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "is_favorited": {
                "type": "boolean"
              },
              "latitude": {
                "type": "number"
              },
              "links": {
                "additionalProperties": false,
                "properties": {
                  "osm_url": {
                    "type": "string"
                  },
                  "wikidata_url": {
                    "type": "string"
                  },
                  "wikipedia_url": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "longitude": {
                "type": "number"
              },
              "max_loa_m": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "name": {
                "type": "string"
              },
              "name_canonical": {
                "type": "string"
              },
              "opening_hours": {
                "type": "string"
              },
              "osm_primary_id": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "osm_primary_type": {
                "anyOf": [
                  {
                    "enum": [
                      "node",
                      "way",
                      "relation"
                    ],
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "own_rating": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "phone": {
                "type": "string"
              },
              "port_of_entry": {
                "anyOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "rating_count": {
                "type": "number"
              },
              "raw_osm_tags": {
                "anyOf": [
                  {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "propertyNames": {
                      "type": "string"
                    },
                    "type": "object"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "shelter_from": {
                "items": {
                  "enum": [
                    "N",
                    "NE",
                    "E",
                    "SE",
                    "S",
                    "SW",
                    "W",
                    "NW"
                  ],
                  "type": "string"
                },
                "type": "array"
              },
              "sources": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "type": {
                "enum": [
                  "marina",
                  "port",
                  "bay",
                  "fuel_station",
                  "yacht_club",
                  "city",
                  "island",
                  "cape",
                  "gulf",
                  "lighthouse",
                  "beach",
                  "town",
                  "village",
                  "peninsula",
                  "strait",
                  "restaurant",
                  "bar",
                  "cafe",
                  "supermarket",
                  "convenience",
                  "bakery",
                  "pharmacy",
                  "atm",
                  "laundry",
                  "post_office",
                  "clinic",
                  "water_point",
                  "chandlery"
                ],
                "type": "string"
              },
              "vhf_channel": {
                "type": "string"
              },
              "website": {
                "type": "string"
              },
              "wiki_images": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "wikidata_id": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "wikipedia": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "id",
              "name",
              "category",
              "type",
              "latitude",
              "longitude",
              "coverage_score",
              "sources",
              "avg_rating",
              "rating_count",
              "images",
              "wiki_images",
              "links",
              "raw_osm_tags",
              "_attribution"
            ],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "openWorldHint": false,
            "readOnlyHint": true
          }
        },
        {
          "name": "nausika_sea_route",
          "title": "Sea Route \u0026 Distance",
          "description": "Maritime routing via pgRouting Dijkstra on the MARNET sea-lane graph (Mediterranean only; errors out elsewhere), 6 kn sailing-yacht default, snaps land coordinates to the nearest marina/anchorage/port.\n\nReturns distance, ETA, waypoint count, GeoJSON.\n\nExamples:\n  - Genova → Bastia: origin_lat=44.4, origin_lon=8.93, dest_lat=42.7, dest_lon=9.45\n  - Distance-only: same coords with include_waypoints=false\n\nTip: chain nausika_geocode → here → nausika_calculator.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "dest_lat": {
                "description": "Destination latitude",
                "examples": [
                  38.7,
                  43.55,
                  41.39
                ],
                "maximum": 90,
                "minimum": -90,
                "type": "number"
              },
              "dest_lon": {
                "description": "Destination longitude",
                "examples": [
                  9.14,
                  10.32,
                  2.17
                ],
                "maximum": 180,
                "minimum": -180,
                "type": "number"
              },
              "include_waypoints": {
                "default": true,
                "description": "Set to false for distance-only mode (no waypoints or GeoJSON)",
                "examples": [
                  true,
                  false
                ],
                "type": "boolean"
              },
              "optimization": {
                "default": "fast",
                "description": "Waypoint smoothing level. 'fast' (default): light smoothing, milliseconds. 'precise': highest-quality smoothing, slower (up to a few seconds). 'off': raw waypoints, unsmoothed.",
                "enum": [
                  "off",
                  "fast",
                  "precise"
                ],
                "type": "string"
              },
              "origin_lat": {
                "description": "Origin latitude",
                "examples": [
                  38.7,
                  43.55,
                  41.39
                ],
                "maximum": 90,
                "minimum": -90,
                "type": "number"
              },
              "origin_lon": {
                "description": "Origin longitude",
                "examples": [
                  9.14,
                  10.32,
                  2.17
                ],
                "maximum": 180,
                "minimum": -180,
                "type": "number"
              },
              "snap_to_water": {
                "default": true,
                "description": "If origin or destination falls on land (e.g. a city centroid from nausika_geocode like Lisbon → 38.71, -9.14), automatically snap to the nearest known marine place (marina, anchorage, port) within a nearby distance. Set to false to disable and force a hard error on land coordinates. Default true.",
                "examples": [
                  true
                ],
                "type": "boolean"
              },
              "speed_knots": {
                "description": "Vessel speed in knots for ETA calculation. Omit to use the caller's saved boat profile speed if one exists, else 6 kn (typical sailing yacht). An explicit value always wins over the boat profile.",
                "examples": [
                  6,
                  7,
                  8
                ],
                "maximum": 50,
                "minimum": 0.5,
                "type": "number"
              },
              "units": {
                "default": "nauticalmiles",
                "description": "Distance units (default: nauticalmiles)",
                "enum": [
                  "nauticalmiles",
                  "kilometers",
                  "miles"
                ],
                "type": "string"
              }
            },
            "required": [
              "origin_lat",
              "origin_lon",
              "dest_lat",
              "dest_lon"
            ],
            "type": "object"
          },
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "_attribution": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "license": {
                      "type": "string"
                    },
                    "license_url": {
                      "type": "string"
                    },
                    "source_url": {
                      "type": "string"
                    },
                    "text": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "text",
                    "license",
                    "source_url"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "_disclaimer": {
                "type": "string"
              },
              "dest_snap_distance_nm": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "dest_snap_nm": {
                "type": "number"
              },
              "dest_snapped_from": {
                "additionalProperties": false,
                "properties": {
                  "lat": {
                    "type": "number"
                  },
                  "lon": {
                    "type": "number"
                  }
                },
                "required": [
                  "lat",
                  "lon"
                ],
                "type": "object"
              },
              "dest_snapped_to": {
                "additionalProperties": false,
                "properties": {
                  "lat": {
                    "type": "number"
                  },
                  "lon": {
                    "type": "number"
                  },
                  "place_name": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "lat",
                  "lon"
                ],
                "type": "object"
              },
              "destination": {
                "additionalProperties": false,
                "properties": {
                  "latitude": {
                    "type": "number"
                  },
                  "longitude": {
                    "type": "number"
                  }
                },
                "required": [
                  "latitude",
                  "longitude"
                ],
                "type": "object"
              },
              "direct_distance_nm": {
                "type": "number"
              },
              "distance": {
                "type": "number"
              },
              "estimated_duration_hours": {
                "type": "number"
              },
              "optimization": {
                "type": "string"
              },
              "optimization_failed": {
                "type": "boolean"
              },
              "optimization_used": {
                "type": "string"
              },
              "origin": {
                "additionalProperties": false,
                "properties": {
                  "latitude": {
                    "type": "number"
                  },
                  "longitude": {
                    "type": "number"
                  }
                },
                "required": [
                  "latitude",
                  "longitude"
                ],
                "type": "object"
              },
              "origin_snap_distance_nm": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "origin_snap_nm": {
                "type": "number"
              },
              "origin_snapped_from": {
                "additionalProperties": false,
                "properties": {
                  "lat": {
                    "type": "number"
                  },
                  "lon": {
                    "type": "number"
                  }
                },
                "required": [
                  "lat",
                  "lon"
                ],
                "type": "object"
              },
              "origin_snapped_to": {
                "additionalProperties": false,
                "properties": {
                  "lat": {
                    "type": "number"
                  },
                  "lon": {
                    "type": "number"
                  },
                  "place_name": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "lat",
                  "lon"
                ],
                "type": "object"
              },
              "route_geojson": {
                "additionalProperties": false,
                "properties": {
                  "geometry": {
                    "additionalProperties": false,
                    "properties": {
                      "coordinates": {
                        "items": {
                          "items": {
                            "type": "number"
                          },
                          "type": "array"
                        },
                        "type": "array"
                      },
                      "type": {
                        "const": "LineString",
                        "type": "string"
                      }
                    },
                    "required": [
                      "type",
                      "coordinates"
                    ],
                    "type": "object"
                  },
                  "properties": {
                    "additionalProperties": false,
                    "properties": {
                      "length": {
                        "type": "number"
                      },
                      "units": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "length",
                      "units"
                    ],
                    "type": "object"
                  },
                  "type": {
                    "const": "Feature",
                    "type": "string"
                  }
                },
                "required": [
                  "type",
                  "properties",
                  "geometry"
                ],
                "type": "object"
              },
              "shorter_than_direct": {
                "type": "boolean"
              },
              "snap_warning": {
                "type": "boolean"
              },
              "speed_knots": {
                "type": "number"
              },
              "units": {
                "type": "string"
              },
              "waypoints_count": {
                "type": "number"
              }
            },
            "required": [
              "origin",
              "destination",
              "distance",
              "units",
              "speed_knots",
              "estimated_duration_hours",
              "_attribution"
            ],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "openWorldHint": false,
            "readOnlyHint": true
          }
        },
        {
          "name": "nausika_calculator",
          "title": "Calculator",
          "description": "Evaluate a math expression and return the numeric result. Useful for fuel, range/autonomy, unit conversions, and ad-hoc arithmetic.\n\nSupported (exhaustive): +, -, *, /, ^, %, parentheses, sqrt(), abs(), ceil(), floor(), round(), sin(), cos(), tan(), log(), exp(), min(), max(), PI, E. Anything else (atan2, pow, log10, hypot, if, factorial, comparisons) is rejected.\n\nExamples: \"(120 / 6) * 8.5\" (fuel for 120 nm at 8.5 L/h, 6 kn); \"45 * 1.852\" (nm to km).",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "expression": {
                "description": "Math expression to evaluate",
                "examples": [
                  "(450 / 8.5) * 1.1",
                  "sqrt(3^2 + 4^2)",
                  "45 * 1.852"
                ],
                "maxLength": 500,
                "minLength": 1,
                "type": "string"
              },
              "precision": {
                "default": 4,
                "description": "Decimal places in the result (default 4)",
                "examples": [
                  2,
                  4,
                  6
                ],
                "maximum": 15,
                "minimum": 0,
                "type": "integer"
              }
            },
            "required": [
              "expression"
            ],
            "type": "object"
          },
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "expression": {
                "type": "string"
              },
              "precision": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "result": {
                "type": "number"
              }
            },
            "required": [
              "expression",
              "result",
              "precision"
            ],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "openWorldHint": false,
            "readOnlyHint": true
          }
        },
        {
          "name": "nausika_geocode",
          "title": "Geocode Place Names",
          "description": "Resolve a place 'query' to coordinates (forward) or find nearest places to 'latitude'+'longitude' (reverse). Mediterranean-focused curated DB; forward falls back to OSM/Nominatim globally. Each result carries a 'source' discriminator ('local' for the curated marine DB, 'osm' for the global fallback). Returns name, type, coords, source, plus similarity (forward) or distance_m (reverse).\n\nExample forward: query=\"Portofino\". Example reverse: latitude=44.3, longitude=9.21, radius_m=50000.\n\nWhen the same name exists in several seas (e.g. \"Salerno port\": Italy and Florida), results carry a 'region' and the best of each sea is included — pick by the user's context, or pass near_latitude/near_longitude (boat position, departure port) to put that sea first.\n\nChain into nausika_marine_forecast, nausika_tides, nausika_search_places, or nausika_sea_route using the returned coords.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "properties": {
              "latitude": {
                "description": "Latitude for reverse geocoding",
                "examples": [
                  38.7,
                  44.3
                ],
                "maximum": 90,
                "minimum": -90,
                "type": "number"
              },
              "limit": {
                "default": 3,
                "description": "Max results, default 3, max 10",
                "examples": [
                  1,
                  3,
                  5
                ],
                "maximum": 10,
                "minimum": 1,
                "type": "integer"
              },
              "longitude": {
                "description": "Longitude for reverse geocoding",
                "examples": [
                  15.2,
                  9.21
                ],
                "maximum": 180,
                "minimum": -180,
                "type": "number"
              },
              "near_latitude": {
                "description": "Optional, forward only: latitude of where the user is (boat position, port of departure). When the same name exists in several seas, results from that sea come first.",
                "examples": [
                  40.67
                ],
                "maximum": 90,
                "minimum": -90,
                "type": "number"
              },
              "near_longitude": {
                "description": "Optional, forward only: longitude paired with near_latitude.",
                "examples": [
                  14.75
                ],
                "maximum": 180,
                "minimum": -180,
                "type": "number"
              },
              "query": {
                "description": "Place name to search, forward geocoding",
                "examples": [
                  "Porto Cervo",
                  "Bonifacio",
                  "Calanque de Sormiou"
                ],
                "maxLength": 200,
                "minLength": 1,
                "type": "string"
              },
              "radius_m": {
                "default": 50000,
                "description": "Search radius for reverse geocoding in meters, default 50000",
                "examples": [
                  10000,
                  50000,
                  100000
                ],
                "maximum": 200000,
                "minimum": 1000,
                "type": "integer"
              }
            },
            "type": "object"
          },
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "_attribution": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "license": {
                      "type": "string"
                    },
                    "license_url": {
                      "type": "string"
                    },
                    "source_url": {
                      "type": "string"
                    },
                    "text": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "text",
                    "license",
                    "source_url"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "count": {
                "type": "number"
              },
              "latitude": {
                "type": "number"
              },
              "longitude": {
                "type": "number"
              },
              "mode": {
                "enum": [
                  "forward",
                  "reverse"
                ],
                "type": "string"
              },
              "query": {
                "type": "string"
              },
              "results": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "category": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "country": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "description": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "distance_m": {
                      "type": "number"
                    },
                    "id": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "latitude": {
                      "type": "number"
                    },
                    "longitude": {
                      "type": "number"
                    },
                    "name": {
                      "type": "string"
                    },
                    "region": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "similarity": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "source": {
                      "enum": [
                        "local",
                        "osm"
                      ],
                      "type": "string"
                    },
                    "source_url": {
                      "type": "string"
                    },
                    "type": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "category",
                    "type",
                    "latitude",
                    "longitude",
                    "description",
                    "source"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "source": {
                "enum": [
                  "local",
                  "osm"
                ],
                "type": "string"
              }
            },
            "required": [
              "mode",
              "count",
              "results",
              "_attribution"
            ],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "openWorldHint": true,
            "readOnlyHint": true
          }
        },
        {
          "name": "nausika_describe_place_schema",
          "title": "Describe Place Schema",
          "description": "Returns the expected attributes for a given place 'type' (the only input parameter: marina, port, bay, fuel_station, city, island, etc.). Useful to understand what fields are available on places of that type.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "type": {
                "description": "Place type to describe. See nausika_describe_place_schema response 'Valid place types' for the full enum.",
                "enum": [
                  "marina",
                  "port",
                  "bay",
                  "fuel_station",
                  "yacht_club",
                  "city",
                  "island",
                  "cape",
                  "gulf",
                  "lighthouse",
                  "beach",
                  "town",
                  "village",
                  "peninsula",
                  "strait",
                  "restaurant",
                  "bar",
                  "cafe",
                  "supermarket",
                  "convenience",
                  "bakery",
                  "pharmacy",
                  "atm",
                  "laundry",
                  "post_office",
                  "clinic",
                  "water_point",
                  "chandlery"
                ],
                "examples": [
                  "marina",
                  "bay",
                  "port"
                ],
                "type": "string"
              }
            },
            "required": [
              "type"
            ],
            "type": "object"
          },
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "agentRuleNotes": {
                "additionalProperties": false,
                "properties": {
                  "appliesTo": {
                    "type": "string"
                  },
                  "bypassedBy": {
                    "type": "string"
                  },
                  "errorBehavior": {
                    "type": "string"
                  }
                },
                "required": [
                  "appliesTo",
                  "bypassedBy",
                  "errorBehavior"
                ],
                "type": "object"
              },
              "agentRules": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "appliesTo": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "field": {
                      "type": "string"
                    },
                    "rationale": {
                      "type": "string"
                    },
                    "requirement": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "field",
                    "requirement"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "attributes": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "description": {
                      "type": "string"
                    },
                    "enum": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "name": {
                      "type": "string"
                    },
                    "required": {
                      "type": "boolean"
                    },
                    "type": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "name",
                    "type",
                    "required"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "imageFields": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "description": {
                      "type": "string"
                    },
                    "enum": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "name": {
                      "type": "string"
                    },
                    "required": {
                      "type": "boolean"
                    },
                    "type": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "name",
                    "type",
                    "required"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "imageRules": {
                "additionalProperties": false,
                "properties": {
                  "acceptedSources": {
                    "type": "string"
                  },
                  "dedupKey": {
                    "type": "string"
                  },
                  "forbiddenSources": {
                    "type": "string"
                  },
                  "maxCount": {
                    "type": "number"
                  },
                  "validation": {
                    "type": "string"
                  }
                },
                "required": [
                  "maxCount",
                  "dedupKey",
                  "acceptedSources",
                  "forbiddenSources",
                  "validation"
                ],
                "type": "object"
              },
              "promotedColumns": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "description": {
                      "type": "string"
                    },
                    "enum": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "name": {
                      "type": "string"
                    },
                    "required": {
                      "type": "boolean"
                    },
                    "type": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "name",
                    "type",
                    "required"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "requestedType": {
                "type": "string"
              },
              "type": {
                "type": "string"
              },
              "universalRules": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "appliesTo": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "field": {
                      "type": "string"
                    },
                    "rationale": {
                      "type": "string"
                    },
                    "requirement": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "field",
                    "requirement"
                  ],
                  "type": "object"
                },
                "type": "array"
              }
            },
            "required": [
              "type",
              "requestedType",
              "promotedColumns",
              "attributes",
              "imageFields",
              "imageRules",
              "universalRules",
              "agentRules",
              "agentRuleNotes"
            ],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "openWorldHint": false,
            "readOnlyHint": true
          }
        },
        {
          "name": "nausika_is_water",
          "title": "Is Water",
          "description": "Check whether a coordinate (latitude, longitude in decimal degrees) is on water or land, and how far it is from the coast. Returns:\n- is_water: boolean (true if over sea, false if over land)\n- distance_to_coast_m: meters to the nearest coastline boundary; meaningful on either side (sea → distance to shore, inland → distance to sea, e.g. Rome ≈ 25 km).\n- source: detection source\n\nUseful to verify waypoints in route planning, or to gauge how coastal/inland a point is.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "latitude": {
                "description": "Latitude in decimal degrees (-90 to 90)",
                "examples": [
                  38.7,
                  43.55,
                  41.39
                ],
                "maximum": 90,
                "minimum": -90,
                "type": "number"
              },
              "longitude": {
                "description": "Longitude in decimal degrees (-180 to 180)",
                "examples": [
                  9.14,
                  10.32,
                  2.17
                ],
                "maximum": 180,
                "minimum": -180,
                "type": "number"
              }
            },
            "required": [
              "latitude",
              "longitude"
            ],
            "type": "object"
          },
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "_attribution": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "license": {
                      "type": "string"
                    },
                    "license_url": {
                      "type": "string"
                    },
                    "source_url": {
                      "type": "string"
                    },
                    "text": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "text",
                    "license",
                    "source_url"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "distance_to_coast_m": {
                "type": "number"
              },
              "is_water": {
                "type": "boolean"
              },
              "latitude": {
                "type": "number"
              },
              "longitude": {
                "type": "number"
              },
              "source": {
                "type": "string"
              }
            },
            "required": [
              "latitude",
              "longitude",
              "is_water",
              "distance_to_coast_m",
              "source",
              "_attribution"
            ],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "openWorldHint": false,
            "readOnlyHint": true
          }
        },
        {
          "name": "nausika_convert_coordinates",
          "title": "Convert Coordinates",
          "description": "Convert nautical coordinates between decimal degrees, DMS, and DM.\n\nInputs: latitude, longitude — each accepts decimal (44.4), DMS (\"44°24'00\\\"N\"), or DM (\"44°24.0'N\"). Returns all three formats plus input_format (detected per-axis).\n\nExamples: latitude=\"44°24'N\", longitude=\"9°02'E\" → 44.4, 9.03; latitude=\"41°01'44.04\\\"N\", longitude=\"009°32'42.00\\\"E\" → 41.0289, 9.545.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "latitude": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "string"
                  }
                ],
                "description": "Latitude as decimal degrees or DMS/DM string",
                "examples": [
                  41.0289,
                  "41°01′44.04″N",
                  "41°01.7'N"
                ]
              },
              "longitude": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "string"
                  }
                ],
                "description": "Longitude as decimal degrees or DMS/DM string",
                "examples": [
                  9.545,
                  "009°32′42.00″E",
                  "9°32.7'E"
                ]
              }
            },
            "required": [
              "latitude",
              "longitude"
            ],
            "type": "object"
          },
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "decimal": {
                "additionalProperties": false,
                "properties": {
                  "latitude": {
                    "type": "number"
                  },
                  "longitude": {
                    "type": "number"
                  }
                },
                "required": [
                  "latitude",
                  "longitude"
                ],
                "type": "object"
              },
              "dm": {
                "additionalProperties": false,
                "properties": {
                  "latitude": {
                    "type": "string"
                  },
                  "longitude": {
                    "type": "string"
                  }
                },
                "required": [
                  "latitude",
                  "longitude"
                ],
                "type": "object"
              },
              "dms": {
                "additionalProperties": false,
                "properties": {
                  "latitude": {
                    "type": "string"
                  },
                  "longitude": {
                    "type": "string"
                  }
                },
                "required": [
                  "latitude",
                  "longitude"
                ],
                "type": "object"
              },
              "input_format": {
                "additionalProperties": false,
                "properties": {
                  "latitude": {
                    "type": "string"
                  },
                  "longitude": {
                    "type": "string"
                  }
                },
                "required": [
                  "latitude",
                  "longitude"
                ],
                "type": "object"
              }
            },
            "required": [
              "decimal",
              "dms",
              "dm",
              "input_format"
            ],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "openWorldHint": false,
            "readOnlyHint": true
          }
        },
        {
          "name": "nausika_manage_boat_profile",
          "title": "Manage Boat Profile",
          "description": "Manage boat profile (multi-boat per account, keyed by name).\n\nInputs: action, name, type, loa_m, beam_m, draft_m, displacement_kg, engine_type, engine_hp, fuel_capacity_l, motor_consumption_l_per_h, water_capacity_l, cruising_speed_kts, max_speed_kts, safety_equipment, certifications.\n\nExamples: action=\"upsert\", name=\"Freya\", type=\"sail\", loa_m=12.5; action=\"delete\", name=\"Freya\"; action=\"set_default\", name=\"Freya\".\n\nTip: speed/consumption enrich nausika_sea_route ETA.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "action": {
                "description": "Create/update, delete, or set a boat as default",
                "enum": [
                  "upsert",
                  "delete",
                  "set_default"
                ],
                "type": "string"
              },
              "beam_m": {
                "description": "Maximum beam in meters",
                "examples": [
                  4.1
                ],
                "maximum": 50,
                "minimum": 0.5,
                "type": "number"
              },
              "certifications": {
                "description": "Certifications",
                "examples": [
                  "CE B"
                ],
                "type": "string"
              },
              "cruising_speed_kts": {
                "description": "Cruising speed in knots",
                "examples": [
                  6
                ],
                "maximum": 50,
                "minimum": 0.5,
                "type": "number"
              },
              "displacement_kg": {
                "description": "Displacement in kg",
                "examples": [
                  8500
                ],
                "maximum": 500000,
                "minimum": 100,
                "type": "integer"
              },
              "draft_m": {
                "description": "Draft in meters",
                "examples": [
                  1.8
                ],
                "maximum": 20,
                "minimum": 0.1,
                "type": "number"
              },
              "engine_hp": {
                "description": "Engine power in HP",
                "examples": [
                  30
                ],
                "maximum": 5000,
                "minimum": 1,
                "type": "integer"
              },
              "engine_type": {
                "description": "Engine type",
                "enum": [
                  "inboard",
                  "outboard",
                  "none"
                ],
                "type": "string"
              },
              "fuel_capacity_l": {
                "description": "Fuel tank capacity in liters",
                "examples": [
                  200
                ],
                "maximum": 50000,
                "minimum": 1,
                "type": "integer"
              },
              "loa_m": {
                "description": "Length overall in meters",
                "examples": [
                  12.5
                ],
                "maximum": 200,
                "minimum": 1,
                "type": "number"
              },
              "max_speed_kts": {
                "description": "Maximum speed in knots",
                "examples": [
                  8
                ],
                "maximum": 80,
                "minimum": 0.5,
                "type": "number"
              },
              "motor_consumption_l_per_h": {
                "description": "Average motor fuel consumption at cruising RPM, in litres per hour",
                "examples": [
                  3.5
                ],
                "maximum": 1000,
                "minimum": 0,
                "type": "number"
              },
              "name": {
                "description": "Boat name (required for create, identifies boat for update/delete)",
                "examples": [
                  "Calypso II",
                  "Mistral"
                ],
                "maxLength": 100,
                "minLength": 1,
                "type": "string"
              },
              "safety_equipment": {
                "description": "Safety equipment description",
                "examples": [
                  "VHF",
                  "EPIRB",
                  "liferaft"
                ],
                "type": "string"
              },
              "type": {
                "description": "Boat type",
                "enum": [
                  "sail",
                  "motor",
                  "multihull"
                ],
                "type": "string"
              },
              "water_capacity_l": {
                "description": "Water tank capacity in liters",
                "examples": [
                  250
                ],
                "maximum": 10000,
                "minimum": 1,
                "type": "integer"
              }
            },
            "required": [
              "action"
            ],
            "type": "object"
          },
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": {},
            "properties": {
              "action": {
                "enum": [
                  "upsert",
                  "delete",
                  "set_default"
                ],
                "type": "string"
              },
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            },
            "required": [
              "action"
            ],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": true,
            "openWorldHint": false,
            "readOnlyHint": false
          }
        },
        {
          "name": "nausika_get_boat_profile",
          "title": "Get Boat Profile",
          "description": "Get your saved boat profile(s). Omit name for the default boat, or use name=\"*\" to list all boats.\n\nTip: use boat speed/consumption with nausika_sea_route and nausika_calculator for trip planning.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "name": {
                "description": "Boat name. Omit to get the default boat, or use '*' to list all.",
                "examples": [
                  "Calypso II"
                ],
                "maxLength": 100,
                "minLength": 1,
                "type": "string"
              }
            },
            "type": "object"
          },
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": {},
            "properties": {
              "boats": {
                "items": {
                  "additionalProperties": {},
                  "properties": {
                    "beam_m": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "certifications": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "cruising_speed_kts": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "displacement_kg": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "draft_m": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "engine_hp": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "engine_type": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "fuel_capacity_l": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "id": {
                      "type": "string"
                    },
                    "is_default": {
                      "type": "boolean"
                    },
                    "loa_m": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "max_speed_kts": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "motor_consumption_l_per_h": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "name": {
                      "type": "string"
                    },
                    "safety_equipment": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "type": {
                      "type": "string"
                    },
                    "user_id": {
                      "type": "string"
                    },
                    "water_capacity_l": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "found": {
                "type": "boolean"
              },
              "id": {
                "type": "string"
              },
              "is_default": {
                "type": "boolean"
              },
              "name": {
                "type": "string"
              },
              "type": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "openWorldHint": false,
            "readOnlyHint": true
          }
        },
        {
          "name": "nausika_manage_favorite",
          "title": "Manage Favorite",
          "description": "Add or remove a place from your favorites list.\n\nExamples:\n  - Add: action=\"add\", place_id=\"a1b2c3d4\", note=\"Great anchorage for overnight\"\n  - Remove: action=\"remove\", place_id=\"a1b2c3d4\"\n\nplace_id accepts the 8-char [xxxxxxxx] shown by nausika_search_places, or a full UUID. Find places first with nausika_search_places, then bookmark by place_id.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "action": {
                "description": "Add or remove a favorite",
                "enum": [
                  "add",
                  "remove"
                ],
                "type": "string"
              },
              "note": {
                "description": "Personal note (only for add)",
                "examples": [
                  "Quiet bay, sheltered from mistral"
                ],
                "type": "string"
              },
              "place_id": {
                "description": "Place id — full UUID or 8+ char hex prefix from nausika_search_places ([xxxxxxxx])",
                "maxLength": 64,
                "minLength": 8,
                "type": "string"
              }
            },
            "required": [
              "action",
              "place_id"
            ],
            "type": "object"
          },
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": {},
            "properties": {
              "action": {
                "enum": [
                  "add",
                  "remove"
                ],
                "type": "string"
              },
              "created_at": {
                "type": "string"
              },
              "id": {
                "type": "string"
              },
              "note": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "place": {
                "anyOf": [
                  {
                    "additionalProperties": {},
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "name"
                    ],
                    "type": "object"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "place_id": {
                "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
                "type": "string"
              },
              "user_id": {
                "type": "string"
              }
            },
            "required": [
              "action",
              "place_id"
            ],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": true,
            "openWorldHint": false,
            "readOnlyHint": false
          }
        },
        {
          "name": "nausika_get_favorites",
          "title": "Get Favorites",
          "description": "List your favorite places with details and personal notes. Ordered by most recently added.\n\nInputs: limit, offset.\n\nTip: use place coordinates with nausika_sea_route or nausika_marine_forecast for trip planning.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "limit": {
                "default": 20,
                "description": "Max results (default 20)",
                "examples": [
                  20
                ],
                "maximum": 100,
                "minimum": 1,
                "type": "integer"
              },
              "offset": {
                "default": 0,
                "description": "Offset for pagination",
                "examples": [
                  0
                ],
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              }
            },
            "type": "object"
          },
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "favorites": {
                "items": {
                  "additionalProperties": {},
                  "properties": {
                    "created_at": {
                      "type": "string"
                    },
                    "description": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "id": {
                      "type": "string"
                    },
                    "latitude": {
                      "type": "number"
                    },
                    "longitude": {
                      "type": "number"
                    },
                    "name": {
                      "type": "string"
                    },
                    "note": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "place_id": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "place_id",
                    "note",
                    "created_at",
                    "name",
                    "type",
                    "latitude",
                    "longitude",
                    "description"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "limit": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "offset": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              }
            },
            "required": [
              "favorites",
              "limit",
              "offset"
            ],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "openWorldHint": false,
            "readOnlyHint": true
          }
        },
        {
          "name": "nausika_manage_rating",
          "title": "Manage Rating",
          "description": "Rate a place (1-5 stars) with an optional private comment. One rating per user per place.\n\nExamples:\n  - Rate: action=\"upsert\", place_id=\"a1b2c3d4\", score=4, comment=\"Clean facilities\"\n  - Delete: action=\"delete\", place_id=\"a1b2c3d4\"\n\nplace_id accepts the 8-char [xxxxxxxx] shown by nausika_search_places, or a full UUID. Find places first with nausika_search_places, then rate by place_id.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "action": {
                "description": "Create/update or delete your rating",
                "enum": [
                  "upsert",
                  "delete"
                ],
                "type": "string"
              },
              "comment": {
                "description": "Private comment (only visible to you)",
                "examples": [
                  "Clean facilities, friendly staff"
                ],
                "type": "string"
              },
              "place_id": {
                "description": "Place id — full UUID or 8+ char hex prefix from nausika_search_places ([xxxxxxxx])",
                "maxLength": 64,
                "minLength": 8,
                "type": "string"
              },
              "score": {
                "description": "Rating 1-5 (required for upsert)",
                "examples": [
                  4,
                  5
                ],
                "maximum": 5,
                "minimum": 1,
                "type": "integer"
              }
            },
            "required": [
              "action",
              "place_id"
            ],
            "type": "object"
          },
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": {},
            "properties": {
              "action": {
                "enum": [
                  "upsert",
                  "delete"
                ],
                "type": "string"
              },
              "aggregate": {
                "additionalProperties": {},
                "properties": {
                  "avg_rating": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "dist_1": {
                    "type": "string"
                  },
                  "dist_2": {
                    "type": "string"
                  },
                  "dist_3": {
                    "type": "string"
                  },
                  "dist_4": {
                    "type": "string"
                  },
                  "dist_5": {
                    "type": "string"
                  },
                  "rating_count": {
                    "type": "string"
                  }
                },
                "required": [
                  "avg_rating",
                  "rating_count"
                ],
                "type": "object"
              },
              "place_id": {
                "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
                "type": "string"
              },
              "rating": {
                "additionalProperties": {},
                "properties": {
                  "comment": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "created_at": {
                    "type": "string"
                  },
                  "id": {
                    "type": "string"
                  },
                  "place_id": {
                    "type": "string"
                  },
                  "score": {
                    "type": "number"
                  },
                  "updated_at": {
                    "type": "string"
                  },
                  "user_id": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "required": [
              "action",
              "place_id"
            ],
            "type": "object"
          },
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": true,
            "openWorldHint": false,
            "readOnlyHint": false
          }
        },
        {
          "name": "nausika_get_ratings",
          "title": "Get Ratings",
          "description": "View ratings for a place (aggregate + your own) or list all your ratings.\n\nInputs: place_id, my_only, limit, offset.\n\nExamples:\n  - Place ratings: place_id=\"a1b2c3d4\" (8-char short-id or full UUID)\n  - My ratings: my_only=true\n\nTip: ratings are visible in nausika_search_places results to help other sailors.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "limit": {
                "default": 20,
                "description": "Max results",
                "examples": [
                  50
                ],
                "maximum": 100,
                "minimum": 1,
                "type": "integer"
              },
              "my_only": {
                "default": false,
                "description": "List only your own ratings",
                "examples": [
                  true
                ],
                "type": "boolean"
              },
              "offset": {
                "default": 0,
                "description": "Offset for pagination",
                "examples": [
                  0
                ],
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "place_id": {
                "description": "Get ratings for a specific place — full UUID or 8+ char hex prefix from nausika_search_places",
                "examples": [
                  "a1b2c3d4-e5f6-7890-abcd-ef0123456789",
                  "a1b2c3d4"
                ],
                "maxLength": 64,
                "minLength": 8,
                "type": "string"
              }
            },
            "type": "object"
          },
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": {},
            "properties": {
              "aggregate": {
                "additionalProperties": {},
                "properties": {
                  "avg_rating": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "dist_1": {
                    "type": "string"
                  },
                  "dist_2": {
                    "type": "string"
                  },
                  "dist_3": {
                    "type": "string"
                  },
                  "dist_4": {
                    "type": "string"
                  },
                  "dist_5": {
                    "type": "string"
                  },
                  "rating_count": {
                    "type": "string"
                  }
                },
                "required": [
                  "avg_rating",
                  "rating_count"
                ],
                "type": "object"
              },
              "limit": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "my_rating": {
                "anyOf": [
                  {
                    "additionalProperties": {},
                    "properties": {
                      "comment": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "created_at": {
                        "type": "string"
                      },
                      "id": {
                        "type": "string"
                      },
                      "place_id": {
                        "type": "string"
                      },
                      "score": {
                        "type": "number"
                      },
                      "updated_at": {
                        "type": "string"
                      },
                      "user_id": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "offset": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "ratings": {
                "items": {
                  "additionalProperties": {},
                  "properties": {
                    "comment": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "id": {
                      "type": "string"
                    },
                    "place_id": {
                      "type": "string"
                    },
                    "score": {
                      "type": "number"
                    },
                    "updated_at": {
                      "type": "string"
                    },
                    "user_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "openWorldHint": false,
            "readOnlyHint": true
          }
        },
        {
          "name": "nausika_manage_route",
          "title": "Manage Route",
          "description": "Save a sailing route or multi-day itinerary; legs may link to places.\n\nTypical flow: compute legs with nausika_sea_route, then save here.\n\nExamples:\n  - Single: action=\"upsert\", name=\"Genova → Bastia\", route_type=\"single\", legs=[{...}]\n  - Itinerary: action=\"upsert\", name=\"Corsica Trip\", route_type=\"itinerary\", legs=[{leg_order:1,...,pois:[{place_id:\"a1b2c3d4\",role:\"overnight\"}]}]\n  - Delete: action=\"delete\", id=\"a1b2c3d4\"\n\nid and leg pois[].place_id accept either the 8-char [xxxxxxxx] short-id (from nausika_get_routes / nausika_search_places) or a full UUID.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "action": {
                "description": "Create/update or delete",
                "enum": [
                  "upsert",
                  "delete"
                ],
                "type": "string"
              },
              "description": {
                "description": "Route description",
                "examples": [
                  "Summer crossing with overnight in Calvi"
                ],
                "type": "string"
              },
              "id": {
                "description": "Route id for update/delete — full UUID or 8+ char hex prefix from nausika_get_routes",
                "examples": [
                  "550e8400-e29b-41d4-a716-446655440000",
                  "550e8400"
                ],
                "maxLength": 64,
                "minLength": 8,
                "type": "string"
              },
              "legs": {
                "description": "Route legs, replaces all existing on update",
                "examples": [
                  [
                    {
                      "dest_lat": 42.7,
                      "dest_lon": 9.45,
                      "dest_name": "Bastia",
                      "leg_order": 1,
                      "origin_lat": 44.4,
                      "origin_lon": 8.93,
                      "origin_name": "Genova"
                    }
                  ]
                ],
                "items": {
                  "properties": {
                    "departure_date": {
                      "description": "Planned departure (ISO 8601)",
                      "type": "string"
                    },
                    "dest_lat": {
                      "description": "Destination latitude",
                      "examples": [
                        38.7,
                        43.55,
                        41.39
                      ],
                      "maximum": 90,
                      "minimum": -90,
                      "type": "number"
                    },
                    "dest_lon": {
                      "description": "Destination longitude",
                      "examples": [
                        9.14,
                        10.32,
                        2.17
                      ],
                      "maximum": 180,
                      "minimum": -180,
                      "type": "number"
                    },
                    "dest_name": {
                      "description": "Destination name",
                      "minLength": 1,
                      "type": "string"
                    },
                    "distance_nm": {
                      "description": "Distance in nautical miles",
                      "type": "number"
                    },
                    "duration_hours": {
                      "description": "Estimated duration in hours",
                      "type": "number"
                    },
                    "geojson": {
                      "additionalProperties": {},
                      "description": "GeoJSON route geometry",
                      "propertyNames": {
                        "type": "string"
                      },
                      "type": "object"
                    },
                    "leg_order": {
                      "description": "Order in the itinerary",
                      "maximum": 100,
                      "minimum": 1,
                      "type": "integer"
                    },
                    "notes": {
                      "description": "Leg notes",
                      "type": "string"
                    },
                    "origin_lat": {
                      "description": "Origin latitude",
                      "examples": [
                        38.7,
                        43.55,
                        41.39
                      ],
                      "maximum": 90,
                      "minimum": -90,
                      "type": "number"
                    },
                    "origin_lon": {
                      "description": "Origin longitude",
                      "examples": [
                        9.14,
                        10.32,
                        2.17
                      ],
                      "maximum": 180,
                      "minimum": -180,
                      "type": "number"
                    },
                    "origin_name": {
                      "description": "Origin name",
                      "minLength": 1,
                      "type": "string"
                    },
                    "pois": {
                      "description": "Places associated with this leg",
                      "items": {
                        "properties": {
                          "note": {
                            "description": "Note about this stop",
                            "type": "string"
                          },
                          "place_id": {
                            "description": "Place id — full UUID or 8+ char hex prefix from nausika_search_places ([xxxxxxxx])",
                            "maxLength": 64,
                            "minLength": 8,
                            "type": "string"
                          },
                          "role": {
                            "description": "Role of this place in the leg",
                            "enum": [
                              "overnight",
                              "fuel",
                              "dining",
                              "waypoint"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "place_id",
                          "role"
                        ],
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "required": [
                    "leg_order",
                    "origin_name",
                    "origin_lat",
                    "origin_lon",
                    "dest_name",
                    "dest_lat",
                    "dest_lon"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "name": {
                "description": "Route name",
                "examples": [
                  "Genova → Bastia 2026",
                  "Tour Corsica"
                ],
                "maxLength": 255,
                "minLength": 1,
                "type": "string"
              },
              "route_type": {
                "description": "single leg or multi-leg itinerary",
                "enum": [
                  "single",
                  "itinerary"
                ],
                "type": "string"
              }
            },
            "required": [
              "action"
            ],
            "type": "object"
          },
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": {},
            "properties": {
              "action": {
                "enum": [
                  "upsert",
                  "delete"
                ],
                "type": "string"
              },
              "id": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "annotations": {
            "destructiveHint": true,
            "idempotentHint": true,
            "openWorldHint": false,
            "readOnlyHint": false
          }
        },
        {
          "name": "nausika_get_routes",
          "title": "Get Routes",
          "description": "Look up your saved sailing-route library: direct fetch by id, or paginated search by name fragment via query, with limit and offset for pagination.\n\nExamples:\n  - List all (defaults limit=20, offset=0): (no params)\n  - Detail by id: id=\"a1b2c3d4\" (8-char short-id or full UUID)\n  - Search: query=\"Corsica\", limit=10, offset=0\n  - Only itineraries: route_type=\"itinerary\"\n\nTip: feed leg coordinates into nausika_marine_forecast or nausika_tides to check conditions along the route.",
          "inputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": false,
            "properties": {
              "id": {
                "description": "Fetch single route — full UUID or 8+ char hex prefix from nausika_get_routes",
                "examples": [
                  "550e8400-e29b-41d4-a716-446655440000",
                  "550e8400"
                ],
                "maxLength": 64,
                "minLength": 8,
                "type": "string"
              },
              "limit": {
                "default": 20,
                "description": "Max results, 1–50",
                "examples": [
                  20
                ],
                "maximum": 50,
                "minimum": 1,
                "type": "integer"
              },
              "offset": {
                "default": 0,
                "description": "Offset for pagination",
                "examples": [
                  0
                ],
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "query": {
                "description": "Search by name fragment, case-insensitive",
                "examples": [
                  "Corsica",
                  "summer 2026"
                ],
                "type": "string"
              },
              "route_type": {
                "description": "Filter by type",
                "enum": [
                  "single",
                  "itinerary"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "outputSchema": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "additionalProperties": {},
            "properties": {
              "id": {
                "type": "string"
              },
              "legs": {
                "items": {
                  "additionalProperties": {},
                  "propertyNames": {
                    "type": "string"
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "limit": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "name": {
                "type": "string"
              },
              "offset": {
                "maximum": 9007199254740991,
                "minimum": -9007199254740991,
                "type": "integer"
              },
              "route_type": {
                "type": "string"
              },
              "routes": {
                "items": {
                  "additionalProperties": {},
                  "properties": {
                    "created_at": {
                      "type": "string"
                    },
                    "description": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "id": {
                      "type": "string"
                    },
                    "legs": {
                      "items": {
                        "additionalProperties": {},
                        "propertyNames": {
                          "type": "string"
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "name": {
                      "type": "string"
                    },
                    "route_type": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    },
                    "user_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "annotations": {
            "destructiveHint": false,
            "idempotentHint": true,
            "openWorldHint": false,
            "readOnlyHint": true
          }
        }
      ]
    },
    "name": "Nausika",
    "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/nausika-mcp.json",
    "popularity": {
      "githubStars": 1
    },
    "registryName": "app.nausika/mcp",
    "remotes": [
      {
        "type": "streamable-http",
        "url": "https://mcp.nausika.app"
      }
    ],
    "repository": "https://github.com/nausika-app/nausika-feedback",
    "reviewed": false,
    "slug": "nausika-mcp",
    "source": "the official MCP registry",
    "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers?search=app.nausika/mcp",
    "summary": "Mediterranean marine, nautical, sailing: forecasts, tides, sea routes, anchorages, POIs for AI.",
    "updatedAt": "2026-05-19T06:32:26Z",
    "url": "https://www.anchorterminal.com/tools/nausika-mcp",
    "vendor": "nausika.app",
    "vendorUrl": "https://nausika.app",
    "version": "0.1.3",
    "websiteUrl": "https://nausika.app",
    "where": "hosted",
    "why": [
      "vendor"
    ]
  }
}
