mcpField
P
pp-dominos

pp-dominos

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

pp-dominos について

pp-dominosは、dominos-pp-cliでメニューの確認、米国での注文の価格計算と確定、配達追跡を行うスキルです。注文を自動化するエージェントやパワーユーザー向けで、テンプレートや特典比較、カナダのチェックアウト準備確認も備えています。

主な機能

  1. 01メニューの閲覧とカート管理
  2. 02米国注文の検証、価格計算、確定
  3. 03注文テンプレートの保存と再利用
  4. 04店舗価格と適用可能な特典の比較
  5. 05配達段階と待ち時間の追跡
  6. 06カナダのチェックアウト準備状況のプレビュー

活用シーン

  1. 01テンプレートから保存済み注文を再現
  2. 02近隣店舗で同じカートの価格を比較
  3. 03最安の適用可能な特典の組み合わせを探す
  4. 04配達完了まで状況を追跡

インストール

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

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

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

詳細

Domino's — Printing Press CLI

前提条件:CLI のインストール

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

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

npx によるインストールに失敗した場合(Node がない、オフラインなど)は、Go を直接インストールしてください(Go 1.26.6 以降が必要です)。インストール先は $GOPATH/bin(既定では $HOME/go/bin)なので、そのディレクトリを $PATH に追加してください。

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

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

この CLI の使用場面

エージェントやパワーユーザーが、ブラウザーを使わずに Domino's を操作する必要がある場合に、この CLI を使用してください。米国での注文の作成、価格確認、注文、カナダでのチェックアウト準備状況の確認、配達の追跡、店舗間の価格比較、お得な商品の選択最適化、保存済み注文テンプレートの再生に利用できます。自動化にも最適です。すべてのコマンドで --json、--dry-run、--agent、--select と構造化された終了コードを使用できます。米国市場が既定です。カナダ向けの Power API 呼び出しには --market ca を使用してください。カナダでは、店舗、メニュー、アカウントの注文履歴、検証、価格、保存済みカードの件数、読み取り専用のチェックアウト準備状況プレビューに対応しています。米国の GraphQL ロイヤルティ/カート BFF と、カナダのオンラインカードトークン化は、カナダ向けの経路ではサポートされていません。

独自の機能

これらの機能は、この API を扱う他のツールでは利用できません。

積み重なるローカル状態
  • template save — いつもの注文(店舗、住所、商品、トッピング、支払い参照)を保存し、1 つのコマンドで再生します。

    カートを最初から作り直さずに、確実に成功する既知の注文を 1 コマンドで繰り返したい場合に利用してください。

    dominos-pp-cli template save friday-night --from-cart && dominos-pp-cli template order friday-night --eta-watch --json
    
  • reorder — 今日のメニューに合わせて前回の注文を再生します。メニューから外れた商品は FTS で代替し、注文を続行できるようにします。

    保存済み注文のような再生を、Domino's のメニュー変更後も機能させる必要がある場合に利用してください。代替によって「この商品は現在ご利用いただけません」という失敗を避けられます。

    dominos-pp-cli reorder --last --substitute-unavailable --dry-run --json
    
  • deals best — カートを利用可能なすべてのお得な商品(ロイヤルティ会員限定を含む)と照合し、最も安い組み合わせを報告します。

    ユーザーが価格を重視する場合は、注文前に利用してください。このフラグは、ウェブサイトには表示されない 2~3 件のお得な商品を組み合わせた候補も列挙します。

    dominos-pp-cli deals best --agent
    
  • analytics — 同期済みの注文履歴を集計し、支出総額、商品の購入頻度、お気に入りの店舗、平均注文額を表示します。

    「今四半期にピザにいくら使ったか」や「よく注文する商品トップ 3 は何か」といった質問に利用してください。すべてローカルの SQLite 注文履歴を使って処理します。

    dominos-pp-cli analytics --period 90d --group-by item --agent
    
