mcd-solver — скилл

Скилл решает задачу выбора блюд в Макдоналдс: максимум удовольствия при заданных бюджете, калориях, натрии и белке.

  • 72 ★ репозитория
  • Последний коммит
  • MIT
Скилл

Расширенный доступ

Почему такой уровень

  • С токеном скилл ходит в сервис заказов и читает купоны и цены.
  • Режим размещения создает реальный заказ, оплата остается за человеком.
Все причины и проверки

ftxcgwf/mcd-solver

Установка

Работает в

В терминале, через SkillFoxx CLI

npx skillfoxx add skills/mcd-solver

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • С токеном скилл ходит в сервис заказов и читает купоны и цены.
  • Режим размещения создает реальный заказ, оплата остается за человеком.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

mcd-solver превращает вопрос «что заказать» в задачу оптимизации с ограничениями. Бюджет, калории, натрий и белок служат ограничениями, а целью выступает удовольствие от еды, учитывающее температурные и текстурные контрасты. Скилл выдает три варианта на выбор: для экономии, для любителей вкусного и сбалансированный. Питательные данные берутся из публичного калькулятора на сайте сети и не требуют токена. Цены и купоны подтягиваются через MCP-сервер Макдоналдс, для них нужен токен в переменной `MCD_MCP_TOKEN`. Команда `python cli.py --max-kcal 800 --max-sodium 2000 --persona all` запускает расчет сразу, а скрипт `scripts/quickstart.py` сам строит снимок данных и прогоняет три примера.

Для кого. Тем, кто следит за калориями или солью и хочет получить заказ с обоснованием выбора.

Подходит, если

  • У человека лимит в восемьсот килокалорий на обед и нужен подбор блюд.
  • Кто-то следит за натрием из-за давления и сравнивает бургеры.
  • Бюджет жесткий, и надо понять, как потратить его с максимальным удовольствием.
  • Нужно проверить купоны и получить цену после скидок.

Не подходит, если

  • Нужны сервисы вроде купонов, баллов и истории заказов: скилл их не обслуживает.
  • Нет доступа к токену, а нужны реальные цены: без него данные по цене неточные.
  • Диета предписана врачом: расчет носит справочный характер.

Пример запроса к агенту

Мне нужен обед до 800 килокалорий и 2000 мг натрия, бюджет сто юаней. Дай три варианта и объясни выбор.

Ограничения

Без токена скилл работает на данных питания с сайта сети, а цены тогда приблизительны: точные подтягивает MCP-сервер по токену из `open.mcd.cn/mcp`. Команда `--place` создает настоящий заказ, оплата остается в приложении, по умолчанию выполняется только расчет, а заказ требует ввода суммы вручную. Данные и тексты на китайском, модель удовольствия придумана автором и не заменяет совет диетолога. Для расчета достаточно Python 3.9 без сторонних зависимостей.

Как отключить. Удалите папку с проектом и скилл из каталога навыков. Токен `MCD_MCP_TOKEN` уберите из окружения и отзовите на платформе.

Частые вопросы

Нужен ли токен?

Для расчета по питательности нет: данные берутся с публичного калькулятора. Для реальных цен, купонов и проверки итогового счета токен обязателен.

Какие три варианта выдает скилл?

Экономный, для любителей вкусного и сбалансированный. На одном бюджете и одной точке они заметно различаются по натрию.

Как проверить работоспособность без токена?

Запустите `python scripts/selftest.py`: офлайн-самопроверка из 26 пунктов не требует токена.

Что делают флаги `--quote` и `--place`?

`--quote` сверяет цену с официальным расчетом после купонов, `--place` после этого создает реальный заказ. Для обоих нужен токен, а второй требует подтверждения вручную.

Правда ли, что куриный бургер всегда легче по соли?

Нет. В данных сети один куриный бургер содержит 1041 мг натрия, а Биг Мак 961 мг.

Обсуждение

Вопросов и отзывов пока нет.

Скиллы

McButler считает для заказа в McDonald's калории, полную цену с дорогой и очередью и подбирает набор под бюджет через MCP сети

СкиллРасширенный доступ208Звезды репозитория

Скилл подбирает заказ в McDonald's Китая под бюджет и лимит натрия: сверяет купоны точки и не оформляет заказ.

СкиллМинимальный доступ582Звезды репозитория

Подбирает заказ в McDonald's Китая под бюджет, калории, число людей и ограничения, заранее забирая купоны и сверяя цену.

СкиллРасширенный доступ111Звезды репозитория

Скилл считает дневную норму калорий и составляет из меню McDonald's Китая три готовых набора, с замечаниями по натрию.

СкиллШирокий доступ104Звезды репозитория

Неофициальный скилл для McDonald's China: план тренировок, сравнение наборов по цене и КБЖУ, учет заказов и итоги месяца

СкиллШирокий доступ118Звезды репозитория

Скилл и CLI для меню McDonald's China: три варианта заказа по бюджету с питательностью и источником каждой цифры

СкиллМинимальный доступ121Звезды репозитория

Коротко о README

Проект создан для конкурса и целиком выполнен в WorkBuddy, прикладной файл `workbuddy.md` содержит описание. Репозиторий включает решатель, парсеры данных, самопроверку и страницу с демонстрацией расчета. Автор отдельно подчеркивает, что скилл не заменяет меню и не занимается поиском купонов.

Бейдж для README

Исходный SKILL.md

---
name: mcd-solver
description: 麦当劳点单决策求解器。当用户提到想吃麦当劳、问麦当劳怎么点划算、控卡/控钠怎么吃麦当劳、给我配一个 XX 大卡以内的麦当劳套餐、预算 XX 元吃麦当劳、麦当劳营养搭配时使用。在预算、热量、钠、蛋白质的约束下,求解满足感最高的组合,并给出省钱派/嘴馋派/均衡派三套方案。
---

# 今天麦什么 · 麦当劳点单求解器

一句话说明白:**给我预算、热量上限和一个心情,我给你麦当劳的最优解。**

不是菜单查询,不是领券脚本。它把「怎么点」建模成一个带约束的优化问题——
预算、热量、钠、蛋白质是约束,目标函数是**满足感**,而不是「最便宜」。

## 何时使用

- 用户说「想吃麦当劳,但今天只能吃 800 大卡」
- 用户关心咸不咸、钠高不高(例如血压敏感、健身控钠)
- 用户有预算上限,想知道这点钱怎么点最爽
- 用户在几个套餐之间犹豫,想要一个带理由的建议

**不适用**:领券、查积分、查历史订单,那是麦当劳 MCP 其他工具的事。
下单可以在给出方案后通过 `cli.py --quote --place` 完成。

## 快速开始

无需 MCP Token 也能跑(营养数据来自麦当劳官网公开营养计算器):

```bash
python cli.py --max-kcal 800 --max-sodium 2000 --persona all
```

新人第一次用,或环境看起来不对(比如提示数据缺失)时,先跑一键体验,
它会自动建营养快照并连跑三个示例:

```bash
python scripts/quickstart.py
```

怀疑改动破坏了什么时跑离线自检(26 项,无需 Token):

```bash
python scripts/selftest.py
```

有 Token 时先校准真实价格,预算约束才会生效:

```bash
export MCD_MCP_TOKEN=你的Token
python scripts/fetch_menu.py          # 抓取在售菜单与价格 -> data/menu.json
python scripts/verify_prices.py       # 校准官方结算价 -> data/prices_verified.json
python scripts/coupons.py --calibrate # 折算券后价 -> data/prices_coupon.json(有券时)

Сообщить о проблеме