mcpField
P
pp-tripadvisor

pp-tripadvisor

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

关于 pp-tripadvisor

pp-tripadvisor 是供 Agent 使用 `tripadvisor-pp-cli` 搜索、查看和比较 Tripadvisor 酒店、餐厅及景点的技能。它提供排序搜索、本地 SQLite 缓存,以及地点详情、近期评价和照片。

主要功能

  1. 01按名称或坐标搜索地点
  2. 02排序并比较备选地点
  3. 03按旅行者类型匹配结果
  4. 04追踪评分和评价数变化
  5. 05汇总详情、评价和照片

适用场景

  1. 01查找城市中的高评分餐厅
  2. 02比较备选酒店
  3. 03查找地点附近的高评分场所
  4. 04检查已追踪地点是否表现下滑

MCP 相关

技能文档说明了 `tripadvisor-pp-mcp` MCP 服务的安装及其在 Claude Code 中的注册方式。该服务通过 MCP 提供 Tripadvisor CLI 功能。

安装

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

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

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

详细介绍

Tripadvisor — Printing Press CLI

前提条件:安装 CLI

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

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

如果通过 npx 安装失败(例如未安装 Node、处于离线状态等),请改用直接 Go 安装(需要 Go 1.26.6 或更高版本)。此方式会将二进制文件安装到 $GOPATH/bin(默认为 $HOME/go/bin),因此请将该目录添加到 $PATH:

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

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

搜索酒店、餐厅和景点,并提前获取评分、评论数和排名,供 Agent 排序和选择。除了原始的五个端点,best 和 nearby-best 可以通过一次调用完成搜索和排序,compare 可以并列比较地点,而 drift 会标记自上次查看以来评分下滑的地点——这些功能都由本地 SQLite 缓存支持,因此重复查询无需耗费资源,并且可离线使用。

何时使用此 CLI

当 Agent 需要搜索 Tripadvisor 地点,并按评分、评论数或排名进行比较时,请使用此 CLI——例如,挑选某个城市或某个地点附近最好的酒店、餐厅或景点,并列比较特定选项,或获取某个地点的详情、近期旅行者评论和照片。本地缓存让重复比较更快捷,并支持离线使用。

不适用场景

请勿在以下场景使用此 CLI:

  • 请勿使用此 CLI 预订酒店、餐位或旅行团——Content API 仅支持读取,此工具不提供预订服务。
  • 请勿用它获取完整的评论历史;免费的 Content API 对每个地点最多返回 5 条近期评论。
  • 请勿用它直接抓取 tripadvisor.com;该网站有机器人防护,这也不在本工具的适用范围内。
  • 请勿用它总结或判断评论情感;它会返回用户生成的原始文本,由 Agent 进行解读。

独特功能

这些功能无法通过此 API 的其他工具获得。

比较选项
  • best — 搜索某种类型的地点,自动获取热门结果的详情,并在一张表格中按评分、评论数或 Tripadvisor 排名进行排序。

    当任务是“在 Y 中找到最好的 X”时,请使用此功能,无需自行反复调用 find 和 show。

    tripadvisor-pp-cli best "Paris" --category hotels --top 5 --sort rating --agent
    
  • compare — 获取 2-5 个地点 ID 的详情(以及子评分和旅行类型构成),并生成一张结构化对比表。

    当 Agent 已经筛选出特定地点,需要从中做出选择时,请使用此功能。

    tripadvisor-pp-cli compare 93450 258705 1641927 --agent
    
  • nearby-best — 根据经纬度查找附近地点,批量获取详情(最多不超过扫描上限),按类别和最低评分筛选,并返回排名前 K 的结果。

    当你需要根据坐标查找“附近评分最高的 <类型>”时,请使用此功能。

    tripadvisor-pp-cli nearby-best "48.8606,2.3376" --category restaurants --min-rating 4.0 --top 5 --agent
    
  • fit — 根据旅行类型构成与指定旅行者画像(家庭、情侣、独行、商务)的匹配程度,为搜索结果排序。

    当你希望让候选名单更符合实际旅行者的需求时,请使用此功能。

    tripadvisor-pp-cli fit "Orlando" --category hotels --traveler families --top 5 --agent
    
持续积累的本地状态
  • drift — 将某个地点已存储的评分/评论数快照与最新获取的数据进行比较,报告差值,并标记超过阈值的下滑。

    当你需要检测已追踪地点自上次查看以来是否有所下滑时,请使用此功能。

    tripadvisor-pp-cli drift 93450 --threshold 0.2 --agent
    
面向 Agent 的原生功能
  • digest — 输入一个地点 ID,生成一份面向 Agent 的单一数据载荷,整合详情、热门评论(用户生成)和照片 URL。

    当你需要全面了解某个地点,又不想分三次获取数据时,请使用此功能。

    tripadvisor-pp-cli digest 93450 --reviews 3 --agent
    

命令参考

find — 按名称搜索 Tripadvisor 上的酒店、餐厅、景点或地理位置

  • tripadvisor-pp-cli find <searchQuery> — 按名称搜索地点。返回可传递给 show/reviews/photos 的 location_id、名称和地址。

