mcpField
P
pp-allrecipes

pp-allrecipes

github.com/mvanhornその他2.1k192 回インストール今日更新
リポジトリ

pp-allrecipes について

pp-allrecipes は、構造化された Allrecipes のデータを読み取るための、エージェントやユーザー向けコマンドラインスキルです。ローカルの SQLite キャッシュを使い、食材照合や評価順の検索、献立作成、エクスポートを行えます。

主な機能

  1. 01レシピの検索と取得
  2. 02平滑化評価による順位付け
  3. 03手持ち食材からレシピ検索
  4. 04食事条件による絞り込み
  5. 05分量調整と栄養表示
  6. 06レシピ集と買い物リストの作成

活用シーン

  1. 01時間内に作れる高評価レシピの検索
  2. 02手持ち食材を使うレシピ選び
  3. 03複数レシピの食材を買い物リストに集約
  4. 04カテゴリ別レシピ集を Markdown で出力

インストール

コマンドをコピーしてターミナルで実行します。

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

インストール後、Claude Code で/pp-allrecipesを入力して読み込まれたか確認します。

詳細

Allrecipes — Printing Press CLI

前提条件:CLI をインストールする

このスキルは allrecipes-pp-cli バイナリを使用します。このスキルのコマンドを実行する前に、CLI がインストールされていることを必ず確認してください。 インストールされていない場合は、先にインストールしてください。

  1. Printing Press インストーラーを使ってインストールします。バイナリの保存先は、macOS/Linux では $HOME/.local/bin、Windows では %LOCALAPPDATA%\Programs\PrintingPress\bin がデフォルトです。
    npx -y @mvanhorn/printing-press-library install allrecipes --cli-only
    
  2. 次のコマンドで確認します:allrecipes-pp-cli --version
  3. 報告されたインストールディレクトリが、このスキルを実行するエージェント/ランタイムの $PATH に含まれていることを確認します。

npx によるインストールに失敗した場合(Node がない、オフラインなど)は、Go を直接インストールしてください(Go 1.26.6 以降が必要です)。

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

インストール後に --version が「command not found」と報告する場合、ランタイムからバイナリディレクトリを $PATH 経由で認識できていません。確認が成功するまで、スキルのコマンドを実行しないでください。

この CLI を使用する場面

エージェントやユーザーが、Web ページではなくデータとして Allrecipes の情報を必要とする場合に、この CLI を使用してください。実績のあるレシピの検索、材料リストの構造化データでの取得、複数のレシピを対象とした買い物リストの作成、人数に合わせた分量の調整、パントリーにある食材による絞り込みなどが該当します。ローカルの SQLite キャッシュにより、反復的な献立作成ワークフローをすばやく実行できます。取得したレシピはすべて、pantry、with-ingredient、top-rated、dietary を使って、いつでもクエリできます。複数のサイトを比較したい場合(別のツールが必要です)や、保存済みレシピや献立などの認証が必要な機能を利用したい場合(意図的にサポート対象外です)は、この CLI を使用しないでください。

この CLI を使用しない場面

作成、更新、削除、公開、コメント、賛成票の投票、招待、注文、メッセージ送信、予約、購入、リモートの状態変更が必要なリクエストには、この CLI を使用しないでください。この Printing Press CLI が提供するのは、確認、エクスポート、同期、分析のための読み取り専用コマンドです。

独自の機能

この API 向けの他のツールでは、以下の機能を利用できません。

積み重ねて活用できるローカル状態
  • pantry — パントリーにある食材をもとに Allrecipes のレシピを評価し、買い出しに行かずに今夜作れるレシピを確認できます。

    ユーザーが「手持ちの食材で何が作れる?」と尋ねたとき、答えがわかるのはこのコマンドだけです。

    allrecipes-pp-cli pantry --pantry-file ~/pantry.txt --query brownies --agent
    
  • with-ingredient — 指定した食材を使うキャッシュ済みレシピをすべて検索します。ローカルのレシピデータ全体を対象とした SQL ビューです。

    料理名ではなく、使い切りたい食材から検索を始める場合に使用します。

    allrecipes-pp-cli with-ingredient buttermilk --top 10 --agent
    
  • dietary — JSON-LD のキーワードと材料名のパターンを使って、キャッシュ済みレシピをグルテンフリー/ビーガン/低炭水化物で絞り込みます。

    食事制限が絶対条件で、サイトの食事カテゴリーページに表示される以上のレシピを探したい場合に使用します。

    allrecipes-pp-cli dietary --type gluten-free --top 20 --agent
    
