将 lark-cli(飞书/Lark 官方 CLI)封装为 MCP Server,使 AI 助手能够操作飞书。
支持飞书(中国版)和 Lark(国际版),取决于 lark-cli 配置。当前仅在飞书环境下验证。
- 零开发者门槛 — 不需要创建飞书开放平台应用、不需要 App ID/Secret、不需要手动配置权限。
lark-cli auth login一次登录即用,和网页版飞书同等权限 - 全域覆盖 — 不仅是文档,消息、日历、多维表格、电子表格、邮件、任务、云空间、知识库、会议等 14 个域 219 个 API 全部可用
- Agent 自主探索 — Agent 通过
lark.discover动态发现任意域的操作,每个操作提供完整 JSON Schema(参数名、类型、枚举、必填),Agent 不需要猜参数 - 安全可控 — 白名单策略 + 风险分级 + 破坏性操作需确认 + 审计日志
- 结构化错误 — 分类错误码(认证过期、限流、权限不足…)+ 中文恢复建议,Agent 能自主修复问题
- 上下文友好 — 渐进式暴露,schema 按需加载,不会一次性灌入大量工具定义占用 Agent 上下文窗口(实测节省 95% token)
- 标准 MCP 协议 — 兼容任何 MCP 客户端(Amazon Quick、Claude Desktop、Cursor、opencode 等)
AI 工作助手(如 Amazon Quick、Claude Desktop、Anthropic Coworker)出于安全设计,不能直接执行 shell 命令或调用外部 API。它们通过 MCP 协议扩展能力——MCP 是这类助手连接外部服务的唯一通道。本项目让这类助手能够操作飞书。
对于有终端权限的编码工具(Claude Code、Cursor 等),同样可以通过 MCP 获得结构化的飞书操作能力,无需自行解析 CLI 输出。
- Python 3.12+
- lark-cli 已安装并完成登录(
lark-cli auth login)
pip install lark-mcp-bridge或开发模式:
git clone https://github.com/Oliclee/lark-mcp-bridge.git
cd lark-mcp-bridge
pip install -e ".[dev]"配置后 Agent 会自动启动 server,无需手动运行。
推荐配置(pip install 后可用):
{
"mcpServers": {
"lark": {
"command": "lark-mcp-bridge"
}
}
}或使用 Python 模块方式:
{
"mcpServers": {
"lark": {
"command": "python",
"args": ["-m", "lark_mcp_bridge.server"]
}
}
}各客户端配置位置:
- Amazon Quick Desktop: Settings → Capabilities → MCP → Add Local
- Claude Code / Claude Desktop:
~/.claude/mcp.json - Cursor: Settings → MCP Servers → Add (type: command)
- opencode:
opencode.json - Codex:
~/.codex/config.toml
Codex 使用 TOML 格式:
[mcp_servers.lark]
command = "python"
args = ["-m", "lark_mcp_bridge.server"]AI 客户端 ⇄ MCP (stdio) ⇄ lark-mcp-bridge ⇄ lark-cli ⇄ 飞书 API
bridge 不直接调用飞书 HTTP API。认证和 token 管理由 lark-cli 处理,你的 credential 不经过第三方。
以下工具开箱即用,Agent 直接调用:
| 工具 | 功能 | 示例指令 |
|---|---|---|
lark.im.messages-send |
发送消息 | "给张三发一条消息说明天开会" |
lark.calendar.agenda |
查看日程 | "看看我今天有什么安排" |
lark.calendar.schedule-meeting |
预约会议 | "帮我约明天下午3点和小明的会" |
lark.base.record-search |
搜索多维表格 | "在项目表里搜索状态为进行中的记录" |
lark.docs.fetch |
读取文档 | "读取这个文档的内容:https://feishu.cn/docx/xxx" |
lark.contact.search-user |
搜索联系人 | "帮我找一下 Alice 的飞书账号" |
lark.sheets.read |
读取电子表格 | "读取这个表格 A1:D10 的数据" |
lark.sheets.write |
写入电子表格 | "把这些数据写入表格的 A1 单元格" |
lark.task.list |
查看任务列表 | "看看我有哪些未完成的任务" |
lark.task.create |
创建任务 | "创建一个任务:下周五前完成报告" |
lark.mail.send |
发送邮件 | "给 alice@company.com 发一封关于项目进度的邮件" |
lark.mail.list |
查看邮件列表 | "看看今天收到了哪些邮件" |
lark.drive.upload |
上传文件 | "把 report.pdf 上传到云空间" |
lark.drive.download |
下载文件 | "下载这个文件到本地" |
lark.wiki.search |
搜索知识库 | "在知识库里搜索 API 设计规范" |
lark.wiki.get-node |
获取知识库节点 | "获取这个知识库页面的内容" |
lark.vc.search |
搜索会议记录 | "找一下上周的产品评审会议" |
lark.vc.notes |
获取会议纪要 | "获取这个会议的纪要" |
lark.minutes.search |
搜索妙记 | "搜索包含'预算'的会议录音" |
上面 19 个是精选的高频工具。但飞书有 14 个域、219 个 API——Agent 不需要记住它们,也不需要猜参数。
Agent 调用 lark.discover(domain="mail") 即可获取该域下所有操作的完整定义(参数名、类型、是否必填、示例值)。这意味着:
- 不受固定工具列表限制 — 即使某个操作没有内置 shortcut,Agent 也能通过 discover 找到并使用
- 不需要猜参数 — 每个操作都有完整的 JSON Schema 定义
- 不需要等版本更新 — lark-cli 新增的命令自动可发现
用户: "帮我查看 OKR 进度"
Agent: → lark.discover(domain="okr") → 发现 23 个可用操作 → 选择合适的调用
pip install -e ".[dev]"
pytest详细设计文档见 docs/INDEX.md。
本项目为社区开源项目,与飞书/Lark 及字节跳动无官方关联。"Lark"和"飞书"是字节跳动的注册商标。
关于安全防护:本项目内置了白名单策略、风险分级和破坏性操作确认机制,尽力防止误操作。但 AI 助手的行为由模型推理驱动,无法保证 100% 符合用户预期。使用者应:
- 对 AI 助手执行的写入、修改和删除操作保持关注
- 在重要环境中使用前,先在测试环境验证
- 理解本工具以用户自身身份执行操作,后果等同于用户本人操作
使用本工具即表示你理解并接受:项目作者不对因使用本工具导致的任何数据丢失、误操作或其他损害承担责任。使用时请遵守飞书开放平台使用条款。
MIT