情報源をまたいだ分析
  • compare-prices — 近隣のすべての店舗で同じカートの価格を算出し、配達料を含む合計額で順位付けします。

    近隣店舗間の待ち時間と価格のトレードオフが重要な場合に利用してください(配達料と待ち時間によって、メニューが安い店舗を選ぶメリットが相殺されることがあります)。

    dominos-pp-cli compare-prices --street "421 N 63rd St" --city "Seattle WA" --items S_PIZPH,S_LAVA --agent
    
  • stores wait — 半径内の各店舗から CartEtaMinutes を取得し、到着予定時間で順位付けします。これは、他のすべてのラッパーが見落としている独自の GraphQL BFF 操作です。

    混雑時間帯に、店舗への電話ではなく正確な待ち時間の見積もりに基づいて配達を判断したい場合に利用してください。

    dominos-pp-cli stores wait --street "421 N 63rd St" --city "Seattle WA" --agent
    
  • deals eligible — 宣伝されているお得な商品のうち、現在のカートに実際に適用できるものを一覧表示し、適用されないものについてはその理由を説明します。

    クーポンを探していて、「お得な商品」が適用されるかどうかだけでなく、適用条件を満たさない理由も知りたい場合に利用してください。

    dominos-pp-cli deals eligible --agent
    
エージェント向けのネイティブな仕組み
  • track — Domino's の注文が届くまで、トラッカーの各段階(注文済み → 準備中 → 焼成中 → 品質確認 → 配達に出発 → 配達完了)をストリーミングします。

    注文済みの注文がいつ段階を変えるのか、ブラウザーのタブを開いたままにせず正確に知りたいエージェントやユーザーに適しています。

    dominos-pp-cli track --phone 2065551234 --watch --interval 30s --agent
    
  • order-quick — テンプレートの再生、検証、価格計算、(--confirm を付けて)注文、トラッカーの追跡を、最終的な JSON エンベロープを出力する 1 つのコマンドで実行します。

    エージェントや自動化によって注文を行い、{order_id, eta_min, total, tracker_phone} 形式の構造化された出力を受け取って正常に終了したい場合に適しています。

    dominos-pp-cli order-quick --template friday-night --confirm --eta-watch --json
    

HTTP トランスポート

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

検出シグナル

この CLI は、ブラウザーで観測されたトラフィックのコンテキストを使用して生成されています。

  • キャプチャ範囲:全ネットワークエントリー 0 件のうち、API エントリー 0 件
  • 認証シグナル:bearer_token

コマンドリファレンス

customer — 顧客プロフィール、注文履歴、ロイヤルティ(auth login が必要)

checkout — 注文せずにチェックアウトの準備状況を確認

  • dominos-pp-cli customer loyalty — 顧客のロイヤルティポイント残高、ティアのステータス、保留中のポイント。
  • dominos-pp-cli customer orders — 顧客の最近の注文を一覧表示します。Address、Products、Amounts、Coupons、Status などを含む Order オブジェクト全体を返します...

graphql — GraphQL BFF 操作(スニッフィングで検出)

  • dominos-pp-cli graphql categories — 店舗のメニューカテゴリーを取得
  • dominos-pp-cli graphql create_cart — 新しいショッピングカートを作成
  • dominos-pp-cli graphql customer — 保存済みの住所と設定を含む、認証済み顧客のプロフィールを取得
  • dominos-pp-cli graphql deals_list — 店舗で利用可能なセールとクーポンを取得
  • dominos-pp-cli graphql get_cart — 商品と価格を含む、ID で指定したカートを取得
  • dominos-pp-cli graphql loyalty_deals — 会員限定のセールを取得
  • dominos-pp-cli graphql loyalty_points — ロイヤルティポイントの残高とステータスを取得
  • dominos-pp-cli graphql loyalty_rewards — ティア別に利用可能なロイヤルティ特典を取得
  • dominos-pp-cli graphql products — カテゴリー内の商品とカスタマイズオプションを取得
  • dominos-pp-cli graphql quick_add_product — コードを指定して商品をカートにすばやく追加
  • dominos-pp-cli graphql summary_charges — 税金と配達料を含むカートの合計金額を取得

menu — 店舗のメニューを閲覧し、商品を検索

  • dominos-pp-cli menu <storeID> — カテゴリー、商品、バリエーション、トッピングを含む店舗の全メニューを取得

