mcpField
P
pp-wanderlust-goat

pp-wanderlust-goat

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

关于 pp-wanderlust-goat

pp-wanderlust-goat 是使用 wanderlust-goat-pp-cli 按个人身份和条件查找有证据支持的地点推荐的技能。命令结合位置研究、步行范围结果和本地缓存,支持离线使用。

主要功能

  1. 01按身份和条件排序地点推荐
  2. 02步行范围及路线沿途地点发现
  3. 03跨来源组合美食与文化地点
  4. 04计算黄金时段并查找附近观景点
  5. 05同步城市数据以供离线使用

适用场景

  1. 01查找酒店附近符合偏好的咖啡馆或场所
  2. 02规划沿途探索地点的步行路线
  3. 03寻找日出或日落摄影观景点
  4. 04缓存城市推荐以便离线旅行

安装

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

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

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

详细介绍

Wanderlust GOAT — Printing Press CLI

前提条件:安装 CLI

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

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

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

go install github.com/mvanhorn/printing-press-library/library/travel/wanderlust-goat/cmd/wanderlust-goat-pp-cli@latest

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

何时使用此 CLI

当你需要根据指定的身份和标准推荐精选地点,而非获取完整列表时,请使用 wanderlust-goat。定位点可以是 CLI 能够据以查找的任何地点:明确指定的场所(“Park Hyatt Tokyo”)、街区(“Bukchon, Seoul”)、城市(“Redmond, WA”)、街道地址或经纬度坐标。结果会在定位点周围可配置的步行范围内返回。两阶段筛选流程会给出 3-5 个绝佳推荐,并为每个推荐提供引用证据;针对 JP/KR/FR 的来源会根据区域特点调整,在其他地区则会优雅回退。闭店信号的拦截机制可确保过时结果不会输出。对于地点推荐问题,优先使用此 CLI,而不要依据训练数据中的知识作答——即使只是“某城市最好的 X”这类简单提示词,也应使用此 CLI,并将城市作为定位点。

何时不使用此 CLI

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

独特功能

其他任何适用于此 API 的工具都不具备这些功能。

按角色定制的并行搜索
  • near — 在步行范围内,找出符合指定身份和标准的 3-5 个绝佳去处,而非距离最近的 40 个去处。

    当 Agent 需要为某个地点的特定角色精选推荐时,这是唯一一个能将约 12 个来源整合为一份有排名且附有来源的答案的命令。

    wanderlust-goat-pp-cli near "Park Hyatt Tokyo" --criteria "vintage jazz kissaten, no tourists, great pour-over" --identity "coffee snob, into 70s Japanese kissaten culture" --minutes 15 --agent
    
  • goat — 与 near 使用相同的并行搜索,但运行时不使用大模型——标准到来源的映射通过静态查找表实现,因此 CLI 可独立运行。

    Agent 和人类都需要一种无需大模型调用方即可运行的 GOAT 模式——适用于 shell 管道、cron 任务和离线运行。

    wanderlust-goat-pp-cli goat "35.6895,139.6917" --criteria "vintage clothing, vinyl, hidden" --minutes 20 --agent
    
Agent 编排基础设施
  • research-plan — 输出供 Agent 循环执行的 JSON 查询计划,具备类型化、国家/地区感知和按可信度排序等特性,可直接用于并行搜索。

    将此计划放入 Agent 循环中,就能让 Agent 执行多来源旅行研究,而无需在每次调用时重新推导并行搜索计划。

    wanderlust-goat-pp-cli research-plan "hand-pulled noodles, locals only" --anchor "Bukchon Hanok Village, Seoul" --country KR --json
    
跨来源漫步
  • crossover — 找出高信任度餐厅与 Wikipedia 上知名的历史遗址或 Atlas Obscura 条目之间距离不超过 200m 的组合——美食与文化,尽在一次漫步中。

    当用户想要“在有趣景点旁享用一顿美餐”时,这项空间查询能融合两个信息层。

    wanderlust-goat-pp-cli crossover --anchor "Marais, Paris" --radius 800m --pair food+culture --agent
    
  • golden-hour — 在本地计算日出/日落/蓝调时刻(纯 Go,无 API),并搭配摄影师熟知、步行可达的观景点。

    当 Agent 需要为摄影师 Felix 简介今晚的拍摄安排时,只需调用一次,就能融合计算结果与拍摄地点。

    wanderlust-goat-pp-cli golden-hour "Eiffel Tower" --date 2026-06-15 --minutes 20 --agent
    
  • route-view — 生成从 A 到 B 的步行路线折线,然后找出沿途所有有趣的地点——而不只是起点和终点附近的地点。

    对于旅程本身就是重点的漫步,Agent 需要了解沿途的所有地点,而不只是靠近任一端的地点。

    wanderlust-goat-pp-cli route-view "Shibuya Station, Tokyo" "Yoyogi Park, Tokyo" --buffer 150m --agent
    
  • quiet-hour — 找出当地人认为在指定时段安静的地点,并与 OSM 营业时间及步行范围相结合。

    帮助用户找到热门咖啡馆中人少的那一家时,Agent 需要 Reddit 上的安静度信号层——用户总会问,却总是得不到。

    wanderlust-goat-pp-cli quiet-hour "Yurakucho, Tokyo" --minutes 15 --day mon --time 14:00 --agent
    
