mcpField
G
Global Fishing Watch

Global Fishing Watch

リモート
pipeworx.io科学・教育03 日前に更新
リポジトリ公式サイト

Global Fishing Watch について

Global Fishing Watch は、AIS に基づく船舶情報、海上イベント、推定漁業活動の集計を調べる MCP サーバーです。船舶の活動を期間や地域で分析する AI エージェントやデータ利用者向けです。

主な機能

  1. 01名称や識別子による船舶検索
  2. 02期間を指定した海上イベント取得
  3. 03地域別の漁業活動集計
  4. 04ローカル stdio または Pipeworx ゲートウェイで利用

活用シーン

  1. 01名称、MMSI、IMO、コールサインから船舶を特定
  2. 02漁業、遭遇、徘徊、寄港、AIS の信号途絶を確認
  3. 03指定地域の推定漁業活動を集計

MCP 対応

船舶検索、イベント取得、4wings 漁業活動レポートを MCP クライアント向けのツールとして提供します。ローカルの stdio MCP サーバーとして、または Pipeworx ゲートウェイ経由で利用できます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://gateway.pipeworx.io/global-fishing-watch/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

@pipeworx/global-fishing-watch

Global Fishing Watch API v3 — AIS 由来の船舶識別情報、海上イベント (漁業らしき活動、遭遇、低速滞留、港への寄港、AIS の途絶)、および集計された 漁業らしき活動の操業量。

Pipeworx の一部です — AI エージェントを 1879 以上のライブデータソースに接続する MCP ゲートウェイです。これは独立した非公式の統合であり、上流プロバイダーとの提携、承認、公開はありません。

ツール

  • gfwfish_vessels_search(query, datasets?, limit?, offset?, _apiKey) — 船名、 MMSI、IMO、またはコールサインによる船舶識別情報。
  • gfwfish_events(start_date, end_date, vessel_id?, event_type?, limit?, offset?, _apiKey) — 日付範囲内のイベント。
  • gfwfish_4wings_report(bbox, start_date, end_date, group_by?, temporal_resolution?, spatial_resolution?, datasets?, _apiKey) — 矩形範囲内で集計された 漁業らしき活動の操業量。

認証

2026-09-18 以降、プラットフォーム経由で利用できます。 PLATFORM_GFW_FISHING_TOKEN は 暗号化されたキーストアに保存されています(GFW API アプリケーション「pipeworx」、 非商用の利用を想定)。ゲートウェイはこれを _apiKey として挿入しますが、呼び出し元が 独自のものを渡すこともできます。v3 のすべてのエンドポイントには Bearer トークンが必要です。 キー不要またはデモ用の経路はありません。無料の非商用トークン: https://globalfishingwatch.org/our-apis/tokens。

PLATFORM_GFW_KEY とは異なります。こちらは Global Forest Watch 用で、 別の組織、別の API、似た略称です。

パックには licence: non-commercial が設定されています。GFW データは非商用利用であれば無料で、 商用利用には許可が必要です。

データソース

この API の 401 は、パスについて何の証明にもなりません。 存在しないパスを含め、どのパスへの未認証リクエストも、2026-09-17 に /v3/zzz-not-a-path で確認したとおり、401 {"error":"invalid token"} を返します。そのため、2026-09-17 に同梱されたシェイプは検証できず、実際のトークンを使った最初のプローブが 422 を返しました。

2 つのページング方式は異なり、混同すると 422 になります。 /v3/vessels/search はカーソルでページングします。レスポンスに since が含まれるので、それを since として渡します。offset を送ると 422 Unprocessable Entity で拒否されます。/v3/events は通常の方法でページングします。offset と limit の両方が必須で、レスポンスには nextOffset が含まれます。これらを統一しないでください。

