Skip to main content
Glama

club-moorage-mcp

요트 클럽 계류 기록을 제공하는 MCP 서버 — 크기 제한, 병렬 계류 규칙, 예약 절차, 편의 시설, reciprocal 조건, 숙박 편의 순위. 각 레코드에는 relationship이 포함됩니다:

  • outstation — 클럽이 자체 회원을 위해 소유한 시설입니다. 세 개의 Royal Victoria Yacht Club(RVYC) outstation(Long Harbour, Friday Harbor, Telegraph Harbour)이 번들로 포함됩니다.

  • reciprocal — 방문하는 RVYC 회원을 게스트로 맞이하는 파트너 클럽으로, 자체 방문자 조건(무료 숙박일, 요금, 최대 체류 기간, 최소 보험)이 있습니다. 전체 RVYC reciprocal 목록 — 전 세계 138개 클럽이 두 가지 수준으로 번들로 포함됩니다:

    • 조사됨 (confidence med/high, 45개 클럽) — 보트가 실제로 항해하는 BC + 워싱턴 해안 지역 세트: 사우스 밴쿠버 아일랜드, 걸프 아일랜드, 밴쿠버 쪽 횡단 정박지, 산후안 / 아나코르테스 / 벨링햄, 후안 데 푸카 해협 / 노스 퓨젓사운드. 클럽별 조건, 요금, 크기 제한 및 Vaan 적합성.

    • 목록만 (confidence: low, 93개 클럽) — 목록의 나머지 전부: 캘리포니아, 하와이, 멕시코, 버뮤다, 카리브해, 캐나다 동부, 영국, 호주/뉴질랜드 및 기타 지역. 위치, 주소, 전화번호, 웹사이트만 포함하므로 항해 계획에서 "이 항구에 누구의 클럽이 있지?"라고 물을 수 있습니다. 게스트 계류 조건은 조사되지 않았으며 모든 레코드에 그렇게 명시되어 있습니다.

도구

  • list_moorage(clubs?, relationship?) — 모든 계류 정보: 위치, 좌표, 크기 제한.

  • find_moorage_near(lat, lon, radius_nm=20, clubs?, relationship?, date?) — 가까운 계류지를 가까운 순서대로 표시합니다. 구성된 경우 실시간 가용성을 주석으로 추가합니다.

  • get_moorage(name) — 전체 레코드 + 설명; outstation의 경우 클럽의 일반 규칙도 포함합니다.

  • rank_moorage(names, forecast, date?) — 앵커링/계류를 지원하는 레코드에 대한 숙박 편의 순위; 도크 전용 레코드는 not_ranked 아래에 반환됩니다. weather-mcp 예보에 대해 pilotbook-mcp의 점수를 재사용합니다.

  • check_availability(name, date) — RVYC 예약 가능 outstation의 실시간 슬립 가용성; RVYC_USERNAME/RVYC_PASSWORD 필요.

clubs 필터는 클럽 코드의 선택적 목록입니다(예: ["RVYC"]). 생략하면 모든 클럽이 대상입니다. relationship 필터는 "outstation" 또는 "reciprocal"이며, 생략하면 둘 다 대상입니다. 에이전트/컨텍스트 레이어는 누가 탑승 중인지에 따라 어떤 클럽이 관련이 있는지 결정합니다. 중단된 reciprocal(available: false)은 list/find에서 제외되지만 이름으로는 여전히 확인됩니다.

Related MCP server: flkeys-mcp

실시간 outstation 가용성 (선택 사항)

check_availability(name, date)는 RVYC의 예약 가능한 두 outstation(Long Harbour, Friday Harbor)의 실시간 슬립 가용성을 보고합니다. find_moorage_nearrank_moorage는 선택적 date를 받아 동일한 방식으로 결과에 주석을 답니다. Telegraph Harbour는 선착순이며(마리나를 통해 예약), reciprocal 클럽에는 온라인 스케줄러가 없으므로 해당 항목은 개수 대신 사유를 반환합니다.

이 레이어는 기본적으로 꺼져 있습니다. 활성화하려면 RVYC_USERNAMERVYC_PASSWORD(회원 자격 증명)를 설정하세요. 설정하지 않으면 도구는 정적 데이터와 "구성되지 않음" 메모를 반환합니다. 이 패키지에는 자격 증명이나 회원 데이터가 저장되지 않습니다.

데이터

레코드는 src/club_moorage_mcp/data/ 아래의 마크다운(YAML frontmatter + 설명)입니다(clubs/, outstations/, reciprocals/). CLUB_MOORAGE_DATA_PATH로 다른 디렉터리를 지정할 수 있습니다. pilotbook_anchorage는 레코드를 가장 가까운 파일럿북 정박지에 교차 연결합니다. 에이전트는 해저/수심을 위해 pilotbook-mcp의 get_anchorage를 호출합니다.

moorage.geojson은 번들로 포함된 모든 레코드의 생성된 지도입니다. GitHub에서 인라인으로 렌더링합니다(파란색 = outstation, 초록색 = reciprocal). 데이터 변경 후 uv run python ingest/build_geojson.py로 다시 생성하세요. --check는 불일치 시 실패하며, tests/test_geojson.py도 CI에서 동일하게 수행합니다.

