飞书 CLI 与 MCP 对比分析
概述
larksuite/cli 和飞书官方 MCP 看起来都在“帮 AI Agent 或开发者调用飞书能力”,底层也都可能走 HTTP,但它们不在同一层解决问题。
一个更准确的理解方式是:二者都面向 AI Agent,但 MCP 是协议/接入层,CLI 是面向 Agent 优化的命令产品层。MCP 负责让模型“怎么调用工具”,CLI 负责把飞书能力包装成 Agent 更容易调用、更容易成功的命令接口。
两者分别解决什么问题
MCP:给模型提供标准化工具调用入口
MCP 的核心价值是统一协议,把外部能力封装成模型可调用的工具。飞书官方 MCP 的定位也是把飞书 OpenAPI 封装成 MCP tools,方便在 Claude、Cursor、Trae 之类支持 MCP 的宿主中直接使用。
这意味着 MCP 重点解决的是:
- AI 客户端如何发现并调用飞书能力
- 工具参数如何以模型友好的方式暴露
- 授权后的能力如何接入 AI 工作流
它本质上回答的是“接进来”的问题。
CLI:把能力做成面向 Agent 的命令接口产品
larksuite/cli 的定位不是传统意义上“主要给人手敲命令”的 CLI。官方 README 明确写它是 built for humans and AI Agents,同时强调 Agent-Native Design、AI-Friendly & Optimized,并单独提供 Quick Start (AI Agent)。这说明它从产品设计阶段就把 Agent 当成核心用户之一。
它提供的不是裸 API,而是一层经过产品化的命令接口,包括:
- 11 个业务域、200+ 命令、19 个 AI Agent Skills
- 三层命令体系:Shortcuts → API Commands → Raw API
- 结构化输出、分页、dry-run、schema introspection 等适合 Agent 调用的能力
- 也能直接运行在 shell、脚本、CI/CD 等环境中
它本质上回答的是“怎样把飞书能力做成 Agent 更容易使用的产品接口”这个问题。
为什么有了 MCP 还要做 CLI
1. MCP 是协议,不是完整产品体验
MCP 定义的是模型和工具之间的通信方式,不负责命令设计、默认值、结构化输出、dry-run、schema、命令分层这些产品化能力。
CLI 则把这些补齐了,因此即使在 Agent 场景里,它也不是 MCP 的重复实现,而是建立在更高一层抽象上的“可直接调用的命令产品”。
2. CLI 天然适合脚本化和 CI
MCP 依赖支持 MCP 的宿主环境。CLI 则既可以被人直接调用,也可以被 Agent、脚本、定时任务、CI 直接调用。
所以如果目标是:
- 写 shell automation
- 接到 CI/CD pipeline
- 做 cron job
- 给不同 Agent 复用同一套命令接口
CLI 往往更直接。
3. CLI 可以提供更高层的抽象
飞书 API 原始能力很多,但并不总是适合 Agent 直接拼参数。CLI 的 shortcut 层可以把高频操作抽成更短、更稳定的命令,比如 agenda、send message、create doc 这类动作。
这类高层抽象能降低使用门槛,也能减少模型在参数组织上的错误率。
4. CLI 更容易补充安全与可控性
官方 README 里提到 CLI 加了诸如输入注入防护、终端输出清洗、系统 Keychain 凭据存储等保护,还提供 dry-run 这类降低误操作风险的机制。
MCP 当然也可以安全,但它更多依赖宿主和集成方式本身。CLI 则可以把安全控制直接产品化。
5. CLI 和 MCP 是互补关系,不是替代关系
如果目标是在支持 MCP 的 AI IDE 里,让模型通过标准协议直接操作飞书,MCP 很合适。
如果目标是把飞书能力沉淀成一套能被 Agent 优先使用、同时也能被人和脚本复用的稳定接口,CLI 更合适。
很多场景下,合理的做法不是二选一,而是:
- MCP 负责接入 AI 宿主
- CLI 负责承载高层命令、默认策略和终端体验
一个实用判断框架
面对“都只是调用 HTTP,为什么还要 CLI”这类问题,可以直接用下面这套判断:
- 如果你在比较“怎么把能力接给模型”,优先想到 MCP
- 如果你在比较“怎么把能力做成 Agent 更容易成功调用的命令接口”,优先想到 CLI
- 如果一个团队既要接入 MCP 宿主,又要沉淀自己的命令抽象和自动化接口,通常会同时需要这两层
所以两者的关键区别不在“有没有调用 HTTP”,而在抽象层级和产品边界。
关键要点
- MCP 是协议层:解决模型如何按标准方式调用外部工具
- CLI 是命令产品层:解决如何把飞书能力包装成 Agent 更容易调用的接口
- CLI 的价值通常体现在命令设计、skills、结构化输出、dry-run、schema、安全控制和高层抽象
- MCP 更适合嵌入支持 MCP 的 AI 宿主;CLI 更适合沉淀可直接复用的命令接口
- 两者通常是互补,而不是替代
相关链接
- MCP
- MCP vs Skills vs Commands
- Claude Code 集成飞书文档方案
- cc-connect 飞书接入实践
- larksuite/cli README: https://github.com/larksuite/cli
- lark-openapi-mcp README: https://github.com/larksuite/lark-openapi-mcp