N

NOAA工具

@RyanCardin15/NOAA
0 Stars 406 次浏览 RyanCardin15 更新于 2026-08-23

这是一个MCP(模型上下文协议)服务器,它提供了与NOAA潮汐和电流API交互的工具。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

NOAA 潮汐和水流 MCP 服务器

smithery 徽章

这是一个使用 FastMCP 框架与 NOAA 潮汐和水流 API 进行交互的 MCP(模型上下文协议)服务器。

特性

  • 水位数据检索(实时和历史)
  • 潮汐预测(高潮/低潮或基于间隔)
  • 流水数据(实时和历史)
  • 流水预测
  • 站点元数据检索
  • 风、空气温度、水温及其他气象数据
  • 月相信息(过去、现在和未来)
  • 日出/日落和位置数据(过去、现在和未来)

前提条件

  • Node.js(v18 或更高版本)
  • npm 或 yarn

设置

通过 Smithery 安装

要通过 Smithery 自动为 Claude Desktop 安装 NOAA 潮汐和水流:

npx -y @smithery/cli install @RyanCardin15/tidesandcurrents --client claude

手动安装

  1. 克隆此仓库
  2. 安装依赖项
npm install
  1. 根据 .env.example 文件创建一个 .env 文件:
# Server Configuration
PORT=3000

# Transport type (stdio or sse)
TRANSPORT_TYPE=stdio

# NOAA API application name for identification (recommended)
APPLICATION_NAME=YourAppName
  1. 构建 TypeScript 代码
npm run build
  1. 启动服务器
npm start

使用

此 MCP 服务器可以与任何 MCP 主机(如 Claude Desktop)一起使用,允许您通过 MCP 协议使用 NOAA 潮汐和水流 API。

您也可以直接使用 fastmcp 命令行工具进行测试:

npx fastmcp dev dist/index.js

或者,您可以使用 MCP 检查器:

npx fastmcp inspect dist/index.js

可用工具

水位

  • get_water_levels - 获取站点的水位数据
    • 参数:
      • station (字符串) - 站点 ID
      • date (字符串, 可选) - 要检索数据的日期 ("today", "latest", "recent", 或具体日期)
      • begin_date (字符串, 可选) - 开始日期 (YYYYMMDD 或 MM/DD/YYYY)
      • end_date (字符串, 可选) - 结束日期 (YYYYMMDD 或 MM/DD/YYYY)
      • range (数字, 可选) - 要检索数据的小时数
      • datum (字符串, 可选) - 要使用的基准 (MLLW, MSL, 等)
      • units (字符串, 可选) - 要使用的单位 ("english" 或 "metric")
      • time_zone (字符串, 可选) - 时区 (gmt, lst, lst_ldt)
      • format (字符串, 可选) - 输出格式 (json, xml, csv)

潮汐预测

  • get_tide_predictions - 获取潮汐预测数据
    • 参数:
      • station (字符串) - 站点 ID
      • begin_date (字符串) - 开始日期 (YYYYMMDD 或 MM/DD/YYYY)
      • end_date (字符串) - 结束日期 (YYYYMMDD 或 MM/DD/YYYY)
      • datum (字符串, 可选) - 要使用的基准 (MLLW, MSL, 等)
      • units (字符串, 可选) - 要使用的单位 ("english" 或 "metric")
      • time_zone (字符串, 可选) - 时区 (gmt, lst, lst_ldt)
      • interval (字符串, 可选) - 间隔 (hilo, hl, h, 或分钟数)
      • format (字符串, 可选) - 输出格式 (json, xml, csv)

流水

  • get_currents - 获取站点的水流数据
    • 参数:
      • station (string) - 站点ID
      • date (string, 可选) - 要检索数据的日期("today", "latest", "recent" 或特定日期)
      • begin_date (string, 可选) - 开始日期 (YYYYMMDD 或 MM/DD/YYYY)
      • end_date (string, 可选) - 结束日期 (YYYYMMDD 或 MM/DD/YYYY)
      • bin (number, 可选) - Bin 编号
      • units (string, 可选) - 使用的单位 ("english" 或 "metric")
      • time_zone (string, 可选) - 时区 (gmt, lst, lst_ldt)
      • format (string, 可选) - 输出格式 (json, xml, csv)

潮流预测

  • get_current_predictions - 获取潮流预测
    • 参数:
      • station (string) - 站点ID
      • date (string, 可选) - 要检索数据的日期("today", "latest", "recent" 或特定日期)
      • begin_date (string, 可选) - 开始日期 (YYYYMMDD 或 MM/DD/YYYY)
      • end_date (string, 可选) - 结束日期 (YYYYMMDD 或 MM/DD/YYYY)
      • bin (number, 可选) - Bin 编号
      • interval (string, 可选) - 间隔 (MAX_SLACK 或分钟数)
      • vel_type (string, 可选) - 速度类型 (speed_dir 或默认值)
      • units (string, 可选) - 使用的单位 ("english" 或 "metric")
      • time_zone (string, 可选) - 时区 (gmt, lst, lst_ldt)
      • format (string, 可选) - 输出格式 (json, xml, csv)

