Not in the top 1,000 by GitHub stars

miaoyhcat/mcd-chinese-class

麦门语文课 · 接入麦当劳官方 MCP(只读 order-list 读取真实订单),把餐品写成一篇语文课文。16 篇原创文学戏仿,纯 Python 标准库实现、不调用任何大模型;另附零依赖的网页版可离线体验,并一键导出手机分享图片。麦当劳程序员节创意开发大赛参赛作品。

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 65238becca1c

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 65238becca1c15dea5d84f1cfef19d5ddd5cf73f

118GitHub stars
Not availablestars in 7 days
1skill in this repository
23commits in 30 days

Heat

Insufficient history

Not enough history yet to measure heat. It appears after a few days of data.

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Nov 2, 2026Nov 6, 2026119

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

mcd-chinese-class

When your agent uses it

把餐品清单或用户授权读取的麦当劳订单,生成原创语文课文戏仿。支持离线试玩、麦当劳 MCP order-list 只读工具、分享图片。用户提到“麦门语文课”“把订单写成课文”“用麦当劳订单生成故事”时使用。

What it loads into context

Frontmatter

83 tokens

Always available to the agent

SKILL.md

423 tokens

When the skill is activated

Reference documents

6,263 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. 核心能力
  2. 命令
  3. 接入规则
  4. 输出

Scripts executed separately

  • build_web.py
  • console_utf8.py
  • engine.py
  • mcd_chinese.py
  • mcd_mcp.py
  • tests/browser_smoke.py
  • tests/test_build.py
  • tests/test_engine.py
  • tests/test_mcp.py
  • web/app.js

Files

  • .gitattributesasset101 bytes
  • .github/workflows/ci.ymlasset1,735 bytes
  • .gitignoreasset144 bytes
  • CONTEST_DECLARATION.mddoc1,522 bytes
  • COPYRIGHT.mddoc3,968 bytes
  • LICENSEasset1,066 bytes
  • MCP_INTEGRATION.mddoc3,862 bytes
  • README.mddoc9,385 bytes
  • SECURITY.mddoc537 bytes
  • SKILL.mdcore1,505 bytes
  • SKILL.mdcore1,505 bytes
  • TEST_REPORT.mddoc2,762 bytes
  • assets/preview-desktop.jpgasset138,876 bytes
  • assets/preview-mobile.jpgasset146,589 bytes
  • build_web.pyruns1,853 bytes
  • catalog.jsonasset1,137 bytes
  • console_utf8.pyruns801 bytes
  • docs/index.htmlasset49,968 bytes
  • engine.pyruns7,096 bytes
  • lessons.jsonasset16,508 bytes
  • mcd_chinese.pyruns3,956 bytes
  • mcd_mcp.pyruns10,389 bytes
  • mcp-config.example.jsonasset194 bytes
  • tests/browser_smoke.pyruns6,576 bytes
  • tests/test_build.pyruns3,246 bytes
  • tests/test_engine.pyruns3,544 bytes
  • tests/test_mcp.pyruns6,447 bytes
  • web/app.jsruns13,156 bytes
  • web/style.cssasset13,176 bytes
  • web/template.htmlasset7,849 bytes
Read SKILL.md

# 麦门语文课

## 核心能力

把用户指定的餐品或通过麦当劳 MCP `order-list` 读到的最近有效订单改写成原创文学小品。严禁把 Token、订单编号、收件信息等隐私信息写到输出。

## 命令

