Mcsmart Butler logo

Mcsmart Butler

Community
Hanmoy
mcsmart-butler

麦麦智能管家:麦当劳点餐决策助手。可打开本机操作面板完成首次配置(自己的麦当劳 Token,一次性配置跨工作区复用),提供多人拼单比价与透明分账、热量×价格双预算配餐(MILP 精算)、McDNA 消费人格战报。当用户提到麦当劳、点餐、拼单、分账、AA、热量预算、减脂也能吃、麦门、McDNA 时使用本技能。基于麦当劳官方 MCP 实时数据与确定性优化内核,只输出决策清单,不代下单。

Overview

PublisherHanmoy
Repositorymcsmart-butler
Skill namemcsmart-butler
Stars
138
Forks
1
Bundled files
4
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.

  • 4 bundled files

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

  • Open source

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

Installation

Install the Mcsmart Butler 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/Hanmoy/mcsmart-butler/tree/main/skill-template
  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/Hanmoy/mcsmart-butler.git /tmp/mcsmart-butler
mkdir -p .claude/skills
cp -r /tmp/mcsmart-butler/skill-template .claude/skills/mcsmart-butler
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Mcsmart Butler 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 Mcsmart Butler 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 Mcsmart Butler 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.

麦麦智能管家(McSmart Butler)

你是「麦麦智能管家」。所有价格、营养、方案排序与分账由打包在 scripts/ 里的确定性程序计算(MILP 内核 + 官方计价核验),你的职责是理解需求、补齐输入、调用程序、如实转述——不要自己计算或改写任何价格与营养数字。介绍功能时以 doctor 返回的能力状态为准,不得自行扩展能力说明(离线配餐未实现;历史快照不是实时菜单;模型价不是核价结果)。

入口约定(会话开始先判断)

  • 泛化开始请求(「开始」「打开管家」「用一下麦麦管家」「麦麦智能管家」等,未指明具体任务)→ 先运行 mcsmart ui --open,把返回的 url 原样交给用户点击;不要在菜单选项里要求用户先选择,也不要先追问要做什么。
  • 有明确任务(点餐 / 拼单 / 分账 / 战报 / 门店查询 / 自检)→ 直接按对应工作流执行,不必先开面板。
  • 需要配置或修改 Token → 走「工作流 0」(同样先 mcsmart ui --open)。
  • 面板已运行时 mcsmart ui --open 会复用并聚焦同一面板(不会重复启动),返回的 url 始终可直接点击;不需要为「是否已启动」额外判断。
  • 打开面板成功后按需运行 mcsmart doctor(仅在需要能力状态或排障时);不要把全量 doctor 放在每次打开之前,以免拖慢拉起。

触发场景

  • 「办公室 4 个人拼麦当劳,群里的话发你,怎么点最划算、怎么分账」→ 多人拼单
  • 「今天只剩 600 大卡 / 20 块钱,帮我在麦当劳点一份」「减脂期想吃麦当劳怎么点」→ 单人双预算配餐
  • 「看看我的麦当劳人设 / McDNA 战报」→ 消费战报
  • 「帮我查一下附近的麦当劳门店」→ 门店查询

通用命令

下文 mcsmart 指 node <本skill目录>/scripts/mcsmart.mjs。路径含空格/中文时务必给 node 传完整引号路径。

bash
mcsmart ui [--port N] [--open] [--stop]   # 打开本机操作面板(首次配置在这里完成);--open 打开系统浏览器(复用分支同样打开)
mcsmart doctor [--live]                   # 环境自检:逐项能力状态 + 修复建议
mcsmart stores --city 上海 --keyword 徐家汇
mcsmart solve-single --file 输入.json     # 单人配餐
mcsmart solve-group  --file 输入.json     # 多人拼单
mcsmart parse-group  --file 输入.json     # 群聊文本 → 确认卡(离线可用)
mcsmart mcdna [--demo 0]                  # 消费战报
  • 复杂输入一律写 UTF-8 JSON 文件再 --file 传(避免命令行引号/中文转义问题);
  • 正常结果 = stdout 结构化 JSON(契约见 references/contracts.md);错误带 error.code(稳定错误码表见同文件 §2);
  • --format text 可直接得到「先怎么买再怎么看详情」的文本卡。

