潮汐数据服务

提供NOAA CO-OPS的潮汐水位数据、潮汐预测和站点信息查询服务。

  • by seanofahey
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 seanofahey/mcp-noaa-tides

使用说明

NOAA潮汐MCP服务器

该MCP服务器通过模型上下文协议提供对NOAA CO-OPS(运营海洋学产品和服务中心)数据的访问。

特性

  • 获取特定站点的水位数据
  • 获取潮汐预测(高潮/低潮)
  • 获取电台信息和元数据

安装

uv add mcp[cli]
uv add httpx

开发设置

要设置具有测试依赖关系的开发环境,请执行以下操作:

# Install test dependencies
uv add pytest pytest-asyncio pytest-httpx pytest-mock

测试

该项目使用pytest进行测试。测试套件包括:

  • 所有API端点的单元测试
  • 错误处理测试
  • 参数验证测试
  • 使用pytest-httpx模拟HTTP响应

要运行测试,请执行以下操作:

# Run all tests with verbose output
pytest -v

# Run a specific test file
pytest tests/test_server.py -v

# Run a specific test function
pytest tests/test_server.py::test_get_water_levels -v

用法

服务器提供三个主要工具:

  1. get_water_levels:获取特定站点的水位数据

    • 参数:
      • station_id:7位站点ID
      • begin_date:yyyyMMdd格式的开始日期(可选)
      • end_date:yyyyMMdd格式的结束日期(可选)
      • datum:垂直基准(默认值:MLLW)
      • time_zone:时区(默认值:gmt)
      • units:计量单位(默认值:英制)
  2. get_tide_predictions:获取特定站点的潮汐预测

    • 参数:
      • station_id:7位站点ID
      • begin_date:yyyyMMdd格式的开始日期(可选)
      • end_date:yyyyMMdd格式的结束日期(可选)
      • datum:垂直基准(默认值:MLLW)
      • time_zone:时区(默认值:gmt)
      • units:计量单位(默认值:英制)
      • interval:预测间隔(默认值:高潮/低潮为hilo)
  3. get_station_info:获取特定电台的信息

    • 参数:
      • station_id:7位站点ID

站点ID示例

  • 9414290:加利福尼亚州旧金山
  • 8518750:纽约炮台
  • 8557863:马里兰州雷霍沃斯海滩

运行服务器

python server.py

与Claude Desktop一起使用

要将此服务器与Claude Desktop一起使用,请使用以下配置字符串添加它:

python:/path/to/your/server.py

替换 /path/to/your/server.py 与您的实际路径 server.py 文件。

许可证

麻省理工学院