skills/larksuite/openclaw-lark/feishu-create-doc

feishu-create-doc

SKILL.md

feishu_mcp_create_doc

通过 MCP 调用 create-doc,从 Lark-flavored Markdown 内容创建一个新的飞书云文档。

返回值

工具成功执行后,返回一个 JSON 对象,包含以下字段:

  • doc_id(string):文档的唯一标识符(token),格式如 doxcnXXXXXXXXXXXXXXXXXXX
  • doc_url(string):文档的访问链接,可直接在浏览器中打开,格式如 https://www.feishu.cn/docx/doxcnXXXXXXXXXXXXXXXXXXX
  • message(string):操作结果消息,如"文档创建成功"

参数

markdown(必填)

文档的 Markdown 内容,使用 Lark-flavored Markdown 格式。

调用本工具的markdown内容应当尽量结构清晰,样式丰富, 有很高的可读性. 合理的使用callout高亮块, 分栏,表格等能力,并合理的运用插入图片与mermaid的能力,做到图文并茂.. 你需要遵循以下原则:

  • 结构清晰:标题层级 ≤ 4 层,用 Callout 突出关键信息
  • 视觉节奏:用分割线、分栏、表格打破大段纯文字
  • 图文交融:流程和架构优先用 Mermaid/PlantUML 可视化
  • 克制留白:Callout 不过度、加粗只强调核心词

当用户有明确的样式,风格需求时,应当以用户的需求为准!!

重要提示

  • 禁止重复标题:markdown 内容开头不要写与 title 相同的一级标题!title 参数已经是文档标题,markdown 应直接从正文内容开始
  • 目录:飞书自动生成,无需手动添加
  • Markdown 语法必须符合 Lark-flavored Markdown 规范,详见下方"内容格式"章节
  • 创建较长的文档时,强烈建议配合update-doc中的append mode, 进行分段的创建,提高成功率.

title(可选)

文档标题。

folder_token(可选)

父文件夹的 token。如果不提供,文档将创建在用户的个人空间根目录。

folder_token 可以从飞书文件夹 URL 中获取,格式如:https://xxx.feishu.cn/drive/folder/fldcnXXXX,其中 fldcnXXXX 即为 folder_token。

wiki_node(可选)

知识库节点 token 或 URL(可选,传入则在该节点下创建文档,与 folder_token 和 wiki_space 互斥)

wiki_node 可以从飞书知识库页面 URL 中获取,格式如:https://xxx.feishu.cn/wiki/wikcnXXXX,其中 wikcnXXXX 即为 wiki_node token。

wiki_space(可选)

知识空间 ID(可选,传入则在该空间根目录下创建文档。特殊值 my_library 表示用户的个人知识库。与 wiki_node 和 folder_token 互斥)

wiki_space 可以从知识空间设置页面 URL 中获取,格式如:https://xxx.feishu.cn/wiki/settings/7448000000000009300,其中 7448000000000009300 即为 wiki_space ID。

参数优先级:wiki_node > wiki_space > folder_token

示例

示例 1:创建简单文档

{
  "title": "项目计划",
  "markdown": "# 项目概述\n\n这是一个新项目。\n\n## 目标\n\n- 目标 1\n- 目标 2"
}

示例 2:创建到指定文件夹

{
  "title": "会议纪要",
  "folder_token": "fldcnXXXXXXXXXXXXXXXXXXXXXX",
  "markdown": "# 周会 2025-01-15\n\n## 讨论议题\n\n1. 项目进度\n2. 下周计划"
}

示例 3:使用飞书扩展语法

使用高亮块、表格等飞书特有功能:

{
  "title": "产品需求",
  "markdown": "<callout emoji=\"💡\" background-color=\"light-blue\">\n重要需求说明\n</callout>\n\n## 功能列表\n\n<lark-table header-row=\"true\">\n| 功能 | 优先级 |\n|------|--------|\n| 登录 | P0 |\n| 导出 | P1 |\n</lark-table>"
}

示例 4:创建到知识库节点下

{
  "title": "技术文档",
  "wiki_node": "wikcnXXXXXXXXXXXXXXXXXXXXXX",
  "markdown": "# API 接口说明\n\n这是一个知识库文档。"
}

示例 5:创建到知识空间根目录

{
  "title": "项目概览",
  "wiki_space": "7448000000000009300",
  "markdown": "# 项目概览\n\n这是知识空间根目录下的一级文档。"
}

示例 6:创建到个人知识库

{
  "title": "学习笔记",
  "wiki_space": "my_library",
  "markdown": "# 学习笔记\n\n这是创建在个人知识库中的文档。"
}

内容格式

文档内容使用 Lark-flavored Markdown 格式,这是标准 Markdown 的扩展版本,支持飞书文档的所有块类型和富文本格式。