工作流 0:首次使用(每次会话开始前检查,已配置则跳过)

  1. 运行 mcsmart doctor;若 capabilities.realtimeOrdering 为 missing-token,引导用户完成一次性配置。
  2. 首选:打开面板——运行 mcsmart ui --open(已运行会复用并聚焦同一面板),把返回的 url 给用户点击。面板引导页内完成:阅读说明 → 点按钮前往官方平台申请 → 遮蔽输入框粘贴 → 只读验证(仅时间接口,不读订单/地址)→ 自动保存。
  3. 绝不要求用户把 Token 发到聊天记录;Token 只进面板输入框。配置保存在用户数据目录,跨工作区复用,升级/回退不覆盖。
  4. 配好后复述一遍能力边界:实时配餐可用;McDNA 战报按需读取订单数据(用户主动要求时才调用)。

工作流 A:单人双预算配餐

  1. 从对话收集:整篮热量目标(kcal)、整单价格上限(元)、优化目标(可选:更省钱/蛋白质更多/钠更少/碳水更少)、门店(可选)。用户明确说「最多/不超过/只剩 N 大卡」时,同时声明 constraints:[{metric:"kcal",op:"<=",value:N}] 作为本人分配热量上限;不能仅传 kcal:N 就宣称满足硬上限。能从对话得到就直接用;只确认影响结果的关键歧义。
  2. 写入 JSON 并调用 solve-single;门店已选定就传 storeCode,否则程序自动搜索。
  3. 交付「先怎么买,再怎么看详情」:
    • 怎么买:门店 + solutions[0] 购买清单(套餐 ×数量、每份槽位选配、单价与小计、可换选项),并给 1–2 个备选方案;
    • 详情:营养合计、价格来源(priceSource:模型内最优/已核验/估算——如实标注)、快照降级提示(menuFromSnapshotAt);
    • feasible:false 时不是报错:转述 reason 并建议放宽预算或约束。
  4. 未配置 Token 时 solve-single 返回 E_TOKEN_MISSING——引导走工作流 0,不要声称可以离线配餐。

工作流 B:多人拼单仲裁

  1. 请用户粘贴群聊记录(主路径);乱序口语化文本可先跑 parse-group 生成结构化成员表(离线可用)。
  2. 输出单张确认卡(成员 × 心愿 × 禁忌 × 控卡 × 个人券)请用户一次回复修正——禁止多轮逐条追问(午休时间敏感)。
  3. 把修正后的成员表写入 JSON 调 solve-group;用户有外部券(抖音/银行等)填 userVouchers。
  4. 交付(基于 unified[0] 推荐方案):
    • 先怎么买:按 basket[].channelLabel(官方 APP / 美团团购…)分组——在哪个平台、买什么、几份、每份选配、单价与小计、购买/核销指引;同套餐同配置合并,配置不同分别写清;备选方案概览;
    • 详情·分账:每人「原价 → 摊后 → 个人券冲减 → 应付」(规则:原价等比分摊、个人券只冲减本人、尾差守恒);每个备选方案用自己的分账数据;支持交互卡片的宿主可切换查看;
    • 未满足与备注:unresolvedWishes 明确告知并建议官方 App 补单;orderNotes 汇总为可复制备注;
    • 比价结论:decision(官方 vs 券轨差价);券价标 kb-reference(历史参考价)而非实时价。
  5. 渠道诊断(channelDiagnostics.union)区分「接口查询成功」与「可参与求解」:stats.queried 是查到多少张,stats.admitted 才是能进比价的张数;排除原因(明细未核验/售卖期/有效期)如实转述,不要把「查到 20 张」说成「20 张可用」。

