mcpField
G
getting-started

getting-started

github.com/borskiAgent 工作流78668 次安装4 天前更新
代码仓库

关于 getting-started

面向旅行积分与里程规划的入门 Skill,可检查 API 凭据配置、引导使用本地脚本安全设置,并按可用服务推荐旅行提示词。它强调避免在聊天中传递密钥。

主要功能

  1. 01按平台检查凭据是否配置
  2. 02按优先级整理凭据
  3. 03引导通过本地脚本安全设置
  4. 04根据配置推荐提示词

适用场景

  1. 01检查已配置的旅行服务
  2. 02不在聊天中分享密钥并补充凭据
  3. 03按可用服务尝试旅行搜索

安装

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

$npx skills add https://github.com/borski/travel-hacking-toolkit --skill getting-started

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

详细介绍

入门技能

用户明确调用了此技能。帮助用户了解哪些内容已经可用、还缺少什么,以及实际该尝试什么。重要:**不要在聊天中索要 API 密钥。**将密钥粘贴到聊天输入框会使其出现在终端滚屏记录、本地 Claude Code 会话日志以及 Anthropic API 日志中。该工具包附带一个本地脚本,可通过隐藏输入提示用户输入密钥,并将密钥直接写入用户的 shell rc 文件,全程不会经过聊天。

第 1 步:检测已配置的内容

首先通过 Bash 工具的环境检测用户的平台。如果有 bash(macOS、Linux、WSL、Windows 上的 Git Bash),使用 Bash 检测方式。如果是在没有 bash 的原生 Windows PowerShell 中,则改用 PowerShell 检测方式。

不要打印具体值;只报告已设置或缺失。

Bash / Zsh(macOS / Linux / WSL / Git Bash)

使用 printenv,确保循环在 bash 和 zsh 中都能运行(Claude Code 的 Bash 工具可能使用其中任意一种):

for var in SEATS_AERO_API_KEY DUFFEL_API_KEY_LIVE IGNAV_API_KEY AWARDWALLET_API_KEY AWARDWALLET_USER_ID SERPAPI_API_KEY RAPIDAPI_KEY LITEAPI_API_KEY TRIPADVISOR_API_KEY ENTUR_CLIENT_NAME RESROBOT_API_KEY REJSEPLANEN_API_KEY; do
  if [ -n "$(printenv "$var")" ]; then echo "SET: $var"; else echo "MISSING: $var"; fi
done
PowerShell(原生 Windows)
$keys = @('SEATS_AERO_API_KEY','DUFFEL_API_KEY_LIVE','IGNAV_API_KEY','AWARDWALLET_API_KEY','AWARDWALLET_USER_ID','SERPAPI_API_KEY','RAPIDAPI_KEY','LITEAPI_API_KEY','TRIPADVISOR_API_KEY','ENTUR_CLIENT_NAME','RESROBOT_API_KEY','REJSEPLANEN_API_KEY')
foreach ($k in $keys) {
    $v = [Environment]::GetEnvironmentVariable($k)
    if ([string]::IsNullOrEmpty($v)) { Write-Host "MISSING: $k" } else { Write-Host "SET: $k" }
}

对结果分组:

第 1 层(价值最高,缺失影响最大): SEATS_AERO_API_KEY、DUFFEL_API_KEY_LIVE、IGNAV_API_KEY、AWARDWALLET_API_KEY + AWARDWALLET_USER_ID

第 2 层(额外来源): SERPAPI_API_KEY、RAPIDAPI_API_KEY、LITEAPI_API_KEY、TRIPADVISOR_API_KEY

第 3 层(特定用例): ENTUR_CLIENT_NAME、RESROBOT_API_KEY、REJSEPLANEN_API_KEY(仅适用于斯堪的纳维亚公共交通)

第 2 步:告知用户当前状态

说明具体情况。例如:

  • 第 1 层全部已设置:“配置已完整。请跳到第 4 步(示例提示词)。”
  • 全部缺失:“你还没有设置任何 API 密钥。5 个免费的 MCP 服务(Skiplagged、Kiwi、Trivago、Ferryhopper、Airbnb)无需密钥即可使用,因此你现在就能搜索现金机票和酒店。添加密钥即可解锁奖励机票搜索和余额自动拉取。”
  • 部分第 1 层密钥已设置:“4 个高价值密钥中,你已设置 X 个。设置脚本可以补齐缺失的密钥。”

第 3 步:向用户介绍本地设置脚本

如果缺少密钥且用户想添加,请根据其平台提供正确的命令。使用 echo $SHELL 检测 shell,使用 uname 检测操作系统。

macOS / Linux / WSL / Git Bash

“请在终端中运行此命令(不要在此聊天中运行)。脚本会通过隐藏输入逐个询问密钥、验证密钥,并将导出语句写入 shell rc 文件,同时创建备份。你的密钥绝不会经过此聊天会话。