通用规则

  • 使用标准 Markdown 语法作为基础
  • 使用自定义 XML 标签实现飞书特有功能(具体标签见各功能章节)
  • 需要显示特殊字符时使用反斜杠转义:* ~ $ [ ] < > { } | ^`

📝 基础块类型

文本(段落)

普通文本段落

段落中的**粗体文字**

多个段落之间用空行分隔。

居中文本 {align="center"}
右对齐文本 {align="right"}

段落对齐:支持 {align="left|center|right"} 语法。可与颜色组合:{color="blue" align="center"}

标题

飞书支持 9 级标题。H1-H6 使用标准 Markdown 语法,H7-H9 使用 HTML 标签:

# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
<h7>七级标题</h7>
<h8>八级标题</h8>
<h9>九级标题</h9>

# 带颜色的标题 {color="blue"}
## 红色标题 {color="red"}
# 居中标题 {align="center"}
## 蓝色居中标题 {color="blue" align="center"}

标题属性:支持 {color="颜色名"}{align="left|center|right"} 语法,可组合使用。颜色值:red, orange, yellow, green, blue, purple, gray。请谨慎使用该能力.

列表

有序列表,无序列表嵌套使用tab或者 2 空格缩进

- 无序项1(
  - 无序项1.a
  - 无序项1.b

1. 有序项1
2. 有序项2

- [ ] 待办
- [x] 已完成

引用块

> 这是一段引用
> 可以跨多行

> 引用中支持**加粗***斜体*等格式

代码块

⚠️ 只支持围栏代码块(```),不支持缩进代码块。

```python
print("Hello")
```

支持语言:python, javascript, go, java, sql, json, yaml, shell 等。

分割线

---

🎨 富文本格式

文本样式

**粗体** *斜体* ~~删除线~~ `行内代码` <u>下划线</u>

文字颜色

<text color="red">红色</text> <text background-color="yellow">黄色背景</text>

支持: red, orange, yellow, green, blue, purple, gray

链接

[链接文字](https://example.com) (不支持锚点链接)

行内公式(LaTeX)

$E = mc^2$$前后需空格)或 <equation>E = mc^2</equation>(无限制,推荐)


🚀 高级块类型

高亮块(Callout)

<callout emoji="" background-color="light-green" border-color="green">
支持**格式化**的内容,可包含多个块
</callout>

属性: emoji (使用emoji 字符如 ✅ ⚠️ 💡), background-color, border-color, text-color

背景色: light-red/red, light-blue/blue, light-green/green, light-yellow/yellow, light-orange/orange, light-purple/purple, pale-gray/light-gray/dark-gray

常用: 💡light-blue(提示) ⚠️light-yellow(警告) ❌light-red(危险) ✅light-green(成功)

限制: callout子块仅支持文本、标题、列表、待办、引用。不支持代码块、表格、图片。

分栏(Grid)

适合对比、并列展示场景。支持 2-5 列:

两栏(等宽)

<grid cols="2">
<column>

左栏内容

</column>
<column>

右栏内容

</column>
</grid>

三栏自定义宽度

<grid cols="3">
<column width="20">左栏(20%)</column>
<column width="60">中栏(60%)</column>
<column width="20">右栏(20%)</column>
</grid>

属性: cols(列数 2-5), width(列宽百分比,总和为100,等宽时可省略)

表格

标准 Markdown 表格

| 列 1 | 列 2 | 列 3 |
|------|------|------|
| 单元格 1 | 单元格 2 | 单元格 3 |
| 单元格 4 | 单元格 5 | 单元格 6 |

飞书增强表格

当单元格需要复杂内容(列表、代码块、高亮块等)时使用。

层级结构(必须严格遵守):

<lark-table>                    ← 表格容器
  <lark-tr>                     ← 行(直接子元素只能是 lark-tr)
    <lark-td>内容</lark-td>     ← 单元格(直接子元素只能是 lark-td)
    <lark-td>内容</lark-td>     ← 每行的 lark-td 数量必须相同!
  </lark-tr>
</lark-table>

