hujjun/mcd-saver-strategist

麦当劳省钱点餐助手(麦门精算师)|麦当劳优惠券组合优化 Skill:拉取麦当劳菜单与全部可用优惠券,算出最省的点餐组合,巨无霸套餐 ¥47 → ¥21.9(省 53%)。McDonalds MCP(麦当劳 MCP)coupon optimizer · McDonalds China MCP Server · Agent Skill for WorkBuddy · 麦当劳程序员创意开发大赛参赛作品

概要

mcd-saver-strategist は、マクドナルド中国向けの仮想「価格計算機」として機能する WorkBuddy スキル です。ユーザーが 「ビッグマックセットが欲しい、一番安くするにはどうすればいい?」 のような質問をすると、このスキルは:

  1. マクドナルド中国 MCP API を呼び出して、現在のメニュー、価格、栄養データ、およびユーザーのアカウントで利用可能なすべてのクーポンを取得します。
  2. そのデータを JSON リクエストに正規化します。
  3. 決定的な組み合わせオプティマイザー(scripts/optimizer.py)を実行し、MCP のスタッキングルール、予算、カロリー制限を尊重しながら、商品とクーポンのすべての合法的な組み合わせを列挙します。
  4. 最安値で準拠した上位 N 件の組み合わせ を返し、ユーザーが確認した場合は MCP を通じて注文を作成します。

これはコンテスト応募作品(マクドナルド・プログラマー・クリエイティブ開発コンテスト)であり、マクドナルド公式製品ではありません。


クイックインストール

# リポジトリをクローン
git clone https://github.com/hujjun/mcd-saver-strategist.git

# スキルを WorkBuddy スキルディレクトリにコピー
cp -r mcd-saver-strategist/skills/mcd-saver-strategist ~/.workbuddy/skills/

Windows ユーザーは %USERPROFILE%\.workbuddy\skills\ にコピーします。

また、MCP トークン が必要です(README の「申请麦当劳 MCP Token」セクションを参照)。提供されている mcp-config.example.json を使用して、WorkBuddy の 连接器 → 自定义连接器 → 配置 MCP で設定します。


使用方法

  • 会話中:「我想吃巨无霸套餐,怎么点最便宜」 のように言います。
  • エージェントはメニューと 4 方向クーポンプールを取得し、オプティマイザーを実行して、最も安い実現可能な組み合わせを返します(例:「1+1 随心配 ¥12.9 + 可乐 ¥9 = ¥21.90、¥25.10 節約」)。
  • 制約を追加できます:
    • budget=30 → 30 元未満の最適な食事を表示。
    • max_calories=800 → 低カロリーで安い組み合わせを返します。
    • delivery モード → 配達料を含め、店頭受け取り専用のクーポンを除外します。
  • 確認すると、スキルは MCP の calculate-price を呼び出して最終価格を検証し、次に create-order で注文します。

コマンドラインデモ(トークン不要)

リポジトリには小さなオフラインデータセットが含まれており、ローカルでオプティマイザーを試すことができます:

cd skills/mcd-saver-strategist/scripts
python optimizer.py                 # デフォルトの店舗内シナリオ
python optimizer.py --json          # JSON も出力
python optimizer.py --mode delivery --fee 9   # 配達料を含む
python optimizer.py --budget 25
python optimizer.py --max-calories 800
python selftest.py                  # 19 の組み込みテストを実行

技術的なハイライト

機能 詳細
決定的オプティマイザー 純 Python、標準ライブラリのみ。MCP のスタッキングルール(stackable:false は相互排他を意味)を尊重する剪定付きの網羅的検索。
外部依存ゼロ WorkBuddy のサンドボックスと静的 Web デモ(docs/index.html)で動作。
MCP 統合 メニュー、クーポン、栄養、価格検証、注文作成に MCP エンドポイントを使用。
シナリオ認識 クーポンには channel フィールド(pickup、delivery、any)があります。オプティマイザーは選択されたシナリオに基づいて自動的にフィルタリングし、必要に応じて配達料を追加します。
予算/カロリー制約 オプティマイザーがグローバルな最低価格を見つけながら尊重できる単純な線形制約。
セルフテストスイート selftest.py には、エッジケース(空のクーポンリスト、競合するクーポンなど)をカバーする 19 のアサーションが含まれています。
オンラインインタラクティブデモ GitHub Pages ページ(docs/index.html)がブラウザで同じロジックを再現。ユーザーは予算とカロリーのスライダーをドラッグして、即座に結果を確認できます。

誰に役立つか

  • 学生や会社員:手動でクーポンをやりくりせずに、最も安いマクドナルドの食事を求める人。
  • フィットネス/ダイエット愛好家:予算内で低カロリーのオプションが必要な人。
  • グループ:複数の食事を注文し、総支出を抑える必要がある人。
  • 「クーポンハンター」:多くのクーポンを持ち、最適な組み合わせが必要な人。

ライセンス

MIT(LICENSE を参照)。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト