Sailing Event Performance MCP

A public, no-auth MCP server for competitive sailing analysis — results, rank at every mark, per-leg speeds, what each tack and gybe cost, course geometry and wind bands. Built on the SAP Sailing Analytics public API.

https://sailing.sillsengineering.com/mcp
Data © SAP Sailing Analyticssapsailing.com. This server reads SAP's public API and reshapes it for agents; it does not own the data. Every tool response repeats this attribution in its provenance block. If you show this data to a person, show the attribution with it.

Connect

Claude Code

claude mcp add --transport http --scope user sailing \
  https://sailing.sillsengineering.com/mcp

claude.ai or Claude Desktop

Settings → Connectors → Add custom connector, and paste the endpoint URL above. There is no sign-in step: the server takes no credentials from callers.

Any MCP client

Streamable HTTP — one POST with a JSON-RPC 2.0 body per request, no SSE.

curl -sS https://sailing.sillsengineering.com/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Tools

Call describe first. It states what the server can and cannot answer and how the tools chain — it is the grounding surface, not a brochure.

ToolWhat it returns
describeCapabilities, exclusions, conventions, and the workflow. Start here.
find_eventsRegatta / event discovery across the tracked catalogue.
get_eventAn event's races, plus its wind summary.
get_resultsLeaderboard: ranks, net points, per-race scores including discards.
get_raceRace structure: start times, legs, course geometry, mark coordinates.
get_race_performancePer-leg, per-competitor: average and max SOG, distance, tacks, gybes, penalties.
get_maneuversDetected tacks and gybes: entry/exit/lowest speed, turn angle, metres lost.
analyze_raceComposed race story: rank at every mark joined to per-leg and manoeuvre detail.

Chaining

find_events(query)get_event(name) for its races → get_results / get_race / get_race_performance / get_maneuvers / analyze_race. The leaderboard name usually equals the regatta name.

Names are exact strings. Pass regatta and race names back exactly as the previous tool returned them — don't normalise or re-case them.

Conventions worth knowing

What this server does not have

No raw GPS tracks and no raw wind fixes. SAP gates those behind a permission this server does not hold. It is public-tier only, by design — so questions that need breadcrumb positions or individual wind samples cannot be answered here, and the server will tell you so rather than approximate.

Events SAP does not track are also unavailable.

Fair use

Status

GET /health returns liveness. Server manifest · llms.txt