用途
feishu-user-plugin 是一个飞书 / Lark 的 MCP 服务器 + CLI 工具,目标是让 Claude Code、Codex、脚本等直接接管飞书工作流。官方定位为覆盖 IM、文档、多维表格、知识库、云空间、日历、任务 v2、OKR、实时事件,提供约 85 个工具、3 层鉴权、9 个 MCP prompts,MIT 许可,要求 Node ≥18。
兼容 Claude Code、Codex、Cursor、Windsurf、VS Code、Claude Desktop、OpenClaw 等 MCP 客户端。
主要能力
以用户本人身份发消息(8 个):text / image / file / 富文本 post / 卡片 / 批量。官方资料称,用户身份发消息有两条路径:飞书官方 OAuth scope im:message.send_as_user(需创建自建应用 + 管理员审批),或本仓的 cookie + protobuf 路径(cookie 抓出来就能跑)。
读群与 P2P 私聊(17 个):群消息 / 私聊 / merge_forward 自动展开 / URL 与飞书文档链接自动提取 / 外部群自动 fallback 到 UAT。
文档生态(27 个):飞书文档(含 read_doc_markdown,官方称省约 60% token)/ 多维表格(500 条批量)/ 知识库(含 write CRUD)/ 云空间。
协作工具(21 个):日历(读 + 写)/ 任务 v2(含成员管理)/ OKR(读 + 进展记录)/ 联系人。
实时事件(2 个):机器级 SSOT WS,每条事件全机精确投递一次。
诊断与多账号(4 个):N 个 profile 自动切换,写路径不切(避免错号建资源)。
另有 9 个 MCP prompts(slash commands)。
使用方式与鉴权
三层鉴权相互独立 —— 配置任意一层,对应工具可用。
- cookie 路径:官方资料明确限定范围 —— “零应用门槛”仅对纯文本 / post 类用户身份发消息严格成立,即
send_to_user/send_to_group/send_as_user/send_post_as_user/batch_send(text/post 模式)5 个工具。send_image_as_user/send_file_as_user的发送本身走 cookie,但 image_key / file_key 必须先经 Official API(upload_image/upload_file)上传;send_card_as_user服务端禁了 cookie 通道,始终走 bot。 - 官方 API:本仓其他能力(读群消息、操作文档 / 表格 / 知识库 / 云空间 / 日历 / 任务 / OKR / 实时事件等)仍需创建飞书自建应用(
LARK_APP_ID+LARK_APP_SECRET)。 - OAuth:对应官方
im:message.send_as_userscope 路径。
cookie 获取方式包括 Playwright 自动扫码或 DevTools 手动;创建飞书应用与各客户端配置详见其 docs/AUTH-SETUP.md。
多账号:~/.feishu-user-plugin/credentials.json 支持多 profile,单台机器一处配置可覆盖多个飞书账号 / 多个企业。读路径工具在失败码 91403 / 1254301 / 1254000 / 99991672 / HTTP 403 时自动跨 profile retry;写路径不自动切,避免错号创建资源;单调用可用 via_profile: "<name>" 钉到指定 profile。
实时事件:机器上单进程持有 WS owner 锁,所有 MCP 进程共享 events.jsonl,每条事件全机恰好一次。默认订阅 ["im.message.receive_v1"];要订阅审批 / 日历 / vc 等其他事件,需编辑 credentials.json::profiles[<active>].events,然后用 manage_ws_status(action=reconfig) 不重启重新订阅。
适用场景
官方资料给出的适用场景包括:以用户身份发消息、读 P2P 私聊但不想或不能创建飞书自建应用(个人开发者 / 没管理员权限);使用 MCP 协议(Codex / Cursor / Windsurf / VS Code 等)且不需要邮件 / 审批 / HR / 会议纪要等本仓未覆盖的域;多 MCP 客户端共存且需要“实时事件全机精确投递一次”。需要邮件 / 审批 / 考勤 / HR / 招聘 / 会议纪要等业务系统域,或已有飞书应用 + 管理员已批 OAuth scope 且偏好官方长期稳定路径时,官方建议用官方方案。
限制
- 仅支持 feishu.cn —— Lark 国际版(lark.com)的 WSClient 当前不支持,实时事件 WS 不支持 Lark 国际版。
- Cookie 寿命:12–24 小时无心跳过期,需重新登录 feishu.cn 拿 cookie。
- 协议变化:cookie + protobuf 层依赖飞书 web 客户端协议,飞书更新可能失效(机器人能力不受影响)。
- 卡片:cookie 通道发卡片服务端不可用,机器人通道可发。
- 已删除:md → wiki 双向同步、Mermaid → 飞书画板,官方说明详见 ROADMAP.md 的“已删除”段。
- 官方 larksuite/lark-openapi-mcp 被描述为 Beta 且最后更新 2025-08,README 明文不支持文件上传下载、不支持文档编辑;官方 CLI 已支持
messages-send --as user,但为 CLI 形态而非 MCP。
隐私
官方说明该插件为本地运行的 MCP 服务器,凭证留在用户本机,不上报遥测,不与插件作者后台通信。插件本身不收集任何数据;LARK_COOKIE / LARK_APP_ID / LARK_APP_SECRET / LARK_USER_ACCESS_TOKEN / LARK_USER_REFRESH_TOKEN 全部由用户主动配置,来源于用户自己的飞书 / Lark 账号。仅处理用户通过 MCP 工具调用主动请求的数据,不留存、不分析。凭证存储于 ~/.feishu-user-plugin/credentials.json(mode 0600),可选事件日志 ~/.feishu-user-plugin/events.jsonl(10 MB / 20 MB 自动轮转)。仅与用户自己的飞书租户和用户运行的 AI 客户端通信,无 CDN / 分析 / 错误上报。清除方式:rm -rf ~/.feishu-user-plugin && npm uninstall -g feishu-user-plugin。