找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2275

积分

0

好友

304

主题
发表于 3 小时前 | 查看: 3| 回复: 0

背景:为什么要把麦当劳 MCP 接进多维表格?

看到麦当劳发布 MCP 之后,我第一反应是:如果只在对话框里用,每次都要问 AI “今天有啥券”,交互成本太高。

更直观的方式是把优惠信息“铺”到飞书多维表格里:活动日历、卡包、领券记录全在表格里,一眼看全,还能配合飞书自动化定时提醒/一键触发。

说明:多维表格原生 Agent 节点当前有 Bug(需等待修复),所以本文采用 n8n 作为中转,完整跑通“触发 → MCP 调用 → 数据清洗 → 写入飞书”的流程。

n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 1

n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 2


01 获取麦当劳 MCP Token

一切的起点是先拿到麦当劳官方发给你的 Token。没有它,后面的流程都跑不通。

  1. 打开官网:浏览器访问  open.mcd.cn 。

    n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 3

  2. 登录账号:点击右上角的“登录”,用手机号验证码登录。

    n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 4

  3. 进入控制台:登录成功后,原来的“登录”按钮会变成“控制台”,点进去。

  4. 激活服务:系统会弹窗,点击“激活”按钮。

    n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 5

  5. 签署协议:勾选同意服务协议。

    n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 6

  6. 复制密钥:屏幕上会出现一串长长的 MCP Token,点击“一键复制”。

    n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 7

注意:这串字符就是你的身份凭证,不要泄露。建议先粘贴到记事本备用。


02 n8n 工作流搭建

这一步是整个系统的核心:在 n8n 里完成从触发到写入飞书的全过程。

整体逻辑是一条直线:

Trigger 触发 → Agent 模型 + MCP 调用 → Code 数据清洗 → Feishu 写入

n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 8

1) 触发器

一切的开始。这里有两种选择:

  • 手动或定时触发:对应“麦麦情报局长”和“麦麦钱包管家”。可以用 Schedule 节点,让它每天早上 9 点准时运行。

    n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 9

  • Webhook 触发:对应“麦麦福利官”。需要一个 Webhook 节点,把它生成的 URL 填到飞书按钮里,实现“点击飞书按钮即可触发 n8n 领券”。

2) Agent 节点(关键)

添加一个 AI Agent 节点,它需要连接两个助手:

  • Model 模型:推荐连接 DeepSeek,成本低且好用。
  • Tools 工具:在 Agent 节点 Tools 下方点加号,搜索并添加 MCP Client。(更多 MCP/Agent 相关话题可在 人工智能 板块延伸阅读)

n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 10

MCP Client 配置细节

  • Credentials 凭证:
    • Name 填 Authorization
    • Value 格式要求严格:必须是 Bearer + 空格 + 你的 Token
    • 正确示范:Bearer eyJhbGci...

n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 11

n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 12

Agent 提示词 Prompt 配置

  • 场景 A:麦麦情报局长(查活动日历)
**角色设定**: 你是麦当劳总部的“麦麦情报局长”,负责掌握所有最新的营销活动信息。你的说话风格专业、热情,带有麦当劳特色(喜欢用🍟、🍔等emoji)。

**核心任务**:
1. **日期检查**: 首先必须调用 `now-time-info` 工具获取当前日期。
2. **判断逻辑**: 
   - 如果当前日期是每月 **1号** (e.g., "2026-01-01"),或者用户明确要求“强制更新活动”,则调用 `campaign-calender` 获取活动日历。
   - 如果不是1号,且用户未强制要求,则**不调用**活动日历工具,直接返回空数组 `[]`。
3. **数据处理**: 
   - 将获取到的活动信息整理为 JSON 格式。
   - 必须包含字段: `活动日期`, `活动标题`, `活动内容`, `原始图片链接`。
   - **关键调整 - 活动内容 (Activity Content)**: 
     - 必须生成为**一段紧凑的文本**,**严禁换行**。
     - 模仿**朋友圈/小红书**文案风格,使用 Emoji 来分割不同的关键点。
     - 格式参考: "💥开年💥劲爆💥事件!㊙️某神秘巨星天团🛫空降常驻随心配1+1🌟「鱼酷玉咖牛」五大巨星🙋个个都是美味&品质担当👀连带着随心配也全面焕新💘红白配变蓝粉配,超养眼🔍记得来麦一探究竟!"
