关于 Vessel Tracking
Vessel Tracking 是通过 AIS 广播查询实时船舶位置的 MCP 服务,支持区域搜索、按 MMSI 查询船舶,以及检查接收覆盖情况,避免把无信号误判为空区域。
主要功能
- 01按区域或半径查找实时船舶
- 02按 MMSI 查询位置
- 03检查 AIS 接收覆盖
- 04返回船舶动态和航程信息
- 05作为本地 stdio 服务运行
适用场景
- 01查看港口附近正在广播的船舶
- 02确认某地是否有 AIS 接收
- 03获取船舶最新报告位置
MCP 相关
通过 Pipeworx 或本地 stdio 服务向 MCP 客户端提供 AIS 船舶搜索和覆盖检查工具。网关端点还包含 Pipeworx 共享元工具。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gateway.pipeworx.io/vessel-tracking/mcpclaude mcp add --transport http pipeworx-io-vessel-tracking https://gateway.pipeworx.io/vessel-tracking/mcp{"mcpServers":{"pipeworx-io-vessel-tracking":{"type":"http","url":"https://gateway.pipeworx.io/vessel-tracking/mcp"}}}在 Cursor 中打开{"servers":{"pipeworx-io-vessel-tracking":{"type":"http","url":"https://gateway.pipeworx.io/vessel-tracking/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeworx-io-vessel-tracking":{"type":"http","url":"https://gateway.pipeworx.io/vessel-tracking/mcp"}}}{"mcpServers":{"pipeworx-io-vessel-tracking":{"serverUrl":"https://gateway.pipeworx.io/vessel-tracking/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
@pipeworx/vessel-tracking
通过 AIS 无线电广播获取全球实时船舶位置。支持平台密钥(aisstream.io),也可自带密钥(BYO)。
属于 Pipeworx — 一个将 AI Agent 连接到 1684+ 个实时数据源的 MCP 网关。
工具
live_ships_in_area(...)— 获取当前在某个边界框内或某个点周围广播的船舶,包含位置、速度、航向、航行状态、类型、目的地和 IMO,以及按船舶类型划分的统计。live_ship_position(...)— 按 MMSI 获取指定船舶的实时位置。ais_coverage_check(...)— 检查某个位置是否确实有接收器覆盖,以便正确解读零结果。
身份验证
平台密钥(PLATFORM_AISSTREAM_KEY),或通过 _apiKey 自带密钥。可在 https://aisstream.io 免费即时注册。
覆盖范围 — 解读零结果前请先阅读
aisstream 是由社区运营的陆基接收器网络,因此覆盖范围取决于志愿者部署硬件的位置。已于 2026-07-27 使用 60 秒订阅验证:
| 区域 | 收到的船舶数 |
|---|---|
| 地中海 | 221 |
| 英吉利海峡 | 50(30s) |
| 马六甲海峡 | 24(30s) |
| 波斯湾 / 霍尔木兹海峡 | 0 |
| 阿曼湾 | 0 |
| 红海 / 曼德海峡 | 0 |
波斯湾和红海均无覆盖。 覆盖远洋和没有接收器的海岸地区的是 Spire/ORBCOMM 的付费卫星 AIS 产品,而本服务并非如此。查询霍尔木兹海峡时会返回 coverage: "none",并重定向到 chokepoint_status,而不会只返回一个 0。
计数字段命名为 vessels_observed,而非 vessel_count,因为它统计的是监听窗口内收到的信号,而非实际存在的船舶。每个零结果都会附带 coverage 判定:confirmed、none 或 unconfirmed。
采样注意事项
AIS 发送间隔取决于船舶的运动状态:航行中的船舶每 2-10 秒广播一次,锚泊中的船舶约每 3 分钟广播一次。因此,较短的窗口会低估静止船舶的数量。live_ship_position 本质上只能尽力而为——在 35s 的窗口内,只找到 8 艘此前确认正在发送信号的船舶中的 1 艘——因此请延长 window_seconds(最长 40;更长时调用方会超时),或使用 vesselfinder_vessel 获取已存储的最后已知位置。
数据源
- 数据流:
wss://stream.aisstream.io/v0/stream
快速开始
添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):
{
"mcpServers": {
"vessel-tracking": {
"url": "https://gateway.pipeworx.io/vessel-tracking/mcp"
}
}
}
此端点实际提供的内容
https://gateway.pipeworx.io/vessel-tracking/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 都会连接到同一个网关和相同的 1684+ 个数据源。唯一的区别在于哪个工具包的工具会被直接列出;无论连接哪一个,ask_pipeworx 都可以访问全部工具。
没有 MCP 客户端?通过 HTTP 调用
curl -X POST https://gateway.pipeworx.io/v1/tools/live_ships_in_area \
-H 'Content-Type: application/json' \
-d '{"latitude":43.3,"longitude":5.4,"radius_km":50}'
首次调用无需账户。查看任意工具:GET https://gateway.pipeworx.io/v1/tools/live_ships_in_area。查找工具:使用 {"query":"..."} 向 https://gateway.pipeworx.io/v1/tools/search_packs 发送 POST 请求。
独立运行(无需网关账户)
此软件包也可作为本地 stdio MCP 服务运行,无需 Pipeworx 账户,也无需经过网关往返:
{
"mcpServers": {
"vessel-tracking": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-vessel-tracking"]
}
}
}
也可以直接运行,确认它能正常启动:
npx -y @pipeworx/mcp-vessel-tracking
它通过 stdin/stdout 使用 MCP 通信,并针对仅限此软件包的工具响应 initialize/tools/list/tools/call——不包含上方网关连接所添加的任何共享元工具。相同的源代码,相同的工具,无需 ask_pipeworx 路由。
使用 ask_pipeworx
你也可以用通俗的英语提问,而不是直接调用工具——这既适用于上方的软件包端点,也适用于完整网关:
ask_pipeworx({ question: "your question about Vessel Tracking data" })
网关会选择合适的工具并自动填写参数。
更多信息
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。