Reciprocal 레코드는 ingest/reciprocals.yaml에서 생성됩니다. YAML을 편집한 다음 uv run python ingest/build_records.py를 실행하세요. 세 개의 RVYC outstation은 수작업으로 작성되었습니다. 클럽 목록은 RVYC 2024 Annual이며, 위치와 연락처는 RVYC 자체 reciprocal 지도입니다. 클럽별 조건은 2차 출처가 존재하는 경우에 한해 조사되었습니다. 도착 전에 클럽에 요금, LOA 및 가용성을 확인하세요.

설치

uv sync --dev

서버 실행

uv run club-moorage-mcp

Available Tools

4 tools
find_anchorages_nearC

Anchorages within a radius of a position, nearest first, with exposure summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYes
lonYes
radius_nmNoSearch radius in nautical miles (default 10).

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description must disclose behavioral traits. It mentions exposure summary but omits coordinate format, rate limits, or any output details. Minimal behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence is concise but too brief. It front-loads the action but lacks necessary details, making it under-specified rather than optimally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, no annotations, and low parameter coverage, the description is incomplete. It fails to specify coordinate system, exposure summary details, or any constraints beyond radius.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% (radius_nm has description). Description adds no extra meaning for lat/lon parameters, leaving their format and units unspecified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool finds anchorages within a radius of a position, orders them nearest first, and provides an exposure summary. It distinguishes from siblings: get_anchorage (specific), list_sources (sources), rank_anchorages (ranking).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus siblings. Does not mention when a call is appropriate or when to use alternatives like get_anchorage or rank_anchorages.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_anchorageB

Full record and verbatim pilot-book prose for one named anchorage.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only mentions returning data without disclosing side effects, authentication needs, rate limits, or whether the tool is read-only. The description lacks behavioral details beyond the output content.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence. It effectively communicates the core functionality without extraneous words, though it could be structured to include parameter constraints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (1 required param, no output schema), the description covers the basic purpose. However, it does not describe the return structure or what constitutes 'full record,' which would be helpful for an agent. An output schema would mitigate this, but none is provided.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'name' has no schema description (0% coverage), and the description only implies it is the anchorage name. No format, case sensitivity, or validation details are provided, leaving the agent to guess constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns 'full record and verbatim pilot-book prose for one named anchorage,' specifying the verb (get) and resource (anchorage by name). It effectively distinguishes from siblings like find_anchorages_near (search) and rank_anchorages (ranking).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is provided. The purpose is clear but does not mention alternatives or context like using find_anchorages_near for searching. The agent must infer usage from sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sourcesC

The pilot books ingested into the vault.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.4/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only states what is returned. It discloses nothing about behavior such as read-only nature, authentication needs, pagination, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence but is not a proper sentence with a main verb; it is a noun phrase. It is too brief and lacks structure, failing to clearly convey the operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (no parameters, no output schema), the description should at least include the verb 'list.' It partially tells what the tool returns but is incomplete as a functional description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so schema coverage is 100%. The baseline for zero parameters is 4, and the description adds no parameter information, which is acceptable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a noun phrase, 'The pilot books ingested into the vault,' which omits the action verb. The tool name implies 'list,' but the description does not explicitly state that the tool lists or retrieves these books. It is somewhat clear but lacks a verb.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. Sibling tools are about anchorages, but no comparison or context is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rank_anchoragesA

Rank named anchorages by overnight comfort against a forecast. Fetch the forecast from weather-mcp and pass it as forecast (a list of steps with wind_from_deg, wind_kn, swell_from_deg, swell_m).

ParametersJSON Schema
NameRequiredDescriptionDefault
namesYes
forecastYes

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description only states it ranks by comfort against forecast. Lacks details on side effects, authentication, or assumptions (e.g., units, missing data). Insufficient disclosure for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the primary purpose. Second sentence provides necessary parameter detail. Minimal waste, though could be slightly more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Provides essential information for a ranking tool with no output schema and no annotations. Explains forecast format but does not mention output structure (ranking order, score format) or error conditions. Adequate but has gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%; description adds meaning by explaining that 'names' are anchorage names and 'forecast' is a list of steps with specified fields (wind_from_deg, wind_kn, swell_from_deg, swell_m). Adds significant value beyond raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states verb 'rank' and resource 'anchorages' with a clear method (against a forecast). Distinguishes from siblings: find_anchorages_near (nearby, not rank), get_anchorage (single), list_sources (list).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tells user to fetch forecast from weather-mcp and pass specific fields, implying a prerequisite. Does not explicitly state when to use versus alternatives or mention exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv0.6.0
    • First observedfind_anchorages_near
    • First observedget_anchorage
    • First observedlist_sources
    • First observedrank_anchorages

TDQS

B3.3/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: finding anchorages near a position, retrieving details for a specific anchorage, listing data sources, and ranking anchorages by comfort. No overlap exists.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case: find_anchorages_near, get_anchorage, list_sources, rank_anchorages. No deviations or mixed conventions.

Tool Count4/5

Four tools is slightly below average but appropriate for a focused server covering anchorage lookup and ranking. Each tool earns its place without redundancy.

Completeness4/5

The set covers the core read operations for anchorages: find, get details, rank, and list sources. No obvious dead ends, though write operations are absent (likely by design).

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Verified hyper-local data API for the Florida Keys. Raccoon data covering charters, marinas, restaurants, and local knowledge missing from Google Maps and TripAdvisor.
    -
  • A
    license
    A
    quality
    B
    maintenance
    Enables searching SAC huts, checking availability, and preparing booking or cancellation handoffs on hut-reservation.org with a safety model for writes.
    10
    9
    3
    MIT