lark-lite-mcp
极轻量、低 Token 消耗的飞书多维表格 MCP 服务,支持链接解析、记录读写和筛选搜索。
README
lark-lite-mcp
一个面向 AI Agent 的轻量飞书多维表格(Bitable)MCP。它通过飞书官方 Node.js SDK 访问数据,并在 MCP 工具与飞书 SDK 之间提供稳定的兼容层。
设计目标
- 通用:不绑定学者库或其他业务项目。
- 安全:默认只读,凭证只从进程环境变量读取。
- 完整:查询显式返回分页状态,可受控拉取多页。
- 稳定:Agent 只依赖本项目定义的返回结构,不依赖飞书原始响应字段。
- 可升级:飞书 SDK 与 MCP SDK 使用精确版本,由测试验证后再升级。
当前只支持飞书多维表格,不支持飞书文档、消息、日历等其他能力。
安装与配置
生产或团队环境建议固定具体版本,避免启动时自动获取不兼容的新版本:
{
"mcpServers": {
"lark-bitable": {
"command": "npx",
"args": ["-y", "lark-lite-mcp@2.0.1"],
"env": {
"LARK_APP_ID": "cli_xxx",
"LARK_APP_SECRET": "xxx",
"LARK_READ_ONLY": "true",
"LARK_ALLOWED_BASE_TOKENS": "bascnAllowedBase",
"LARK_ALLOWED_TABLE_IDS": "tblAllowedOne,tblAllowedTwo"
}
}
}
}
也可以从源码运行:
{
"mcpServers": {
"lark-bitable": {
"command": "node",
"args": ["/absolute/path/to/lark-lite-mcp/index.js"],
"env": {
"LARK_APP_ID": "cli_xxx",
"LARK_APP_SECRET": "xxx"
}
}
}
}
应用仍需在飞书开放平台申请相应权限,并加入目标多维表格的协作者。
环境变量
| 变量 | 默认值 | 说明 |
|---|---|---|
LARK_APP_ID |
必填 | 飞书自建应用 App ID |
LARK_APP_SECRET |
必填 | 飞书自建应用 App Secret |
LARK_READ_ONLY |
true |
为 false 时才暴露更新工具 |
LARK_ALLOWED_BASE_TOKENS |
空 | 逗号分隔;为空时依赖飞书应用自身权限 |
LARK_ALLOWED_TABLE_IDS |
空 | 逗号分隔;为空时依赖飞书应用自身权限 |
LARK_MAX_RETRIES |
2 |
429、408 和 5xx 传输错误的最大重试次数 |
LARK_RETRY_DELAY_MS |
250 |
指数退避的初始等待时间 |
LARK_REQUEST_TIMEOUT_MS |
10000 |
单次飞书 HTTP 请求超时毫秒数 |
LARK_MAX_FETCH_ALL_RECORDS |
1000 |
fetchAll 可返回的硬上限 |
不要在对话或 MCP 工具参数中提供 App Secret。Secret 只应存在于 MCP 进程环境变量或密钥管理系统中。
MCP 工具
| 工具 | 说明 |
|---|---|
lark_resolve_url |
从普通 Base URL 提取坐标,或将 /record/{share_token} 单记录分享链接解析为真实的 Base、Table 和 Record 标识 |
lark_list_tables |
分页列出 Base 中的数据表 |
lark_get_record |
查询单条记录 |
lark_search_records |
分页搜索记录;支持有上限的 fetchAll |
lark_update_record |
更新单条记录,仅在写模式下暴露 |
分页结果使用稳定结构:
{
"items": [],
"hasMore": false,
"nextPageToken": null,
"requestId": null
}
当 fetchAll=true 且命中安全上限时,结果额外返回 "truncated": true。调用方必须把它视为不完整结果。
兼容性策略
飞书原始响应只允许在 src/bitable-adapter.js 中处理。MCP 工具不直接读取 res.data.items、record_id 或 page_token 等飞书字段。SDK 或 OpenAPI 返回结构变化时,应只修改 Adapter,并保持工具返回结构不变。
依赖升级流程:
- 修改精确依赖版本。
- 运行离线单元与契约测试。
- 使用专用测试 Base 运行在线冒烟测试。
- 确认 MCP 客户端连接和工具列表。
- 按语义化版本发布,并在生产配置中显式升级版本。
不建议直接使用 ^ 或 latest 自动追踪飞书 SDK、MCP SDK 或本 MCP 的新版本。
开发与验证
npm install
npm test
npm run check
在线冒烟测试只访问专用测试 Base:
LARK_APP_ID=cli_xxx \
LARK_APP_SECRET=xxx \
LARK_SMOKE_BASE_TOKEN=bascnTestBase \
npm run smoke
在线冒烟测试不应使用生产表,也不应把凭证提交到仓库。
License
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。