```bash
python mcd_chinese.py --demo
python mcd_chinese.py --items "巨无霸,中薯条,可乐" --lesson beiying
python mcd_chinese.py --items "巨无霸,中薯条,可乐" --json
python mcd_chinese.py --list
View the complete source on GitHub

Skills included

  • mcd-chinese-class

Repository facts

License
MIT
Created
Oct 14, 2026
Last pushed
Oct 18, 2026
Forks
0
Open issues
0
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 5, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 10 notes
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • docs/index.html:15 Analysis incomplete: physical or joined line exceeds character limit
  • docs/index.html:16 Analysis incomplete: physical or joined line exceeds character limit
  • docs/index.html:17 Analysis incomplete: physical or joined line exceeds character limit
  • docs/index.html:99 Analysis incomplete: physical or joined line exceeds character limit
  • docs/index.html:97 Analysis incomplete: physical or joined line exceeds character limit
  • docs/index.html:98 Analysis incomplete: physical or joined line exceeds character limit
  • web/style.css:4 Analysis incomplete: physical or joined line exceeds character limit
  • web/style.css:5 Analysis incomplete: physical or joined line exceeds character limit
  • web/style.css:6 Analysis incomplete: physical or joined line exceeds character limit
Show all 69 signals by file

.gitignore

  • Access to secretsline 4
    [Credential-related source omitted]

MCP_INTEGRATION.md

  • Network accessline 5
    项目包含独立的 `mcd_mcp.py` 客户端,通过 `https://mcp.mcd.cn`(Streamable HTTP / JSON-RPC 2.0)发送下列调用:
  • Access to secretsline 18
    [Credential-related source omitted]
  • Access to secretsline 61
    [Credential-related source omitted]

