飞书 MCP 接入 + AI 托管飞书任务 实战记录#
一、目标#
让 Cursor 里的 AI 直接"统领飞书":读任务、读写文档/多维表格/日历、发消息,并把"飞书待办 → 调本地 skill 分析/执行 → 结果写回任务 → 回复来源消息@人"整条链路自动化。
二、接入 lark-mcp(官方 @larksuiteoapi/lark-mcp)#
- 环境:Node ≥ 20(实测 v22 OK),最新版 0.5.x。
- 配置写在全局
~/.cursor/mcp.json的mcpServers.lark-mcp:{ "command": "npx", "args": ["-y","@larksuiteoapi/lark-mcp","mcp", "-a","<App ID>","-s","<App Secret>", "-d","https://open.feishu.cn", "--token-mode","auto","--oauth", "-t","preset.default,preset.im.default,preset.calendar.default,preset.task.default,task.v2.task.list,task.v2.task.get,im.v1.message.reply,im.v1.message.get,im.v1.chat.get,contact.v3.user.batchGetId"] } - App ID/Secret:开放平台 → 自建应用 → 凭证与基础信息。
- 用户身份:终端
npx -y @larksuiteoapi/lark-mcp login -a <id> -s <secret>,60s 内点授权 URL。 - 国际版 Lark 把
-d换https://open.larksuite.com。
三、token-mode 选型(关键)#
user_access_token模式会按 token 类型过滤工具,把"机器人发消息(send_as_bot)“等 tenant 工具滤掉 → 发消息工具不出现。- 解法:用
--token-mode auto,不按 token 过滤,每次调用用useUAT控制身份。
四、踩坑清单(最值钱的部分)#
- 权限是逐步暴露的:工具"注册了”≠ scope “授权了”,真调用才报
99991672 缺 scope。 - 加 scope 必须发版本 + 重登:新 scope 要"发布生效版本"才进授权页;
login重登才进 token。重启 MCP ≠ 重新登录(进程复用磁盘 token;且内存里可能还留着旧 token 造成假象)。 - 机器人名字/头像 = 已发布版本信息,改完要发版本,老消息不回刷。
- IM 消息发送方永远是「应用」:OpenAPI 发/回消息即使带用户令牌也显示 bot,无法以真人名义发;
useUAT只决定"能往哪些会话发 / 资源归属"。 - 回复原消息要 message_id:任务来源链接给的是
position(消息序号),不是 message_id;要im.v1.message.list读群历史定位,需im:message.group_msg。 - 机器人必须在群里才能在该群发/回消息。
- lindorm:
rows是保留字;GROUP BY SELECT 不能放字符串常量别名;查询带 offer_id/event_date 等高选择性键。
五、实战产出#
- 事件配置:com.paymaya offer 8037811/8037812
REGV2_SUCCESS配 40%(offer 级 type=3,source 79/PH,event_value 沿用现有,已核验 id 23418/23419);source 19 sappocaf_complete_registration查库已 50% → no-op。 - 行为异常分析:6462846884 / 1658697924 / 561524792 事件执行正常(被拒属 MMP 端);1500217666 无任何 active 事件配置 → 真·“未出事件”,需补配;1615506534 仅启动事件;6739185971 停量。
- 任务回写规约:一次
task.patch改 summary+description;来源 URL 原样保留;执行类标【AI已完成】、分析类标【AI已分析】、缺信息标【AI已分析·待补充】。
六、对账口径(行为异常)#
expected = install_total × e_rate/100,实际 = offer_retention_event_log.raw_event_count。无 active 配置或执行=0 才是真漏;事件在跑但被拒,多为 MMP 行为质量判定。
七、沉淀#
已抽象成本地 skill:~/.cursor/skills/feishu-task-autopilot/,以后一句"处理我的飞书任务"即可触发整条流水线。