关于 Surf MCP Server
Surf MCP Server 是一个面向冲浪爱好者的 MCP 服务,可根据经纬度和日期查询潮汐信息。它基于 Storm Glass API,适合规划冲浪时间的用户。
主要功能
- 01按经纬度查询潮汐信息
- 02支持指定日期的查询
- 03提供高潮、低潮及监测站信息
- 04以 UTC 处理时间
适用场景
- 01规划海滩冲浪的最佳时间
- 02查看附近监测站的潮汐数据
MCP 相关
该项目是 MCP 服务,向 MCP 客户端暴露 get_tides 工具,用于获取指定位置和日期的潮汐信息。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Surf MCP Server
面向冲浪者与网络冲浪者的 MCP 服务。
图示
视频演示
https://github.com/user-attachments/assets/0a4453e2-66df-4bf5-8366-8538cda366ed
功能
- 使用经纬度获取任意地点的潮汐信息
- 支持查询指定日期的潮汐信息
- 提供详细潮汐数据,包括高潮、低潮和站点信息
- 自动处理时区(UTC)
前置条件
- Python 3.x
- Storm Glass API 密钥
获取 Storm Glass API 密钥
- 访问 Storm Glass
- 点击“Try for Free”或“Sign In”创建账户
- 注册后,你将收到 API 密钥
API 使用限额说明:
- 免费版:每天 10 次请求
- 提供付费套餐:
- Small:每天 500 次请求(€19/月)
- Medium:每天 5000 次请求(€49/月)
- Large:每天 25,000 次请求(€129/月)
- Enterprise:提供定制套餐
请根据使用需求选择套餐。免费版适合测试和个人使用。
安装
- 克隆仓库:
git clone https://github.com/ravinahp/surf-mcp.git
cd surf-mcp
- 使用 uv 安装依赖:
uv sync
注意:由于项目使用 pyproject.toml 管理依赖,我们使用 uv 而不是 pip。
配置为 MCP 服务
要将此工具添加为 MCP 服务,你需要修改 Claude 桌面应用的配置文件。此配置包含你的 Storm Glass API 密钥,因此无需单独设置。
配置文件位置取决于你的操作系统:
- MacOS:
~/Library/Application\ Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%/Claude/claude_desktop_config.json
将以下配置添加到 JSON 文件中:
{
"surf-mcp": {
"command": "uv",
"args": [
"--directory",
"/Users/YOUR_USERNAME/Code/surf-mcp",
"run",
"surf-mcp"
],
"env": {
"STORMGLASS_API_KEY": "your_api_key_here"
}
}
}
⚠️ 重要:
- 将
YOUR_USERNAME替换为你的实际系统用户名 - 将
your_api_key_here替换为你的实际 Storm Glass API 密钥 - 确保目录路径与本地安装路径一致
部署
构建
准备软件包:
- 同步依赖并更新锁定文件:
uv sync
- 构建软件包:
uv build
这将在 dist/ 目录中生成发行包。
调试
由于 MCP 服务通过 stdio 运行,调试可能颇具挑战。为了获得最佳调试体验,我们强烈建议使用 MCP Inspector。
你可以使用以下命令启动 MCP Inspector:
npx @modelcontextprotocol/inspector uv --directory /path/to/surf-mcp run surf-mcp
启动后,Inspector 会显示一个 URL,你可以在浏览器中访问该地址开始调试。
Inspector 提供:
- 实时请求/响应监控
- 输入/输出验证
- 错误跟踪
- 性能指标
使用方法
此服务提供一个用于获取潮汐信息的 FastMCP 工具:
@mcp.tool()
async def get_tides(latitude: float, longitude: float, date: str) -> str:
"""Get tide information for a specific location and date."""
参数:
latitude:表示地点纬度的浮点数longitude:表示地点经度的浮点数date:格式为 YYYY-MM-DD 的日期字符串
响应示例:
Tide Times:
Time: 2024-01-20T00:30:00+00:00 (UTC)
Type: HIGH tide
Height: 1.52m
Time: 2024-01-20T06:45:00+00:00 (UTC)
Type: LOW tide
Height: 0.25m
Station Information:
Name: Sample Station
Distance: 20.5km from requested location
使用场景
示例 #1:寻找最佳冲浪时间
你可以使用此工具确定你最喜欢的海滩和最近站点的最佳冲浪时间。通常,涨潮期间(潮水上涨时),即高潮前约 2 小时,冲浪条件最佳。
给 Claude 的提示词示例:
注意:不同海滩的最佳潮汐条件可能不同,具体取决于其地理特征和浪点类型。此工具还会提供站点距离信息,应结合潮汐信息一并考虑。(也就是说,站点距离越远,误差可能越大;你也可以在提示词中向 Claude 询问这一点。)
错误处理
此服务包含完善的错误处理,涵盖:
- API 请求失败
- 坐标无效
- API 密钥缺失或无效
- 网络超时
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。