Not in the top 1,000 by GitHub stars

Zafer-Liu/mcd-event-radar

麦当劳 MCP Agent Skill:查「附近有什么麦麦活动」,生成卡通活动地图——门店位置取自官方经纬度,只展示已核实可预约场次 🍟

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/mcd-event-radar/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → e06f7df51d62

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit e06f7df51d620356dd7386745394eaac92a6de25

90GitHub stars
-1star in 7 days
1skill in this repository
8commits in 30 days

Heat

1.4
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

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

Stars over time

Oct 25, 2026Nov 2, 202691

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

Individual skills in this repository

How it works

mcd-event-radar

When your agent uses it

麦麦活动雷达——查「附近有什么麦当劳活动」「周末去哪家麦麦主题活动」「某城市的生日派对/主题派对/体验营/品鉴会/读书会及可预约场次」,并可把结果生成卡通活动地图(门店位置取自官方经纬度)。首次使用自动引导申请官方 Token 并一键配置连接器,支持城市级位置检测;区分「已核实可预约场次」与「活动线索待核实」,用户确认后才创建主题活动订单。

What it loads into context

Frontmatter

133 tokens

Always available to the agent

SKILL.md

3,543 tokens

When the skill is activated

Reference documents

0 tokens

Loaded on request

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

The playbook

  1. 初次使用 · 小白三步走(未配置时必走)
  2. 第 0 步 · 连接器自检(每次查询前必做)
  3. 「附近」与城市识别(需用户确认)
  4. 查询流程
  5. 预约边界
  6. 输出样式 · HTML 活动地图(默认交付物)
  7. 排障速查
  8. 内置脚本(位于本 Skill 目录 scripts/ 下)

Scripts executed separately

  • scripts/check-connector.mjs
  • scripts/lib/html-map.mjs
  • scripts/lib/mcp-client.mjs
  • scripts/live.mjs
  • scripts/locate.mjs
  • scripts/radar.mjs
  • scripts/setup-connector.mjs

Files

  • SKILL.mdcore12,657 bytes
  • SKILL.mdcore12,657 bytes
  • SKILL.mdcore12,657 bytes
  • SKILL.mdcore12,657 bytes
  • SKILL.mdcore12,657 bytes
  • SKILL.mdcore12,657 bytes
  • SKILL.mdcore12,657 bytes
  • SKILL.mdcore12,657 bytes
  • scripts/check-connector.mjsruns10,258 bytes
  • scripts/lib/html-map.mjsruns49,367 bytes
  • scripts/lib/mcp-client.mjsruns4,933 bytes
  • scripts/live.mjsruns9,995 bytes
  • scripts/locate.mjsruns4,687 bytes
  • scripts/radar.mjsruns12,319 bytes
  • scripts/setup-connector.mjsruns9,085 bytes
Read SKILL.md

# 麦麦活动雷达

回答「附近有什么麦当劳活动」「周末能去哪个麦麦主题活动」「帮我查某城市的派对或品鉴会」等问题。数据全部来自麦当劳中国官方 MCP(`mcd-mcp` 连接器),并配套直连命令行作为兜底。

**红线**:不得用网页搜索、模型记忆、`examples/sample-events.json` 或任何推测数据冒充实时 MCP 结果。查不到就说查不到,并说明已查范围与缺失环节。

## 初次使用 · 小白三步走(未配置时必走)

第 0 步自检发现「未配置」时,按下面流程引导,全程不需要用户编辑任何 JSON:

**第 1 步 · 获取 Token(约 1 分钟)**

把下面这段话**原样**发给用户:
View the complete source on GitHub

Skills included

  • mcd-event-radar

Repository facts

License
MIT
Created
Oct 9, 2026
Last pushed
Oct 10, 2026
Forks
0
Open issues
1
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 4, 2026

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

Show 7 notes
  • skill/mcd-event-radar/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skill/mcd-event-radar/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skill/mcd-event-radar/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skill/mcd-event-radar/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skill/mcd-event-radar/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skill/mcd-event-radar/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skill/mcd-event-radar/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 50 signals by file

