7.6 KiB
7.6 KiB
| name | description | metadata | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| lark-mcp | 使用飞书/Lark官方 MCP 工具操作飞书平台。支持:文档读取、多维表格操作、任务管理、日程创建、群消息读取、IM消息发送等。当用户需要操作飞书文档、表格、任务、日程或消息时使用此 skill。 |
|
Lark MCP 飞书操作工具
使用飞书官方 @larksuiteoapi/lark-mcp MCP 工具操作飞书平台。
GitHub: https://github.com/larksuite/lark-openapi-mcp
前置条件
1. 用户授权登录(访问用户数据必须)
如果上下文中有 UserAccessToken,可以直接使用。否则需要先登录:
npx -y @larksuiteoapi/lark-mcp login -a <APP_ID> -s <APP_SECRET> --domain https://open.larksuite.com
登录后会保存 token,后续调用会自动使用。
2. MCP 工具调用方式
使用 mcporter 调用 lark-mcp 工具:
# 查看所有可用工具
mcporter list lark-mcp --schema
# 调用工具
mcporter call lark-mcp.<tool_name> param1=value1 param2=value2 --output json
文档操作 (Docx)
获取文档内容
# 获取文档元信息
mcporter call lark-mcp.docx.v1.document.get document_id=<doc_id> --output json
# 获取文档纯文本内容
mcporter call lark-mcp.docx.v1.document.raw_content document_id=<doc_id> --output json
# 获取文档块列表
mcporter call lark-mcp.docx.v1.document_block.list document_id=<doc_id> --output json
文档 ID 获取方式
从文档 URL 提取:https://xxx.larksuite.com/docx/ABC123 → document_id = ABC123
多维表格 (Bitable)
获取表格信息
# 获取多维表格元信息
mcporter call lark-mcp.bitable.v1.app.get app_token=<app_token> --output json
# 列出所有数据表
mcporter call lark-mcp.bitable.v1.app_table.list app_token=<app_token> --output json
读取表格记录
# 获取记录列表
mcporter call lark-mcp.bitable.v1.app_table_record.list \
app_token=<app_token> \
table_id=<table_id> \
--output json
# 获取单条记录
mcporter call lark-mcp.bitable.v1.app_table_record.get \
app_token=<app_token> \
table_id=<table_id> \
record_id=<record_id> \
--output json
# 搜索记录(带筛选条件)
mcporter call lark-mcp.bitable.v1.app_table_record.search \
app_token=<app_token> \
table_id=<table_id> \
--args '{"filter":{"conjunction":"and","conditions":[{"field_name":"状态","operator":"is","value":["进行中"]}]}}' \
--output json
写入表格记录
# 创建记录
mcporter call lark-mcp.bitable.v1.app_table_record.create \
app_token=<app_token> \
table_id=<table_id> \
--args '{"fields":{"标题":"新任务","状态":"待处理","负责人":[{"id":"ou_xxx"}]}}' \
--output json
# 更新记录
mcporter call lark-mcp.bitable.v1.app_table_record.update \
app_token=<app_token> \
table_id=<table_id> \
record_id=<record_id> \
--args '{"fields":{"状态":"已完成"}}' \
--output json
# 删除记录
mcporter call lark-mcp.bitable.v1.app_table_record.delete \
app_token=<app_token> \
table_id=<table_id> \
record_id=<record_id> \
--output json
Bitable Token 获取方式
从 URL 提取:https://xxx.larksuite.com/base/ABC123 → app_token = ABC123
任务管理 (Task)
创建任务
mcporter call lark-mcp.task.v2.task.create \
--args '{
"summary": "任务标题",
"description": "任务描述",
"due": {"timestamp": "1735689600"},
"members": [{"id": "ou_xxx", "role": "assignee"}]
}' \
--output json
查询任务
# 获取任务详情
mcporter call lark-mcp.task.v2.task.get task_guid=<task_id> --output json
# 列出任务
mcporter call lark-mcp.task.v2.task.list --output json
更新任务
mcporter call lark-mcp.task.v2.task.patch \
task_guid=<task_id> \
--args '{"task":{"summary":"更新后的标题","completed_at":"1735689600"}}' \
--output json
日程管理 (Calendar)
获取日历列表
mcporter call lark-mcp.calendar.v4.calendar.list --output json
创建日程
mcporter call lark-mcp.calendar.v4.calendar_event.create \
calendar_id=<calendar_id> \
--args '{
"summary": "会议标题",
"description": "会议描述",
"start_time": {"timestamp": "1735689600"},
"end_time": {"timestamp": "1735693200"},
"attendee_ability": "can_modify_event",
"attendees": [{"type": "user", "user_id": "ou_xxx"}]
}' \
--output json
查询日程
# 获取日程详情
mcporter call lark-mcp.calendar.v4.calendar_event.get \
calendar_id=<calendar_id> \
event_id=<event_id> \
--output json
# 列出日程
mcporter call lark-mcp.calendar.v4.calendar_event.list \
calendar_id=<calendar_id> \
start_time=<start_timestamp> \
end_time=<end_timestamp> \
--output json
使用预设日历工具
# 使用默认日历预设(更简单)
mcporter call lark-mcp.preset.calendar.default.<action> ...
IM 消息操作
发送消息
# 发送文本消息到群聊
mcporter call lark-mcp.im.v1.message.create \
receive_id_type=chat_id \
--args '{
"receive_id": "<chat_id>",
"msg_type": "text",
"content": "{\"text\":\"Hello from MCP!\"}"
}' \
--output json
# 发送富文本消息
mcporter call lark-mcp.im.v1.message.create \
receive_id_type=chat_id \
--args '{
"receive_id": "<chat_id>",
"msg_type": "post",
"content": "{\"zh_cn\":{\"title\":\"标题\",\"content\":[[{\"tag\":\"text\",\"text\":\"内容\"}]]}}"
}' \
--output json
读取群消息
# 获取群聊消息列表
mcporter call lark-mcp.im.v1.message.list \
container_id_type=chat \
container_id=<chat_id> \
--output json
# 获取单条消息
mcporter call lark-mcp.im.v1.message.get message_id=<message_id> --output json
群聊管理
# 获取群聊列表
mcporter call lark-mcp.im.v1.chat.list --output json
# 获取群聊信息
mcporter call lark-mcp.im.v1.chat.get chat_id=<chat_id> --output json
# 获取群成员
mcporter call lark-mcp.im.v1.chat_members.get chat_id=<chat_id> --output json
知识库 (Wiki)
获取知识库信息
# 列出知识空间
mcporter call lark-mcp.wiki.v2.space.list --output json
# 获取知识空间节点
mcporter call lark-mcp.wiki.v2.space_node.list space_id=<space_id> --output json
# 获取节点信息
mcporter call lark-mcp.wiki.v2.space_node.get token=<node_token> --output json
用户与通讯录
获取用户信息
# 通过 open_id 获取用户
mcporter call lark-mcp.contact.v3.user.get \
user_id=<open_id> \
user_id_type=open_id \
--output json
# 搜索用户
mcporter call lark-mcp.contact.v3.user.batch_get_id \
--args '{"emails":["user@example.com"]}' \
--output json
常用预设工具
lark-mcp 提供了一些预设工具集,使用更简单:
# 日历预设
preset.calendar.default
# IM 预设
preset.im.default
# 文档预设
preset.docx.default
启用预设工具需要在 MCP 配置中指定,例如:
-t preset.calendar.default,preset.im.default
注意事项
- 权限要求:确保飞书应用已申请对应 API 的权限
- 用户授权:访问用户私有数据(文档、日程等)需要 user_access_token
- ID 类型:user_id 有多种类型(open_id, union_id, user_id),注意指定
user_id_type - 时间戳:时间参数使用 Unix 时间戳(秒)
- JSON 参数:复杂参数使用
--args '{...}'传递 JSON
错误排查
- 99991663: 权限不足,检查应用权限配置
- 99991668: token 过期,重新登录授权
- 99991400: 参数错误,检查参数格式