mcpField
P
pp-doordash

pp-doordash

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

pp-doordash について

pp-doordashは、Doordash Printing Press CLIを操作するスキルです。店舗やメニューの検索、商品のカスタマイズ内容、最近の注文の確認、ガード付きのカート操作に対応し、読み取り専用の処理と変更操作を分けています。

主な機能

  1. 01DoorDashの店舗検索
  2. 02正規化されたメニューの取得
  3. 03商品オプションと追加項目の確認
  4. 04最近の注文概要の確認
  5. 05ガード付きのカート確認と変更
  6. 06JSON出力とフィールド絞り込み

活用シーン

  1. 01料理ジャンルを扱う店舗の検索
  2. 02注文前の商品比較
  3. 03商品の必須オプションの確認
  4. 04再注文に向けた過去の注文確認

MCP 対応

MCPサーバーのバイナリ doordash-pp-mcp をインストールし、`claude mcp add` などでMCPクライアントに登録できます。このスキル自体はCLIを操作します。

インストール

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

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

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

詳細

Doordash — Printing Press CLI

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

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

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

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

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

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

独自の機能

これらの機能は、この API のほかのツールでは利用できません。

読み取り専用のDoorDashワークフロー
  • search — カートや注文の状態を変更せず、DoorDash のコンシューマー向け GraphQL オートコンプリートフィードを通じて店舗を検索します。

    アカウントの安全性を保ちながら、食事や販売店を調べるのに便利です。

    doordash-pp-cli search "thai" --agent
    
  • menu — カートを変更せずに、DoorDash の店舗メニューを正規化された形式で取得します。

    カートを変更する前に、エージェントがメニューの選択肢を比較できます。

    doordash-pp-cli menu --store-id STORE_ID --agent
    
  • item-options — カートに何かを追加する前に、商品のオプショングループとネストされた追加項目を確認します。

    カートの変更を提案する前に、エージェントが必須のオプションを検討できます。

    doordash-pp-cli item-options --store-id STORE_ID --item-id ITEM_ID --agent
    
  • recent-orders — 新しい注文を行わずに、DoorDash の最近の注文の概要を読み取ります。

    チェックアウトのリスクを避けながら、再注文や好みの分析に役立ちます。

    doordash-pp-cli recent-orders --limit 3 --agent
    
保護された変更境界
  • cart — カートの確認と変更を、検索/メニューの読み取りに混在させず、独立した名前付きの保護されたコマンド群として提供します。

    コマンドの境界を明確にすることで、購入フローに意図しない副作用が生じるのを防ぎます。

    doordash-pp-cli cart --help
    

HTTP トランスポート

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

コマンドリファレンス

graphql — DoorDash の Web GraphQL 操作です。すべての操作で /graphql/<operation>?operation=<operation> に JSON を POST します。ミューテーションは、実行環境で使用する前にガード付きのドメインコマンドでラップする必要があります。

  • doordash-pp-cli graphql create-add-cart-item — ミューテーション:DoorDash のカートに商品を追加します。ドメインコマンドでは必ず厳格にゲートしてください。
  • doordash-pp-cli graphql create-autocomplete-facet-feed — フリーテキストのクエリで DoorDash のオートコンプリート/ストアのファセットを検索します。
  • doordash-pp-cli graphql create-checkout — 注文を確定せずに、カートのチェックアウトデータを取得します。
  • doordash-pp-cli graphql create-consumer-order-cart — 現在の購入者の注文カートを取得します。
  • doordash-pp-cli graphql create-convenience-search-query — DoorDash のストア内で、食料品/コンビニ商品のカタログを検索します。
  • doordash-pp-cli graphql create-create-order-from-cart — ミューテーション:カートから DoorDash の注文を送信します。注文を実行するには、明示的なゲートが必須です。
  • doordash-pp-cli graphql create-delete-cart — ミューテーション:DoorDash のカートを削除します。ドメインコマンドでは必ず厳格にゲートしてください。
  • doordash-pp-cli graphql create-detailed-cart-items — チェックアウト/カートの確認用に、カート商品の詳細データを取得します。
  • doordash-pp-cli graphql create-get-has-new-notifications — 通知の件数/ステータスを取得します。
  • doordash-pp-cli graphql create-get-open-carts-count — セッション内のオープンなカートの件数を取得します。
  • doordash-pp-cli graphql create-item-page — ストア商品の詳細とカスタマイズオプションを取得します。
  • doordash-pp-cli graphql create-list-carts — 認証済みセッションから参照できる、アクティブまたは最近の DoorDash カートを一覧表示します。
  • doordash-pp-cli graphql create-poll-order-payment-status — 送信済みの注文の支払い状況を確認します。
  • doordash-pp-cli graphql create-promo-sticky-footer — カート/ストアのコンテキストにおけるプロモーションのスティッキーフッターデータを取得します。
  • doordash-pp-cli graphql create-remove-cart-item-v2 — ミューテーション:DoorDash のカートから商品を削除します。ドメインコマンドでは必ず厳格にゲートしてください。
  • doordash-pp-cli graphql create-storepage-feed — DoorDash のストア ID に対応するストアページ/メニューのフィードを取得します。
  • doordash-pp-cli graphql create-total-fee-tally — カートの手数料/税金/合計の見積もりを取得します。
  • doordash-pp-cli graphql create-update-cart-item-v2 — ミューテーション:カート商品の数量/オプションを更新します。ドメインコマンドでは必ず厳格にゲートしてください。
  • doordash-pp-cli graphql create-validate-consumer-address-with-address-link-id — DoorDash の住所リンク ID を検証します。
