Skip to content

Repository files navigation

lark-mcp-bridge

PyPI Python License

lark-cli(飞书/Lark 官方 CLI)封装为 MCP Server,使 AI 助手能够操作飞书。

支持飞书(中国版)和 Lark(国际版),取决于 lark-cli 配置。当前仅在飞书环境下验证。

为什么选择 lark-mcp-bridge

特点

  • 零开发者门槛 — 不需要创建飞书开放平台应用、不需要 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]"

使用

MCP 客户端配置

配置后 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 搜索妙记 "搜索包含'预算'的会议录音"

动态发现:Agent 自主探索,无需猜测

上面 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

About

MCP Server wrapping lark-cli — let AI assistants (Quick, Claude, Cursor, Codex) operate Feishu/Lark without creating an app

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages