loading…
Search for a command to run...
loading…
All-in-one Feishu/Lark MCP server (84 tools). Send messages as the actual user (not bot), plus full official-API coverage of docs, bitable, wiki, drive, calenda
All-in-one Feishu/Lark MCP server (84 tools). Send messages as the actual user (not bot), plus full official-API coverage of docs, bitable, wiki, drive, calendar, tasks, OKR. Cookie + OAuth UAT + app-credential auth.
License: MIT Node.js MCP Tools npm PRs Welcome
中文 · English · Docs · CHANGELOG · npm
飞书 / Lark MCP 服务器,覆盖 IM、文档、多维表格、知识库、云空间、日历、任务 v2、OKR、实时事件。85 工具 · 3 层鉴权 · 9 MCP prompts · MIT licensed · Node ≥18。
兼容 Claude Code、Codex、Cursor、Windsurf、VS Code、Claude Desktop、OpenClaw 等 MCP 客户端。
用户身份发消息有两条路径:飞书官方 OAuth scope im:message.send_as_user(需要创建自建应用 + 管理员审批),或本仓的 cookie + protobuf 路径(cookie 抓出来就跑)。本仓不再是物理性独家,但仍然是"个人开发者 / 没有管理员权限 / 想快速试用户身份发消息"场景的简便选项。
⚠ 注意限定范围: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。本仓其他能力(读群消息、操作文档 / 表格 / 知识库 / 云空间 / 日历 / 任务 / OKR / 实时事件等)也仍然需要创建飞书自建应用(LARK_APP_ID+LARK_APP_SECRET),跟官方 MCP / CLI 完全一样。
+messages-send --as user(走 OAuth scope im:message.send_as_user),但 CLI 形态而不是 MCP,Codex / Cursor / Windsurf 等用它要 shell out什么时候用本仓:
什么时候用官方:需要邮件 / 审批 / 考勤 / HR / 招聘 / 会议纪要等业务系统域;或已有飞书应用 + 管理员批了 OAuth scope,偏好官方长期稳定路径。
完整诚实对比见 docs/COMPARISON.md。
你:帮我以我身份给王小明发:今天的代码 review 我看完了,有 3 个 nit
Claude:[调用 send_to_user] Sent
你:总结"工程组"群今天 9 点之后的讨论,发个日报到 #日报频道
Claude:[read_messages → 总结 → send_to_group] Sent
npx feishu-user-plugin setup --app-id <APP_ID> --app-secret <APP_SECRET>
npx feishu-user-plugin oauth # 拿用户 OAuth UAT
# 重启 Claude Code / Codex
cookie 获取(Playwright 自动扫码 / DevTools 手动)、创建飞书应用、各客户端配置详见 docs/AUTH-SETUP.md。
| 鉴权层 | 凭证 | 覆盖能力 | 工具数 |
|---|---|---|---|
| 用户身份(cookie + protobuf) | LARK_COOKIE |
以用户身份发文本 / 图片 / 文件 / 富文本 / @ / 批量 | 8 |
| 官方 API(机器人) | LARK_APP_ID + LARK_APP_SECRET |
群消息读写、文档、多维表格、知识库、云空间、日历、任务 v2、OKR、联系人、实时事件 WS | 70+ |
| 用户 OAuth UAT | LARK_USER_ACCESS_TOKEN + LARK_USER_REFRESH_TOKEN |
P2P 私聊读取、用户 chat 列表;写入文档 / Bitable / 日历 资源时以用户为 owner | 2 显式 + 全工具 UAT-first |
三层独立 —— 配置任意一层,对应工具可用。
send_as_usermerge_forward 自动展开 / URL + 飞书文档链接自动提取 / 外部群自动 fallback 到 UATread_doc_markdown 省 ~60% token)/ 多维表格(500 条批量)/ 知识库(含 write CRUD)/ 云空间完整工具列表 + 跨域 caveat + 用法 patterns 见 docs/TOOLS.md。
| Prompt | 说明 |
|---|---|
/send |
以用户身份发消息 |
/reply |
读最近消息然后回 |
/digest |
群 / P2P 最近消息总结 |
/search |
搜联系人 / 群 |
/doc |
搜 / 读 / 建文档 |
/table |
操作多维表格 |
/wiki |
搜知识库 |
/drive |
列云空间 / 建文件夹 |
/status |
检查三层鉴权状态 |
环境变量统一,配置文件位置和顶层键不同:
| 客户端 | 配置文件 | 顶层键 |
|---|---|---|
| Claude Code | ~/.claude.json(推荐全局)/ .mcp.json |
mcpServers.feishu-user-plugin |
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) |
mcpServers.feishu |
| Codex | ~/.codex/config.toml |
[mcp_servers.feishu-user-plugin] |
| Cursor | .cursor/mcp.json(项目级) |
mcpServers.feishu |
| VS Code (Copilot) | .vscode/mcp.json |
servers.feishu(注意 servers,非 mcpServers) |
| OpenClaw | ~/.openclaw/openclaw.json |
mcp.servers.feishu-user-plugin |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
mcpServers.feishu |
npx feishu-user-plugin setup # Claude Code
npx feishu-user-plugin setup --client codex # Codex
npx feishu-user-plugin setup --client both # 都写
各客户端完整 JSON 模板见 README.en.md MCP Client Configuration;详细安装与凭证流程见 docs/AUTH-SETUP.md。
~/.feishu-user-plugin/credentials.json 支持多 profile(默认 + 任意附加),单台机器一处配置覆盖多个飞书账号 / 多个企业。
npx feishu-user-plugin list-profiles
npx feishu-user-plugin switch-profile <name>
npx feishu-user-plugin keepalive --all # 跨 profile keepalive
读路径工具失败码 91403 / 1254301 / 1254000 / 99991672 / HTTP 403 时自动跨 profile retry。写路径不自动切(避免错号创建资源)。单调用覆盖:传 via_profile: "<name>" 钉到指定 profile。
详见 docs/TOOLS.md "多 profile auto-switch"。
机器上单进程持有 WS owner 锁,所有 MCP 进程共享 events.jsonl,每条事件全机恰好一次。
mcp call manage_ws_status --action info
mcp call manage_ws_status --action claim --force true
默认订阅 ["im.message.receive_v1"]。要订阅审批 / 日历 / vc 等其他事件,编辑 credentials.json::profiles[<active>].events,然后 manage_ws_status(action=reconfig) 不重启重新订阅。
仅支持 feishu.cn —— Lark 国际版(lark.com)的 WSClient 当前不支持。
| 文档 | 角色 |
|---|---|
| docs/TOOLS.md | 工具详细 + 跨域 caveat + 用法 patterns |
| docs/AUTH-SETUP.md | 安装 / 三层鉴权 / Cookie 抓取 / OAuth Scopes |
| docs/TROUBLESHOOTING.md | 错误码与诊断 |
| docs/RELEASING.md | 发版流程 + team-skills 同步 + 公告规则 |
| docs/REFACTOR-NOTES.md | 文件职责矩阵 |
| docs/CREDENTIALS-FORMAT.md | 凭证 schema |
| docs/TESTING-METHODOLOGY.md | 测试方法 |
| CONTRIBUTING.md | 贡献流程(中英双语) |
| ROADMAP.md | 路线图(forward-only) |
| CHANGELOG.md | 历史变更 |
完整 docs/ 索引:docs/README.md。
Issues / PR 欢迎。提交前先看 CONTRIBUTING.md。
飞书改协议导致功能挂掉 —— 开 issue 带错误日志即可。
本地运行的 MCP 服务器,凭证留在用户本机,不上报遥测,不与插件作者后台通信。完整文本见 PRIVACY.md。
LARK_COOKIE / LARK_APP_ID / LARK_APP_SECRET / LARK_USER_ACCESS_TOKEN / LARK_USER_REFRESH_TOKEN 全部由用户主动配置,来源于用户自己的飞书 / Lark 账号~/.feishu-user-plugin/credentials.json(mode 0600);可选事件日志 ~/.feishu-user-plugin/events.jsonl(10 MB / 20 MB 自动轮转)rm -rf ~/.feishu-user-plugin && npm uninstall -g feishu-user-plugin 即清空[security]A locally-run MCP server. Credentials stay on the user's machine; no telemetry, no phone-home. Full text at PRIVACY.md.
LARK_* envs are supplied by the user from their own Feishu / Lark account~/.feishu-user-plugin/credentials.json (mode 0600); optional event log at ~/.feishu-user-plugin/events.jsonlrm -rf ~/.feishu-user-plugin && npm uninstall -g feishu-user-plugin removes everything[security] prefix in the titleВыполни в терминале:
claude mcp add ethanqc-feishu-user-plugin -- npx pro-tip
Поставил EthanQC/feishu-user-plugin? Скажи Claude: «запомни почему я установил EthanQC/feishu-user-plugin и что хочу попробовать» — попадёт в твой Vault.
как это работает →Безопасность
Низкий рискАвтоматическая эвристика по публичным данным — не гарантия безопасности.