Install
openclaw skills install yuque-connector语雀知识库双向同步技能。支持本地文件导入语雀(Word/Excel/Markdown/HTML/文本/zip文件夹),也支持从语雀下载文档到本地。覆盖搜索、创建、更新、目录管理等操作,含错误自动恢复和进阶用法。触发词:导入语雀、上传语雀、下载语雀、语雀知识库、语雀文档、发送到语雀、从语雀下载、yuque、传到语雀、同步语雀。
openclaw skills install yuque-connector语雀知识库与本地文件的双向同步工具。支持将本地文件导入语雀,也支持从语雀下载文档内容到本地保存。通过语雀 MCP 的 19 个工具实现完整的读写能力。
| 格式 | 导入方式 | 说明 |
|---|---|---|
.md | 直接导入 | 原文作为 body,format: markdown |
.docx | 读取转换后导入 | 使用 docx 技能读取内容,转 Markdown 导入 |
.xlsx | 读取转换后导入 | 使用 xlsx 技能读取数据,转 Markdown 表格导入,每个工作表单独创建文档 |
.html | 直接导入 | 原文作为 body,format: html |
.txt | 转换后导入 | 包裹为 Markdown 格式导入 |
.csv | 转换后导入 | 转为 Markdown 表格导入 |
.json | 转换后导入 | 转为格式化代码块导入 |
| zip/文件夹 | 批量导入 | 解压后逐个处理内部文件,批量创建文档 |
| 下载内容 | 输出格式 | 说明 |
|---|---|---|
| 单篇文档 | .md | 使用 yuque_get_doc + format: markdown,保存为 Markdown 文件 |
| 整个知识库 | 多个 .md | yuque_list_docs + 逐篇 yuque_get_doc,每个文档一个文件 |
| 指定目录 | 多个 .md | yuque_get_toc 筛选目录下文档,逐篇下载 |
| 小记 | .md | yuque_list_notes + yuque_get_note,保存为 Markdown |
输入:用户说「把这个文件传到考试系统知识库」
执行步骤:
1. Read(file_path="C:/Users/Admin/报告/6月周报.md") → 获取文件内容
2. DeferExecuteTool("mcp__yuque__yuque_get_doc", {repo_id: "78381340", ...})
或直接 DeferExecuteTool("mcp__yuque__yuque_create_doc",
{repo_id: "78381340", title: "6月周报", body: "<文件内容>", format: "markdown"})
实际返回结果:
文档创建成功
标题: 6月周报
文档ID: 272726945
slug: 6-zhou-bao
链接: https://www.yuque.com/jiuwu-tue7v/lerk9f/6-zhou-bao
用户拿到手的是:一个可以直接点击打开的语雀文档链接,文档内容与本地 Markdown 一致。
输入:用户说「把语雀考试系统知识库里的「语雀知识库连接器配置技能」下载到本地」
执行步骤:
1. DeferExecuteTool("mcp__yuque__yuque_get_doc",
{repo_id: "78381340", doc_id: "yuque-connector-skill", format: "markdown"})
→ 返回 Markdown 格式的文档正文
2. Write(file_path="C:/Users/Admin/下载/语雀知识库连接器配置技能.md",
content=<返回的body>)
实际返回结果:
已下载到本地
文件路径: C:/Users/Admin/下载/语雀知识库连接器配置技能.md
文件大小: 4.2 KB
来源: https://www.yuque.com/jiuwu-tue7v/lerk9f/yuque-connector-skill
用户拿到手的是:本地 Markdown 文件,可在任意编辑器中打开编辑。
输入:用户说「把考试系统知识库所有文档都下载到本地」
执行步骤:
1. DeferExecuteTool("mcp__yuque__yuque_list_docs", {repo_id: "78381340"})
→ 返回文档列表(含每篇文档的 id、title、slug)
2. 遍历每篇文档:
DeferExecuteTool("mcp__yuque__yuque_get_doc",
{repo_id: "78381340", doc_id: "<doc_id>", format: "markdown"})
→ Write("C:/Users/Admin/下载/考试系统知识库/<title>.md", <body>)
3. 批量间加 1 秒间隔(防 429)
实际返回结果:
已下载 12 篇文档到 C:/Users/Admin/下载/考试系统知识库/
├── 语雀知识库连接器配置技能.md
├── 考试平台使用指南(第1章).md
├── 考试平台使用指南(第2章).md
├── ...
└── 定价方案说明.md
用户拿到手的是:一个文件夹,里面是知识库全部文档的 Markdown 副本。
输入:用户说「把这个 Excel 传到语雀」
执行步骤:
1. Skill("xlsx") → 读取 Excel 所有工作表数据
2. 对每个工作表:
- 将数据转为 Markdown 表格
- 标题 = "{文件名} - {工作表名}"
- DeferExecuteTool("mcp__yuque__yuque_create_doc",
{repo_id: "78381340", title: "<标题>", body: "<Markdown表格>", format: "markdown"})
实际返回结果:
已导入 3 篇文档:
1. 销售数据.xlsx - Q1业绩 → https://www.yuque.com/jiuwu-tue7v/lerk9f/q1-ye-ji
2. 销售数据.xlsx - Q2业绩 → https://www.yuque.com/jiuwu-tue7v/lerk9f/q2-ye-ji
3. 销售数据.xlsx - Q3业绩 → https://www.yuque.com/jiuwu-tue7v/lerk9f/q3-ye-ji
用户拿到手的是:3 个语雀文档链接,每个链接打开后是一张格式整齐的数据表格。
1. 读取源文件(Read 工具 / docx 技能 / xlsx 技能)
2. 转换内容为 Markdown 或 HTML
3. yuque_create_doc → 返回语雀链接
参数: repo_id(必填), title(必填), body(内容), format("markdown"推荐), slug(可选), public(0/1)
1. yuque_get_doc(repo_id, doc_id, format: "markdown") → 获取文档正文
2. Write 保存到本地指定路径,文件名 = 文档标题 + ".md"
3. 返回保存路径给用户
1. yuque_list_docs(repo_id) 或 yuque_get_toc(repo_id) 获取文档列表
2. 循环: yuque_get_doc → Write,每篇间隔 1 秒
3. 汇总: 列出所有保存的文件路径
1. yuque_get_doc 获取语雀最新内容
2. Read 读取本地文件内容
3. 对比差异并报告:哪些文档语雀有更新、哪些本地有修改
4. 用户选择同步方向(上传/下载/双向合并)
repo_id: 知识库 ID(必填)
doc_id: 文档 ID 或 slug(必填)
format: "markdown"(推荐,返回纯 Markdown)| "lake" | "html"
include_lake: true(同时返回 Lake 原始格式,保留 Mermaid 源码等)
title 作为文件名.md 扩展名标题(2).mdyuque_get_toc 先获取目录结构,选择性下载特定目录# 获取当前目录结构
yuque_get_toc(repo_id="78381340")
# 在根目录下新建分组
yuque_update_toc(repo_id="78381340",
toc_data='{"action":"appendNode","action_mode":"child","target_uuid":"","type":"TITLE","title":"月度报告"}')
# 在指定分组下添加文档(需要先知道分组的 uuid)
yuque_update_toc(repo_id="78381340",
toc_data='{"action":"appendNode","action_mode":"child","target_uuid":"<分组uuid>","type":"DOC","title":"6月报告","doc_id":"<doc_id>"}')
适用场景:新知识库初始化、批量导入后整理目录、跨目录移动文档。
# 搜索文档(全文搜索)
yuque_search(query="考试系统", type="doc")
# 搜索知识库
yuque_search(query="培训", type="repo")
# 搜索后获取全文
yuque_get_doc(repo_id="<id>", doc_id="<id>", format: "markdown")
适用场景:查找历史文档、引用已有内容到新文档中。
# 更新已有文档内容
yuque_update_doc(repo_id="78381340", doc_id="272726945",
title="6月周报(修订版)", body="<新内容>", format: "markdown")
适用场景:本地文件修改后同步到语雀、修正已上传文档的内容。
# 创建小记
yuque_create_note(body="今天完成了语雀连接器的配置工作")
# 列出小记
yuque_list_notes(limit=10)
# 获取小记详情
yuque_get_note(note_id="<id>")
适用场景:快速记录碎片想法、待办事项、临时笔记。
# 创建新知识库
yuque_create_book(name="新项目文档", slug="new-project")
# 获取知识库详情
yuque_get_book(repo_id="78381340")
# 更新知识库信息
yuque_update_book(repo_id="78381340", name="新名称", description="更新后的描述")
# 创建思维导图
yuque_create_resource(resource_type="board", type="mindmap",
dsl="# 中心主题\n## 分支1\n### 细节\n## 分支2",
doc_id=272726945)
# 创建流程图
yuque_create_resource(resource_type="board", type="flowchart",
dsl="A[开始] --> B[处理] --> C[结束]",
doc_id=272726945)
include_lake: true 获取原始 Mermaid 源码((doc_id '显示文字'))| 错误码 | 含义 | 自动恢复 | 手动处理 |
|---|---|---|---|
| 401 | Token 无效/过期 | 自动提示重新获取 | 前往 设置页 重新生成 |
| 403 | 权限不足 | 提示检查知识库权限 | 确认账号是否有该知识库的读写权限 |
| 404 | 文档/知识库不存在 | 提示检查 ID 是否正确 | 用 yuque_list_books 确认正确的 repo_id |
| 422 | 参数验证失败 | 自动修正常见参数问题(如 format 大小写) | 检查传入参数是否符合 API 要求 |
| 429 | 请求频率超限 | 自动等待 5 秒后重试,最多 3 次 | 批量操作时主动加大间隔(2-3 秒) |
| 500 | 语雀服务异常 | 自动等待 10 秒后重试,最多 2 次 | 稍后再试,或检查 语雀状态页 |
| 网络超时 | 连接超时 | 自动重试 1 次 | 检查网络连接 |
所有 MCP 调用遇到以下情况时自动重试:
重试条件: 429(限流)/ 500(服务异常)/ 网络超时
重试次数: 最多 3 次
重试间隔: 429→5秒, 500→10秒, 超时→3秒(指数退避)
失败后: 停止操作,报告失败详情和建议
如果 ~/.workbuddy/mcp.json 写入失败:
{})mcp.json.bak如果语雀 MCP 工具无法调用:
~/.workbuddy/mcp.json,确认 yuque 条目存在且格式正确yuque_get_user 测试连通性,失败则 Token 有问题npx -y yuque-mcp --help 确认包可下载urllib 直接调语雀 REST API:
Base URL: https://www.yuque.com/api/v2
认证: X-Auth-Token header
端点: /user, /users/{login}/repos, /repos/{id}/docs, /repos/{id}/docs/{id}
批量导入/下载超过 10 篇文档时:
| 工具 | 用途 | 必填参数 | 可选参数 |
|---|---|---|---|
yuque_create_doc | 创建/导入文档 | repo_id, title | body, format, slug, public |
yuque_update_doc | 更新已有文档 | repo_id, doc_id | title, body, format, slug, public |
yuque_get_doc | 读取文档内容 | repo_id, doc_id | format, include_lake |
yuque_list_docs | 列出知识库文档 | repo_id | - |
| 工具 | 用途 | 必填参数 | 可选参数 |
|---|---|---|---|
yuque_list_books | 列出知识库 | login | - |
yuque_get_book | 知识库详情 | repo_id | - |
yuque_create_book | 创建知识库 | name | slug, description, public |
yuque_update_book | 更新知识库 | repo_id | name, description, public, slug |
yuque_get_toc | 获取目录结构 | repo_id | - |
yuque_update_toc | 更新目录结构 | repo_id, toc_data | - |
| 工具 | 用途 | 必填参数 |
|---|---|---|
yuque_search | 搜索文档或知识库 | query, type(doc/repo) |
| 工具 | 用途 | 必填参数 | 可选参数 |
|---|---|---|---|
yuque_list_notes | 列出小记 | - | limit, page, status |
yuque_get_note | 获取小记详情 | note_id | - |
yuque_create_note | 创建小记 | body | - |
yuque_update_note | 更新小记 | note_id | body |
| 工具 | 用途 | 必填参数 |
|---|---|---|
yuque_create_resource | 创建思维导图/流程图 | resource_type("board"), type, dsl |
yuque_get_resource | 获取 Board 内容 | resource_type("board"), resource_id |
yuque_update_resource | 更新 Board | resource_type("board"), resource_id, dsl |
| 工具 | 用途 |
|---|---|
yuque_get_user | 获取当前用户信息(用于验证 Token 有效性) |
首次使用必读:本技能依赖语雀 MCP 连接器。每位使用者需要配置自己的语雀 Token,Token 不随技能分发。
告知 AI 助手「配置语雀连接器」,并附上你的 Token。
助手会自动完成以下操作:
~/.workbuddy/mcp.json(保留已有配置){
"mcpServers": {
"yuque": {
"command": "npx",
"args": ["-y", "yuque-mcp"],
"env": {
"YUQUE_PERSONAL_TOKEN": "<你自己的Token>"
}
}
}
}
mcp.json.bak配置后重启 WorkBuddy,助手会自动调用 yuque_get_user 验证连通性。返回你的用户名即表示成功。
| 限制 | 说明 | 替代方案 |
|---|---|---|
| 图片上传 | MCP 不支持通用图片附件 | 外部图片 URL 可在 Markdown 中直接引用 |
| 二进制文件 | 视频、音频等需手动上传 | 语雀网页端手动上传 |
| yuque_create_resource | 仅支持 board 类型 | 二进制文件用网页端上传 |
yuque-mcphttps://www.yuque.com/api/v2