Skip to main content
Glama

club-moorage-mcp

MCP server serving yacht-club moorage records — size limits, rafting rules, booking processes, amenities, reciprocal terms, and overnight-comfort ranking. Each record carries a relationship:

  • outstation — a facility the club owns for its own members. Ships bundled with the three Royal Victoria Yacht Club (RVYC) outstations (Long Harbour, Friday Harbor, Telegraph Harbour).

  • reciprocal — a partner club that hosts visiting RVYC members as guests, with its own visitor terms (free nights, fees, max stay, insurance minimum). Ships bundled with the BC + Washington coastal set (45 clubs): South Vancouver Island, the Gulf Islands, the Vancouver-side crossing stops, the San Juans / Anacortes / Bellingham, and the Strait of Juan de Fuca / North Puget Sound.

Tools

  • list_moorage(clubs?, relationship?) — all moorage: location, coords, size limits.

  • find_moorage_near(lat, lon, radius_nm=20, clubs?, relationship?, date?) — nearby moorage, nearest first; annotates live availability when configured.

  • get_moorage(name) — full record + prose; for an outstation, also the club's general rules.

  • rank_moorage(names, forecast, date?) — overnight-comfort rank for records that support anchoring/mooring; dock-only records are returned under not_ranked. Reuses pilotbook-mcp's scoring against a weather-mcp forecast.

  • check_availability(name, date) — live slip availability for RVYC reservable outstations; requires RVYC_USERNAME/RVYC_PASSWORD.

The clubs filter is an optional list of club codes (e.g. ["RVYC"]); omit for all clubs. The relationship filter is "outstation" or "reciprocal"; omit for both. The agent/context layer decides which clubs are relevant from who is aboard. Discontinued reciprocals (available: false) are omitted from list/find but still resolve by name.

Related MCP server: Airtable MCP Server

Live outstation availability (optional)

check_availability(name, date) reports live slip availability for RVYC's two reservable outstations (Long Harbour, Friday Harbor); find_moorage_near and rank_moorage take an optional date to annotate results the same way. Telegraph Harbour is first-come-first-served (booked via the marina) and reciprocal clubs have no online scheduler, so those return a reason instead of counts.

This layer is off by default. Set RVYC_USERNAME and RVYC_PASSWORD (member credentials) to enable it; without them the tools return static data plus a "not configured" note. No credentials or member data are stored in this package.

Data

Records are markdown (YAML frontmatter + prose) under src/club_moorage_mcp/data/ (clubs/, outstations/, reciprocals/). Point at a different directory with CLUB_MOORAGE_DATA_PATH. pilotbook_anchorage cross-links a record to the nearest pilot-book anchorage; the agent calls pilotbook-mcp's get_anchorage for seabed/depth.

Reciprocal records are generated from ingest/reciprocals.yaml — edit the YAML, then uv run python ingest/build_records.py. The three RVYC outstations are hand-authored. Per-club reciprocal terms were researched from secondary sources; verify fees, LOA, and availability with the club before arrival.

Install

uv sync --dev

Run the server

uv run club-moorage-mcp
Install Server
A
license - permissive license
B
quality
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
4Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sailingnaturali/club-moorage-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server