4. **输出要求**:
   - 仅输出纯 JSON 数组,不要包含 Markdown 代码块标记(如 ```json),也不要任何解释性文字。
   - 格式示例: `[{"活动日期": "...", "活动标题": "...", "活动内容": "💥开年...", ...}]`

n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 13

  • 场景 B:麦麦钱包管家(查优惠券)
**角色设定**: 你是用户的贴身“麦麦钱包管家”,精打细算,帮你管理每一张优惠券和每一个积分。

**核心任务**:
1. **信息同步**: 调用 `now-time-info` 获取当前时间。
2. **资产盘点**: 
   - 调用 `my-coupons` 获取用户当前拥有的优惠券。
   - (可选) 如果有积分查询工具,也一并调用。
3. **数据整合**:
   - 将券包信息整理为 JSON 格式。
   - 必须包含字段: `优惠券名称`, `优惠价格` (数字), `当前状态` (已领取/待使用), `优惠券图片`, `开始时间`, `结束时间`。
   - **字段说明**: `优惠券图片` 字段填入该优惠券的图片链接 URL。
4. **输出要求**:
   - 仅输出纯 JSON 数组,无 Markdown。

n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 14

  • 场景 C:麦麦福利官(领券)
**角色设定**: 你是行动力超强的“麦麦福利官”,收到指令(Webhook触发)后立即执行领券操作。

**核心任务**:
1. **执行领券**: 
   - 直接调用 `auto-bind-coupons` 工具。
   - **注意**:该工具会自动领取所有当前可用的优惠券,**无需任何入参**(不需要 couponId)。
   - 即使接收到参数,也请忽略,直接执行全量领取。
2. **结果反馈**:
   - 调用 `now-time-info` 记录执行时间。
   - 输出领券结果(成功/失败、领到了什么)。
3. **输出要求**:
   - 必须输出符合飞书表格要求的 **JSON 对象**。
   - 包含以下五个核心字段:
     - `执行时间`: 使用 `now-time-info` 获取的时间。
     - `执行结果摘要`: 简短的执行总结,例如 "✅ 成功领取 2 张优惠券" 或 "⚠️ 暂无新券可领"。
     - `获得的券`: 详细列出领到的券名称(如有多个用逗号分隔)。
     - `成功数量`: (数字) 成功领取的优惠券数量,例如 `2`。
     - `失败数量`: (数字) 领取失败的优惠券数量,例如 `0`。
   - **严禁**输出 Markdown 代码块,只输出纯 JSON 字符串。
   - 格式示例: `{"执行时间": "2026-01-12 10:00:00", "执行结果摘要": "✅ 领券成功", "获得的券": "麦辣鸡腿堡买一送一, 薯条(中)免费", "成功数量": 2, "失败数量": 0}`

n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 15

3) Code 节点:清洗 Agent 输出(必接)

Agent 输出往往不够“干净”,常见问题:

  • 会输出 ```json 这类 Markdown 标记
  • JSON 被截断
  • 或者某些场景输出的其实是纯文本

如果直接写进飞书,多维表格写入基本会报错。

n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 16

所以必须在 Agent 后面接一个 Code 节点,填入以下代码进行清洗(代码请原样粘贴):

const aiOutput = items[0].json.output || $node["Agent"].json.output;

function robustParse(input) {
    if (typeof input === 'object' && input !== null) return input;

    let str = String(input).trim();
    // 1. 去除 Markdown 代码块标记
    str = str.replace(/^```json\s*/i, '').replace(/^```\s*/i, '').replace(/\s*```$/, '');

    // 2. 尝试标准解析
    try { return JSON.parse(str); } catch (e) {}

    // 3. 修复被截断的 JSON 数组
    if (str.startsWith('[') && !str.endsWith(']')) {
        for (let i = str.length - 1; i >= 0; i--) {
            if (str[i] === '}') {
                const potentialJson = str.substring(0, i + 1) + ']';
                try {
                    const res = JSON.parse(potentialJson);
                    if (Array.isArray(res) && res.length > 0) return res;
                } catch (e) {}
            }
        }
    }

    // 4. JS 引擎执行
    try { return (new Function("return (" + str + ");"))(); } catch (e) {}

    // 5. 【新增】文本兜底:如果不是 JSON,直接作为文本返回
    // 只要不以 { 或 [ 开头,就默认是普通文本(如战报)
    if (!str.startsWith('{') && !str.startsWith('[')) {
        return { "text_content": str }; // 封装为对象
    }

    return null;
}

try {
    if (!aiOutput) throw new Error("AI 没有返回 output 字段");

    const parsedData = robustParse(aiOutput);

    if (!parsedData) {
        const preview = aiOutput.length > 100 ? aiOutput.slice(0, 100) + "..." : aiOutput;
        throw new Error(`解析彻底失败,原始内容: ${preview}`);
    }

    // 统一格式化为数组
    const resultItems = Array.isArray(parsedData) ? parsedData : [parsedData];
    return resultItems.map(item => ({ json: item }));

} catch (error) {
    throw new Error(`JSON解析错误: ${error.message}`);
}

4) 飞书节点配置:写入多维表格

数据洗干净后,最后一步就是写入飞书。在 Code 节点之后添加 Feishu Lark 节点。写入步骤最容易出错,建议按下面流程做。

n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 17

第一步:基础认证

目标:让 n8n 有权限操作你的飞书表格。

  1. 创建应用:登录飞书开放平台,点击“创建企业自建应用”。

    n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 18

  2. 获取 ID 和 Secret:在应用的“凭证与基础信息”页,复制 App ID 和 App Secret 填入 n8n。

    n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 19

  3. 关键权限(必做):在“权限管理”中开启多维表格相关权限,例如 bitable:app:read 和 bitable:record:create。

  4. 发布版本(必做):到“版本管理与发布”创建新版本并发布,否则权限不生效。

    n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 20

第二步:定位表格

告诉 n8n 数据要写到哪张表里。

  1. 选择“多维表格”。

    n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 21

  2. 多维表格 Token:打开你的多维表格,看浏览器链接。链接中 base/ 后面的一串字符就是 App Token。

    • 例如:bascnXXXXXXXX
  3. 多维表格 ID:同样在链接里,找到 table= 后面的那串字符。

    • 例如:tblXXXXXXXX

n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 22

第三步:操作与映射

  1. Operation:选择“新增记录”。

    n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 23

  2. 数据映射模式:强烈建议打开 Raw JSON 模式。直接映射字段更容易因为格式问题报错。(工作流/自动化类排障也可以参考 运维/DevOps/SRE 的相关思路)

Raw JSON 参考写法:

  • 必须使用 JSON.stringify() 包裹字符串类型变量,否则飞书会报 Unexpected token 错误。
{
  "fields": {
    "执行时间": {{ $json["执行时间"] ? JSON.stringify($json["执行时间"]) : 'null' }},
    "执行结果摘要": {{ $json["执行结果摘要"] ? JSON.stringify($json["执行结果摘要"]) : 'null' }},
    "获得的券": {{ $json["获得的券"] ? JSON.stringify($json["获得的券"]) : 'null' }}
  }
}

特别提醒:配置完成后,请务必检查是否在多维表格右上角“添加应用”中添加了你的机器人。这一步非常容易漏掉。

n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 24


03 飞书多维表格搭建

后端逻辑跑通后,需要在飞书里建好“基地”接收数据:新建一个多维表格,命名为“麦麦福利小助手”。

需要建立三张表,分别对应 n8n 的三条输出。字段类型要严格按下面设置,否则写入会报错。(飞书表格/权限/字段等常见问题也可在 技术文档 类内容里按关键词查避坑)

表 1:优惠日历

用于接收每日推送的活动信息:

  1. 活动日期:文本类型
  2. 活动标题:文本类型
  3. 活动内容:文本类型(存放活动文案)
  4. 原始图片链接:文本类型(务必选文本类型,直接存 URL;选“超链接”类型会写入报错)

n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 25

表 2:我的卡包

用于同步账户里当前所有优惠券:

  1. 优惠券名称:文本类型
  2. 优惠价格:货币类型
  3. 当前状态:文本类型
  4. 优惠券图片:文本类型(同样选文本类型)
  5. 开始时间:文本类型
  6. 结束时间:文本类型

n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 26

表 3:领券记录

“一键领券”后,在这里看到领了哪些券:

  1. 执行时间:文本类型
  2. 执行结果摘要:文本类型
  3. 获得的券:文本类型
  4. 成功数量:数字类型
  5. 失败数量:数字类型

n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 27


04 飞书自动化流程配置

光有表还不够,还需要它能“主动叫你”。这里推荐两条飞书原生自动化,打通“情报 → 提醒 → 领券”。

A. 每日活动推送

功能:每天早上 9 点,自动把当天的活动发给你。

n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 28

配置步骤:

  1. 触发器:选择“到达记录中的时间时”
    • 数据表:优惠日历
    • 时间字段:活动日期,时间设为 09:00
  2. 操作:选择“发送站内信消息”
  3. 消息内容:
☀️ 早安!今日麦麦福利情报:
🍟 {活动标题}
📝 {活动内容}
👉 点击查看海报: {原始图片链接}

B. 未领券提醒 & 一键领取

功能:每天下午 5 点 20 自动扫描卡包,发现有“未领取”的券就提醒,并给一个领券按钮(链接到 n8n Webhook)。

n8n+飞书多维表格接入麦当劳MCP自动领券 - 图片 - 29

配置步骤:

  1. 触发器:选择“定时触发”
    • 时间设为 17:20,重复周期“每天”
  2. 操作 1:选择“查找记录”
    • 数据表:我的卡包
    • 筛选条件:当前状态 等于 未领取
  3. 循环:系统会自动添加 Loop,遍历每条记录
  4. 操作 2(在循环内):选择“发送消息卡片”或“发送站内信”
    • 接收人:你自己
    • 消息内容:
⏰ 羊毛预警!这张券你还没领:
🎫 {优惠券名称}
💰 价值: {优惠价格} 元
👇 猛戳下方链接一键领取:
{这里填入你的 n8n Webhook URL}

05 写在最后:这套思路还能接什么?

即使多维表格原生 Agent 节点暂时有 Bug,用 n8n 中转也能把“表格 + MCP”这条路先跑通。

MCP 更像一条条通往外部世界的管道,多维表格则是一个可视化控制台:今天接麦当劳,明天就可以把同样的套路接到 ERP、智能家居、内部系统……你更想把哪类数据和动作自动化起来?

想继续看更多类似实战,也可以到 云栈社区 交流与沉淀。




上一篇:RustDesk开源远程桌面:运维低延迟跨平台指南
下一篇:Linux Shell脚本实战:Bash入门与运维自动化
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-18 22:02 , Processed in 0.227444 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表