mcpField
G
Global Fishing Watch

Global Fishing Watch

远程服务
pipeworx.io科研与教育03 天前更新

关于 Global Fishing Watch

Global Fishing Watch 是用于查询 AIS 船只身份、海上事件和汇总疑似捕捞活动的 MCP 服务,面向研究船舶活动的 AI Agent 与数据使用者。它支持按日期和区域检索。

主要功能

  1. 01按名称或标识搜索船只
  2. 02按日期范围检索海上事件
  3. 03按区域汇总捕捞活动
  4. 04支持本地 stdio 或 Pipeworx 网关

适用场景

  1. 01通过名称、MMSI、IMO 或呼号识别船只
  2. 02查看捕捞、会遇、徘徊、港口停靠或 AIS 信号缺口
  3. 03汇总指定地理区域的疑似捕捞活动

MCP 相关

向 MCP 客户端提供船只搜索、事件检索和 4wings 捕捞活动报告工具。可作为本地 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 Agent 连接到 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。

两种分页方案不同,混用就会导致 422。/v3/vessels/search 使用 CURSOR 分页:响应中包含 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 游标会保留自己的页面大小——将 since 与较小的 limit 一起传入,仍会返回原页面大小的数据,因此不能把 returned 当作 limit 已生效的证明(实时测量结果:limit 为 2,加上来自 limit 为 5 的调用的游标,返回了 5 条)。
  • 此端点中的每个重复参数都必须使用带索引的方括号:datasets[0]、includes[0]。裸写的 includes[] 格式会导致 422。身份信息嵌套在两个并行数组中——selfReportedInfo(船舶广播的信息)和 registryInfo(注册处记录的信息)——二者可能不一致。此工具包会提取常用字段,并保留这两个数组。
  • /v3/events 使用 GET 时接受 start-date/end-date(连字符格式),而在 POST 请求正文中使用 startDate/endDate(驼峰格式)。此工具包使用 GET。
  • /v3/4wings/report 使用 POST:网格参数放在查询字符串中(spatial-resolution、temporal-resolution、group-by、date-range,格式为 YYYY-MM-DD,YYYY-MM-DD,以及 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 跨整个目录进行路由,元工具可以让限定范围的连接回答此工具包未涵盖的问题,而无需添加第二个 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。查找工具:POST https://gateway.pipeworx.io/v1/tools/search_packs,并传入 {"query":"..."}。

独立运行(无需网关账户)

此软件包也可作为本地 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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。