ウェブサイトを上回るランキング
  • top-rated — ベイズ平滑化した評価でレシピをランク付けします。レビューが1件だけの5つ星のノイズより、人気が実証されたレシピを優先します。

    エージェントが新しくアップロードされた5つ星の外れ値ではなく、実績のあるレシピを探している場合は、通常の検索よりこちらを選んでください。

    allrecipes-pp-cli top-rated brownies --smooth-c 200 --limit 10 --agent
    
  • quick — 厳格な時間制限に収まる、評価の高いレシピを検索します。Allrecipes の UI では時間制限を指定できませんが、ローカルキャッシュなら可能です。

    ユーザーの条件が料理の種類ではなく所要時間の場合、「25分で作れる、本当においしい料理は?」といった検索に使用します。

    allrecipes-pp-cli quick --max-minutes 30 --query chicken --agent
    
エージェント向けの連携機能
  • cookbook — 評価の高いカテゴリーのレシピを、目次、材料、手順を含む1つの Markdown レシピ集にまとめます。

    ギフトや献立セットなど、厳選されたレシピ集を求められた場合、1つのコマンドで作成できます。

    allrecipes-pp-cli cookbook --category italian --top 20 --output italian-cookbook.md
    
  • grocery-list — 複数のレシピの材料をまとめ、重複を除いたエージェントが読み取りやすい買い物リストを作成します。

    献立作成の最後に使用すれば、材料リストを何度もスクロールする手間を省けます。

    allrecipes-pp-cli grocery-list https://www.allrecipes.com/recipe/9599/quick-and-easy-brownies/ https://www.allrecipes.com/recipe/16354/easy-meatloaf/ --agent
    
到達性の緩和
  • doctor — Cloudflare の「Just a moment...」インタースティシャルをレスポンスボディの検査によって特定し、その後 browser-chrome トランスポートを提案するヘルスチェックです。

    ボット検出によって CLI が壊れた場合、エージェントは一般的なタイムアウトではなく、具体的で実行可能なエラーを取得できます。

    allrecipes-pp-cli doctor
    

HTTP トランスポート

この CLI は、ブラウザー向けエンドポイントに対して HTTP/3 上の Chrome 互換 HTTP トランスポートを使用します。通常の API 呼び出しに常駐ブラウザープロセスを必要としません。

コマンドリファレンス