bash <(curl -fsSL https://raw.githubusercontent.com/borski/travel-hacking-toolkit/main/scripts/setup-keys.sh)

或者,如果你已克隆仓库:bash scripts/setup-keys.sh

完成后,运行 source ~/.zshrc(或 ~/.bashrc,或你的 fish 配置文件),然后让我为你规划行程。”

Windows(PowerShell)

“请在 PowerShell 中运行此命令(不要在此聊天中运行)。脚本会通过隐藏输入逐个询问密钥,并将密钥写入 PowerShell 配置文件。

iwr https://raw.githubusercontent.com/borski/travel-hacking-toolkit/main/scripts/setup-keys.ps1 -OutFile $env:TEMP\setup-keys.ps1
powershell -NoProfile -ExecutionPolicy Bypass -File $env:TEMP\setup-keys.ps1
Remove-Item $env:TEMP\setup-keys.ps1

完成后,运行 . $PROFILE 或打开新的 PowerShell 窗口。”

Windows(cmd)

“使用 PowerShell 更简单。如果必须使用 cmd,请通过 setx 设置密钥:

setx SEATS_AERO_API_KEY \"your-key-here\"
setx DUFFEL_API_KEY_LIVE \"your-key-here\"

打开新的 cmd 窗口后,变量才会生效。请注意,setx 会将变量永久写入注册表。”

1Password 用户

“如果你把密钥保存在 1Password 中,可以使用 op run 在启动时解析密钥,而不必写入 shell rc。此工具包提供了一个使用 op:// 引用的 .env.example。语法请参阅 https://developer.1password.com/docs/cli/secrets-environment-variables/。然后这样启动:`op run --env-file=.env -- claude`。”

绝不要通过聊天输入要求用户提供 API 密钥。 如果用户明确坚持要在聊天中粘贴,请礼貌拒绝,并解释脚本才是安全的做法:输入到聊天中的密钥会留存在终端滚屏记录、本地会话日志和远程 API 日志中。脚本能避免这三种情况。

第 4 步:展示示例提示词

设置完成后(或者现在,如果密钥已经设置好),根据用户已配置的内容,展示 3~4 条提示词。先重新检测以确认。

尚未设置密钥:

  • “帮我找下个月从纽约飞往伦敦的便宜直飞航班。”
  • “埃菲尔铁塔附近有哪些每晚低于 400 美元的酒店?”
  • “怎么坐火车从卑尔根去奥斯陆?”(如果用户在斯堪的纳维亚地区)

已配置 Seats.aero:

  • “用积分规划一次 8 月出发、为期 10 天的斯堪的纳维亚之旅。”
  • “找找 3 月两人去东京最便宜的商务舱航班。”
  • “帮我找一个我还没用过、价值超高的积分兑换机会。”

已配置 AwardWallet:

  • “显示我的积分余额,以及哪些计划的积分即将过期。”
  • “目前有哪些值得使用的转点奖励?”

最后用陈述句结束(根据系统提示中的 PRE-OUTPUT GATE,不能用问句):

“一切就绪。输入 /travel-hacker:plan-trip 开始制定旅行计划,或用自然语言描述你的行程。”

不要这样做

  • 绝不要在聊天中索要 API 密钥。 始终引导用户使用 setup-keys.sh 或 setup-keys.ps1。聊天输入会被记录在太多地方。
  • 绝不要向用户回显 API 密钥值。 无论是在确认信息、预览中,还是任何其他地方,都不行。
  • 绝不要将密钥写入 /tmp 或其他临时路径。 setup-keys 脚本会写入用户的 shell rc,并创建备份。
  • 绝不要提出“我可以把 export 命令打印出来,供你复制粘贴”。 这样会让密钥进入聊天。
  • 不要以提供帮助的问句结束(例如“要我……吗?”)。系统提示中的 PRE-OUTPUT GATE 禁止这样做。
  • 不要讲解积分/里程的概念。 帮助用户在接下来的 30 秒内尝试一件事。
  • 不要对缺少密钥表示歉意。 应表述为“根据你已有的配置,我们可以这样做”。

语气

简洁、友好、直接。在一分钟内让用户从“我有哪些配置?”走到“这是要运行的脚本”。

边缘情况

  • 用户当前的 shell 会话中有密钥,但 rc 中没有: 说明密钥在当前进程中已设置,但不会保留。建议使用设置脚本。
  • 用户使用 1Password: 提及 op run --env-file=.env -- claude 这一替代方式。
  • Windows 用户询问 WSL/Git Bash: 告诉他们使用 macOS/Linux 说明,而不是 PowerShell 说明。bash 脚本在 WSL 下的用法相同。
  • 用户询问“你不能直接向我收集密钥吗?”:拒绝。解释原因(聊天日志),并引导他们使用脚本。如果他们仍然坚持,请指向 README 手动设置部分,这样至少密钥不会进入聊天。

评论

支持 Markdown