Surfline MCP 服务器
A. 模型上下文协议(MCP) 服务器通过Surfline的API提供全面的冲浪预报。您可以直接通过Claude或任何兼容MCP的客户端访问详细的冲浪条件、海浪分析、预报员见解、潮汐信息等。
特点/特性
🌊(海浪) 全面的冲浪数据
- 当前圣克鲁斯11个地点的情况(可轻松扩展至其他地区)
- 详细的海浪成分分析(每个海浪成分的波高、周期、方向、能量)
- 8小时逐小时预报,显示条件变化情况
- 专家预报员的观测结果,附带上午/下午的具体时间建议
- 风况(风速、风向、离岸/近岸分类)
- 质量评分(1-5星)
🌅(日落) 时间信息
- 日出、日落、黎明和黄昏时间
- 潮汐时间表,包含高潮/低潮时间及高度
- 所有时间已正确转换为太平洋时区
🔐(锁形符号,常用于表示密码、保密或安全) 安全认证
- 集成Google OAuth以实现安全访问
- 与claude.ai的网页版和移动版无缝协作
- 无需Surfline API密钥(使用公共端点)
快速入门
先决条件
- Node.js 18及以上版本
- 一个Cloudflare账户(免费套餐即可)
- 一个用于OAuth的Google Cloud项目(免费)
安装
- 克隆并安装依赖项:
\\\bash(注:这行代码本身在中文语境下没有直接对应的翻译,它通常表示接下来是一段Bash脚本或命令行指令的开始,因此可直接保留原样或稍作说明,如“以下是Bash命令/脚本”) 进入 surfline-mcp-server 目录 npm install(安装npm包) \\\
- 设置Google OAuth:
- 首选 Google 云控制台 - 创建一个新的OAuth 2.0客户端ID(网页应用类型) - 添加授权重定向URI: - \https://your-worker-name.your-subdomain.workers.dev/callback\ 翻译成中文为:“https://你的工作器名称.你的子域名.workers.dev/回调” - \https://claude.ai/api/mcp/auth_callback\ 翻译成中文可以是:“https://claude.ai/api/mcp/授权回调” 或者更简洁地表达为 “https://claude.ai/api/mcp/授权回调接口”。这里,“auth_callback”通常指的是用于处理授权回调的接口或页面,用于在用户授权后接收和处理相关回调信息 - 记下您的客户端ID和客户端密钥
- 创建一个KV命名空间:
\\\bash(注:在中文语境中,"bash"通常不翻译,直接保留原样,因为它是一个特定的命令行解释器名称) 使用 npx wrangler 创建一个名为 OAUTH_KV 的 KV 命名空间 \\\ 使用返回的 KV ID 更新 \wrangler.jsonc\ 文件。
- 设置秘密:
\\\bash(注:在中文语境下,这通常表示接下来的代码或命令是Bash脚本语言) echo 'YOUR_GOOGLE_CLIENT_ID' | npx wrangler secret put GOOGLE_CLIENT_ID echo 'YOUR_GOOGLE_CLIENT_SECRET' | npx wrangler secret put GOOGLE_CLIENT_SECRET echo $(openssl rand -hex 32) | npx wrangler secret put COOKIE_ENCRYPTION_KEY 翻译为中文是:输出 openssl rand -hex 32 命令的结果,并将其通过管道传递给 npx wrangler secret put COOKIE_ENCRYPTION_KEY 命令以设置加密密钥 \\\
- 部署:
\\\bash(注:在中文语境中,"bash" 通常保持原样,因为它是特定于计算机和编程领域的术语,表示 Bourne-Again Shell,一种 Unix/Linux 系统的命令行解释器。) npm 运行 deploy(即执行部署命令) \\\
连接到Claude
- 首选 Claude.ai
- 导航至设置 → 集成
- 添加您已部署的 Worker 的 URL:\
https://your-worker-name.your-subdomain.workers.dev/mcp\ - 使用谷歌进行身份验证
- 问克劳德:“圣克鲁斯的海浪怎么样?”
可用工具
获取完整海浪报告
主要工具 - 一次调用返回所有内容:
- 预报员附上专家观察意见
- 日出/日落时间
- 潮汐时间表
- 所有地点的当前状况
- 海浪破碎
- 8小时预报
辅助工具
如需特定信息,可提供单独的数据获取工具:
- \
get_surf_forecast\- 仅提供基本浪况信息 - \
get_forecaster_notes\- 仅限人工观测记录 - \
get_tides\- 仅获取潮汐信息 - \
get_best_spot\- 排名推荐
已覆盖的要点
北县: 戴文波特、瓦德尔溪、四英里(地名)、三英里(地名)\ 中央: 科威尔斯的蒸汽巷,第26大道\ 东侧: 快乐角(Pleasure Point)、杰克餐厅(Jack's)、海钓码头(The Hook)\ 南: Capitola(根据上下文,可能指地名或特定名称,直译为“卡皮托拉”,具体翻译需结合语境)
数据源
这个服务器使用的是Surfline未公开的公共API端点——与他们网站使用的相同。获取基本预报数据无需API密钥或认证。这些端点多年来一直稳定运行,被冲浪界广泛使用。
重要提示: 通过这些终端无法访问网络摄像头和高级功能。
扩展到其他地区
要添加更多地点,请编辑 \src/index.ts\ 文件,并在 \SANTA_CRUZ_SPOTS\ 对象中添加:
\\\typescript(翻译为中文意为:“使用TypeScript语言”或“以下是TypeScript代码”) const SANTA_CRUZ_SPOTS: Record\ = { "您的地点名称": "来自Surfline的spotId", // (无实际翻译意义,保留原样).. }; \\\
通过检查 surfline.com 上的网络请求来查找地点ID。
建筑
- Cloudflare Workers(云防护网络工作器)无服务器托管(免费套餐:每天10万次请求)
- 持久对象OAuth 状态管理
- KV存储令牌持久化
- Google OAuth安全认证
- MCP协议人工智能助手的标准工具接口
发展
本地运行: \\\`bash(注:此处“bash”通常表示Bash shell,即Bourne-Again Shell,是一种在Unix-like操作系统中广泛使用的命令行解释器,但在此上下文中,若仅作为文字翻译,则“bash”可直接保留,不需额外翻译) npm 运行 dev(或:执行 npm dev 命令) (该句为代码或特殊符号,无实际中文翻译内容,若需结合上下文翻译,请提供完整句子或上下文。)
服务器将在 \http://localhost:8788\ 上可用
使用MCP Inspector进行测试: \\\bash(注:\bash\是Unix/Linux系统中的一个命令行解释器,此处直接保留原样,因为“bash”本身无需翻译) 使用 npx 运行 @modelcontextprotocol/inspector(或:执行 @modelcontextprotocol/inspector 工具) \\\
许可证
麻省理工学院(MIT)
致谢
- 感谢Surfline提供易于获取的冲浪预报数据
- 针对MCP和OAuth库的Cloudflare
- 用于记录API端点的冲浪社区
