outstations-mcp
club-moorage-mcp
MCPサーバーはヨットクラブの係留レコードを提供します — サイズ制限、ラフト係留規則、予約手順、アメニティ、相互利用条件、そして一晩の快適度ランキング。各レコードには relationship が含まれます:
outstation— クラブが自会員のために所有する施設。3つのRoyal Victoria Yacht Club (RVYC) アウトステーション(Long Harbour、Friday Harbor、Telegraph Harbour)が同梱されています。reciprocal— 訪問するRVYC会員をゲストとして受け入れるパートナークラブ。独自のビジター条件(無料泊、料金、最大滞在日数、保険の最低条件)を持ちます。RVYC相互利用リスト全体 — 全世界138クラブ を2つの詳細度で同梱しています:調査済み(
confidence中/高、45クラブ)— 実際にボートが巡航するBC + ワシントン州沿岸のセット:サウスバンクーバー島、ガルフ諸島、バンクーバー側の横断停泊地、サンフアン諸島 / アナコルテス / ベリンガム、フアンデフカ海峡 / ピュージェット湾北部。クラブごとの条件、料金、サイズ制限、Vaanの適合性。リストのみ(
confidence: low、93クラブ)— リストの残りすべて:カリフォルニア、ハワイ、メキシコ、バミューダ、カリブ海、カナダ東部、英国、オーストラリア/NZ、その他。位置、住所、電話、ウェブサイトのみで、航程計画で「この港にあるのはどのクラブか?」と尋ねられるようにするため。ゲスト係留条件は調査されておらず、すべてのレコードにその旨が記載されています。
ツール
list_moorage(clubs?, relationship?)— すべての係留情報:場所、座標、サイズ制限。find_moorage_near(lat, lon, radius_nm=20, clubs?, relationship?, date?)— 近くの係留情報を近い順に表示。設定されている場合はライブ空き状況を注記。get_moorage(name)— 完全なレコード + 散文。アウトステーションの場合はクラブの一般規則も含む。rank_moorage(names, forecast, date?)— 錨泊/係留に対応するレコードの一晩の快適度ランキング。ドック専用レコードはnot_rankedの下で返されます。pilotbook-mcp のスコアリングを weather-mcp の予報に対して再利用します。check_availability(name, date)— RVYCの予約可能なアウトステーションのライブスリップ空き状況。RVYC_USERNAME/RVYC_PASSWORDが必要です。
clubs フィルターはクラブコードのオプションリストです(例:["RVYC"])。省略すると全クラブが対象になります。relationship フィルターは "outstation" または "reciprocal" で、省略すると両方が対象になります。エージェント/コンテキスト層が、誰が乗船しているかに基づいて関連するクラブを判断します。廃止された相互利用クラブ(available: false)は list/find から除外されますが、名前では引き続き解決されます。
Related MCP server: flkeys-mcp
アウトステーションのライブ空き状況(オプション)
check_availability(name, date) は、RVYCの予約可能な2つのアウトステーション(Long Harbour、Friday Harbor)のライブスリップ空き状況を報告します。find_moorage_near と rank_moorage はオプションの date を受け取り、同じ方法で結果に注記します。Telegraph Harbour は先着順(マリーナ経由で予約)で、相互利用クラブにはオンラインスケジューラがないため、これらの場合は件数ではなく理由が返されます。
このレイヤーはデフォルトでオフです。有効にするには RVYC_USERNAME と RVYC_PASSWORD(メンバー資格情報)を設定します。これらがない場合、ツールは静的データと「not configured」という注記を返します。このパッケージには資格情報やメンバーデータは保存されません。
データ
レコードは src/club_moorage_mcp/data/(clubs/、outstations/、reciprocals/)配下のマークダウン(YAMLフロントマター + 散文)です。CLUB_MOORAGE_DATA_PATH で別のディレクトリを指定できます。pilotbook_anchorage はレコードを最寄りのパイロットブック錨地に相互リンクします。エージェントは pilotbook-mcp の get_anchorage を呼び出して海底/水深を取得します。
moorage.geojson は、同梱されているすべてのレコードの生成マップです。GitHubはこれをインラインで表示します(青 = アウトステーション、緑 = 相互利用)。データ変更後は uv run python ingest/build_geojson.py で再生成してください。--check はドリフトがあると失敗し、tests/test_geojson.py もCIで同じことを行います。
相互利用レコードは ingest/reciprocals.yaml から生成されます。YAMLを編集してから uv run python ingest/build_records.py を実行します。3つのRVYCアウトステーションは手作業で作成されています。クラブリストはRVYC 2024 Annualで、位置と連絡先はRVYC自身の相互利用マップです。クラブごとの条件は、存在する場合に限り二次情報源から調査されました。到着前にクラブに料金、LOA、空き状況を確認してください。
インストール
uv sync --devサーバーの実行
uv run club-moorage-mcpAvailable Tools
4 toolsfind_anchorages_nearC
Anchorages within a radius of a position, nearest first, with exposure summary.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | ||
| lon | Yes | ||
| radius_nm | No | Search radius in nautical miles (default 10). |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| names | Yes | ||
| forecast | Yes |
TDQS
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.
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.
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.
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.
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.
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.
4 tool updates
v0.6.0- First observed
find_anchorages_near - First observed
get_anchorage - First observed
list_sources - First observed
rank_anchorages
TDQS
Scored across 4 tools
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.
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.
Four tools is slightly below average but appropriate for a focused server covering anchorage lookup and ranking. Each tool earns its place without redundancy.
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
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
Curated gateway to snapshot-versioned Canadian public data services with source provenance.
Read-only access to live ADSBiq aircraft and network state, with community contribution metadata.
Read-only property facts, indicative availability, authorised booking links and guest-safe support.
Restaurant fire-safety & service-interval tracking (NFPA 96/17A) — read-only demo tools.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA fully MCP-compliant, open-source maritime data service that provides real-time vessel tracking, port information, route planning, and weather/tide data for maritime applications.14MIT
- FlicenseNot gradedqualityDmaintenanceVerified hyper-local data API for the Florida Keys. Raccoon data covering charters, marinas, restaurants, and local knowledge missing from Google Maps and TripAdvisor.-
- AlicenseAqualityBmaintenanceEnables searching SAC huts, checking availability, and preparing booking or cancellation handoffs on hut-reservation.org with a safety model for writes.1093MIT
- AlicenseAqualityCmaintenanceEnables AI agents to query and manage campground reservations, sites, and rate plans via the Campspot Online Booking API.8MIT