mcpField
P
pp-opensnow

pp-opensnow

github.com/mvanhorn其他2.1k50 次安装今天更新
代码仓库

关于 pp-opensnow

pp-opensnow 是面向滑雪行程规划 Agent 的 OpenSnow 命令行技能,可查询山地天气、降雪和雪场运营情况,并提供粉雪评分及气象专家摘要。

主要功能

  1. 01查询天气与昼夜降雪预报
  2. 02按粉雪潜力评分和排名雪场
  3. 03追踪风暴进程与夜间降雪
  4. 04查看雪场状态变化和历史趋势
  5. 05获取 Daily Snow 气象摘要

适用场景

  1. 01比较雪场并选择周末滑雪地点
  2. 02判断一周内最适合滑雪的日期
  3. 03追踪风暴到达和结束时间
  4. 04查看收藏雪场的夜间降雪

MCP 相关

README 提供安装 opensnow-pp-mcp 并注册到 Claude Code 的说明。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mvanhorn/printing-press-library --skill pp-opensnow

安装后在 Claude Code 中输入/pp-opensnow确认已加载。

详细介绍

OpenSnow — Printing Press CLI

前置条件:安装 CLI

此技能由 opensnow-pp-cli 二进制文件驱动。**调用此技能中的任何命令前,必须先确认 CLI 已安装。**如果尚未安装,请先安装:

  1. 通过 Printing Press 安装程序安装。在 macOS/Linux 上,默认将二进制文件安装到 $HOME/.local/bin;在 Windows 上,安装到 %LOCALAPPDATA%\Programs\PrintingPress\bin:
    npx -y @mvanhorn/printing-press-library install opensnow --cli-only
    
  2. 验证:opensnow-pp-cli --version
  3. 确保报告的安装目录已添加到将调用此技能的 Agent/运行时的 $PATH 中。

如果 npx 安装失败(没有 Node、处于离线状态等),请改用直接 Go 安装(需要 Go 1.26.6 或更高版本):

go install github.com/mvanhorn/printing-press-library/library/productivity/opensnow/cmd/opensnow-pp-cli@latest

如果安装后 --version 报告“command not found”,则运行时无法在 $PATH 中找到二进制文件目录。验证成功前,请勿执行技能命令。

何时使用此 CLI

当你需要包含积雪专项细节的山区天气预报时,请使用 OpenSnow CLI,例如昼夜降雪量细分、粉雪质量和雪场运营状态。它非常适合需要比较雪场、追踪风暴或回答“这个周末我该去哪里滑雪?”的行程规划 Agent。Daily Snow 天气简报提供通用天气 API 无法提供的专业气象分析。

何时不使用此 CLI

对于需要创建、更新、删除、发布、评论、点赞、邀请、下单、发送消息、预订、购买或更改远程状态的请求,请勿启用此 CLI。此打印 CLI 仅提供用于查看、导出、同步和分析的只读命令。

独特功能

这些功能是此 API 的其他工具所不具备的。

粉雪情报
  • powder-score — 综合预报降雪量、风力、温度和历史平均值,对未来 1-10 天的粉雪质量评分

    当 Agent 需要推荐本周最适合滑雪的一天时,此命令会给出评分排名,而非原始预报数据

    opensnow-pp-cli powder-score alta --days 5 --agent
    
  • powder-rank — 根据预期降雪量、积雪深度和地形开放情况,对所有已同步雪场的粉雪潜力进行排名

    当 Agent 需要回答“这个周末我该去科罗拉多州哪里滑雪?”时,此命令会提供带评分的排名列表

    opensnow-pp-cli powder-rank --slugs alta,steamboat,telluride --agent
    
  • storm-track — 通过关联一段时间内滚动更新的逐小时预报,展示风暴发展过程——降雪何时开始、达到峰值以及结束

    围绕风暴规划行程时,此命令会准确显示何时抵达以及风暴窗口何时关闭

    opensnow-pp-cli storm-track telluride --agent
    
  • overnight — 查看收藏雪场夜间时段的半日预报——这是粉雪猎人的晨间例行事项

    每位滑雪者首先会问:“昨夜下了多少雪?”此命令一次调用即可回答所有收藏雪场的情况

    opensnow-pp-cli overnight --agent
    