skill/mcd-event-radar/SKILL.md

  • Network accessline 20
    > 打开麦当劳 MCP 开放平台:**https://open.mcd.cn/mcp/doc**
  • Access to secretsline 36
    [Credential-related source omitted]
  • Network accessline 113
    | 一个麦当劳工具都检索不到 | 走第 0 步;多数是未配置(走三步走)或未点「Trust」 | | 连接器已启用但工具仍不出现 | 重开一轮会话;用 live.mjs 兜底查询 | | 调用返回 HTTP 401 / 403 | Token 失效或权限不足:请用户到 https://open.mcd.cn/mcp/doc 重新申请,重跑 setup-connector.mjs 覆盖;不要反复重试 |
  • Network accessline 114
    | 连接器已启用但工具仍不出现 | 重开一轮会话;用 live.mjs 兜底查询 | | 调用返回 HTTP 401 / 403 | Token 失效或权限不足:请用户到 https://open.mcd.cn/mcp/doc 重新申请,重跑 setup-connector.mjs 覆盖;不要反复重试 | | 调用返回 HTTP 429 | 触发限流(每 Token 每分钟 600 次):暂停片刻再查,别加大并发 |
  • Network accessline 115
    | 调用返回 HTTP 401 / 403 | Token 失效或权限不足:请用户到 https://open.mcd.cn/mcp/doc 重新申请,重跑 setup-connector.mjs 覆盖;不要反复重试 |

skill/mcd-event-radar/scripts/check-connector.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 19
    const SERVER_KEY = 'mcd-mcp'; const EXPECTED_TYPE = 'streamableHttp'; const EXPECTED_URL = 'https://mcp.mcd.cn';
  • Network accessline 21
    const EXPECTED_URL = 'https://mcp.mcd.cn';
  • Access to secretsline 74
    [Credential-related source omitted]
  • Access to secretsline 79
    [Credential-related source omitted]
  • Access to secretsline 83
    [Credential-related source omitted]
  • Access to secretsline 92
    [Credential-related source omitted]
  • Access to secretsline 98
    [Credential-related source omitted]
  • Access to secretsline 141
    [Credential-related source omitted]
  • Access to secretsline 145
    [Credential-related source omitted]
  • Access to secretsline 181
    [Credential-related source omitted]

skill/mcd-event-radar/scripts/lib/html-map.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 891
    '<meta name="viewport" content="width=device-width, initial-scale=1">',     `<title>${escapeHtml(title)}</title>`,     '<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 32 32%27%3E%3Ccir
  • Network accessline 892
    `<title>${escapeHtml(title)}</title>`,     '<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 32 32%27%3E%3Ccircle cx=%2716%27 cy=%2716%27 r=%2716%27 fill=%27%23DA291C%27/%3E%3Ctext x=%27
  • Network accessline 893
    '<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 32 32%27%3E%3Ccircle cx=%2716%27 cy=%2716%27 r=%2716%27 fill=%27%23DA291C%27/%3E%3Ctext x=%2716%27 y=%2722%27 text-anchor=%27middle%27 f
  • Network accessline 908
    '<span class="schip" id="st-time"></span>',     '</div>',     '<div class="mapwrap"><svg id="map" viewBox="0 0 1000 640" xmlns="http://www.w3.org/2000/svg"></svg><div class="mtooltip" id="mtooltip"></div></div>',
  • Network accessline 909
    '</div>',     '<div class="mapwrap"><svg id="map" viewBox="0 0 1000 640" xmlns="http://www.w3.org/2000/svg"></svg><div class="mtooltip" id="mtooltip"></div></div>',     '<div class="legend">',
  • Network accessline 910
    '<div class="mapwrap"><svg id="map" viewBox="0 0 1000 640" xmlns="http://www.w3.org/2000/svg"></svg><div class="mtooltip" id="mtooltip"></div></div>',