orders — 注文の作成、検証、価格計算、確定

  • dominos-pp-cli orders place — 配達または持ち帰りの注文を確定
  • dominos-pp-cli orders price — 税金と手数料を含む注文の価格を取得
  • dominos-pp-cli orders validate — 注文を確定する前に検証

stores — Domino's の店舗を検索し、情報を取得

  • dominos-pp-cli stores find — 通り名と市区町村を指定して、近くの Domino's 店舗を検索
  • dominos-pp-cli stores get — 営業時間、対応サービス、待ち時間など、店舗の詳細情報を取得

tracking — 進行中の注文を追跡

  • dominos-pp-cli tracking — 電話番号で注文を追跡
適切なコマンドを見つける

実行したい内容は分かっていても、どのコマンドを使えばよいか分からない場合は、CLI に直接問い合わせてください。

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

which は自然言語による機能の問い合わせを、この CLI の厳選された機能インデックス内で最も適したコマンドに解決します。終了コード 0 は少なくとも 1 件一致したことを示し、終了コード 2 は確度の高い一致がないことを示します。その場合は --help に切り替えるか、より範囲を絞った問い合わせを使用してください。

レシピ

実際の注文の一連の流れ:最寄りの店舗 → メニュー → カート → セール
# 1. Find closest store (no auth needed)
dominos-pp-cli stores find --street "709 19th Ave" --city "Seattle WA 98122" --json

# 2. List all coupons available at that store (no auth needed; 58 coupons)
dominos-pp-cli deals list --store-id 7144 --json

# 3. Build a cart (local, no API call)
dominos-pp-cli cart new --store 7144 --service Delivery --address "709 19th Ave, Seattle WA 98122"
dominos-pp-cli cart add 12THIN --qty 1     # Medium 12" Thin Pizza
dominos-pp-cli cart add F_PBITES --qty 1   # Parmesan Bread Bites

# 4. See which coupons auto-apply (real auto-couponing-service call)
dominos-pp-cli deals best --json
dominos-pp-cli deals eligible --json

各ステップでは実際の Domino's エンドポイントに接続し、実データを返します。セールの呼び出しでは、指定したカートの内容に適用される店舗クーポンが正しく特定されます。

金曜の夜に、手間なく注文を再注文
dominos-pp-cli order-quick --template friday-night --confirm --eta-watch --json

保存済みのテンプレートを再生し、検証、価格確認、注文(--confirm を指定)を行い、トラッカーを追跡します。order_id、eta_min、total を含む最終的な JSON エンベロープを出力します。friday-night という名前のテンプレートが必要です。template save を参照してください。--confirm を指定しない場合は、ドライランのプレビューを返します(注文は行われません)。

認証済みコマンド(auth login の実行後)
# Order history
dominos-pp-cli customer orders --limit 5 --json

# Loyalty points balance
dominos-pp-cli customer loyalty --json
カナダのアカウント履歴とチェックアウトのプレビュー
# One-time interactive sign-in; market is persisted with the session.
dominos-pp-cli auth login --market ca

# Direct API calls after login; no browser navigation is required.
dominos-pp-cli customer orders --market ca --limit 5 --json
dominos-pp-cli customer cards --market ca --json
dominos-pp-cli checkout preview --market ca --last --json

checkout preview は、以前の支払い ID と注文 ID を削除し、最新の注文を検証して価格を再計算したうえで、保存済みカードの件数と許可リストに登録された店舗機能のみを返します。また、/power/place-order へのコードパスはありません。カナダの支払いおよびサービス方法の契約が実装されるまで、orders place --market ca と、確認済みのクイック注文およびテンプレート注文は安全側に失敗します。取引は Domino's Canada で完了してください。

ブラウザーログインでは、顧客 ID が自動的に取得されます。DOMINOS_TOKEN、auth login --paste、または auth login --stdin を使用する場合は、対応する顧客 ID を明示的に渡してください:checkout preview <customerID> --market ca --last --json。