气象数据

  • get_meteorological_data - 获取气象数据
    • 参数:
      • station (string) - 站点ID
      • product (string) - 产品 (air_temperature, wind, 等)
      • date (string, 可选) - 要检索数据的日期("today", "latest", "recent" 或特定日期)
      • begin_date (string, 可选) - 开始日期 (YYYYMMDD 或 MM/DD/YYYY)
      • end_date (string, 可选) - 结束日期 (YYYYMMDD 或 MM/DD/YYYY)
      • units (string, 可选) - 使用的单位 ("english" 或 "metric")
      • time_zone (string, 可选) - 时区 (gmt, lst, lst_ldt)
      • format (string, 可选) - 输出格式 (json, xml, csv)

站点信息

  • get_stations - 获取站点列表

    • 参数:
      • type (string, 可选) - 站点类型 (waterlevels, currents, 等)
      • units (string, 可选) - 使用的单位 ("english" 或 "metric")
      • format (string, 可选) - 输出格式 (json, xml)
  • get_station_details - 获取站点详细信息

    • 参数:
      • station (string) - 站点ID
      • units (string, 可选) - 使用的单位 ("english" 或 "metric")
      • format (string, 可选) - 输出格式 (json, xml)

月相信息

  • get_moon_phase - 获取特定日期的月相信息

    • 参数:
      • date (字符串, 可选) - 要获取月相的日期(YYYY-MM-DD 格式)。默认为当前日期。
      • latitude (数字, 可选) - 用于基于位置计算的纬度
      • longitude (数字, 可选) - 用于基于位置计算的经度
      • format (字符串, 可选) - 输出格式(json 或 text)
  • get_moon_phases_range - 获取某一日期范围内的月相信息

    • 参数:
      • start_date (字符串) - 开始日期(YYYY-MM-DD 格式)
      • end_date (字符串) - 结束日期(YYYY-MM-DD 格式)
      • latitude (数字, 可选) - 用于基于位置计算的纬度
      • longitude (数字, 可选) - 用于基于位置计算的经度
      • format (字符串, 可选) - 输出格式(json 或 text)
  • get_next_moon_phase - 获取下一个特定月相的发生时间

    • 参数:
      • phase (字符串) - 要查找的月相(新月、上弦月、满月、下弦月)
      • date (字符串, 可选) - 起始日期(YYYY-MM-DD 格式)。默认为当前日期。
      • count (数字, 可选) - 返回的发生次数。默认为 1。
      • format (字符串, 可选) - 输出格式(json 或 text)

日出/日落信息

  • get_sun_times - 获取特定日期和地点的日出/日落以及其他太阳事件的时间

    • 参数:
      • date (字符串, 可选) - 要获取太阳时间的日期(YYYY-MM-DD 格式)。默认为当前日期。
      • latitude (数字) - 用于基于位置计算的纬度
      • longitude (数字) - 用于基于位置计算的经度
      • format (字符串, 可选) - 输出格式(json 或 text)
      • timezone (字符串, 可选) - 结果的时间区。默认为 UTC。
  • get_sun_times_range - 获取某一时间段内特定地点的日出/日落以及其他太阳事件的时间

    • 参数:
      • start_date (字符串) - 开始日期(YYYY-MM-DD 格式)
      • end_date (字符串) - 结束日期(YYYY-MM-DD 格式)
      • latitude (数字) - 用于基于位置计算的纬度
      • longitude (数字) - 用于基于位置计算的经度
      • format (字符串, 可选) - 输出格式(json 或 text)
      • timezone (字符串, 可选) - 结果的时间区。默认为 UTC。
  • get_sun_position - 获取特定日期、时间和地点的太阳位置信息

    • 参数:
      • date (字符串, 可选) - 要获取太阳位置的日期(YYYY-MM-DD 格式)。默认为当前日期。
      • time (字符串, 可选) - 要获取太阳位置的时间(HH:MM:SS 格式)。默认为当前时间。
      • latitude (数字) - 用于基于位置计算的纬度
      • longitude (数字) - 用于基于位置计算的经度
      • format (字符串, 可选) - 输出格式(json 或 text)
  • get_next_sun_event - 获取特定太阳事件的下一次发生时间

    • 参数:
      • event (字符串) - 要查找的太阳事件(如日出、日落、黎明、黄昏、正午等)
      • date (字符串, 可选) - 起始日期(YYYY-MM-DD 格式)。默认为当前日期。
      • latitude (数字) - 用于基于位置计算的纬度
      • longitude (数字) - 用于基于位置计算的经度
      • count (数字, 可选) - 返回的发生次数。默认为 1。
      • format (字符串, 可选) - 输出格式(json 或 text)
      • timezone (字符串, 可选) - 结果的时间区。默认为 UTC。

API 文档

NOAA 潮汐与洋流 API 文档可以在以下地址找到:

关于 FastMCP

FastMCP 是一个用于构建能够处理客户端会话的 MCP 服务器的 TypeScript 框架。它提供:

  • 简单的工具、资源、提示定义
  • 会话
  • 图像内容
  • 日志记录
  • 错误处理
  • SSE
  • 进度通知
  • 类型化的服务器事件
  • 以及更多功能

了解更多请访问:https://github.com/punkpeye/fastmcp

许可证

MIT

相关 MCP 服务