关于 Noaa Coastwatch
Noaa Coastwatch 是用于查询 NOAA CoastWatch 卫星与海洋模型数据的 MCP 服务,支持数据集检索、元数据查看、表格观测和网格点值查询,数据来自两个 ERDDAP 节点。
主要功能
- 01搜索数据集目录
- 02查看变量与覆盖范围
- 03查询表格观测数据
- 04获取网格点值
适用场景
- 01按主题查找海洋数据集
- 02查询前核对数据集变量
- 03获取 NDBC 浮标观测
- 04查询指定位置的网格数据
MCP 相关
将 CoastWatch ERDDAP 的搜索、元数据、表格及网格点查询作为 MCP 工具提供。可作为独立 stdio 服务运行,也可通过 Pipeworx 网关连接。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gateway.pipeworx.io/noaa-coastwatch/mcpclaude mcp add --transport http pipeworx-io-noaa-coastwatch https://gateway.pipeworx.io/noaa-coastwatch/mcp{"mcpServers":{"pipeworx-io-noaa-coastwatch":{"type":"http","url":"https://gateway.pipeworx.io/noaa-coastwatch/mcp"}}}在 Cursor 中打开{"servers":{"pipeworx-io-noaa-coastwatch":{"type":"http","url":"https://gateway.pipeworx.io/noaa-coastwatch/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeworx-io-noaa-coastwatch":{"type":"http","url":"https://gateway.pipeworx.io/noaa-coastwatch/mcp"}}}{"mcpServers":{"pipeworx-io-noaa-coastwatch":{"serverUrl":"https://gateway.pipeworx.io/noaa-coastwatch/mcp"}}}命令在终端中运行;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。
数据源
- https://coastwatch.pfeg.noaa.gov/erddap —
node: "westcoast"(默认)。ERD/SWFSC:卫星 SST、叶绿素、风、洋流,以及 NDBC 浮标档案cwwcNDBCMet。 - https://coastwatch.noaa.gov/erddap —
node: "national"。业务化 VIIRS 和 ABI 产品。
两台服务器包含不同的数据集。在一台服务器上获取的 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。 使用小写名称会得到 400Unrecognized 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
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。