その他のシェイプに関する事実は、いずれも v3 のドキュメントに基づき、その後、実環境(fleet #2245)で確認済みです。

  • 複数値パラメーターでは、インデックス付きの角括弧を使用します:datasets[0]=...、vessels[0]=...、filters[0]=...。
  • /v3/vessels/search の query には 3 文字以上が必要で、limit の上限は 50 です。since カーソルにはページサイズも含まれます。小さい limit とともに since を渡しても、元のページと同じ件数が返されます。そのため、returned を見て limit が適用されたと判断しないでください(実環境での測定:limit 5 の呼び出しで取得したカーソルと limit 2 を組み合わせたところ、5 件が返されました)。
  • このエンドポイントで繰り返し指定する各パラメーターには、インデックス付きの角括弧が必要です:datasets[0]、includes[0]。includes[] のようにインデックスを省略した形式は 422 になります。識別情報は、並行する 2 つの配列(船舶が発信した情報を含む selfReportedInfo と、登録簿が保持する情報を含む registryInfo)の中にネストされており、両者が一致しない場合があります。このパックでは、共通フィールドを取り出し、両方の配列を保持します。
  • /v3/events は GET では start-date/end-date(ハイフン区切り)、POST ボディでは startDate/endDate(キャメルケース)を受け取ります。このパックでは GET を使用します。
  • /v3/4wings/report は POST です。グリッドパラメーター(spatial-resolution、temporal-resolution、group-by、YYYY-MM-DD,YYYY-MM-DD 形式の date-range、format=JSON)はクエリー文字列に指定し、エリアはボディに指定します。エリアには名前付きリージョン {"region":{"dataset":"public-eez-areas","id":8371}}、またはトップレベルの "geojson" キーの下に指定するカスタムポリゴンを使用できます。temporal-resolution には HOURLY、DAILY、MONTHLY、YEARLY、ENTIRE のいずれかを指定します。entries は行ではなく、グループ化された行の配列なので、このパックではフラット化します。

クイックスタート

MCP クライアント(Claude Desktop、Cursor、Windsurf など)に追加します:

{
  "mcpServers": {
    "global-fishing-watch": {
      "url": "https://gateway.pipeworx.io/global-fishing-watch/mcp"
    }
  }
}
このエンドポイントが実際に提供するもの

https://gateway.pipeworx.io/global-fishing-watch/mcp の tools/list は、上の表にあるツールに加えて、共有 Pipeworx メタツール(ask_pipeworx、discover_tools、search_within、remember/recall など、ゲートウェイ全体で利用できるツール一式)も返します。そのため、表示されるツール数はこの表より多くなります。現在、単一パックのエンドポイントには、そのパック独自のツールとともに、共有ツールが約 30 個一覧表示されます。接続の initialize レスポンスには正確なスコープが記載されており、その日の状況を確認するための正式な情報源です。

これは意図的な設計であり、偶然の多重化ではありません。メタツールを使うと、ask_pipeworx 経由でカタログ全体を横断してルーティングできるため、このパックが対応していない質問にも、2 つ目の MCP サーバーを追加せずに答えられます。現時点では、メタツールなしでパックのエンドポイントをマウントする方法はありません。追加のスキーマにかかるコンテキストコストがルーティングのメリットを上回る場合は、複数のパックエンドポイントではなく、フルゲートウェイに一度接続してください。

また、フル Pipeworx ゲートウェイに接続すると、このパックのツールだけでなく、すべてのパックのツールを直接一覧表示できます:

{
  "mcpServers": {
    "pipeworx": {
      "url": "https://gateway.pipeworx.io/mcp"
    }
  }
}

どちらの URL も、同じゲートウェイと同じ 1879+ 個のデータソースに接続します。違いは、どのパックのツールが直接一覧表示されるかだけです。どちらからでも、ask_pipeworx を使えばすべてのツールにアクセスできます。

MCP クライアントがない場合:HTTP 経由で呼び出す

curl -X POST https://gateway.pipeworx.io/v1/tools/gfwfish_vessels_search \
  -H 'Content-Type: application/json' \
  -d '{"query":"ARCTIC LOON","limit":5}'

最初の呼び出しにアカウントは必要ありません。任意のツールを確認するには、GET https://gateway.pipeworx.io/v1/tools/gfwfish_vessels_search を実行します。ツールを探すには、{"query":"..."} を指定して POST https://gateway.pipeworx.io/v1/tools/search_packs を実行します。

スタンドアロン(ゲートウェイアカウント不要)

このパッケージはローカルの stdio MCP サーバーとしても実行できます。Pipeworx アカウントも、ゲートウェイへのラウンドトリップも不要です。

{
  "mcpServers": {
    "global-fishing-watch": {
      "command": "npx",
      "args": ["-y", "@pipeworx/mcp-global-fishing-watch"]
    }
  }
}

または、直接実行して起動を確認します。

npx -y @pipeworx/mcp-global-fishing-watch

stdin/stdout 経由で MCP を使用し、このパックのツールのみを対象に initialize/tools/list/tools/call に応答します。上記のゲートウェイ接続で追加される共有メタツールは含まれません。同じソース、同じツールで、ask_pipeworx によるルーティングはありません。

ask_pipeworx の使用

ツールを直接呼び出す代わりに、平易な英語で質問できます。これは上記のパックエンドポイントだけでなく、ゲートウェイ全体でも機能します。

ask_pipeworx({ question: "your question about Global Fishing Watch data" })

ゲートウェイが適切なツールを選択し、引数を自動的に入力します。

詳細

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。