mcpField
N
Noaa Coastwatch

Noaa Coastwatch

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

关于 Noaa Coastwatch

Noaa Coastwatch 是用于查询 NOAA CoastWatch 卫星与海洋模型数据的 MCP 服务,支持数据集检索、元数据查看、表格观测和网格点值查询,数据来自两个 ERDDAP 节点。

主要功能

  1. 01搜索数据集目录
  2. 02查看变量与覆盖范围
  3. 03查询表格观测数据
  4. 04获取网格点值

适用场景

  1. 01按主题查找海洋数据集
  2. 02查询前核对数据集变量
  3. 03获取 NDBC 浮标观测
  4. 04查询指定位置的网格数据

MCP 相关

将 CoastWatch ERDDAP 的搜索、元数据、表格及网格点查询作为 MCP 工具提供。可作为独立 stdio 服务运行,也可通过 Pipeworx 网关连接。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://gateway.pipeworx.io/noaa-coastwatch/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/noaa-coastwatch

NOAA CoastWatch 的卫星和海洋模型记录——海表温度、 叶绿素-a、风、洋流,以及完整的 NDBC 系泊浮标档案—— 直接从 CoastWatch 的两台 ERDDAP 服务器读取。

属于 Pipeworx — 连接 AI Agent 与 1683+ 个实时数据源的 MCP 网关。

工具

  • noaa_coastwatch_search_datasets(query, protocol?, node?, limit?) — 对 数据集目录进行全文搜索。从这里开始:其他每个工具都需要使用这些结果中的 dataset_id。
  • noaa_coastwatch_dataset_info(dataset_id, node?) — 变量、单位、坐标轴、时间覆盖范围、 许可。查询数据前请先调用;变量名区分大小写。
  • noaa_coastwatch_tabledap(dataset_id, variables?, constraints?, node?, limit?) — 从 tabledap 数据集中获取行,例如可追溯至 1970 年的 NDBC 浮标每小时观测数据。
  • noaa_coastwatch_griddap_point(dataset_id, variable, latitude, longitude, time?, depth?, node?) — 获取某个时间和经纬度处的一个网格值,位置会对齐到最近的网格单元。

身份验证

无需密钥。两台节点都允许匿名访问。每个请求都会发送 User-Agent。

数据源

两台服务器包含不同的数据集。在一台服务器上获取的 dataset_id 无法在另一台服务器上解析, 对应的错误为 "Currently unknown datasetID=…",看起来像是 ID 错误,而不是节点选错。

易踩的坑

协议层面的陷阱位于 shared/src/erddap.ts 中(与 ioos-erddap 共用),并在该文件顶部 完整说明。这里最容易踩的两个坑:

  • ERDDAP 会将“未找到任何内容”报告为 HTTP 404,并返回纯文本正文,而不是空表—— 无论是搜索没有匹配项,还是 tabledap 查询的约束排除了所有行,都是如此。 正文不是 JSON,因此简单解析会彻底丢失错误信息。保留这条信息很有价值: 它会指出数据集的实际范围("No data matches time>=2050-01-01 because the numeric variable's source min=1970-02-26T20:00:00Z, max=2026-09-17T23:35:00Z")。
  • 变量名区分大小写,且通常为大写。 NDBC 水温为 WTMP,气温为 ATMP,风速为 WSPD。 使用小写名称会得到 400 Unrecognized variable,看起来就像“此浮标不报告水温”。

还有一个仅限此工具包的坑:两个节点的搜索列并不一致。 West Coast 节点返回 17 列, 包括 "Accessible";national 节点返回 15 列,不包含该列。任何使用 rows[6] 的代码, 在一台节点上会读取标题,在另一台节点上则会读取 ISO-19115 链接——答案会错,却不会报错。 共享客户端按列名索引。

快速开始

添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):

{
  "mcpServers": {
    "noaa-coastwatch": {
      "url": "https://gateway.pipeworx.io/noaa-coastwatch/mcp"
    }
  }
}
此端点实际提供的内容

https://gateway.pipeworx.io/noaa-coastwatch/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 都连接到同一个网关和同样的 1683+ 个数据源。唯一的区别是直接列出哪个工具包的工具;通过任一端点,ask_pipeworx 都可以访问全部工具。

没有 MCP 客户端?通过 HTTP 调用

curl -X POST https://gateway.pipeworx.io/v1/tools/noaa_coastwatch_search_datasets \
  -H 'Content-Type: application/json' \
  -d '{"query":"sea surface temperature","protocol":"griddap","limit":5}'

首次调用无需账户。检查任意工具:GET https://gateway.pipeworx.io/v1/tools/noaa_coastwatch_search_datasets。查找工具包:使用 {"query":"..."} 执行 POST https://gateway.pipeworx.io/v1/tools/search_packs。

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

此软件包也可以作为本地 stdio MCP 服务运行——无需 Pipeworx 账户,也无需往返网关:

{
  "mcpServers": {
    "noaa-coastwatch": {
      "command": "npx",
      "args": ["-y", "@pipeworx/mcp-noaa-coastwatch"]
    }
  }
}

或者直接运行,确认它能够启动:

npx -y @pipeworx/mcp-noaa-coastwatch

它通过 stdin/stdout 使用 MCP 协议,并仅针对此工具包的工具响应 initialize/tools/list/tools/call——不包含上述网关连接额外提供的任何共享元工具。来源相同,工具相同,但没有 ask_pipeworx 路由。

使用 ask_pipeworx

你可以用通俗英语提问,而不必直接调用工具——此方式既适用于上面的工具包端点,也适用于完整网关:

ask_pipeworx({ question: "your question about Noaa Coastwatch data" })

网关会选择合适的工具并自动填入参数。

更多信息

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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