recipes — Schema.org Recipe JSON-LD マークアップを含む公開 Allrecipes レシピページ

  • allrecipes-pp-cli recipes get — ID + スラッグでレシピを取得し、解析済みの JSON-LD Recipe を返します。`auth login... による Cloudflare クリアランスクッキーが必要です。
  • allrecipes-pp-cli recipes search — クエリに一致するレシピを Allrecipes で検索します(Cloudflare クリアランスは不要)。

手書きコマンド

  • allrecipes-pp-cli recipe <url-or-id> — URL または ID で単一のレシピを取得してレンダリングします
  • allrecipes-pp-cli search <query> — Allrecipes でレシピを検索します(ライブ + キャッシュ)
  • allrecipes-pp-cli top-rated <query> — 検索し、ベイズ平滑化された評価でランク付けします(事前分布 4.0、デフォルト C=200)
  • allrecipes-pp-cli quick — 厳密な時間上限に収まり、かつ高評価のキャッシュ内のレシピ
  • allrecipes-pp-cli pantry — パントリーファイルとの重なりでキャッシュ内のレシピをスコアリングします
  • allrecipes-pp-cli with-ingredient <ingredient> — 逆引きインデックス: 指定した食材を使用するキャッシュ内のレシピ
  • allrecipes-pp-cli dietary — グルテンフリー / ヴィーガン / 低炭水化物でキャッシュ内のレシピをフィルタリングします(厳密な食材ブロックリスト)
  • allrecipes-pp-cli cookbook — 高評価のカテゴリまたは料理を markdown クックブックにコンパイルします
  • allrecipes-pp-cli grocery-list <urls...> — 多数のレシピの食材を集約して重複排除した買い物リストを作成します(指定時は --pantry-file を差し引きます)
  • allrecipes-pp-cli scale <url> — レシピを目標の serving 数に再スケーリングします
  • allrecipes-pp-cli nutrition <url> — レシピの栄養素を表示します(1 人前あたりおよび合計)
  • allrecipes-pp-cli ingredients <url> — レシピの解析済み食材を表示します
  • allrecipes-pp-cli instructions <url> — レシピの番号付き手順を表示します
  • allrecipes-pp-cli reviews <url> — レシピのレビュー概要を表示します
  • allrecipes-pp-cli category <slug> — カテゴリ内のレシピを閲覧します(例: dessert、weeknight)
  • allrecipes-pp-cli cuisine <slug> — 料理別にレシピを閲覧します
  • allrecipes-pp-cli ingredient <name> — 主要な食材を使用するレシピを閲覧します
  • allrecipes-pp-cli occasion <slug> — 機会別にレシピを閲覧します(holiday、weeknight、party)
  • allrecipes-pp-cli article <url> — Allrecipes の記事ページの本文を抽出します
  • allrecipes-pp-cli gallery <url> — Allrecipes のまとめギャラリーからレシピリンクを抽出します
  • allrecipes-pp-cli cook <slug> — 料理人のプロフィールとそのレシピを表示します
  • allrecipes-pp-cli export <url> — レシピを markdown としてエクスポートします
  • allrecipes-pp-cli sync — 古くなったキャッシュ内のレシピを更新します
  • allrecipes-pp-cli cache — ローカルレシピキャッシュを検査、一覧表示、またはクリアします
  • allrecipes-pp-cli doctor — 接続性、Cloudflare クリアランスの状態、キャッシュの健全性を診断します

フレッシュネス契約

この印刷された CLI は、登録済みのストアベースの読み取りコマンドパスに対してのみ、限定的なフレッシュネスを担います。--data-source auto モードでは、これらのパスは sync_state を確認し、ローカルデータを読み取る前に限定的なリフレッシュを実行することがあります。--data-source local は決してリフレッシュしません。--data-source live は API を読み取り、ローカルストアを変更しません。ソースの選択を変えずにフレッシュネスフックをスキップするには ALLRECIPES_NO_AUTO_REFRESH=1 を設定します。

JSON 出力が生成された provenance エンベロープを使用する場合、フレッシュネスメタデータは meta.freshness に現れます。これは対象のコマンドパスに対する現在のキャッシュのフレッシュネスとして扱い、完全な履歴バックフィルや API 固有の拡充を保証するものではありません。

適切なコマンドを見つける

何をしたいかは分かっていても、どのコマンドを使えばよいか分からない場合は、CLI に直接尋ねてください。

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

which は、自然言語での機能に関する問い合わせを、この CLI の厳選された機能インデックスから最適なコマンドに対応付けます。終了コード 0 は少なくとも 1 件一致したことを示し、終了コード 2 は確信度の高い一致がなかったことを示します。その場合は --help を使うか、より絞り込んだ問い合わせをしてください。

レシピ

評価項目だけに絞った、トップ 5 のブラウニー
allrecipes-pp-cli top-rated brownies --limit 5 --agent --select rank,title,url,rating,reviewCount,madeItCount

ベイズ平滑化により、レビュー 1 件で星 5 つの外れ値を抑えます。--select で、エージェントが実際に使うフィールドだけにペイロードを絞り込みます。

平日の夕食 3 品と買い物リスト 1 件を計画する
allrecipes-pp-cli quick --max-minutes 30 --query chicken --limit 3 --agent | xargs allrecipes-pp-cli grocery-list --pantry-file ~/pantry.txt --agent

2 つのコマンドを組み合わせます。平日の手早い料理の選定結果を、パントリーの内容を考慮した買い物リストの集計にそのまま渡します。

自分用のイタリア料理レシピ集を作成する
allrecipes-pp-cli cookbook --category italian --top 20 --output ~/italian-cookbook.md

ベイズ評価による上位 20 件を取得し、目次付きの Markdown レシピ集を書き出します。

パントリーにある食材で料理する
allrecipes-pp-cli pantry --pantry-file ~/pantry.txt --max-missing 2 --agent --select title,url,have,missing

ローカルインデックスが、食材の重複度に基づいてキャッシュ済みレシピをランク付けします。--max-missing 2 により、追加で必要な食材が最大 2 つのレシピに絞られます。

グルテンフリーを厳格に指定してフィールドを絞り込む
allrecipes-pp-cli dietary --type gluten-free --top 20 --agent --select title,url,rating,recipeIngredient

厳格な食材ブロックリストと JSON-LD タグフィルターを組み合わせます。--select で、エージェントが検証するタイトル、URL、評価、食材だけを取得します。

認証の設定

閲覧と検索には認証は必要ありません。レシピの詳細ページには Cloudflare のクリアランス Cookie が必要です。allrecipes-pp-cli auth login --chrome を一度実行して、ブラウザーから取得してください。これはボット保護のクリアランスであり、Allrecipes アカウントへのログインではありません。ユーザー名、パスワード、ユーザーに紐付いたトークンは必要ありません。この CLI は、実際の Allrecipes アカウントが必要な保存済みレシピ、食事プラン、プロフィールの各機能には対応していません。

allrecipes-pp-cli doctor を実行して、設定を確認してください。

エージェントモード

任意のコマンドに --agent を追加してください。次のオプションが有効になります:--json --compact --no-input --no-color --yes。

  • パイプ対応 — stdout に JSON を出力し、エラーは stderr に出力します

  • フィルター可能 — --select でフィールドの一部を保持します。ドット区切りのパスはネストされた構造をたどり、配列は要素ごとに走査します。詳細な API でコンテキストを小さく保つために重要です。

    allrecipes-pp-cli recipes get mock-value mock-value --agent --select id,name,status
    
  • プレビュー可能 — --dry-run で、送信せずにリクエストを表示します

  • オフライン対応 — sync/search コマンドは、利用可能な場合にローカルの SQLite ストアを使用できます

  • 非対話型 — プロンプトは表示されず、すべての入力はフラグで指定します

  • 読み取り専用 — 作成、更新、削除、公開、コメント、賛成票、招待、注文、送信など、データを変更するリクエストにはこの CLI を使用しないでください

レスポンスのエンベロープ

ローカルストアまたは API からデータを読み取るコマンドは、出力を出所情報のエンベロープでラップします。

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

データには .results を、データがライブかローカルかの確認には .meta.source を解析してください。人間が読める N results (live) の概要は、stdout がターミナルの場合に限り stderr に出力されます。パイプやエージェントで使用する場合、stdout には純粋な JSON が出力されます。

エージェントからのフィードバック

あなた(またはエージェント)がこの CLI に気になる点を見つけたら、記録してください。

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

エントリは ~/.allrecipes-pp-cli/feedback.jsonl にローカル保存されます。ALLRECIPES_FEEDBACK_ENDPOINT が設定され、かつ --send が渡されるか ALLRECIPES_FEEDBACK_AUTO_SEND=true が設定されている場合を除き、POST されることはありません。デフォルトではローカルにのみ保存されます。

バグ報告ではなく、意外だったことを書いてください。短く、具体的に、1 行で記録してください。積み重ねる価値があるのはその部分です。

出力の配信

すべてのコマンドで --deliver <sink> を指定できます。出力は指定したシンクに送られ、stdout にも出力するか、stdout への出力に代えて送信できます。これにより、エージェントはコマンド結果を手作業でパイプ処理せずに振り分けられます。対応しているシンクは 3 種類です。

シンク動作
stdoutデフォルト。stdout のみに出力
file:<path>出力を <path> にアトミックに書き込みます(tmp + rename)
webhook:<url>出力本文を URL に POST します(--compact の場合は application/json または application/x-ndjson)

不明なスキームは、対応しているスキームの一覧を示す構造化エラーとともに拒否されます。Webhook の失敗時はゼロ以外の値を返し、URL と HTTP ステータスを stderr に記録します。

名前付きプロファイル

プロファイルは、保存されたフラグ値のセットで、複数の呼び出しで再利用できます。スケジュールされたエージェントが毎回同じ設定で同じコマンドを実行する場合に使用します。これは HeyGen の「Beacon」パターンです。

allrecipes-pp-cli profile save briefing --json
allrecipes-pp-cli --profile briefing recipes get mock-value mock-value
allrecipes-pp-cli profile list --json
allrecipes-pp-cli profile show briefing
allrecipes-pp-cli profile delete briefing --yes

明示的に指定したフラグは常にプロファイル値より優先され、プロファイル値はデフォルト値より優先されます。agent-context は利用可能なすべてのプロファイルを available_profiles に一覧表示するため、実行時に情報を調べるエージェントがプロファイルを検出できます。

終了コード

コード意味
0成功
2使用方法のエラー(引数が正しくありません)
3リソースが見つかりません
4認証が必要です
5API エラー(上流の問題)
7レート制限中(待ってから再試行してください)
10設定エラー

引数の解析

$ARGUMENTS を解析します:

  1. 空、help、または --help → allrecipes-pp-cli --help の出力を表示
  2. install で始まる → mcp で終わる → MCP のインストール。それ以外 → 上記の前提条件を参照
  3. その他すべて → 直接使用(--agent を付けて CLI コマンドとして実行)

MCP サーバーのインストール

  1. MCP サーバーをインストールします:
    go install github.com/mvanhorn/printing-press-library/library/food-and-dining/allrecipes/cmd/allrecipes-pp-mcp@latest
    
  2. Claude Code に登録します:
    claude mcp add allrecipes-pp-mcp -- allrecipes-pp-mcp
    
  3. 確認します:claude mcp list

直接使用

  1. インストール済みか確認します:which allrecipes-pp-cli 見つからない場合は、インストールを案内します(このスキルの冒頭にある前提条件を参照)。
  2. ユーザーのクエリに最適なコマンドを、上記の独自の機能とコマンドリファレンスから選びます。
  3. --agent フラグを付けて実行します:
    allrecipes-pp-cli <command> [subcommand] [args] --agent
    
  4. あいまいな場合は、サブコマンドのヘルプを確認します:allrecipes-pp-cli <command> --help。

コメント