Spaces:
Sleeping
Sleeping
openwind-ci commited on
Commit ·
3839fa1
1
Parent(s): b531042
sync: github b57a40b
Browse files- README.md +19 -18
- vendor/mcp-core/src/openwind_mcp_core/server.py +1 -1
README.md
CHANGED
|
@@ -1,16 +1,16 @@
|
|
| 1 |
---
|
| 2 |
-
title: OpenWind MCP
|
| 3 |
emoji: ⛵
|
| 4 |
-
colorFrom:
|
| 5 |
-
colorTo:
|
| 6 |
sdk: docker
|
| 7 |
app_port: 7860
|
| 8 |
pinned: false
|
| 9 |
license: mit
|
| 10 |
-
short_description: French Atlantic +
|
| 11 |
---
|
| 12 |
|
| 13 |
-
# OpenWind MCP ⛵
|
| 14 |
|
| 15 |
> **Talk to your LLM. Cast off with confidence.**
|
| 16 |
>
|
|
@@ -26,7 +26,7 @@ short_description: French Atlantic + Mediterranean sailing planner via MCP.
|
|
| 26 |
**1.** In your MCP client, add the endpoint:
|
| 27 |
|
| 28 |
```
|
| 29 |
-
https://qdonnars-openwind-mcp.hf.space/mcp
|
| 30 |
```
|
| 31 |
|
| 32 |
**2.** Ask, in your own words:
|
|
@@ -47,16 +47,17 @@ card.
|
|
| 47 |
> then follow the
|
| 48 |
> [remote-server quickstart](https://modelcontextprotocol.io/docs/develop/connect-remote-servers).
|
| 49 |
> Works with Claude Desktop, Le Chat, Cursor, Goose, Zed, Continue, and any
|
| 50 |
-
> other MCP-compatible host.
|
|
|
|
| 51 |
|
| 52 |
## Why OpenWind
|
| 53 |
|
| 54 |
-
- **Free
|
| 55 |
-
- **Mediterranean-tuned** AROME 1.3 km by default, catches thermals
|
| 56 |
-
- **Boat-aware** 7 archetypes from 20 to 50 ft, real polars, `efficiency` parameter for trim and crew level.
|
| 57 |
-
- **Window-aware**
|
| 58 |
-
- **Client-agnostic**
|
| 59 |
-
- **Open source, MIT**
|
| 60 |
|
| 61 |
## Four tools
|
| 62 |
|
|
@@ -64,8 +65,8 @@ card.
|
|
| 64 |
|---------------------------|---------------------------------------------------------------------------|
|
| 65 |
| `list_boat_archetypes` | Seven descriptive archetypes; the LLM maps "Sun Odyssey 36" → `cruiser_30ft`. |
|
| 66 |
| `get_marine_forecast` | Wind + sea around a point/window, multi-model. |
|
| 67 |
-
| `plan_passage` | End-to-end: per-leg timing + 1–5 complexity + openwind.fr deep-link, in one call. Pass `latest_departure` and it walks every hourly window up to 14 days out so the LLM can compare side-by-side. Declares an MCP Apps UI resource supporting hosts auto-render the live plan in a sandboxed iframe. |
|
| 68 |
-
| `read_me` | Returns OpenWind's calculation methodology
|
| 69 |
|
| 70 |
## About this Space
|
| 71 |
|
|
@@ -75,12 +76,12 @@ card.
|
|
| 75 |
> [openwind.fr](https://openwind.fr) instead.
|
| 76 |
|
| 77 |
**Source of truth:** <https://github.com/qdonnars/openwind>. This Space is
|
| 78 |
-
auto-deployed by GitHub Actions from `packages/hf-space/` on `
|
| 79 |
-
commit directly to the Space repo your changes will be overwritten at the
|
| 80 |
next push.
|
| 81 |
|
| 82 |
The Space wrapper is intentionally minimal (~20 lines in `app.py`). All logic
|
| 83 |
-
lives in `openwind-mcp-core` and `openwind-data` upstream re-deployable on
|
| 84 |
Fly, Modal, or a VPS by writing a different wrapper.
|
| 85 |
|
| 86 |
## Cold-start
|
|
|
|
| 1 |
---
|
| 2 |
+
title: OpenWind MCP (dev)
|
| 3 |
emoji: ⛵
|
| 4 |
+
colorFrom: gray
|
| 5 |
+
colorTo: yellow
|
| 6 |
sdk: docker
|
| 7 |
app_port: 7860
|
| 8 |
pinned: false
|
| 9 |
license: mit
|
| 10 |
+
short_description: (dev) French Atlantic + Med sailing planner via MCP.
|
| 11 |
---
|
| 12 |
|
| 13 |
+
# OpenWind MCP (dev) ⛵
|
| 14 |
|
| 15 |
> **Talk to your LLM. Cast off with confidence.**
|
| 16 |
>
|
|
|
|
| 26 |
**1.** In your MCP client, add the endpoint:
|
| 27 |
|
| 28 |
```
|
| 29 |
+
https://qdonnars-openwind-mcp-dev.hf.space/mcp
|
| 30 |
```
|
| 31 |
|
| 32 |
**2.** Ask, in your own words:
|
|
|
|
| 47 |
> then follow the
|
| 48 |
> [remote-server quickstart](https://modelcontextprotocol.io/docs/develop/connect-remote-servers).
|
| 49 |
> Works with Claude Desktop, Le Chat, Cursor, Goose, Zed, Continue, and any
|
| 50 |
+
> other MCP-compatible host. In Le Chat, add it under **Connectors → Add
|
| 51 |
+
> connector → Custom MCP connector** and paste the endpoint above.
|
| 52 |
|
| 53 |
## Why OpenWind
|
| 54 |
|
| 55 |
+
- **Free and keyless.** Wind + sea data via [Open-Meteo](https://open-meteo.com) (CC BY 4.0).
|
| 56 |
+
- **Mediterranean-tuned.** AROME 1.3 km by default, catches thermals and mistral. ICON-EU → ECMWF → GFS for longer reach.
|
| 57 |
+
- **Boat-aware.** 7 archetypes from 20 to 50 ft, real polars, an `efficiency` parameter for trim and crew level.
|
| 58 |
+
- **Window-aware.** One call sweeps up to 14 days of hourly departures so the LLM can pick the calmest slot.
|
| 59 |
+
- **Client-agnostic.** One HTTP MCP endpoint, no vendor lock-in. Rich [MCP Apps](https://modelcontextprotocol.io/extensions/client-matrix) widget on supporting hosts; clean deep-link fallback on the rest.
|
| 60 |
+
- **Open source, MIT.** Self-host on Fly, Modal, or your own VPS in minutes.
|
| 61 |
|
| 62 |
## Four tools
|
| 63 |
|
|
|
|
| 65 |
|---------------------------|---------------------------------------------------------------------------|
|
| 66 |
| `list_boat_archetypes` | Seven descriptive archetypes; the LLM maps "Sun Odyssey 36" → `cruiser_30ft`. |
|
| 67 |
| `get_marine_forecast` | Wind + sea around a point/window, multi-model. |
|
| 68 |
+
| `plan_passage` | End-to-end: per-leg timing + 1–5 complexity + openwind.fr deep-link, in one call. Pass `latest_departure` and it walks every hourly window up to 14 days out so the LLM can compare side-by-side. Declares an MCP Apps UI resource; supporting hosts auto-render the live plan in a sandboxed iframe. |
|
| 69 |
+
| `read_me` | Returns OpenWind's calculation methodology. Call it when the user asks how things are computed. |
|
| 70 |
|
| 71 |
## About this Space
|
| 72 |
|
|
|
|
| 76 |
> [openwind.fr](https://openwind.fr) instead.
|
| 77 |
|
| 78 |
**Source of truth:** <https://github.com/qdonnars/openwind>. This Space is
|
| 79 |
+
auto-deployed by GitHub Actions from `packages/hf-space/` on `dev`. Don't
|
| 80 |
+
commit directly to the Space repo; your changes will be overwritten at the
|
| 81 |
next push.
|
| 82 |
|
| 83 |
The Space wrapper is intentionally minimal (~20 lines in `app.py`). All logic
|
| 84 |
+
lives in `openwind-mcp-core` and `openwind-data` upstream, re-deployable on
|
| 85 |
Fly, Modal, or a VPS by writing a different wrapper.
|
| 86 |
|
| 87 |
## Cold-start
|
vendor/mcp-core/src/openwind_mcp_core/server.py
CHANGED
|
@@ -639,7 +639,7 @@ def build_server(
|
|
| 639 |
|
| 640 |
@server.tool()
|
| 641 |
def list_boat_archetypes() -> list[dict[str, Any]]:
|
| 642 |
-
"""List the
|
| 643 |
|
| 644 |
The LLM (or user) maps a commercial model (e.g. "Sun Odyssey 32") to one
|
| 645 |
of these archetypes from the metadata — there is no server-side mapping.
|
|
|
|
| 639 |
|
| 640 |
@server.tool()
|
| 641 |
def list_boat_archetypes() -> list[dict[str, Any]]:
|
| 642 |
+
"""List the 7 boat archetypes with descriptive metadata.
|
| 643 |
|
| 644 |
The LLM (or user) maps a commercial model (e.g. "Sun Odyssey 32") to one
|
| 645 |
of these archetypes from the metadata — there is no server-side mapping.
|