可累积的本地状态
  • dashboard — 一条命令即可查看所有收藏地点的当前气温、24 小时降雪量、5 天累计降雪量和运营状态

    无需再打开 OpenSnow 应用——一条命令即可显示 Agent 了解用户偏好雪场所需的一切信息

    opensnow-pp-cli dashboard --agent
    
  • diff — 将当前雪况报告与上次同步的版本进行比较,查看变化:新降雪、缆车开放或关闭、状态变化

    监控雪场状况的 Agent 无需解析原始报告,即可发现重要变化

    opensnow-pp-cli diff alta --agent
    
  • history — 根据缓存的报告快照,查看降雪趋势、雪季累计量与平均值的对比,以及积雪深度变化

    提前数周规划行程时,历史背景信息有助于了解山地雪况是在改善还是恶化

    opensnow-pp-cli history steamboat --days 30 --agent
    
原生 Agent 支持
  • digest — 获取收藏地区的所有 Daily Snow 帖子,将 HTML 转换为纯文本,并显示摘要简报

    OpenSnow 气象学家的专业预报以适合 Agent 和终端的形式呈现,无需打开浏览器

    opensnow-pp-cli digest --region colorado,tahoe --agent
    

命令参考

daily-reads — 管理每日阅读

forecast — 管理预报

  • opensnow-pp-cli forecast get-by-point — 获取地球上任意经纬度点(陆地)的预报。返回当前天气状况、逐小时详情、白天/夜间……
  • opensnow-pp-cli forecast get-detail — 获取任意 OpenSnow 命名地点的 5 天预报。返回当前、逐小时和每日预报,以及……
  • opensnow-pp-cli forecast get-snow-detail — 获取任意 OpenSnow 命名地点的 5 天白天 + 夜间降雪预报。时段分为白天(早上 6 点至下午 6 点)和……

snow-report — 管理雪况报告

  • opensnow-pp-cli snow-report <id_or_slug> — 获取最新的雪况报告——雪场报告的降雪量、雪基深度、运营状态和状况……
查找合适的命令

如果你知道要做什么,但不确定该用哪个命令,可以直接向 CLI 提问:

opensnow-pp-cli which "<capability in your own words>"

which 会根据自然语言能力查询,从此 CLI 精选的功能索引中找出最匹配的命令。退出代码 0 表示至少有一个匹配项;退出代码 2 表示没有把握较大的匹配项——请改用 --help 或使用范围更窄的查询。

使用示例

本周最佳粉雪日
opensnow-pp-cli powder-rank --slugs alta,steamboat,telluride --agent --select resort,score,expected_snow,conditions

按未来 5 天的粉雪潜力为所有已同步的科罗拉多州雪场排名,仅返回供 Agent 使用的关键字段

早间雪况检查
opensnow-pp-cli overnight --agent --select name,precip_snow,conditions_label

快速查看所有已收藏雪场夜间的降雪情况——粉雪爱好者的晨间例行事项

比较两个雪场
opensnow-pp-cli compare alta steamboat --agent

并排比较预报和状况,为行程规划提供参考

专家预报摘要
opensnow-pp-cli digest --region colorado --agent

以适合终端阅读的格式查看 OpenSnow 气象学家的今日 Daily Snow

风暴追踪
opensnow-pp-cli storm-track telluride --agent --select period,precip_snow,wind_speed

追踪 Telluride 下一场风暴的开始、峰值和结束时间,并缩减字段以适配 Agent 上下文

身份验证设置

OpenSnow API 仅向合作伙伴开放。使用 opensnow-pp-cli config set-token <key> 设置 API 密钥。密钥会保存在本地,并作为查询参数随每个请求传递。访问级别 5 支持基于位置点的预报;级别 10 可解锁命名地点、雪况报告和 Daily Snow。

运行 opensnow-pp-cli doctor 验证设置。

Agent 模式