README.md

  • Network accessline 9
    [🔎 **MCP 技术实现**](MCP_INTEGRATION.md) · [🎬 在线体验(网页版)](https://miaoyhcat.github.io/mcd-chinese-class/) · [📋 比赛报名 #716](https://github.com/M-China/mcd-developer-innovation-challenge/issues/716)
  • Network accessline 11
    [![M8ven](https://m8ven.ai/badge/mcp/miaoyhcat/mcd-chinese-class)](https://m8ven.ai/mcp/miaoyhcat/mcd-chinese-class?s=readme)
  • Network accessline 41
    1. 从 [麦当劳 MCP 平台](https://open.mcd.cn/mcp) 按官方流程申请令牌。
  • Access to secretsline 47
    [Credential-related source omitted]
  • Access to secretsline 50
    [Credential-related source omitted]
  • Network accessline 113
    **直接打开 [在线体验](https://miaoyhcat.github.io/mcd-chinese-class/),无需账号、Token 或安装。** 网页仅在本地运算,没有广告、远程 AI 请求或第三方追踪。
  • Network accessline 169
    本项目参与 [麦当劳程序员创意开发大赛](https://github.com/M-China/mcd-developer-innovation-challenge):
  • Network accessline 171
    - 参赛申请:[Issue #716](https://github.com/M-China/mcd-developer-innovation-challenge/issues/716)
  • Network accessline 172
    - 活动规则:[activityGuidelines.md](https://github.com/M-China/mcd-developer-innovation-challenge/blob/main/activityGuidelines.md)
  • Network accessline 179
    **知识产权说明:** 本仓库网页及代码采用 MIT 许可证。十六篇课文均为新写的原创文字,只借经典作品的情境与语气,不整段复制原著;逐篇的灵感来源、公有领域状态与仍然存在的风险写在 [COPYRIGHT.md](COPYRIGHT.md) 里(它同时列出了尚未做的核查,不是法律意见)。作品上线前请由仓库维护者复查涉及的文字、图像和品牌素材,合理权利人可通过 [Issues](https://github.com/miaoyhcat/mcd-chinese-class/iss

SECURITY.md

  • Network accessline 5
    - 如需提交 Bug 报告,请使用脱敏模拟订单,移除 Token、手机号、地址、订单号、时间及门店信息。 - 在网页里导入 JSON 时,文件只在本地浏览器读取。网页不依赖任何第三方 CDN、广告或分析服务。 - 问题反馈:https://github.com/miaoyhcat/mcd-chinese-class/issues
  • Network accessline 7
    - 问题反馈:https://github.com/miaoyhcat/mcd-chinese-class/issues

build_web.py

  • Executable scriptline 1
    #!/usr/bin/env python3

console_utf8.py

  • Executable scriptline 1
    #!/usr/bin/env python3

docs/index.html

  • Network accessline 9
    <meta property="og:description" content="点几样餐品,生成专属课文。离线可玩,接入麦当劳 MCP 可导入真实订单。"> <title>麦门语文课 | 今日这单,值得一篇课文</title> <link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Crect width='10
  • Network accessline 10
    <title>麦门语文课 | 今日这单,值得一篇课文</title> <link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Crect width='100' height='100' rx='24' fill='%23b74135'/%3E%3Ctext x='50' y='70' text-anchor='m
  • Network accessline 11
    <link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Crect width='100' height='100' rx='24' fill='%23b74135'/%3E%3Ctext x='50' y='70' text-anchor='middle' font-size='67'%3E📖%3C/text%3
  • Network accessline 25
    <header class="topbar">  <a class="brand" href="#top" aria-label="麦门语文课首页"><span class="brand-icon">麦</span><span>麦门语文课<small>THE LITERARY ORDER</small></span></a>  <nav aria-label="主导航"><a href="#studio">开始创作</a><a href="#about">关于项目</a><a
  • Network accessline 26
    <a class="brand" href="#top" aria-label="麦门语文课首页"><span class="brand-icon">麦</span><span>麦门语文课<small>THE LITERARY ORDER</small></span></a>  <nav aria-label="主导航"><a href="#studio">开始创作</a><a href="#about">关于项目</a><a class="nav-github" href=
  • Network accessline 27
    <nav aria-label="主导航"><a href="#studio">开始创作</a><a href="#about">关于项目</a><a class="nav-github" href="https://github.com/miaoyhcat/mcd-chinese-class" target="_blank" rel="noopener noreferrer">GitHub <span aria-hidden="true">↗</span></a></nav
  • Network accessline 89
    <section id="about" class="about-section">  <div><p class="section-kicker">MORE THAN A JOKE</p><h2>写给有点饿,<br>又有点喜欢文字的人。</h2></div>  <div class="about-body"><p>我们把点餐后的几分钟,变成一场小小的文学实验。每篇故事重新写作,餐品根据你的选择填入;不用登录、没有广告,也不调用付费大模型。</p><p>本项目另提供真实的麦当
  • Network accessline 90
    <div><p class="section-kicker">MORE THAN A JOKE</p><h2>写给有点饿,<br>又有点喜欢文字的人。</h2></div>  <div class="about-body"><p>我们把点餐后的几分钟,变成一场小小的文学实验。每篇故事重新写作,餐品根据你的选择填入;不用登录、没有广告,也不调用付费大模型。</p><p>本项目另提供真实的麦当劳 MCP 只读接入:在自己的电脑运行命令行,读取最近有效订单,再导出只有餐品名称与数量
  • Network accessline 91
    <div class="about-body"><p>我们把点餐后的几分钟,变成一场小小的文学实验。每篇故事重新写作,餐品根据你的选择填入;不用登录、没有广告,也不调用付费大模型。</p><p>本项目另提供真实的麦当劳 MCP 只读接入:在自己的电脑运行命令行,读取最近有效订单,再导出只有餐品名称与数量的 JSON,交给网页继续创作。浏览器不会接收你的 Token。</p><a href="https://github.com/miaoyhcat/mcd-chinese-cl
  • Network accessline 92
    </section> </main> <footer class="site-footer"><span class="footer-brand">麦门语文课 <small>MADE FOR WORDS & FOOD</small></span><p>独立开发 · 非麦当劳官方产品 · 所有作品为原创文学戏仿</p><a href="https://github.com/miaoyhcat/mcd-chinese-class/issues" target="_blank" r
  • Network accessline 93
    </main> <footer class="site-footer"><span class="footer-brand">麦门语文课 <small>MADE FOR WORDS & FOOD</small></span><p>独立开发 · 非麦当劳官方产品 · 所有作品为原创文学戏仿</p><a href="https://github.com/miaoyhcat/mcd-chinese-class/issues" target="_blank" rel="noopene
  • Network accessline 94
    <footer class="site-footer"><span class="footer-brand">麦门语文课 <small>MADE FOR WORDS & FOOD</small></span><p>独立开发 · 非麦当劳官方产品 · 所有作品为原创文学戏仿</p><a href="https://github.com/miaoyhcat/mcd-chinese-class/issues" target="_blank" rel="noopener norefe

engine.py

  • Executable scriptline 1
    Executable file

mcd_chinese.py

  • Executable scriptline 1
    #!/usr/bin/env python3

mcd_mcp.py

  • Executable scriptline 1
    Executable file
  • Network accessline 13
    SERVER = 'https://mcp.mcd.cn'
  • Access to secretsline 92
    [Credential-related source omitted]
  • Network accessline 93
    [Credential-related source omitted]
  • Network accessline 94
    raise MCPError('缺少 MCD_MCP_TOKEN,请先配置环境变量')         self._opener = opener or urllib.request.urlopen         self._counter = 0
  • Network accessline 95
    self._opener = opener or urllib.request.urlopen
  • Network accessline 105
    if params is not None:             data['params'] = params         req = urllib.request.Request(SERVER, data=json.dumps(data).encode('utf-8'), method='POST')
  • Network accessline 106
    data['params'] = params         req = urllib.request.Request(SERVER, data=json.dumps(data).encode('utf-8'), method='POST')         req.add_header('Authorization', f'Bearer {self.token}')
  • Network accessline 107
    req = urllib.request.Request(SERVER, data=json.dumps(data).encode('utf-8'), method='POST')

mcp-config.example.json

  • Network accessline 3
    "mcd-mcp": {       "type": "streamablehttp",       "url": "https://mcp.mcd.cn",
  • Network accessline 4
    "type": "streamablehttp",       "url": "https://mcp.mcd.cn",       "headers": {
  • Network accessline 5
    "url": "https://mcp.mcd.cn",
  • Access to secretsline 7
    [Credential-related source omitted]

tests/browser_smoke.py

  • Executable scriptline 1
    Executable file

tests/test_build.py

  • Executable scriptline 1
    Executable file
  • Network accessline 27
    self.assertNotIn('innerHTML',page)         self.assertNotIn('课后习题',page)         self.assertNotIn('http://fonts',page)
  • Network accessline 28
    self.assertNotIn('课后习题',page)         self.assertNotIn('http://fonts',page)         self.assertFalse(re.search(r'<script\s+[^>]*src=',page))
  • Network accessline 29
    self.assertNotIn('http://fonts',page)
  • Network accessline 42
    config=json.loads((ROOT/'mcp-config.example.json').read_text('utf-8'))         self.assertEqual(config['mcpServers']['mcd-mcp']['headers']['Authorization'],'Bearer ${MCD_MCP_TOKEN}')         self.assertEqual(config['mcpServers']['mcd-mcp'][
  • Access to secretsline 43
    [Credential-related source omitted]
  • Network accessline 44
    self.assertEqual(config['mcpServers']['mcd-mcp']['url'],'https://mcp.mcd.cn')
  • Access to secretsline 59
    [Credential-related source omitted]

tests/test_engine.py

  • Executable scriptline 1
    Executable file

tests/test_mcp.py

  • Executable scriptline 1
    Executable file

web/app.js

  • Executable scriptline 1
    Executable file

web/template.html

  • Network accessline 9
    <meta property="og:description" content="点几样餐品,生成专属课文。离线可玩,接入麦当劳 MCP 可导入真实订单。"> <title>麦门语文课 | 今日这单,值得一篇课文</title> <link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Crect width='10
  • Network accessline 10
    <title>麦门语文课 | 今日这单,值得一篇课文</title> <link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Crect width='100' height='100' rx='24' fill='%23b74135'/%3E%3Ctext x='50' y='70' text-anchor='m
  • Network accessline 11
    <link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Crect width='100' height='100' rx='24' fill='%23b74135'/%3E%3Ctext x='50' y='70' text-anchor='middle' font-size='67'%3E📖%3C/text%3
  • Network accessline 15
    <header class="topbar">  <a class="brand" href="#top" aria-label="麦门语文课首页"><span class="brand-icon">麦</span><span>麦门语文课<small>THE LITERARY ORDER</small></span></a>  <nav aria-label="主导航"><a href="#studio">开始创作</a><a href="#about">关于项目</a><a
  • Network accessline 16
    <a class="brand" href="#top" aria-label="麦门语文课首页"><span class="brand-icon">麦</span><span>麦门语文课<small>THE LITERARY ORDER</small></span></a>  <nav aria-label="主导航"><a href="#studio">开始创作</a><a href="#about">关于项目</a><a class="nav-github" href=
  • Network accessline 17
    <nav aria-label="主导航"><a href="#studio">开始创作</a><a href="#about">关于项目</a><a class="nav-github" href="https://github.com/miaoyhcat/mcd-chinese-class" target="_blank" rel="noopener noreferrer">GitHub <span aria-hidden="true">↗</span></a></nav
  • Network accessline 79
    <section id="about" class="about-section">  <div><p class="section-kicker">MORE THAN A JOKE</p><h2>写给有点饿,<br>又有点喜欢文字的人。</h2></div>  <div class="about-body"><p>我们把点餐后的几分钟,变成一场小小的文学实验。每篇故事重新写作,餐品根据你的选择填入;不用登录、没有广告,也不调用付费大模型。</p><p>本项目另提供真实的麦当
  • Network accessline 80
    <div><p class="section-kicker">MORE THAN A JOKE</p><h2>写给有点饿,<br>又有点喜欢文字的人。</h2></div>  <div class="about-body"><p>我们把点餐后的几分钟,变成一场小小的文学实验。每篇故事重新写作,餐品根据你的选择填入;不用登录、没有广告,也不调用付费大模型。</p><p>本项目另提供真实的麦当劳 MCP 只读接入:在自己的电脑运行命令行,读取最近有效订单,再导出只有餐品名称与数量
  • Network accessline 81
    <div class="about-body"><p>我们把点餐后的几分钟,变成一场小小的文学实验。每篇故事重新写作,餐品根据你的选择填入;不用登录、没有广告,也不调用付费大模型。</p><p>本项目另提供真实的麦当劳 MCP 只读接入:在自己的电脑运行命令行,读取最近有效订单,再导出只有餐品名称与数量的 JSON,交给网页继续创作。浏览器不会接收你的 Token。</p><a href="https://github.com/miaoyhcat/mcd-chinese-cl
  • Network accessline 82
    </section> </main> <footer class="site-footer"><span class="footer-brand">麦门语文课 <small>MADE FOR WORDS & FOOD</small></span><p>独立开发 · 非麦当劳官方产品 · 所有作品为原创文学戏仿</p><a href="https://github.com/miaoyhcat/mcd-chinese-class/issues" target="_blank" r
  • Network accessline 83
    </main> <footer class="site-footer"><span class="footer-brand">麦门语文课 <small>MADE FOR WORDS & FOOD</small></span><p>独立开发 · 非麦当劳官方产品 · 所有作品为原创文学戏仿</p><a href="https://github.com/miaoyhcat/mcd-chinese-class/issues" target="_blank" rel="noopene
  • Network accessline 84
    <footer class="site-footer"><span class="footer-brand">麦门语文课 <small>MADE FOR WORDS & FOOD</small></span><p>独立开发 · 非麦当劳官方产品 · 所有作品为原创文学戏仿</p><a href="https://github.com/miaoyhcat/mcd-chinese-class/issues" target="_blank" rel="noopener norefe

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Signal confidence: 40 facts

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.