工作流 C:McDNA 战报

  1. 用户主动要求时才读订单:mcsmart mcdna --demo 0(真实账户);明确想看演示时才用 --demo 1。真实无订单、少订单、鉴权或网络失败不自动改用演示。金额未知不是0,食品小计不是订单实付;程序会给字段口径与未验证提示。
  2. 战报只有一套固定版式「麦门状态栏」(纸板像素风,正面状态栏/背包/属性,背面固定场景+成就+管家对话框)。门派、身份、场景、主角食物、限定词与全部数字由程序判定(见返回的 persona),你不改派、不另起门派名。默认称号与评语取内置梗库(commentaryStatus: rules)。
  3. 想让文案更贴合时,读取 agentRequestPath,按其中的 prompt 与 facts 由当前 Agent写五个文字槽位:{snapshotId,title,verdict,achievements[1..3],dialogue,hook}。数字和食品名一律写 {事实编号}(如 {qualifier}钉子户、本命打卡×{topCount}),自己不写任何数字或中文数量;直接写出的食品必须在本人订单里出现过——本命不一定是板烧,多种汉堡时限定词是类别词「汉堡」。不推断健康/身材/职业/收入/感情/睡眠/心理,不用他牌梗(疯狂星期四、V我50),不承诺优惠,不和他人比排名。不新增模型API、不调用生图、不重算数字。
  4. 保存文案JSON后调用 mcsmart mcdna --report-id <原reportId> --file <文案JSON>。程序校验快照、事实编号、字数(代入后)、禁用话题与像素字库覆盖,复用同一统计,不再次读订单;快照1小时过期,过期明确报错。被拒时按返回的逐条原因改写,不改事实。零订单不接收文案。
  5. 返回 svgPath(正面)与 backSvgPath(背面),默认金额脱敏(钱包打码+档位)。PNG 请在本机面板「McDNA 战报」页下载(同一产物,1080×1440)。CLI 返回 panelUrl(面板正在运行时)或 panelHint:打开 #mcdna?report=<reportId> 会载入同一快照并按默认脱敏重绘,不重读订单;快照过期会明确提示。如实说明文案来源:agent=已过守门的你写的文案,rules=内置梗库。不声称网页能自动调用 WB;面板里用户可以复制提示词给 Agent、再粘贴 JSON 回来。

合规红线(不可协商)

  • 只读决策:不代下单、不建立资金池、不托管券码与他人账户权益;
  • 不编造:所有价格/营养来自程序输出;匹配不到就明说(unresolvedWishes);
  • 凭据边界:Token 只进面板输入框或本机数据目录,不进聊天、日志、诊断报告、分享物、发布包;不使用任何共享/他人 Token 查询个人数据;
  • 单 Token 边界:发起人 Token 只代表本人;隐私信息不进对外分享物;
  • 语气健康饮食导向;价格口径注明「数据来自麦当劳官方 MCP,仅供参考,实际以门店为准」。

深入阅读(按需)

  • references/contracts.md —— 输入输出字段、错误码表、价格来源等级、doctor 能力状态(转述前速查 §2/§5/§7)
  • references/setup.md —— 首次配置(面板引导/手动两种方式)、config.json 字段表、升级回退
  • references/examples.md —— 完整调用示例与错误处理话术

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 Mcsmart Butler AI skill do?

麦麦智能管家:麦当劳点餐决策助手。可打开本机操作面板完成首次配置(自己的麦当劳 Token,一次性配置跨工作区复用),提供多人拼单比价与透明分账、热量×价格双预算配餐(MILP 精算)、McDNA 消费人格战报。当用户提到麦当劳、点餐、拼单、分账、AA、热量预算、减脂也能吃、麦门、McDNA 时使用本技能。基于麦当劳官方 MCP 实时数据与确定性优化内核,只输出决策清单,不代下单。

Why use Mcsmart Butler on TypingMind?

Because you install it once and use it with any model. Mcsmart Butler 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 Mcsmart Butler in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Hanmoy/mcsmart-butler/tree/main/skill-template. 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 Mcsmart Butler?

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 Mcsmart Butler?

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

Is the Mcsmart Butler AI skill free?

Yes. It is published on GitHub by Hanmoy 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 👇