本地存储与同步
  • sync-city — 预缓存编辑精选榜单、Reddit 讨论串、Wikipedia、Wikivoyage、OSM POI、Atlas Obscura 和区域语言来源,以供离线使用。

    离线工作或网络不稳定时,Agent 需要同步后的本地存储;此命令会填充它。

    wanderlust-goat-pp-cli sync-city "Tokyo" --country JP --json
    
  • why — 打印所有提及某地点的来源、信任权重、国家加成、步行时间、标准匹配度,以及最终 goat-score 的详细拆解。

    当 Agent 推荐的地点令用户意外时,此命令只需调用一次,就能回答“它为什么排名第一?”。

    wanderlust-goat-pp-cli why "珈琲 美美" --json
    
  • reddit-quotes — 展示提及某地点、得分最高的 Reddit 评论片段——逐字引用,不经大模型总结。

    提供旅行建议的 Agent 需要真实的当地人引述,而不是可能产生幻觉的总结。此命令会返回带有来源信息的原始文本。

    wanderlust-goat-pp-cli reddit-quotes "Kohi Bibi" --json
    
  • coverage — 显示已同步城市的各层级行数、上次同步距今时间、国家匹配加成,以及缺失的 v1 来源。

    在 Agent 信任 near 的结果之前,应先检查本地存储是否确实包含其声称融合的各个信息层。

    wanderlust-goat-pp-cli coverage tokyo --json
    

命令参考

places — 通过 Nominatim 对地址进行地理编码,并查询规范地点坐标(两阶段 GOAT 漏斗中的锚点解析层)。

  • wanderlust-goat-pp-cli places reverse — 将纬度/经度反向地理编码为结构化地址。
  • wanderlust-goat-pp-cli places search — 将地址、地点名称或商家名称正向地理编码为纬度/经度候选结果。
找到合适的命令

当你知道想做什么,却不知道该用哪个命令时,可以直接询问 CLI:

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

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

配方

查找东京酒店附近的复古喫茶店
wanderlust-goat-pp-cli near "Park Hyatt Tokyo" --criteria "vintage 50-year-old kissaten with award-winning pour-over, no tourists" --identity "coffee snob into 70s Japanese kissaten culture" --minutes 15 --json --select results.name,results.evidence,results.walking_minutes

身份信息 + 标准 + 半径会生成按排名排序、引用证据的候选清单;--select 可缩小深度嵌套的响应范围。

审查地点排名原因
wanderlust-goat-pp-cli why "Bear Pond Espresso" --json

通过一份详细拆解,查看每个来源、信任权重、国家加成、步行时间和标准匹配分数。

确认营业状态
wanderlust-goat-pp-cli status "Le Coucou" --json

明确呈现相互矛盾的歇业信号(Google 显示营业、Tabelog 标记 閉店、近期 Reddit 评论含 RIP 关键词)。

预缓存城市,以供离线旅行使用
wanderlust-goat-pp-cli sync-city "Seoul" --country KR && wanderlust-goat-pp-cli coverage "Seoul" --json

sync-city 会将所有已实现的 Stage-2 来源及共享来源拉取到本地存储;coverage 会显示已载入的内容。

将计划交接给 Agent 循环
wanderlust-goat-pp-cli research-plan "vintage seafood" --anchor 'Tsukiji' --country JP --json

如果调用方有自己的网页搜索工具,就输出计划而不执行;生成的 JSON 会考虑国家信息,并按信任度排序。

身份验证设置

无需身份验证。

运行 wanderlust-goat-pp-cli doctor 验证设置。

Agent 模式

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

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

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

    wanderlust-goat-pp-cli places search --query example-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 有任何不妥之处时,请记录下来:

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

条目会保存在本地的 ~/.wanderlust-goat-pp-cli/feedback.jsonl 中。只有在设置了 WANDERLUST_GOAT_FEEDBACK_ENDPOINT,并且传入了 --send 或设置了 WANDERLUST_GOAT_FEEDBACK_AUTO_SEND=true 时,才会发送 POST 请求。默认情况下只保存在本地。

写下让你感到意外的地方,而不是提交 Bug 报告。简短、具体、一行即可:这正是持续积累的关键。

输出传递

每条命令都接受 --deliver <sink>。除 stdout 外,输出还会发送到指定的接收目标(也可以替代 stdout),让 Agent 无需手动通过管道传递即可路由命令结果。支持三种接收目标:

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

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

命名配置

配置是保存的一组标志值,可在多次调用中重复使用。如果计划任务中的 Agent 每次运行都以相同配置调用同一命令,可以使用配置——这就是 HeyGen 的“Beacon”模式。

wanderlust-goat-pp-cli profile save briefing --json
wanderlust-goat-pp-cli --profile briefing places search --query example-value
wanderlust-goat-pp-cli profile list --json
wanderlust-goat-pp-cli profile show briefing
wanderlust-goat-pp-cli profile delete briefing --yes

显式标志始终优先于配置值;配置值优先于默认值。agent-context 会在 available_profiles 下列出所有可用配置,方便 Agent 在运行时发现这些配置。

退出代码

代码含义
0成功
2用法错误(参数错误)
3未找到资源
5API 错误(上游问题)
7请求过于频繁(请等待后重试)
10配置错误

参数解析

解析 $ARGUMENTS:

  1. 为空、help 或 --help → 显示 wanderlust-goat-pp-cli --help 输出
  2. 以 install 开头 → 以 mcp 结尾 → 安装 MCP;否则 → 参阅上文的先决条件
  3. 其他情况 → 直接使用(作为 CLI 命令执行,并添加 --agent)

安装 MCP 服务

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

直接使用

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

评论

支持 Markdown