near — 查找纬度/经度坐标点附近的 Tripadvisor 地点

  • tripadvisor-pp-cli near <latLong> — 查找 'lat,long' 附近的地点。返回 location_id、名称和地址。

photos — 列出某个地点的照片 URL(缩略图/中等/大/原始尺寸)

  • tripadvisor-pp-cli photos <locationId> — 列出某个 location_id 的照片及其缩略图/中等/大/原始尺寸 URL。Content API 最多返回 5 张。

reviews — 列出某个地点的近期旅行者评论(用户生成内容;Content API 最多返回 5 条)

  • tripadvisor-pp-cli reviews <locationId> — 列出某个 location_id 的近期评论。

show — 显示某个地点的完整详情:评分、评论数、排名、地址、营业时间、价格等级、奖项

  • tripadvisor-pp-cli show <locationId> — 显示一个 location_id 的完整详情。结果以评分、num_reviews 和排名开头,方便 Agent 比较选项。
查找合适的命令

如果你知道想做什么,但不清楚该用哪个命令,可以直接询问 CLI:

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

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

用法示例

查找城市中评分最高的餐厅
tripadvisor-pp-cli best "Lisbon" --category restaurants --top 5 --sort rating --agent

搜索地点,自动获取热门结果的详情,并按评分排序返回,同时附上评论数。

比较两家酒店
tripadvisor-pp-cli compare 93450 258705 --agent --select name,rating,num_reviews,ranking

获取两家酒店的详情记录,并将比较范围缩小到影响选择的字段。

查找坐标附近的最佳地点
tripadvisor-pp-cli nearby-best "48.8606,2.3376" --category attractions --min-rating 4.5 --top 5 --agent

根据纬度/经度查找附近的景点,并对高评分景点排序。

这个地方的评分下降了吗?
tripadvisor-pp-cli drift 93450 --threshold 0.2 --agent

将缓存的评分快照与最新获取的数据进行比较,并标记明显的下降。

一次调用,全面了解
tripadvisor-pp-cli digest 93450 --reviews 3 --agent --select name,rating,reviews

在一个负载中整合详情、近期评论和照片,并缩小到你需要的内容。

身份验证设置

使用官方 Tripadvisor Content API 密钥,并通过 key 查询参数传入(设置 TRIPADVISOR_API_KEY)。在 tripadvisor.com/developers 创建密钥;显示密钥前,必须添加 IP 限制(你的公网 IPv4 地址,掩码为 /32)或域名限制。域名限制的密钥还要求每个请求都带有 Referer 标头。

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

Agent 模式

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

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

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

    tripadvisor-pp-cli find mock-value --agent --select id,name,status
    
  • 可预览 — --dry-run 显示请求,但不会发送

  • 支持离线使用 — 可用时,同步/搜索命令可以使用本地 SQLite 存储

  • 非交互式 — 绝不提示输入,每个输入都通过标志指定

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

响应封装

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

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

解析 .results 获取数据,并通过 .meta.source 判断数据来自实时 API 还是本地。仅当 stdout 连接到终端,且未设置机器格式标志(--json、--csv、--compact、--quiet、--plain、--select)时,才会将人类可读的 N results (live) 摘要输出到 stderr——管道/Agent 消费者和显式格式运行会在 stdout 输出纯 JSON。

Agent 反馈

当你(或 Agent)发现此 CLI 有哪里不对劲时,请记录下来:

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

条目会本地存储在 ~/.local/share/tripadvisor-pp-cli/feedback.jsonl 中。除非设置了 TRIPADVISOR_FEEDBACK_ENDPOINT,并且传入了 --send 或设置了 TRIPADVISOR_FEEDBACK_AUTO_SEND=true,否则绝不会通过 POST 发送。默认行为仅在本地存储。

写下让你感到意外的地方,而不是提交 Bug 报告。简短、具体,用一行写清楚:这部分会不断积累。

输出传递

每条命令都接受 --deliver <sink>。输出会发送到指定的 sink,并同时写入 stdout(或替代 stdout),这样 Agent 就能路由命令结果,而无需手动管道传输。支持三种 sink:

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

对于未知方案,会拒绝请求并返回结构化错误,指出受支持的方案。Webhook 失败时会返回非零状态,并在 stderr 上记录 URL 和 HTTP 状态。

命名配置文件

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

tripadvisor-pp-cli profile save briefing --json
tripadvisor-pp-cli --profile briefing find mock-value
tripadvisor-pp-cli profile list --json
tripadvisor-pp-cli profile show briefing
tripadvisor-pp-cli profile delete briefing --yes

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

退出代码

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

参数解析

解析 $ARGUMENTS:

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

MCP 服务安装

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

直接使用

  1. 检查是否已安装:which tripadvisor-pp-cli 如果未找到,则提供安装选项(参见此技能顶部的先决条件)。
  2. 将用户查询匹配到上文“独特功能”和“命令参考”中的最佳命令。
  3. 使用 --agent 标志执行:
    tripadvisor-pp-cli <command> [subcommand] [args] --agent
    
  4. 如果有歧义,则查看子命令帮助:tripadvisor-pp-cli <command> --help。

评论

支持 Markdown