mcpField
P
pp-recipe-goat

pp-recipe-goat

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

关于 pp-recipe-goat

Recipe Goat 是用于查询、整理和分析食谱的 Printing Press 命令行工具技能,适合个人烹饪与 Agent 工作流。它提供跨站点搜索、食谱收藏与本地 SQLite 同步,并包含只读操作约束。

主要功能

  1. 01跨站点食谱搜索与排序
  2. 02获取、保存和检索食谱
  3. 03食材替换与营养查询
  4. 04本地食谱库与膳食计划
  5. 05SQLite 同步和数据导出

适用场景

  1. 01按食材检索可制作的已保存食谱
  2. 02规划餐食并汇总购物清单
  3. 03离线搜索或分析已同步数据

MCP 相关

README 提供独立的 MCP 服务安装方式,并说明可将其注册到 Claude Code。

安装

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

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

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

详细介绍

Recipe Goat — Printing Press CLI

前置条件:安装 CLI

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

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

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

go install github.com/mvanhorn/printing-press-library/library/food-and-dining/recipe-goat/cmd/recipe-goat-pp-cli@latest

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

何时不使用此 CLI

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

HTTP 传输

此 CLI 使用兼容 Chrome 的 HTTP 传输来访问面向浏览器的端点。正常的 API 调用无需常驻浏览器进程。

命令参考

goat — 跨站点食谱排名器

  • recipe-goat-pp-cli goat <query> — 从精选食谱网站获取候选结果,然后根据查询相关性、评分、评论数量、时效性和网站可信度进行排名

search — 在精选网站中搜索食谱标题

  • recipe-goat-pp-cli search <query> — 在精选网站中搜索食谱标题,而不获取完整食谱;使用 --site、--kid-friendly、--in-season 和 --limit 缩小结果范围

recipe — 获取、打开和检查食谱

  • recipe-goat-pp-cli recipe get <url> — 从源 URL 获取并呈现食谱;可选缩放份量、转换单位、输出 Markdown/纯文本,以及补充 USDA 营养信息
  • recipe-goat-pp-cli recipe open <id> — 在默认浏览器中打开已保存的食谱
  • recipe-goat-pp-cli recipe reviews <id> — 显示已保存食谱的评论修改摘要占位符
  • recipe-goat-pp-cli recipe cost <id> — 估算已保存食谱每份的成本

trending — 精选食谱网站上的热门食谱

  • recipe-goat-pp-cli trending — 显示当前各网站首页推荐的食谱;使用 --site 和 --limit 限定检索范围

sub — 烹饪食材替代方案

  • recipe-goat-pp-cli sub <ingredient> — 查询某种食材的替代方案;可按使用场景筛选,也可筛选适合纯素饮食的建议

trust — 排名器使用的网站可信度分数

  • recipe-goat-pp-cli trust list — 列出内置的各网站可信度分数
  • recipe-goat-pp-cli trust set <site> <delta> — 保存针对排名器实验的本地网站可信度调整

save — 在本地保存食谱

  • recipe-goat-pp-cli save [url] — 获取并保存一个食谱 URL,或通过 --stdin 从标准输入读取 URL;使用 --tags 添加本地标签

cookbook — 本地食谱搜索、标签和食材储备匹配

  • recipe-goat-pp-cli cookbook list — 列出已保存的食谱;可按标签、网站或作者筛选
  • recipe-goat-pp-cli cookbook search <query> — 按标题和食材全文搜索已保存的食谱,并筛选要包含或排除的食材
  • recipe-goat-pp-cli cookbook match — 根据通过 --have 提供的食材储备,查找可以制作的已保存食谱
  • recipe-goat-pp-cli cookbook tag <id> <tag>[,<tag>] — 为已保存的食谱添加一个或多个标签
  • recipe-goat-pp-cli cookbook untag <id> <tag> — 移除已保存食谱的一个标签
  • recipe-goat-pp-cli cookbook remove <id> — 从本地食谱集删除一个食谱

tonight — 从本地食谱集中挑选晚餐

  • recipe-goat-pp-cli tonight — 根据最长用时、最近使用时间、饮食筛选条件、标签和结果数量上限,从已保存的食谱中挑选晚餐

