mcpField
N
NOAA Tides and Currents

NOAA Tides and Currents

远程服务
perigeetides.com科研与教育64 周前更新

关于 NOAA Tides and Currents

NOAA Tides and Currents 是用于访问 NOAA CO-OPS 海岸与海洋数据的 MCP 服务,并可本地计算日月信息。它面向处理潮汐、海流、天气、站点和洪水问题的客户端,还提供参考资料与常用报告提示词。

主要功能

  1. 01获取水位、潮汐和海流观测及预测
  2. 02搜索站点并查看元数据和潮汐基准面
  3. 03访问海平面趋势、预测和洪水数据
  4. 04获取美国地点的风况与海洋预报
  5. 05计算日月事件和位置

适用场景

  1. 01查询地点的潮汐时间和高度
  2. 02出航前查看海流和海洋天气
  3. 03对比当地洪水历史与海平面预测

MCP 相关

通过 stdio 或可选的 streamable HTTP 向 MCP 客户端提供 25 个工具、资源和提示词。工具查询 NOAA CO-OPS 与 NWS API,天文计算则在本地进行。

配置

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

服务地址https://perigeetides.com/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 配置后重启。需要授权的服务会在首次连接时提示登录。

安装包
npm@ryancardin/noaa-tides-currents-mcp-server2.1.0

工具

26
参数类型必填说明
dateenum否快捷时间窗口:“today” = 从午夜到现在,“latest” = 最近的一次读数,“recent” = 过去 72 小时。不能与 begin_date/end_date/range 同时使用。today | latest | recent
datumenum否水位的垂直参考基准面。MLLW 是沿海站点的标准海图基准面。IGLD 和 LWD 仅适用于五大湖站点;NAVD/CRD 仅在已计算这些基准面的站点提供。使用 noaa_get_station_datums 查询站点支持的基准面。MHHW | MHW | MTL | MSL | MLW | MLLW | NAVD | STND | IGLD | LWD | CRD
rangeinteger否小时数。与 begin_date 一起使用:向后计算的小时数。与 end_date 一起使用:向前计算的小时数。单独使用:从现在向前计算的小时数。
unitsenum否单位制。english:英尺、°F、节(风和海流)、海里。metric:米、°C、风速为 m/s,海流速度为 cm/s,千米。两种单位制下,气压均为毫巴,盐度均为 PSU。english | metric
stationstring是站点 ID。水位/气象站使用 7 位数字 ID(例如:"9414290" San Francisco);海流站使用字母数字 ID(例如:"cb0102")。使用 noaa_search_stations 或 noaa_find_nearest_stations 查找站点。
end_datestring否结束日期/时间。格式与 begin_date 相同。
intervalenum否观测间隔:"6" = 6 分钟(标准,最多 31 天),"1" = 1 分钟初步数据(最多 4 天),"hourly" = 已验证的逐小时水位(最多 1 年)。1 | 6 | hourly
time_zoneenum否时间戳的时区:gmt = UTC,lst = 站点当地标准时间(无夏令时),lst_ldt = 站点当地时间(含夏令时)。注意:daily_mean 数据必须使用 lst。gmt | lst | lst_ldt
begin_datestring否开始日期/时间。格式:yyyyMMdd、"yyyyMMdd HH:mm"、MM/dd/yyyy 或 ISO yyyy-MM-dd[THH:mm]。
response_formatenum否输出格式:"markdown" 表示易读的摘要表格,"json" 表示完整的结构化负载。markdown | json

详细介绍

🌊 NOAA 潮汐与洋流 MCP 服务

npm version License: MIT TypeScript MCP

用于获取 NOAA CO-OPS 潮汐与洋流数据的模型上下文协议服务

由 Cardin Labs 构建 · 托管于 Perigee

水位 · 潮汐预测 · 洋流 · 海洋天气 · 测站元数据 · 潮汐基准面 · 调和分潮 · 海平面趋势与预测 · 高潮位洪水 · 日月计算


快速开始

# Run immediately with npx
npx @ryancardin/noaa-tides-currents-mcp-server

# Or the short alias
npx noaa-mcp
Claude Desktop / Claude Code 配置
{
  "mcpServers": {
    "noaa": {
      "command": "npx",
      "args": ["-y", "@ryancardin/noaa-tides-currents-mcp-server"]
    }
  }
}

Claude Code 单行命令:

