McMate skill

McDonald's China ordering skill: picks a restaurant, asks party size and budget, offers three sets with price checks

  • 123 ★ on the repository
  • Last commit
Skill

Broad access

Why this level

  • Places real McDonald's orders through MCP with your token.
All reasons and checks

xx20050823xx/mcmate

Install

Works in

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/mcmate

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • Places real McDonald's orders through MCP with your token.

This is third-party code. Review the repository files before installing.

What it does

McMate guides the choice in four steps. First the restaurant: the skill lists nearby locations with address and distance. Then party size, then budget as a sentence or a ceiling. Finally three sets of different structure, each checked with the official `calculate-price`. If wanted, the order is placed for pickup, drive-thru, delivery or as a group order. The project includes a separate Python selection engine (`main.py --menu menu.json --budget 30-40 --people 1`). It handles quirks of the real menu: favorite stores return zero distance without coordinates, 28 yuan items require a loyalty card, the «随心配 1+1» combo is assembled from choices, toys and merchandise are filtered out, and prices are reconciled between yuan and fen. The user pays in the McDonald's app and the skill never sees payment credentials.

Who it is for. People ordering from McDonald's China who do not want to scroll a menu and need a ready set for party size and budget.

Good fit when

  • Lunch for three with a 100 yuan ceiling needs assembling quickly.
  • You need sets with a main, a side and a drink that stay within budget.
  • Prices should be verified with the official calculation before ordering.
  • The order should be placed for pickup or delivery straight from the dialogue.

Not a fit when

  • You are outside China: the service is tied to McDonald's China MCP.
  • You need calorie and protein calculations, which the skill does not output.
  • You do not want an agent to place orders.

Example request

There are two of us with 80 yuan. Pick three different sets at the nearest McDonald's and show the price after verification.

Limitations

A McDonald's China MCP token from open.mcd.cn is required and goes into `~/.workbuddy/mcp.json` with an `Authorization: Bearer` header. Without the `Bearer ` prefix the server returns 401. The skill targets WorkBuddy and the description is in Chinese. Placing an order creates a real order in McDonald's systems, and payment is confirmed in the app or mini program, so check contents and price before an order is created. The repository does not state a license. Items for students only or for breakfast are flagged and given a lower weight.

How to disable. Delete the `~/.workbuddy/skills/mcmate` folder and the `mcd-mcp` entry from `~/.workbuddy/mcp.json`. Revoke the token at open.mcd.cn if needed.

FAQ

How do I install McMate?

Copy the directory into `~/.workbuddy/skills/mcmate/` with `cp -r mcmate ~/.workbuddy/skills/` and configure MCP with a McDonald's token.

How do I configure MCP?

In `~/.workbuddy/mcp.json` define the `mcd-mcp` server with `type` streamablehttp, `url` `https://mcp.mcd.cn` and `Authorization: Bearer <token>`.

Does the skill pay itself?

No. The skill creates the order and the user confirms payment in the McDonald's app or mini program.

Can selection run without MCP?

Yes. The Python engine takes a menu file: `python main.py --menu menu.json --budget 30-40 --people 1`.

What about student-only deals?

Such items and breakfast items are flagged and given a lower weight for an ordinary user.

Discussion

No questions or reviews yet.

Skills

A skill on the McDonald's China MCP: turns a budget and wishes into up to three menus with official prices, leftover budget and coupon terms

SkillExtended access1.3KRepository stars

Picks a complete McDonald's China order for your budget and taste at official prices and returns a ready order card

SkillExtended access148Repository stars

Skill and CLI that name the cheapest way to order food at McDonald's China and show the outcome before an order is created

SkillBroad access134Repository stars

A skill that plans a China McDonald's order under a budget and sodium limit, checks store coupons and never orders.

SkillMinimal access582Repository stars

McButler works out calories and the full cost of an order, including travel and queue time, from the McDonald's China MCP

SkillExtended access208Repository stars

README in short

The project combines a skill with a four-step dialogue and a standalone selection engine. The README lists real menu pitfalls and how the calculations handle them.

README badge

Original SKILL.md

---
name: mcmate
description: McMate(麦当劳"选择困难症终结者")。当用户说要吃麦当劳但没想好吃什么、或给出预算(如"30-40元""预算35""两个人吃XX元")时,先定位并让用户选择附近门店,再依次确认就餐人数与预算区间,最后通过麦当劳官方 MCP(mcd-mcp)读取该门店实时菜单,给出 2-3 个可直接下单的搭配。触发词:麦当劳预算、麦当劳搭配、选择困难、帮我点麦当劳、mcd 吃什么。
agent_created: true
---

# McMate · 麦当劳选择困难症终结者

> McMate = McDonald's + 搭子。你的麦记饭搭子。

## 用途

把"我想吃麦当劳,但不知道点什么"变成一次四步对话:**选门店 → 报人数 → 报预算 → 拿方案**。

方案的每一分钱都来自麦当劳官方接口:菜单用 `query-meals` 实时拉取,价格用 `calculate-price` 复核,用户满意即可直接下单。

## 前提

- 当前会话已连接麦当劳官方 MCP(`mcd-mcp`,`https://mcp.mcd.cn`),工具名前缀 `mcp__mcd-mcp__`。
- 若未连接,提示用户在连接器管理页(左下角「+」菜单 → 右上角自定义连接器)信任 `mcd-mcp`,**不要伪造菜单或价格**。
- 工具返回 `success:false` 时,把 `message` 原样告知并停止。

## 交互原则(重要)

1. **一问一答**:一次只问一个问题,等用户回答后再进入下一步。不要一口气抛出"哪家店、几个人、多少钱"三连问。
2. **按固定顺序**:门店 → 人数 → 预算 → 推荐。顺序来自用户真实决策链:先定"去哪吃",再定"几个人",最后才考虑"花多少钱"。
3. **不重复问**:用户如果一开始就说"两个人 40 块,玉溪极中心那家",直接跳到 Step 4,把已给的信息回读确认一次即可。
4. **每步都有默认值**:用户说"随便/都行/你定",用默认值继续(最近门店 / 1 人 / 30-40 元),并明确告知用了什么默认值。
5. **预算必须问**:用户没提预算时不能自己编一个;可以给参考锚点帮他想。

## 标准流程

### Step 1 定位门店,让用户选

**到店自取(默认)**

```
query-nearby-stores(searchType=1, beType=1)      # 1=收藏门店,通常就是"附近常去"的那几家
```

- 收藏为空、或返回 `distance=0`(收藏门店不带坐标)时,改用位置搜索:
  ```
  query-nearby-stores(searchType=2, beType=1, city="<城市>", keyword="<商圈/地标>")
  ```
  不知道城市/商圈就问一句:"你在哪个城市、附近什么地标?"
- 按 `distance` 升序(单位**米**,1355 → 约 1.4km),最多展示 5 家。

**展示格式**(编号让用户回数字,不要让他打店名):

```

Report a problem