McOmni — скилл
Скилл ведет агента по 35 инструментам MCP McDonald's China: купоны, заказ, доставка, лотерея и баллы с защитой от ошибок.
- 99 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Личный токен открывает заказы, купоны и баллы аккаунта McDonald's, агент может оформить реальный заказ.
- Подтверждение перед заказом, лотереей и обменом баллов задано инструкцией скилла.
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add skills/mcomniОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Личный токен открывает заказы, купоны и баллы аккаунта McDonald's, агент может оформить реальный заказ.
- Подтверждение перед заказом, лотереей и обменом баллов задано инструкцией скилла.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
McOmni — скилл для агента поверх MCP-сервера McDonald's China (mcd-mcp). Он знает все 35 инструментов и 7 рабочих процессов: получение купонов, выбор ресторана, расчет цены, заказ в ресторане, доставку McDelivery и выдачу через drive-thru, лотерею за баллы, подсчет калорий и сравнение цены с купоном и без него. В SKILL.md записаны 14 правил против типовых ошибок вроде неверного beType или выдуманных кодов. Рядом лежит CLI без зависимостей: он вызывает те же инструменты из терминала.
Для кого. Пользователям McDonald's в Китае с личным токеном MCP, которые хотят заказывать через агента и не терять сгорающие баллы.
Подходит, если
- Агент должен собрать заказ: ресторан, меню, цена и итоговое подтверждение.
- Баллы сгорают в этом месяце, и хочется потратить их на розыгрыш, не задев остальные.
- Перед покупкой интересно сравнить цену с купоном и без него.
- Раз в день забрать все доступные купоны одной командой.
Не подходит, если
- Нет китайского аккаунта McDonald's и токена с open.mcd.cn.
- Агент собирается заказывать сам, без вашего подтверждения: скилл запрашивает его перед заказом и розыгрышем.
- Нужны точные цены и наличие: итог определяет сервис McDonald's, данные скилла справочные.
Пример запроса к агенту
Найди ресторан McDonald's на улице Гулоу-Наньцзе в Пекине и покажи цену моего заказа с купоном и без. Оформлять заказ без моего подтверждения не надо.Ограничения
Скилл работает только с MCP-сервером McDonald's China и личным токеном с open.mcd.cn, токен он не сохраняет и не печатает. Проект не относится к продуктам McDonald's и сделан для конкурса M-CODE 1024. Рассчитан на WorkBuddy от Tencent: MCP добавляют в коннекторы и подтверждают доверие, иначе инструменты не появятся, тогда остается CLI `scripts/mcd_cli.py`. У лотереи есть ограничение частоты запросов, повторы не помогают. Документация и описание скилла написаны по-китайски.
Как отключить. Удалите каталог mcdonalds из каталога навыков агента и запись mcd-mcp из MCP-конфигурации.
Частые вопросы
Как получить токен для McOmni?
Откройте open.mcd.cn/mcp, войдите по номеру телефона, в консоли нажмите «Активировать» и скопируйте токен. Подставьте его вместо MCD_MCP_TOKEN в конфигурации.
Можно ли пользоваться без ИИ-клиента?
Да. `scripts/mcd_cli.py` вызывает инструменты из терминала: `list` показывает инструменты, `call` запускает один из них. Токен берется из MCD_MCP_TOKEN.
Заказывает ли агент без моего подтверждения?
По правилам скилла нет. Перед заказом он считает цену и показывает итог, а лотерея идет в два шага: сначала расход баллов, потом ваше согласие.
Что делает скрипт points_expiry_draw.py?
По умолчанию печатает план без списания. Флаг `--yes` тратит только сгорающие баллы, а `--allow-overflow` добавляет остальные и нужен лишь после вашего согласия.
Какие способы получения заказа поддерживаются?
Три: самовывоз в ресторане, доставка McDelivery и drive-thru. Способ задает параметр beType, поэтому скилл спрашивает его первым.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
СкиллыCLI и скилл для заказов McDonald's China: подбирают набор под калории, считают цену с купонами, держат заказ до подтверждения.
Скилл заказа в McDonald's China через официальный MCP: цены с купонами, состав, статус заказа и тихий итог без оценок еды.
Скилл считает групповой заказ McDonald's Китая через MCP: сравнивает услуги доставки и сервировки, подсказывает порог скидки.
Скилл и CLI называют самый дешевый способ заказать еду в McDonald's Китая и показывают итог до создания заказа
Навык по MCP McDonald's Китая ищет купоны и считает дешевый заказ по бюджету или калориям. Заказывает по слову пользователя.
McButler (mcd-self-butler)
mcd-self-butler
McButler считает для заказа в McDonald's калории, полную цену с дорогой и очередью и подбирает набор под бюджет через MCP сети
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| McOmni (эта карточка) | нет | 99 | ||
| mcd-cn-assistant | нет | API-ключ | 379 | сосредоточен на купонах, актуальных акциях и групповых заказах; McOmni покрывает все 35 инструментов и добавляет CLI без зависимостей |
| mcd-mcp-kit | нет | 121 | проверяет подключение к серверу; McOmni ведет агента через заказ и баллы |
Коротко о README
Рабочие процессы начинаются с выбора способа получения: самовывоз, доставка или drive-thru. Параметры вроде storeCode и takeWayCode берутся только из ответа предыдущего инструмента. Подробные справочники лежат в references: tools.md и workflows.md.
Бейдж для README
Исходный SKILL.md
---
name: mcdonalds
description: 麦当劳中国官方 MCP 全能助手。当用户提到麦当劳、麦乐送、开心乐园餐、麦麦省优惠券、领券、点麦当劳、外送到家、得来速、麦当劳积分、积分抽奖、积分商城兑换、麦当劳餐品热量/营养、麦当劳订单查询或取消、麦当劳周边玩具与活动时使用。覆盖官方 35 个工具的全部能力,内置领券、到店点餐、外送、玩具雷达、积分抽奖、热量计算、优惠计算器七大工作流。
agent_created: true
---
# 麦当劳 MCP 全能助手
通过麦当劳中国官方 MCP Server(`mcd-mcp` @ `https://mcp.mcd.cn`)为用户完成从领券、比价、点餐、外送到积分抽奖、营养计算的全流程。共 **35 个工具**,全部能力见 `references/tools.md`。
## 前置条件
1. `~/.workbuddy/mcp.json` 中需存在 `mcpServers.mcd-mcp`(含 `Authorization: Bearer <token>`)。Token 获取:https://open.mcd.cn/mcp
2. 该 MCP 需在「连接器管理」中点击**信任**后,工具才会出现在可用工具列表里。
## 两种调用通道
| 通道 | 适用 | 说明 |
|---|---|---|
| **A. 直接调用 MCP 工具**(首选) | MCP 已被信任 | 直接调用工具名,如 `query-meals`。参数严格按 `references/tools.md` |
| **B. 命令行脚本**(备选/排障) | MCP 未信任、或需在终端验证 | `python scripts/mcd_cli.py call <工具名> '<json>'`;`list` 列工具、`desc` 查参数 |
通道 B 示例:
```bash
python scripts/mcd_cli.py list 优惠
python scripts/mcd_cli.py call auto-bind-coupons
python scripts/mcd_cli.py call query-nearby-stores '{"beType":1,"searchType":1,"city":"北京"}'
```
## 通用铁律(违反会直接报错或下错单)
1. **`beType` 决定一切**:`1`=到店自取、`2`=麦乐送外送、`5`=得来速、`6`=企业团餐。
2. **`orderType`**:到店类(含自取 + 得来速)= `1`;外送类(含麦乐送 + 团餐)= `2`。
3. **`beCode` 与 `storeCode` 配对**:到店自取(`beType=1`)**不传** `beCode`;得来速从 `query-nearby-stores` 取;麦乐送/团餐从 `delivery-query-stores` 取。传错会报错。
4. **`query-nearby-stores.searchType` 必须传对**(实测坑):
- `searchType=1` 查**收藏餐厅**;该 `beType` 无收藏时返回 `600050 收藏餐厅列表为空`。到店自取(beType=1)通常有收藏店,得来速(beType=5)常为空。
- `searchType=2` 按位置搜索,**必须 `city` 与 `keyword` 同时传**;只传其一必报 `600058 城市名或者关键词不能为空`。
- 稳妥路径:先试 `searchType=1`,报 600050 则改用 `searchType=2` + `city` + `keyword`。
5. **菜单编码路径**:`query-meals` 的餐品编码在 **`data.categories[].meals[].code`**,详情在 `data.meals.{code}`(含 `name`/`currentPrice`/`originalPrice`)。
⚠️ **不要误取响应外层的 `code`**——那是业务状态码(`200`),不是餐品编码。
6. **绝不臆造编码**:`storeCode`、`beCode`、`addressId`、`productCode`、`couponId`、`skuId` 都必须来自上游工具返回,不得凭空生成。
7. **`reservationDate` 仅预约场景传**(格式 `yyyy-MM-dd HH:mm`),非预约**不要传**。门店返回 `reservation=true` 时,其 `reservationTimeOptions` 必须**完整展示**,缺项会导致用户无法预约。
8. **下单前必须 `calculate-price`**,把明细与总价展示给用户并取得明确确认,再调 `create-order`。禁止跳过算价直接下单。
9. **到店场景(`orderType=1`)下单必传 `takeWayCode`**,取值只能来自 `calculate-price` 返回的 `data.takeWayList[].code`(实测取值:`eat-in` / `take-in-store`);外送/团餐(`orderType=2`)**不要传**(其算价返回**不含** `takeWayList`)。
10. **抽奖必须两段式**:先 `query-lottery-info` 展示 `drawDecision.nextConsumption`,用户明确确认后才可 `draw-lottery`。禁止试抽、自动抽、连续抽。
11. **业务成败看 `success` 字段**(仅适用于结构化返回):工具调用不报错 ≠ 业务成功。响应 JSON 中 `success=false` 即失败(如 `60006 商品已售罄`、`600058 城市名为空`),须如实转述 `message`,不得改写或掩盖。
12. **返回有两种形态,别搞混**:
- **结构化返回**(多数工具):字段说明 + 原始 JSON,按字段取值。
- **服务端已渲染的 Markdown**(实测 `available-coupons`、`query-my-coupons`、`campaign-calendar`):**直接原样展示给用户**,不要试图解析字段、也没有 `success` 可判。空文本即视为无数据。