在任意命令中添加 --agent。它会展开为:--json --compact --no-input --no-color --yes。

  • 可管道传输 — JSON 输出到 stdout,错误输出到 stderr

  • 可筛选 — --select 保留字段子集。点分隔路径可深入嵌套结构;数组会逐元素遍历。对于内容冗长的 API,此功能对控制上下文大小至关重要:

    opensnow-pp-cli snow-report mock-value --agent --select id,name,status
    
  • 可预览 — --dry-run 显示请求而不发送

  • 适合离线使用 — 有本地 SQLite 存储时,同步/搜索命令可以使用该存储

  • 非交互式 — 从不显示提示,每个输入都通过标志传入

  • 只读 — 不要使用此 CLI 执行创建、更新、删除、发布、评论、点赞、邀请、下单、发送或其他会修改数据的请求

响应封装

从本地存储或 API 读取数据的命令,会将输出封装在一个来源信息对象中:

{
  "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
  "results": <data>
}

解析 .results 获取数据,并查看 .meta.source 了解数据来自实时数据还是本地数据。只有当 stdout 连接到终端时,才会将易读的 N results (live) 摘要输出到 stderr——通过管道接收的内容或 Agent 使用者在 stdout 上只会收到纯 JSON。

Agent 反馈

当你(或 Agent)发现此 CLI 有问题时,请记录下来:

opensnow-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
opensnow-pp-cli feedback --stdin < notes.txt
opensnow-pp-cli feedback list --json --limit 10

记录会保存在本地的 ~/.opensnow-pp-cli/feedback.jsonl。只有在设置了 OPENSNOW_FEEDBACK_ENDPOINT,并且传入了 --send 或将 OPENSNOW_FEEDBACK_AUTO_SEND=true 时,记录才会通过 POST 发送。默认行为仅保存在本地。

写下让你感到意外的地方,而不是提交 bug 报告。简短、具体,用一行写明:这才是能不断累积价值的部分。

输出交付

每个命令都接受 --deliver <sink>。除了(或代替)stdout,输出还会发送到指定的目标,因此 Agent 无需手动管道传输即可路由命令结果。支持三种目标:

目标效果
stdout默认;仅写入 stdout
file:<path>将输出原子性地写入 <path>(临时文件 + 重命名)
webhook:<url>将输出正文 POST 到该 URL(当使用 --compact 时,为 application/json 或 application/x-ndjson)

不支持的方案会被拒绝,并返回一条结构化错误,列出支持的方案。Webhook 调用失败时会返回非零状态码,并在 stderr 中记录 URL 和 HTTP 状态码。

命名配置

配置文件是一组保存的标志值,可在多次调用中重复使用。当定时 Agent 每次运行都使用相同配置调用同一命令时,可使用配置文件——这就是 HeyGen 的“Beacon”模式。

opensnow-pp-cli profile save briefing --json
opensnow-pp-cli --profile briefing snow-report mock-value
opensnow-pp-cli profile list --json
opensnow-pp-cli profile show briefing
opensnow-pp-cli profile delete briefing --yes

显式标志始终优先于配置文件中的值;配置文件中的值优先于默认值。agent-context 会在 available_profiles 下列出所有可用配置文件,以便 Agent 在运行时发现它们。

退出代码

代码含义
0成功
2用法错误(参数错误)
3未找到资源
4需要身份验证
5API 错误(上游问题)
7受到速率限制(等待后重试)
10配置错误

参数解析

解析 $ARGUMENTS:

  1. 为空、help 或 --help → 显示 opensnow-pp-cli --help 输出
  2. 以 install 开头 → 以 mcp 结尾 → 安装 MCP;否则 → 参见上文的先决条件
  3. 其他任何内容 → 直接使用(作为 CLI 命令执行,并带上 --agent)

安装 MCP 服务

  1. 安装 MCP 服务:
    go install github.com/mvanhorn/printing-press-library/library/productivity/opensnow/cmd/opensnow-pp-mcp@latest
    
  2. 注册到 Claude Code:
    claude mcp add opensnow-pp-mcp -- opensnow-pp-mcp
    
  3. 验证:claude mcp list

直接使用

  1. 检查是否已安装:which opensnow-pp-cli 如果未找到,提示安装(参见本技能开头的先决条件)。
  2. 根据用户查询,从上文的独特功能和命令参考中选择最合适的命令。
  3. 使用 --agent 标志执行:
    opensnow-pp-cli <command> [subcommand] [args] --agent
    
  4. 如果存在歧义,查看子命令帮助:opensnow-pp-cli <command> --help。

评论

支持 Markdown