適切なコマンドを見つける

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

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

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

認証の設定

この CLI では、DoorDash のブラウザーセッションの Cookie ヘッダーと、任意の CSRF トークンを使用します。承認されたプライベートな手順で Cookie ヘッダーをエクスポートし、シークレットを表示せずにインポートしてください。

doordash-pp-cli auth login --cookie-file - --csrf-token <token> --json < /secure/path/cookie-header.txt

実際の Cookie をシェル引数として渡さないでください。stdin またはパーミッションを 0600 に設定したファイルを使うほうが安全です。doordash-pp-cli doctor --json を実行して設定を確認してください。

エージェントモード

任意のコマンドに --agent を追加します。次のオプションに展開されます:--json --compact --no-input --no-color --yes。

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

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

    doordash-pp-cli graphql create-add-cart-item --operation-name example-resource --agent --select id,name,status
    
  • プレビュー可能 — --dry-run で、リクエストを送信せずに内容を表示します

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

  • 明示的な再試行 — 既存の作成済み項目を成功として扱う場合に限り、--idempotent を使用します

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

あなた(またはエージェント)がこの CLI に違和感を覚えたときは、記録してください。

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

記録はローカルの ~/.doordash-pp-cli/feedback.jsonl に保存されます。DOORDASH_FEEDBACK_ENDPOINT が設定され、さらに --send が渡されているか、DOORDASH_FEEDBACK_AUTO_SEND=true が設定されていない限り、POST されることはありません。デフォルトの動作はローカルのみです。

バグ報告ではなく、何に「驚いたか」を書いてください。短く、具体的に、1 行で記録します。それが積み重なっていきます。

出力の配信

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

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

不明なスキームは、サポート対象の一覧を示す構造化エラーとともに拒否されます。Webhook の失敗時は 0 以外のコードを返し、URL と HTTP ステータスを標準エラー出力に記録します。

名前付きプロファイル

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

doordash-pp-cli profile save briefing --json
doordash-pp-cli --profile briefing graphql create-add-cart-item --operation-name example-resource
doordash-pp-cli profile list --json
doordash-pp-cli profile show briefing
doordash-pp-cli profile delete briefing --yes

明示的に指定したフラグは常にプロファイルの値より優先され、プロファイルの値はデフォルトより優先されます。agent-context は、実行時に内容を確認するエージェントがプロファイルを見つけられるよう、available_profiles の下にすべてのプロファイルを一覧表示します。

終了コード

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

引数の解析

$ARGUMENTS を解析します。

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

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

この CLI の公開ライブラリー登録項目またはビルド済みリリースから MCP バイナリをインストールし、登録します。

claude mcp add doordash-pp-mcp -- doordash-pp-mcp

確認方法:claude mcp list

直接使用

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

コメント