claude mcp add noaa -- npx -y @ryancardin/noaa-tides-currents-mcp-server
HTTP 模式(可选)
npx noaa-mcp --http --port 3000   # stateless streamable HTTP at http://localhost:3000/mcp

无需 API 密钥 — NOAA 的 CO-OPS API 开放使用。


工具(25 个)

观测与预测(Data API)
工具功能
noaa_get_water_levels观测水位:1 分钟、6 分钟或每小时序列;解码初步/已验证质量标记
noaa_get_water_level_summarieshigh_low(每日极值 HH/H/L/LL)、daily_mean(五大湖)、daily_max_min、monthly_mean 基准面表
noaa_get_tide_predictions调和潮汐预测 — hilo 高潮/低潮事件(最长 10 年)或间隔序列
noaa_get_currents按深度分层观测洋流速度/方向(ADCP),可选波束诊断信息
noaa_get_current_predictions洋流预测 — max_slack 涨潮/落潮/憩流事件或间隔序列
noaa_get_meteorological_data风、气温/水温、气压、桥下净空、导电率、能见度、湿度、盐度
测站发现与元数据(Metadata API)
工具功能
noaa_search_stations按功能类型、名称子串和州搜索测站目录 — 支持分页
noaa_find_nearest_stations查找距任意经纬度最近的测站(大圆距离,使用缓存目录),可按类型筛选
noaa_get_station_info完整测站记录,包含可展开的传感器、洪水水位、基准点、分层、部署信息等
noaa_get_station_datums潮汐基准面高程(MLLW、MSL、MHHW、NAVD88 等)、HAT/LAT、历史极值、当前或已被取代的时段
noaa_get_harmonic_constituents测站预测所依据的 M2/S2/K1/... 分潮(水位或洋流椭圆形式)
noaa_get_prediction_offsets从属测站相对于参考测站的时间/高度偏移量(潮汐或洋流)
气候与衍生产品(DPAPI)
工具功能
noaa_get_sea_level_trends长期相对海平面趋势,附误差范围和观测时段
noaa_get_sea_level_rise_projections2022 年跨部门海平面上升情景预测,按年代划分,覆盖至 2150 年
noaa_get_extreme_water_levels年超越概率水位(例如“百年一遇”水位)
noaa_get_top_ten_water_levels有记录以来的最高水位及其成因事件(飓风、东北风暴)
noaa_get_high_tide_floodingHTF 洪水日统计(按日/月/季/年)、展望、十年预测、发生概率
天文学(本地计算)
工具功能说明
astro_get_moon_phase查询某个日期或日期范围内的月相、照明比例、月龄和距离(春潮/小潮背景)
astro_get_next_moon_phase查询下一个新月/满月/上弦月或下弦月的日期
astro_get_sun_times查询任意地点和日期的日出/日落、曙暮光、黄金时段和日照时长
astro_get_sun_position查询方位角/高度角(以及大致的赤纬/赤经)
astro_get_next_sun_event查询任意太阳事件的下一次发生时间
风况与海洋预报(NWS Weather API)
工具功能说明
nws_get_wind_forecast查询美国任意纬度/经度的逐小时数值风力预报(风速/阵风/风向;有网格数据时还包括波高),最长约 7 天
nws_get_marine_forecast查询覆盖某个纬度/经度的海洋分区官方沿海水域预报文本,包括小型船舶警报
参考资料
工具功能说明
noaa_get_reference_guide精选的 NOAA 参考资料:产品、基准面、单位、时区、间隔、站点类型、数据限制、质量标记、日期格式和海洋预报

每个工具都支持 response_format: "markdown"(含明确标注单位的易读表格,默认格式)或 "json"(完整的结构化负载),并附带供能使用这些内容的 MCP 客户端使用的结构化内容。

资源

  • noaa://guide/getting-started — 工作流示例和常见问题
  • noaa://reference/{topic} — 上述 10 个参考主题,可固定为资源

提示词

  • tide_report — 指定地点/站点和日期的潮汐报告
  • boating_conditions — 出发前简报:潮汐、海流、风况和日照
  • station_flood_risk — 洪水风险概况:HTF 历史记录、极值、趋势和预测
  • station_overview — 站点提供的所有信息

细节之处(已为你处理)

