语雀连接器

API key required
Other

语雀知识库双向同步技能。支持本地文件导入语雀(Word/Excel/Markdown/HTML/文本/zip文件夹),也支持从语雀下载文档到本地。覆盖搜索、创建、更新、目录管理等操作,含错误自动恢复和进阶用法。触发词:导入语雀、上传语雀、下载语雀、语雀知识库、语雀文档、发送到语雀、从语雀下载、yuque、传到语雀、同步语雀。

Install

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 文件
整个知识库多个 .mdyuque_list_docs + 逐篇 yuque_get_doc,每个文档一个文件
指定目录多个 .mdyuque_get_toc 筛选目录下文档,逐篇下载
小记.mdyuque_list_notes + yuque_get_note,保存为 Markdown

操作示例(附实际结果)

示例 1:上传 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 一致。


示例 2:从语雀下载文档到本地

输入:用户说「把语雀考试系统知识库里的「语雀知识库连接器配置技能」下载到本地」

执行步骤

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 文件,可在任意编辑器中打开编辑。


示例 3:批量下载整个知识库

输入:用户说「把考试系统知识库所有文档都下载到本地」

执行步骤

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 副本。


示例 4:上传 Excel 到语雀(多工作表拆分)

输入:用户说「把这个 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. 用户选择同步方向(上传/下载/双向合并)

下载功能详细说明

yuque_get_doc 参数

repo_id:  知识库 ID(必填)
doc_id:   文档 ID 或 slug(必填)
format:   "markdown"(推荐,返回纯 Markdown)| "lake" | "html"
include_lake: true(同时返回 Lake 原始格式,保留 Mermaid 源码等)

下载时文件名处理

  • 优先使用文档 title 作为文件名
  • 清理非法字符(/:*?"<>|)
  • 添加 .md 扩展名
  • 如目标目录已有同名文件,追加序号:标题(2).md

批量下载限流

  • 每篇文档下载后等待 1 秒(防止 429 限流)
  • 如遇 429,等待 5 秒后重试,最多重试 3 次
  • 可通过 yuque_get_toc 先获取目录结构,选择性下载特定目录

进阶功能

1. 目录管理(组织知识库结构)

# 获取当前目录结构
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>"}')

适用场景:新知识库初始化、批量导入后整理目录、跨目录移动文档。

2. 文档搜索与引用

# 搜索文档(全文搜索)
yuque_search(query="考试系统", type="doc")

# 搜索知识库
yuque_search(query="培训", type="repo")

# 搜索后获取全文
yuque_get_doc(repo_id="<id>", doc_id="<id>", format: "markdown")

适用场景:查找历史文档、引用已有内容到新文档中。

3. 文档更新(同步修改)

# 更新已有文档内容
yuque_update_doc(repo_id="78381340", doc_id="272726945",
  title="6月周报(修订版)", body="<新内容>", format: "markdown")

适用场景:本地文件修改后同步到语雀、修正已上传文档的内容。

4. 小记(快速笔记)

# 创建小记
yuque_create_note(body="今天完成了语雀连接器的配置工作")

# 列出小记
yuque_list_notes(limit=10)

# 获取小记详情
yuque_get_note(note_id="<id>")

适用场景:快速记录碎片想法、待办事项、临时笔记。

5. 知识库创建与管理

# 创建新知识库
yuque_create_book(name="新项目文档", slug="new-project")

# 获取知识库详情
yuque_get_book(repo_id="78381340")

# 更新知识库信息
yuque_update_book(repo_id="78381340", name="新名称", description="更新后的描述")

6. Board 资源创建(思维导图/流程图)

# 创建思维导图
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)

