关于 Global Fishing Watch
Global Fishing Watch 是用于查询 AIS 船只身份、海上事件和汇总疑似捕捞活动的 MCP 服务,面向研究船舶活动的 AI Agent 与数据使用者。它支持按日期和区域检索。
主要功能
- 01按名称或标识搜索船只
- 02按日期范围检索海上事件
- 03按区域汇总捕捞活动
- 04支持本地 stdio 或 Pipeworx 网关
适用场景
- 01通过名称、MMSI、IMO 或呼号识别船只
- 02查看捕捞、会遇、徘徊、港口停靠或 AIS 信号缺口
- 03汇总指定地理区域的疑似捕捞活动
MCP 相关
向 MCP 客户端提供船只搜索、事件检索和 4wings 捕捞活动报告工具。可作为本地 stdio MCP 服务运行,也可通过 Pipeworx 网关访问。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gateway.pipeworx.io/global-fishing-watch/mcpclaude mcp add --transport http pipeworx-io-global-fishing-watch https://gateway.pipeworx.io/global-fishing-watch/mcp{"mcpServers":{"pipeworx-io-global-fishing-watch":{"type":"http","url":"https://gateway.pipeworx.io/global-fishing-watch/mcp"}}}在 Cursor 中打开{"servers":{"pipeworx-io-global-fishing-watch":{"type":"http","url":"https://gateway.pipeworx.io/global-fishing-watch/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeworx-io-global-fishing-watch":{"type":"http","url":"https://gateway.pipeworx.io/global-fishing-watch/mcp"}}}{"mcpServers":{"pipeworx-io-global-fishing-watch":{"serverUrl":"https://gateway.pipeworx.io/global-fishing-watch/mcp"}}}命令在终端中运行;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 数据可免费用于非商业用途,商业用途需要获得其许可。
数据源
- https://gateway.api.globalfishingwatch.org/v3/vessels/search
- https://gateway.api.globalfishingwatch.org/v3/events
- https://gateway.api.globalfishingwatch.org/v3/4wings/report(POST;区域几何信息放在请求正文中,分辨率/分组信息放在查询字符串中)
此 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
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。