以下是 NOAA API 中容易出错的地方,本服务已处理这些问题:

  • 基准面很重要。 没有垂直参考基准的高度毫无意义。默认使用 MLLW(海图基准面);不同站点支持的基准面各不相同(五大湖使用 IGLD/LWD,没有潮汐预测)。noaa_get_station_datums 会提供基准面转换表。
  • 单位并不对称。 metric 表示风速单位为 m/s,但海流速度单位为 cm/s;气压单位为毫巴,盐度单位为 PSU,且在两种单位系统中都相同。每条响应都会标明单位。
  • 每种产品都有请求时间跨度限制(例如,1 分钟数据为 4 天、6 分钟数据为 31 天、逐小时数据为 1 年、hilo 预测为 10 年……)。请求发送给 NOAA 前,客户端会进行验证,并给出可执行的提示。
  • 有两种站点 ID 方案。 水位/气象站使用 7 位数字(9414290);海流站使用字母数字组合(cb0102)。
  • 基准站与附属站。 附属(S)预测站仅支持 hilo 预测,其数据根据基准(R)站的偏移量推算得出。
  • daily_mean 要求使用当地标准时间,且仅适用于五大湖站点;系统会自动强制执行此要求。
  • 质量标记已解码。 行内会说明初步数据与验证数据的区别、sigma、标记字母(初步数据与验证数据使用的标记字母不同),以及 HH/H/L/LL 潮汐类型。
  • 预测基于天文数据——不包含风暴潮;请与观测水位进行比较。
  • 站点目录已缓存(6 小时),因此搜索最近站点时不会重新获取数千条记录。

使用示例

“明天波士顿的高潮时间是什么时候?”

  1. noaa_find_nearest_stations(类型 tidepredictions)→ 8443970 BOSTON
  2. noaa_get_tide_predictions(间隔 hilo)→ 高潮/低潮时间及高于 MLLW 的高度

“今天下午科德角运河的水流会有多强?”

  1. noaa_find_nearest_stations(类型 currentpredictions)
  2. noaa_get_current_predictions(间隔 max_slack)→ 最大涨潮/落潮流速(节)及憩流时间

“普罗维登斯现在和 20 年前相比,发生洪水的频率如何?预计 2050 年会怎样?”

  1. noaa_get_high_tide_flooding(报告 annual,范围 25)
  2. noaa_get_high_tide_flooding(报告 projections,年代 2050)
  3. noaa_get_sea_level_trends + noaa_get_sea_level_rise_projections

开发

npm install
npm run build        # tsc → dist/
npm test             # vitest unit tests (validation, formatting, astronomy)
npm run test:live    # end-to-end smoke test against the live NOAA API
npm run inspector    # MCP Inspector against dist/index.js
npm run dev          # tsx src/index.ts
架构
src/
├── index.ts            # entry point: stdio (default) or --http streamable HTTP
├── constants.ts        # API base URLs, timeouts, cache TTLs, response limits
├── client/             # shared HTTP layer (retry/backoff, error mapping) + TTL cache
├── validation/         # date normalization + per-product span limit enforcement
├── format/             # unit labeling, flag legends, markdown/json response shaping
├── schemas/            # shared Zod field schemas with nuance-carrying descriptions
├── services/           # Data API, Metadata API, DPAPI, moon & sun services
├── tools/              # 25 tool registrations grouped by domain
├── resources/          # noaa:// reference resources
├── prompts/            # workflow prompt templates
└── reference/          # curated NOAA reference content

数据来源:

  • 数据 API — api.tidesandcurrents.noaa.gov/api/prod/datagetter
  • 元数据 API — api.tidesandcurrents.noaa.gov/mdapi/prod/webapi
  • 衍生产品 API — api.tidesandcurrents.noaa.gov/dpapi/prod/webapi
  • 天文计算 — suncalc,在本地计算

许可证

MIT © Cardin LLC(Cardin Labs)

NOAA 数据由 NOAA 海洋学产品与服务业务中心(CO-OPS)提供。本项目与 NOAA 无关,也未获得 NOAA 的认可。

2.1.0 工具交付规范

每个原始工具都会声明输出架构。成功的服务提供方响应会保留其字段,并添加 _response: { contractVersion: "2026-09-29.1", status: "complete" }。参考指南使用单独的、带类型的主题/指南结果。文本和结构化载荷都有大小限制:超出大小的结果会返回明确的 response_too_large 错误及缩小范围的指导,而不是返回被截断的文本,同时附带不受大小限制的结构化响应。错误元数据会说明重试是否可能有效。串联的服务提供方读取共享 45 秒的取消期限,每个请求的总重试时限为 18 秒。不会根据原始数据推断捕鱼、航行或捕获概率。

评论

支持 Markdown

第一次接触 MCP?

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

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