7. Markdown 内容处理注意事项

  • 代码块:确保用 ``` 包裹,语雀渲染器支持语法高亮
  • 图片链接:外部图片 URL(https://)可在语雀中正常显示;本地图片路径不会生效
  • 表格:使用标准 Markdown 表格语法,语雀完全支持
  • Mermaid 图表:使用 include_lake: true 获取原始 Mermaid 源码
  • 数学公式:语雀支持 LaTeX 语法($...$ 和 $$...$$)
  • 锚点链接:语雀文档内部链接格式为 ((doc_id '显示文字'))

错误处理与自动恢复

常见错误及自动恢复策略

错误码含义自动恢复手动处理
401Token 无效/过期自动提示重新获取前往 设置页 重新生成
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 写入失败:

  1. 检查文件是否存在 → 不存在则创建(含基础结构 {}
  2. 检查 JSON 是否合法 → 不合法则读取原文件内容,修复后重写
  3. 检查磁盘空间 → 空间不足则提示清理
  4. 写入前自动备份原文件为 mcp.json.bak

MCP 服务加载失败排查

如果语雀 MCP 工具无法调用:

  1. 验证 MCP 配置:读取 ~/.workbuddy/mcp.json,确认 yuque 条目存在且格式正确
  2. 验证 Token:调用 yuque_get_user 测试连通性,失败则 Token 有问题
  3. 验证 npx:Bash 执行 npx -y yuque-mcp --help 确认包可下载
  4. 重写配置:以上均正常则删除 yuque 条目后重新写入
  5. 最终回退:如 MCP 确实无法加载,降级使用 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 篇文档时:

  1. 每成功一篇记录 doc_id 到临时进度文件
  2. 如中途失败,重启后从进度文件中读取已完成的 doc_id
  3. 跳过已完成,从中断处继续
  4. 全部完成后删除进度文件

全部可用工具速查

文档操作(核心)

工具用途必填参数可选参数
yuque_create_doc创建/导入文档repo_id, titlebody, format, slug, public
yuque_update_doc更新已有文档repo_id, doc_idtitle, body, format, slug, public
yuque_get_doc读取文档内容repo_id, doc_idformat, include_lake
yuque_list_docs列出知识库文档repo_id-

知识库与目录

工具用途必填参数可选参数
yuque_list_books列出知识库login-
yuque_get_book知识库详情repo_id-
yuque_create_book创建知识库nameslug, description, public
yuque_update_book更新知识库repo_idname, 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_idbody

Board 资源

工具用途必填参数
yuque_create_resource创建思维导图/流程图resource_type("board"), type, dsl
yuque_get_resource获取 Board 内容resource_type("board"), resource_id
yuque_update_resource更新 Boardresource_type("board"), resource_id, dsl

用户

工具用途
yuque_get_user获取当前用户信息(用于验证 Token 有效性)

配置指南

首次使用必读:本技能依赖语雀 MCP 连接器。每位使用者需要配置自己的语雀 Token,Token 不随技能分发。

第一步:获取你的语雀 Token

  1. 打开 语雀 并登录你自己的账号
  2. 点击右上角 头像 → 设置 → Tokens(直达:https://www.yuque.com/settings/tokens)
  3. 点击 新建令牌
  4. 权限勾选 读取 + 写入
  5. 复制生成的 Token(只显示一次,务必保存

第二步:配置 MCP 连接器

告知 AI 助手「配置语雀连接器」,并附上你的 Token。

助手会自动完成以下操作:

  1. 读取 ~/.workbuddy/mcp.json(保留已有配置)
  2. 写入语雀条目:
{
  "mcpServers": {
    "yuque": {
      "command": "npx",
      "args": ["-y", "yuque-mcp"],
      "env": {
        "YUQUE_PERSONAL_TOKEN": "<你自己的Token>"
      }
    }
  }
}
  1. 写入前自动备份原文件为 mcp.json.bak

第三步:验证连接

配置后重启 WorkBuddy,助手会自动调用 yuque_get_user 验证连通性。返回你的用户名即表示成功。

换电脑怎么办?

  • Token:跟随你的语雀账号,换电脑同样有效
  • MCP 配置:需要重新写入(配置文件是本地的)
  • 技能文件:重新安装即可
  • 只需把你的 Token 再贴给助手,一键恢复全部功能

已知限制

限制说明替代方案
图片上传MCP 不支持通用图片附件外部图片 URL 可在 Markdown 中直接引用
二进制文件视频、音频等需手动上传语雀网页端手动上传
yuque_create_resource仅支持 board 类型二进制文件用网页端上传

参考信息