顧客 ID は、サインインに使用する長い Base64 形式の識別子です。auth login が完了すると、ベアラートークンは Dominos によって期限切れになるまで(約 1 時間)、~/.config/dominos-pp-cli/config.toml に保存されます。

今夜の注文で最も安い店舗を探す(エージェント向け。select で出力を絞り込み)
dominos-pp-cli compare-prices --street "421 N 63rd St" --city "Seattle WA" --items S_PIZPH,S_LAVA --agent --select results[].store_id,results[].total_cents

近くの店舗を調査し、エージェントに必要な比較項目のみを返します。

最高の組み合わせ割引を探す
dominos-pp-cli deals best --agent

利用可能なすべての割引を、2~3 件の割引を組み合わせたものも含めて、現在のカートで試し、最も安い組み合わせと割引コードを報告します。

配達状況をリアルタイムで確認する
dominos-pp-cli track --phone 2065551234 --watch --interval 30s --agent

注文が届くまで、ステータスの変化(placed → prep → bake → qc → out → delivered)を 30 秒ごとにストリーミングします。配達完了時に終了コード 0 で終了します。

この割引がカートに適用されないのはなぜですか?
dominos-pp-cli deals eligible --agent

現在のカートに対する割引を一覧表示し、それぞれの割引条件に照らして適用可否を説明します。

認証の設定

ほとんどのコマンドは認証なしで使えます。店舗検索、メニューの閲覧、カートの作成、匿名での注文、電話番号による追跡は、すべて認証なしで利用できます。ロイヤルティ特典、会員限定の割引、注文履歴を利用するには、dominos-pp-cli auth login を実行します。dominos.com のサインイン画面を開いた Chrome ウィンドウが起動し、通常のログインが完了するまで待機します(CAPTCHA と 2FA に対応)。その後、sessionStorage からベアラートークンを読み取り、~/.config/dominos-pp-cli/config.toml に保存します。トークンは Domino's によって期限切れになるまで(約 1 時間)有効です。auth status で確認し、消去するには auth logout を実行してください。

設定を確認するには、dominos-pp-cli doctor を実行してください。

エージェントモード

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

  • パイプ可能 — stdout に JSON、stderr にエラーを出力します

  • フィルター可能 — --select でフィールドの一部を選択できます。ドット区切りのパスでネストした構造をたどり、配列では各要素を走査します。冗長な API からのコンテキストを小さく保つうえで重要です:

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

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

  • 明示的な再試行 — すでに存在するリソースの作成を成功として扱う場合に限り、--idempotent を使用してください

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

この CLI に気になる点があった場合は、あなた自身またはエージェントが気づいた内容を記録してください:

dominos-pp-cli feedback "menu sync skipped nutrition fields for half the items"
dominos-pp-cli feedback --stdin < notes.txt
dominos-pp-cli feedback list --json --limit 10

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

バグ報告ではなく、意外だったことを書いてください。短く、具体的に、1 行で。それが積み重なっていく内容です。

出力の配信

すべてのコマンドで --deliver <sink> を指定できます。出力は、標準出力に加えて(または標準出力の代わりに)指定したシンクに送られるため、エージェントはコマンド結果を手動でパイプせずに振り分けられます。対応しているシンクは3種類です。

シンク効果
stdout既定値。標準出力のみに書き込みます
file:<path>出力を <path> にアトミックに書き込みます(一時ファイル+リネーム)
webhook:<url>出力本文を URL に POST します(--compact の場合は application/json または application/x-ndjson)

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

名前付きプロファイル

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

dominos-pp-cli profile save briefing --json
dominos-pp-cli --profile briefing stores get mock-value
dominos-pp-cli profile list --json
dominos-pp-cli profile show briefing
dominos-pp-cli profile delete briefing --yes

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

終了コード

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

引数の解析

$ARGUMENTS を解析します。

  1. 空、help、または --help → dominos-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/dominos/cmd/dominos-pp-mcp@latest
    
  2. Claude Code に登録します。
    claude mcp add dominos-pp-mcp -- dominos-pp-mcp
    
  3. 確認します:claude mcp list

直接使用

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

コメント