meal-plan — 膳食计划和购物清单

  • recipe-goat-pp-cli meal-plan set <date> <meal> <recipe-id> — 为特定日期和用餐时段安排一道已保存的食谱
  • recipe-goat-pp-cli meal-plan show — 显示指定日期范围或当前周的膳食计划
  • recipe-goat-pp-cli meal-plan remove <date> <meal> — 清除指定用餐时段的膳食计划
  • recipe-goat-pp-cli meal-plan shopping-list — 汇总所有计划膳食的食材,可按货架分组,或导出为 Markdown、文本或 CSV

cook — 烹饪记录

  • recipe-goat-pp-cli cook log <recipe-id> — 记录烹饪过程,可填写评分、备注和日期
  • recipe-goat-pp-cli cook history — 列出过去的烹饪记录,可按食谱或时间范围筛选

sync — API 资源的本地 SQLite 同步

  • recipe-goat-pp-cli sync — 将 API 数据同步到本地 SQLite,以便离线搜索和分析,并可控制资源、检查点、分页和并发

export — 数据导出

  • recipe-goat-pp-cli export <resource> [id] — 将 API 数据导出为 JSONL 或 JSON,用于备份、迁移或分析

import — JSONL 导入

  • recipe-goat-pp-cli import <resource> — 通过调用 API 创建或更新记录,从 JSONL 导入记录;使用 --dry-run 可预览而不发送请求

workflow — 组合数据工作流

  • recipe-goat-pp-cli workflow archive — 将所有受支持的资源同步到本地存储,以便离线访问和搜索
  • recipe-goat-pp-cli workflow status — 显示本地存档状态和同步状态

foods — USDA FoodData Central — 食材营养查询

  • recipe-goat-pp-cli foods get — 根据 FDC ID 获取指定食品
  • recipe-goat-pp-cli foods list — 分页列出食品
  • recipe-goat-pp-cli foods search — 在 USDA FoodData Central 中搜索与查询内容匹配的食品
查找合适的命令

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

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

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

身份验证设置

通过环境变量设置 API 密钥:

export USDA_FDC_API_KEY="<your-key>"

也可以将其保存到 ~/.config/recipe-goat-pp-cli/config.toml。

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

Agent 模式

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

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

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

    recipe-goat-pp-cli foods list --agent --select id,name,status
    
  • 可预览 — --dry-run 显示请求但不发送

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

  • 非交互式 — 绝不提示输入,所有输入都通过标志提供

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

响应封装

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

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

解析 .results 获取数据,并查看 .meta.source 以确认数据来自实时 API 还是本地存储。仅当 stdout 连接到终端时,才会将易读的 N results (live) 摘要输出到 stderr;通过管道接收输出或由 Agent 使用时,stdout 只包含纯 JSON。

Agent 反馈

当你(或 Agent)发现这个 CLI 有什么不对劲时,请记录下来:

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

条目会保存在本地的 ~/.recipe-goat-pp-cli/feedback.jsonl 中。除非设置了 RECIPE_GOAT_FEEDBACK_ENDPOINT,并且传入了 --send 或设置了 RECIPE_GOAT_FEEDBACK_AUTO_SEND=true,否则不会发送 POST 请求。默认情况下,反馈仅保存在本地。

请写下让你感到意外的地方,而不是提交 Bug 报告。简短、具体,一行即可:这正是日积月累的部分。

输出交付

每个命令都接受 --deliver <sink>。输出会写入指定的目标位置,同时写入标准输出(或取代标准输出),因此 Agent 无需手动转发管道即可路由命令结果。支持三种目标:

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

不支持的协议会被拒绝,并返回列出支持协议的结构化错误。Webhook 请求失败时会返回非零状态码,并在标准错误中记录 URL 和 HTTP 状态码。

命名配置

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

recipe-goat-pp-cli profile save briefing --json
recipe-goat-pp-cli --profile briefing foods list
recipe-goat-pp-cli profile list --json
recipe-goat-pp-cli profile show briefing
recipe-goat-pp-cli profile delete briefing --yes

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

退出码

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

参数解析

解析 $ARGUMENTS:

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

安装 MCP 服务

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

直接使用

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

评论

支持 Markdown