skill/mcd-event-radar/scripts/lib/mcp-client.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 4
    export const ENDPOINT = 'https://mcp.mcd.cn';
  • Network accessline 72
    let response;     try {       response = await fetch(this.endpoint, {
  • Network accessline 73
    try {       response = await fetch(this.endpoint, {         method: 'POST', headers, body: JSON.stringify(payload), signal: AbortSignal.timeout(25000),
  • Network accessline 74
    response = await fetch(this.endpoint, {

skill/mcd-event-radar/scripts/live.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Access to secretsline 188
    [Credential-related source omitted]

skill/mcd-event-radar/scripts/locate.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 41
    async function fromIpinfo() {   const response = await fetch('https://ipinfo.io/json', { signal: AbortSignal.timeout(TIMEOUT_MS) });
  • Network accessline 42
    const response = await fetch('https://ipinfo.io/json', { signal: AbortSignal.timeout(TIMEOUT_MS) });
  • Network accessline 49
    async function fromIpSb() {   const response = await fetch('https://api.ip.sb/geoip', {
  • Network accessline 50
    const response = await fetch('https://api.ip.sb/geoip', {

skill/mcd-event-radar/scripts/radar.mjs

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

skill/mcd-event-radar/scripts/setup-connector.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 25
    const ENTRY_TYPE = 'streamableHttp'; const ENTRY_URL = 'https://mcp.mcd.cn';
  • Network accessline 26
    const ENTRY_URL = 'https://mcp.mcd.cn';
  • Network accessline 61
    function validateToken(token) {   if (!token) fail('没有拿到 Token。请在开放平台申请后,用 MCD_MCP_TOKEN 环境变量、--token 参数或交互式输入提供。');   if (token.includes('YOUR_MCP_TOKEN')) fail('这是文档里的占位符,不是真实 Token。请到 https://open.mcd.cn/mcp/doc 申请并复制真实 Token。');
  • Network accessline 62
    if (!token) fail('没有拿到 Token。请在开放平台申请后,用 MCD_MCP_TOKEN 环境变量、--token 参数或交互式输入提供。');   if (token.includes('YOUR_MCP_TOKEN')) fail('这是文档里的占位符,不是真实 Token。请到 https://open.mcd.cn/mcp/doc 申请并复制真实 Token。');   if (/\s/.test(token)) fail('Token 中间含有空
  • Network accessline 63
    if (token.includes('YOUR_MCP_TOKEN')) fail('这是文档里的占位符,不是真实 Token。请到 https://open.mcd.cn/mcp/doc 申请并复制真实 Token。');
  • Access to secretsline 143
    [Credential-related source omitted]
  • Network accessline 174
    wroteEntry: SERVER_KEY,       online,       nextSteps: ok ? nextStepsText() : ['Token 验证未通过:请到 https://open.mcd.cn/mcp/doc 重新申请后,再次运行本脚本覆盖。'],
  • Network accessline 175
    online,       nextSteps: ok ? nextStepsText() : ['Token 验证未通过:请到 https://open.mcd.cn/mcp/doc 重新申请后,再次运行本脚本覆盖。'],     }, null, 2));
  • Network accessline 176
    nextSteps: ok ? nextStepsText() : ['Token 验证未通过:请到 https://open.mcd.cn/mcp/doc 重新申请后,再次运行本脚本覆盖。'],
  • Access to secretsline 189
    [Credential-related source omitted]
  • Network accessline 197
    } else {     line(`    验证未通过:${online.findings.join(';')}`);     line('    配置已写入。若提示 Token 无效,请到 https://open.mcd.cn/mcp/doc 重新申请后再次运行本脚本覆盖。');
  • Network accessline 198
    line(`    验证未通过:${online.findings.join(';')}`);     line('    配置已写入。若提示 Token 无效,请到 https://open.mcd.cn/mcp/doc 重新申请后再次运行本脚本覆盖。');     process.exitCode = 1;
  • Network accessline 199
    line('    配置已写入。若提示 Token 无效,请到 https://open.mcd.cn/mcp/doc 重新申请后再次运行本脚本覆盖。');

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.

Declared and executed: 1 fact
Signal confidence: 50 facts

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md skill/mcd-event-radar/SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md skill/mcd-event-radar/SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md skill/mcd-event-radar/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md skill/mcd-event-radar/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md skill/mcd-event-radar/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md skill/mcd-event-radar/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.