属性

  • column-widths:列宽,逗号分隔像素值,总宽≈730
  • header-row:首行是否为表头("true""false"
  • header-column:首列是否为表头("true""false"

单元格写法:内容前后必须空行

<lark-td>

这里写内容

</lark-td>

完整示例(2行3列):

<lark-table column-widths="200,250,280" header-row="true">
<lark-tr>
<lark-td>

**表头1**

</lark-td>
<lark-td>

**表头2**

</lark-td>
<lark-td>

**表头3**

</lark-td>
</lark-tr>
<lark-tr>
<lark-td>

普通文本

</lark-td>
<lark-td>

- 列表项1
- 列表项2

</lark-td>
<lark-td>

代码内容

</lark-td>
</lark-tr>
</lark-table>

限制:单元格内不支持 Grid 和嵌套表格

合并单元格:读取时返回 rowspan/colspan 属性,创建暂不支持

禁止

  • 混用 Markdown 表格语法(|---|
  • 使用 <br/> 换行
  • 遗漏 <lark-td> 标签

图片

<image url="https://example.com/image.png" width="800" height="600" align="center" caption="图片描述文字"/>

属性: url (必需,系统会自动下载并上传), width, height, align (left/center/right), caption

⚠️ 重要: 不支持直接使用 token 属性(如 <image token="xxx"/>),只支持 URL 方式。系统会自动下载图片并上传到飞书。

支持 PNG/JPG/GIF/WebP/BMP,最大 10MB

图片/文件插入方式选择

  • 有公开可访问的图片 URL → 直接在 create-doc / update-doc 的 markdown 中使用 <image url="..."/> 一步到位

  • 本地图片或文件(如用户在聊天中发送的图片/文件) → 先用 create-doc / update-doc 创建或更新文档文本内容,再用 feishu_doc_media 工具将本地图片或文件追加到文档末尾。如需媒体出现在文档中间特定位置,可先用 create-doc 写好之前的内容,调用 feishu_doc_media 追加图片/文件,最后用 update-doc 的 append 模式追加后续内容

文件

<file url="https://example.com/document.pdf" name="文档.pdf" view-type="1"/>

属性:

  • url (文件 URL,必需,系统会自动下载并上传)
  • name (文件名,必需)
  • view-type (1=卡片视图, 2=预览视图,可选)

⚠️ 重要: 不支持直接使用 token 属性(如 <file token="xxx"/>

画板(Mermaid / PlantUML 图表)

支持两种图表语法:Mermaid 和 PlantUML。

Mermaid 图表

图表优先选择此格式. mermaid图表会被渲染为可视化的画板, 如果能用mermaid实现的图表,应当优先选择mermaid.

```mermaid
graph TD
    A[开始] --> B{判断}
    B -->|是| C[处理]
    B -->|否| D[结束]
```

支持图表类型: flowchart, sequenceDiagram, classDiagram, stateDiagram, gantt, mindmap, erDiagram

PlantUML 图表

PlantUML图表会被渲染为可视化的画板. mermaid满足不了的场景可以选择plantUML进行绘图.

```plantuml
@startuml
Alice -> Bob: Hello
Bob --> Alice: Hi!
@enduml
```

支持图表类型: sequence, usecase, class, activity, component, state, object, deployment

读取画板

读取时返回 <whiteboard> 标签:

<whiteboard token="xxx" align="center" width="800" height="600"/>

属性: token (画板标识), align (left/center/right), width, height

重要说明

  • create-doc时用 Mermaid/PlantUML 代码块,系统自动转换为画板; 禁止以<whiteboard>的方式写入!!
  • 读取时只能获取 token,可通过fetch-file工具进行查看内容。无法获取原始源码

多维表格(Bitable)

<bitable view="table"/>
<bitable view="kanban"/>

属性: view (table/kanban,默认 table)

注意: token 是只读属性,创建时不能指定只能创建空的多维表格,创建后再手动添加数据。

会话卡片(ChatCard)

<chat-card id="oc_xxx" align="center"/>

属性: id (格式 oc_xxx, 必需), align (left/center/right)

内嵌网页(Iframe)

<iframe url="https://example.com/survey?id=123" type="12"/>

属性: url (必需), type (组件类型数字, 必需)

type 枚举: 1=Bilibili, 2=西瓜, 3=优酷, 4=Airtable, 5=百度地图, 6=高德地图, 8=Figma, 9=墨刀, 10=Canva, 11=CodePen, 12=飞书问卷, 13=金数据

重要提示: 仅支持上述列出的网页类型。其他类型的网页不支持嵌入,请不要使用 iframe。对于普通网页链接,请使用 Markdown 链接格式 [链接文字](URL) 代替。

链接预览(LinkPreview)

<link-preview url="消息链接" type="message"/>

属性: url (必需, 只写属性), type (message=消息链接)

目前仅支持消息链接, 只支持读取, 不支持创建

引用容器(QuoteContainer)

<quote-container>
引用容器内容
</quote-container>

与 quote 引用块不同,引用容器是容器类型,可包含多个子块


🔧 高级功能块

电子表格(Sheet)

<sheet rows="5" cols="5"/>
<sheet/>

属性: rows (行数,默认 3,最大 9), cols (列数,默认 3)

注意: token 是只读属性,创建时不能指定。只能创建空的电子表格,创建后使用 Sheet API 操作数据。

只读块类型 🔒

以下块类型仅支持读取,不支持创建:

块类型 标签 说明
思维笔记 <mindnote token="xxx"/> 仅获取占位信息
流程图/UML <diagram type="1"/> type: 1=流程图, 2=UML
AI 模板 <ai-template/> 无内容占位块

任务块

<task task-id="xxx" members="ou_123, ou_456" due="2025-01-01">任务标题</task>

属性: task-id, members (成员ID列表), due (截止日期)

同步块

<!-- 源同步块:内容在子块中 -->
<source-synced align="1">子块内容...</source-synced>

<!-- 引用同步块:自动获取源文档内容 -->
<reference-synced source-block-id="xxx" source-document-id="yyy">源内容...</reference-synced>

属性: source-synced 有 align;reference-synced 有 source-block-id, source-document-id

文档小组件(AddOns)

<add-ons component-type-id="blk_xxx" record='{"key":"value"}'/>

属性: component-type-id (小组件类型ID), record (JSON数据)

包含多种类型:问答互动、日期提醒等。部分组件如 Mermaid 已专门封装为 board 块

旧版小组件(ISV)

<isv id="comp_xxx" type="type_xxx"/>

属性: component_id, component_type_id

旧版开放平台小组件,新版请使用 AddOns

Wiki 子目录(WikiCatalog)🕰️

<wiki-catalog token="wiki_xxx"/>

属性: wiki_token (知识库节点token)

🕰️ 旧版,建议使用新版 sub-page-list

Wiki 子页面列表(SubPageList)

<sub-page-list wiki="wiki_xxx"/>

属性: wiki_token (当前页面的wiki token)

仅支持知识库文档创建,需传入当前页面的 wiki token

议程(Agenda)

<agenda>
  <agenda-item>
    <agenda-title>议程标题</agenda-title>
    <agenda-content>议程内容</agenda-content>
  </agenda-item>
</agenda>

结构: agenda (容器) → agenda_item (议程项) → agenda_title (标题) + agenda_content (内容)

Jira 问题(JiraIssue)

<jira-issue id="xxx" key="PROJECT-123"/>

属性: id (Jira问题ID), key (Jira问题Key)

OKR 系列⚠️

<okr id="okr_xxx">
  <objective id="obj_1">
    <kr id="kr_1"/>
  </objective>
</okr>

⚠️ 仅支持 user_access_token 创建,需使用 OKR API 进行详细操作

结构: okr → okr_objective (目标) → okr_key_result (关键结果) + okr_progress (进展)


📎 提及和引用

提及用户

<mention-user id="ou_xxx"/>

属性: id (用户 open_id,格式 ou_xxx)

注意不要直接在文档中写@张三 这类格式,应当使用search-user获取用户的id,并使用mention-user.

提及文档

<mention-doc token="doxcnXXX" type="docx">文档标题</mention-doc>

属性: token (文档 token), type (docx/sheet/bitable)


📅 日期和时间

日期提醒(Reminder)

<reminder date="2025-12-31T18:00+08:00" notify="true" user-id="ou_xxx"/>

属性:

  • date (必需): YYYY-MM-DDTHH:mm+HH:MM, ISO 8601 带时区偏移
  • notify (true/false): 是否发送通知
  • user-id (必需): 创建者用户 ID

📐 数学表达式

块级公式(LaTeX)

$$
\int_{0}^{\infty} e^{-x^2} dx = \frac{\sqrt{\pi}}{2}
$$

行内公式

爱因斯坦方程:$E = mc^2$(注意 $ 前后需空格,紧邻位置不能有空格)

✍️ 写作指南

场景速查

场景 推荐组件 说明
重点提示/警告 Callout 蓝色提示、黄色警告、红色危险
对比/并列展示 Grid 分栏 2-3 列最佳,配合 Callout 更醒目
数据汇总 表格 简单用 Markdown,复杂嵌套用 lark-table
步骤说明 有序列表 可嵌套子步骤
时间线/版本 有序列表 + 加粗日期 或用 Mermaid timeline
代码展示 代码块 标注语言,适当添加注释
知识卡片 Callout + emoji 用于概念解释、小贴士
引用说明 引用块 > 引用原文、名言
术语对照 两列表格 中英文、缩写全称等

🎯 最佳实践

  • 空行分隔:不同块类型之间用空行分隔
  • 转义字符:特殊字符用 \ 转义:\* \~ ```
  • 图片:使用 URL,系统自动下载上传
  • 分栏:列宽总和必须为 100
  • 表格选择:简单数据用 Markdown,复杂嵌套用 <lark-table>
  • 提及:@用户用 <mention-user>,@文档用 <mention-doc>
  • 目录:飞书自动生成,无需手动添加

📖 补充说明

  • 图片、画板、多维表格需要 token(URL 会自动上传转换)
  • 提及用户和会话卡片需要相应访问权限
  • 完全兼容标准 Markdown
Weekly Installs
24
GitHub Stars
990
First Seen
5 days ago
Installed on
gemini-cli24
github-copilot24
codex24
kimi-cli24
amp24
cline24