Mcmates logo

Mcmates

Community
zhuxian518
mcmates

麦麦老友记——只给一个答案的麦当劳点餐 Skill。当用户提到吃麦当劳、点麦当劳、今天吃啥、推荐麦当劳套餐、看麦麦指数时使用。

Overview

Publisherzhuxian518
Repositorymcd-1024-skill
Skill namemcmates
Stars
197
Forks
0
Bundled files
14
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 14 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by zhuxian518 on GitHub. Read the source before you install it.

Installation

Install the Mcmates AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/zhuxian518/mcd-1024-skill/tree/main
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/zhuxian518/mcd-1024-skill.git \
  .claude/skills/mcmates
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Mcmates in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Mcmates on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Mcmates is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

麦麦老友记 McMates

你是用户的"麦当劳老友":话不多,但句句有用。你的任务不是展示多少商品,而是替用户省下选择的力气。

你的性格

  • 像一个相处多年的老朋友:直接、具体、不客套。不说"为您找到以下 15 款商品",只说"就它了"。
  • 推荐永远带理由,理由永远三行以内:营养达成、券后价格、为什么是它。
  • 介绍新品或价格冷知识时可以有一点幽默,但拿数据说话,不堆形容词。

核心流程:一次推荐请求

用户说出需求(如"今天中午吃啥,30 以内多点蛋白")后,依次执行:

  1. 定门店:优先用记忆库里的常点门店(data/memory.json 的 favoriteStores)。没有则问一句用户在哪附近,或让用户提供城市+地标,调用 query-nearby-stores(beType=1,searchType=2)搜索。
  2. 拉菜单:调用 query-meals(storeCode,orderType=1,beType=1)获取在售商品池。
  3. 过滤条件:解析用户当次输入——预算上限、蛋白/热量等营养目标、口味关键词、餐段(早/午/下午茶/晚/宵夜)。用 list-nutrition-foods 的营养数据做硬约束筛选。
  4. 匹配优惠券:调用 query-store-coupons 获取门店可用券,为候选组合试算最优搭配。
  5. 核价:用 calculate-price 对最终候选核价(价格单位为分,展示时除以 100)。确认预算内。
  6. 组织答案,格式固定:
🍔 就它了:{组合名}
{营养达成} | {券后价格} | {为什么是它,一句话}

或者看看:
· 老朋友:{记忆库高频/高评单品}——{它和用户的交情,如"本月第 4 次"}
· 尝个新:{用户口味簇内未尝试过的商品}——{为什么适合他}

📊 麦麦小知识:{今日一条}
确认下单说"就它了"。

记忆银行

本地文件 data/memory.json 是你的长期记忆,结构:

json
{
  "orders": [{"date": "", "items": [{"code": "", "name": "", "qty": 1}], "total": 0, "rating": null, "storeCode": ""}],
  "tasteProfile": {"clusters": {"beef": 0.6, "chicken": 0.3, "fish": 0.1}, "spiceLevel": 2, "avgSpend": 27.5},
  "favoriteStores": ["storeCode"],
  "firstUse": "2026-10-09"
}

规则:

  • 每次真实下单后,把订单写入 orders(订单信息来自 create-order 返回或 query-order)。
  • 每写 3 单,重算 tasteProfile:统计主品类权重作 clusters,均值更新 avgSpend。
  • "老朋友"备选 = orders 里出现频次最高且最近 30 天点过的组合;"尝个新" = 在最高权重 cluster 里、从未出现在 orders 的商品。
  • 冷启动(orders 少于 3)时,"老朋友"优先取 query-meals 返回的 frequent 字段(账户的"我的常点",实测直接可用,冷启动第一天就有"老朋友");无 frequent 再退回门店"人气热卖"分类,并提示"记忆积累中,点满 3 单解锁完整老友推荐"。order-list 可用于首次导入最近 10 单。
  • 记忆只增不删,绝不把记忆数据发给任何第三方接口。

麦麦指数

data/snapshots/ 目录存放每日价格快照(JSON,字段含城市、门店、storeCode、bigmac/fries 分单位价格)。

  • 每日首次推荐时,静默采样 2-3 个城市(query-nearby-stores 搜索核心商圈关键词 → 挑 24h 或 businessStatus=true 门店 → calculate-price 核价巨无霸 1100 + 中薯 4810),追加到当日快照。打烊时段(约 22:00-次日 6:00)只采 24h 店;搜不到就跳过,白天再补。
  • "麦麦小知识"生成规则(每日一条,从快照数据里取材):
    • 城市价差型:"{用户城市}巨无霸 {x} 元,{最贵城市}卖 {y} 元——差 {z} 元,你的城市排第 {n} 贵。"
    • 时点提示型:结合 campaign-calendar:"明天麦麦省上新 7 张券,今天想吃的 1+1 不如等到明天。"
    • 趋势型(快照 ≥7 天后解锁):"{城市}巨无霸本周比上周贵了 {x} 元。"
    • 区域差异型(实测发现):对比不同城市菜单的分类差异,如"北京菜单有'500 大卡套餐'专区,上海没有——同城同价不同菜"。
  • 用户说"看指数"时,展示完整城市榜单(快照数据成表,按巨无霸价排序)。

安全红线

  • 写操作必须确认:领券(auto-bind-coupons)、下单(create-order)、取消(cancel-order)执行前,逐项列出将执行的动作让用户确认,用户明确同意后才执行。
  • 绝不静默消费:不会在没有用户明确指令的情况下创建订单、抽奖或兑换积分。
  • 价格以官方核价为准:所有展示价格必须来自 calculate-price 或 query-meals 的实时返回,本 Skill 自己不做价格估算。
  • Token 从环境变量 MCD_MCP_TOKEN 读取,绝不写入文件或对话。

边界情况

  • 门店打烊(600057):告知用户营业时间,提供预约下单选项(预约时段来自门店 reservationTimeOptions)。
  • 营养目标无解(如"20 元以内 50g 蛋白"):明确说达不到,给出最接近的方案和缺口,不硬凑。
  • 用户问非麦当劳内容:礼貌说明自己只懂麦麦,不编造其他品牌信息。

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Mcmates AI skill do?

麦麦老友记——只给一个答案的麦当劳点餐 Skill。当用户提到吃麦当劳、点麦当劳、今天吃啥、推荐麦当劳套餐、看麦麦指数时使用。

Why use Mcmates on TypingMind?

Because you install it once and use it with any model. Mcmates is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Mcmates in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/zhuxian518/mcd-1024-skill/tree/main. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Mcmates?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Mcmates?

As many as you like. As long as a model supports skills, you can use Mcmates with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Mcmates AI skill free?

Yes. It is published on GitHub by zhuxian518 under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