yuque-ai-mcp 2.13.4 → 2.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/README.md +33 -78
  2. package/README_CN.md +27 -72
  3. package/SKILL.md +11 -60
  4. package/config/config.example.json +2 -48
  5. package/dist/common/api-client.d.ts +1 -1
  6. package/dist/common/api-client.js +1 -1
  7. package/dist/common/api-client.js.map +1 -1
  8. package/dist/common/config.d.ts +0 -55
  9. package/dist/common/config.js +1 -32
  10. package/dist/common/config.js.map +1 -1
  11. package/dist/common/register-tools.d.ts +0 -3
  12. package/dist/common/register-tools.js +0 -9
  13. package/dist/common/register-tools.js.map +1 -1
  14. package/dist/common/validate.d.ts +5 -0
  15. package/dist/common/validate.js +20 -0
  16. package/dist/common/validate.js.map +1 -1
  17. package/dist/doc/batch-get-docs.js +10 -18
  18. package/dist/doc/batch-get-docs.js.map +1 -1
  19. package/dist/doc/copy-doc.js +13 -17
  20. package/dist/doc/copy-doc.js.map +1 -1
  21. package/dist/doc/import-file.js +14 -17
  22. package/dist/doc/import-file.js.map +1 -1
  23. package/dist/doc/import-url.js +13 -17
  24. package/dist/doc/import-url.js.map +1 -1
  25. package/dist/mine/sort-book-stack.js +29 -4
  26. package/dist/mine/sort-book-stack.js.map +1 -1
  27. package/dist/mine/update-book-stack.js +26 -4
  28. package/dist/mine/update-book-stack.js.map +1 -1
  29. package/dist/repo/batch-get-repos.js +9 -20
  30. package/dist/repo/batch-get-repos.js.map +1 -1
  31. package/dist/repo/copy-repo.js +7 -16
  32. package/dist/repo/copy-repo.js.map +1 -1
  33. package/dist/toc/batch-update.js +10 -12
  34. package/dist/toc/batch-update.js.map +1 -1
  35. package/dist/toc/update-toc.js +6 -7
  36. package/dist/toc/update-toc.js.map +1 -1
  37. package/dist/web-doc/batch-move-catalog-nodes.js +1 -1
  38. package/dist/web-doc/copy-catalog-node.js +1 -1
  39. package/dist/web-doc/move-catalog-node.js +1 -1
  40. package/package.json +2 -2
  41. package/dist/common/repo-capacity.d.ts +0 -26
  42. package/dist/common/repo-capacity.js +0 -105
  43. package/dist/common/repo-capacity.js.map +0 -1
  44. package/dist/common/schedule-common.d.ts +0 -38
  45. package/dist/common/schedule-common.js +0 -111
  46. package/dist/common/schedule-common.js.map +0 -1
  47. package/dist/crawler/extract.d.ts +0 -19
  48. package/dist/crawler/extract.js +0 -220
  49. package/dist/crawler/extract.js.map +0 -1
  50. package/dist/crawler/fetch.d.ts +0 -8
  51. package/dist/crawler/fetch.js +0 -85
  52. package/dist/crawler/fetch.js.map +0 -1
  53. package/dist/crawler/index.d.ts +0 -6
  54. package/dist/crawler/index.js +0 -10
  55. package/dist/crawler/index.js.map +0 -1
  56. package/dist/crawler/save.d.ts +0 -11
  57. package/dist/crawler/save.js +0 -160
  58. package/dist/crawler/save.js.map +0 -1
  59. package/dist/crawler/schedule.d.ts +0 -12
  60. package/dist/crawler/schedule.js +0 -132
  61. package/dist/crawler/schedule.js.map +0 -1
  62. package/dist/kv/common.d.ts +0 -34
  63. package/dist/kv/common.js +0 -191
  64. package/dist/kv/common.js.map +0 -1
  65. package/dist/kv/delete.d.ts +0 -7
  66. package/dist/kv/delete.js +0 -52
  67. package/dist/kv/delete.js.map +0 -1
  68. package/dist/kv/get.d.ts +0 -7
  69. package/dist/kv/get.js +0 -52
  70. package/dist/kv/get.js.map +0 -1
  71. package/dist/kv/index.d.ts +0 -6
  72. package/dist/kv/index.js +0 -10
  73. package/dist/kv/index.js.map +0 -1
  74. package/dist/kv/list.d.ts +0 -5
  75. package/dist/kv/list.js +0 -42
  76. package/dist/kv/list.js.map +0 -1
  77. package/dist/kv/set.d.ts +0 -7
  78. package/dist/kv/set.js +0 -54
  79. package/dist/kv/set.js.map +0 -1
  80. package/dist/rss/dedup.d.ts +0 -9
  81. package/dist/rss/dedup.js +0 -24
  82. package/dist/rss/dedup.js.map +0 -1
  83. package/dist/rss/fetch-feed.d.ts +0 -8
  84. package/dist/rss/fetch-feed.js +0 -290
  85. package/dist/rss/fetch-feed.js.map +0 -1
  86. package/dist/rss/index.d.ts +0 -5
  87. package/dist/rss/index.js +0 -8
  88. package/dist/rss/index.js.map +0 -1
  89. package/dist/rss/list-sources.d.ts +0 -8
  90. package/dist/rss/list-sources.js +0 -39
  91. package/dist/rss/list-sources.js.map +0 -1
  92. package/dist/rss/parser.d.ts +0 -27
  93. package/dist/rss/parser.js +0 -87
  94. package/dist/rss/parser.js.map +0 -1
  95. package/dist/rss/schedule.d.ts +0 -14
  96. package/dist/rss/schedule.js +0 -171
  97. package/dist/rss/schedule.js.map +0 -1
  98. package/dist/rss/sources.d.ts +0 -18
  99. package/dist/rss/sources.js +0 -12
  100. package/dist/rss/sources.js.map +0 -1
package/README.md CHANGED
@@ -4,11 +4,11 @@
4
4
 
5
5
  <h1 align="center">yuque-ai-mcp</h1>
6
6
  <p align="center">
7
- <b>73 fine-grained MCP tools for the full Yuque OpenAPI</b>
7
+ <b>62 MCP tools (45 OpenAPI + 17 web-API)</b>
8
8
  </p>
9
9
 
10
10
  <p align="center">
11
- <a href="https://github.com/yehuoshun/yuque-ai-mcp"><img src="https://img.shields.io/badge/version-2.13.3-blue" alt="version" /></a>
11
+ <a href="https://github.com/yehuoshun/yuque-ai-mcp"><img src="https://img.shields.io/badge/version-2.14.0-blue" alt="version" /></a>
12
12
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="license" /></a>
13
13
  <a href="https://github.com/yehuoshun/yuque-ai-skills"><img src="https://img.shields.io/badge/skills-67%20guides-orange" alt="skills" /></a>
14
14
  </p>
@@ -19,13 +19,13 @@
19
19
 
20
20
  ---
21
21
 
22
- A full-featured Yuque (语雀) MCP Server built on the [Model Context Protocol](https://modelcontextprotocol.io/). Provides 73 fine-grained tools across 16 domains — every Yuque OpenAPI endpoint as a dedicated tool.
22
+ A full-featured Yuque (语雀) MCP Server built on the [Model Context Protocol](https://modelcontextprotocol.io/). Provides 62 fine-grained tools across 13 domains — 45 Yuque OpenAPI endpoints plus 17 web-API tools requiring a browser session cookie.
23
23
 
24
24
  ## Why
25
25
 
26
- - **19 → 73 tools** — 3x more coverage than the official [yuque-mcp-server](https://github.com/yuque/yuque-mcp-server)
26
+ - **19 → 62 tools** — 3x more coverage than the official [yuque-mcp-server](https://github.com/yuque/yuque-mcp-server)
27
27
  - **Dual transport** — stdio + HTTP SSE, shared registry, zero downtime on reload
28
- - **Modular architecture** — 16 domains, barrel exports, single source of truth registry
28
+ - **Modular architecture** — 13 domains, barrel exports, single source of truth registry
29
29
  - **Full API coverage** — group, recycle, upload, statistics, versions, boards — all the missing pieces
30
30
  - **[Skill layer](https://github.com/yehuoshun/yuque-ai-skills)** — 67 usage guides for AI agents
31
31
 
@@ -72,14 +72,13 @@ npm run dev:http # HTTP SSE mode (http://localhost:3099)
72
72
  | **recycle** | 3 | List, restore, destroy (Cookie auth) |
73
73
  | **upload** | 1 | File upload to Yuque CDN (Cookie auth) |
74
74
  | **board** | 3 | Mindmap, flowchart, architecture diagram |
75
- | **web_doc** | 8 | Get doc, list docs, list repos, get TOC, delete doc, move/copy catalog nodes (Cookie auth) |
76
- | **mine** | 4 | Book stacks, editor center, update/sort book stacks (Cookie auth) |
77
- | **rss** | 3 | Source list, fetch + dedup + save, schedule analysis |
78
- | **crawler** | 4 | Fetch, CSS extract, dedup save, schedule analysis |
79
- | **kv** | 4 | Get, set, delete, list — incremental sharding, 250KB/doc limit |
80
- | **Total** | **73** | |
75
+ | **mine** | 4 | Book stacks, editor center, update/sort book stack (Cookie auth) |
76
+ | **web_doc** | 8 | Web API: get/list docs, repos, TOC, move/copy/delete catalog nodes (Cookie auth) |
77
+ | **Total** | **62** | |
81
78
 
82
- ### All 73 Tools
79
+ **Auth split**: 45 tools use the OpenAPI (`X-Auth-Token`); 17 are Web API requiring Cookie + `x-csrf-token` — `web_doc` (8), `mine` (4), `recycle` (3), `upload` (1), `web_search` (1).
80
+
81
+ ### All 62 Tools
83
82
 
84
83
  | Tool | Domain | Description |
85
84
  |------|--------|-------------|
@@ -89,14 +88,6 @@ npm run dev:http # HTTP SSE mode (http://localhost:3099)
89
88
  | `yuque_search` | search | 通用搜索文档/知识库 |
90
89
  | `yuque_rag_search` | search | RAG 检索增强搜索 + 自动获取文档内容 |
91
90
  | `yuque_web_search` | search | Cookie 态 Web 搜索,返回完整文档对象 + 精确总数 + 高亮摘要 |
92
- | `yuque_web_get_doc` | web_doc | Cookie 态读文档正文(含 body/content),不受会员过期限流 |
93
- | `yuque_web_list_docs` | web_doc | Cookie 态列文档列表,更丰富的字段 |
94
- | `yuque_web_list_repos` | web_doc | Cookie 态列知识库列表,含权限信息 |
95
- | `yuque_web_get_toc` | web_doc | Cookie 态获取知识库目录 TOC |
96
- | `yuque_web_delete_doc` | web_doc | Cookie 态删除文档(v2 被限流时的备用通道,移入回收站) |
97
- | `yuque_web_copy_catalog_node` | web_doc | Cookie 态跨库复制目录节点(服务端重传附件,保留文件卡片) |
98
- | `yuque_web_move_catalog_node` | web_doc | Cookie 态移动目录节点 |
99
- | `yuque_web_batch_move_catalog_nodes` | web_doc | Cookie 态批量移动目录节点 |
100
91
  | `yuque_get_group_users` | group | 获取团队成员列表 |
101
92
  | `yuque_update_group_user` | group | 变更团队成员角色 |
102
93
  | `yuque_delete_group_user` | group | 删除团队成员 |
@@ -134,28 +125,25 @@ npm run dev:http # HTTP SSE mode (http://localhost:3099)
134
125
  | `yuque_get_note` | note | 获取小记详情 |
135
126
  | `yuque_create_note` | note | 创建小记 |
136
127
  | `yuque_update_note` | note | 更新小记 |
137
- | `yuque_list_recycles` | recycle | 列出回收站项目 |
138
- | `yuque_restore_recycle` | recycle | 恢复回收站项目 |
139
- | `yuque_destroy_recycle` | recycle | 彻底删除回收站项目 |
140
- | `yuque_upload_attachment` | upload | 上传文件到语雀 CDN |
128
+ | `yuque_list_recycles` | recycle | 列出回收站项目(Cookie) |
129
+ | `yuque_restore_recycle` | recycle | 恢复回收站项目(Cookie) |
130
+ | `yuque_destroy_recycle` | recycle | 彻底删除回收站项目(Cookie) |
131
+ | `yuque_upload_attachment` | upload | 上传文件到语雀 CDN(Cookie) |
141
132
  | `yuque_get_board` | board | 获取文档中的画板资源 |
142
133
  | `yuque_create_board` | board | 在文档中创建画板资源 |
143
134
  | `yuque_update_board` | board | 更新文档中的画板资源 |
144
- | `yuque_rss_list_sources` | rss | 列出所有可用 RSS 数据源及 feed 类型 |
145
- | `yuque_rss_fetch` | rss | 抓取 RSS/Atom Feed,解析后去重写入语雀 |
146
- | `yuque_rss_schedule` | rss | 分析更新频率,生成推荐抓取时间 |
147
- | `yuque_crawl_fetch` | crawler | 抓取网页原始 HTML |
148
- | `yuque_crawl_extract` | crawler | CSS 选择器从 HTML 提取内容 |
149
- | `yuque_crawl_save` | crawler | 去重 + 写入语雀 |
150
- | `yuque_crawl_schedule` | crawler | 分析爬虫抓取频率,生成推荐抓取时间 |
151
- | `yuque_get_book_stacks` | mine | 获取知识库分组(书架)列表 |
152
- | `yuque_get_editor_center` | mine | 获取个人编辑中心全景数据 |
153
- | `yuque_update_book_stack` | mine | 移动知识库到指定分组(书架) |
154
- | `yuque_sort_book_stack` | mine | 对知识库分组内的知识库进行排序 |
155
- | `yuque_kv_get` | kv | 读取 KV 命名空间的完整 JSON map(分片合并) |
156
- | `yuque_kv_set` | kv | 增量设置 key-value,超 250KB 自动分片 |
157
- | `yuque_kv_delete` | kv | 遍历分片查找并删除 key |
158
- | `yuque_kv_list` | kv | 列出已配置的 KV 命名空间 |
135
+ | `yuque_get_book_stacks` | mine | 获取知识库分组(书架)列表(Cookie) |
136
+ | `yuque_get_editor_center` | mine | 获取个人编辑中心全景数据(Cookie) |
137
+ | `yuque_update_book_stack` | mine | 移动知识库到指定分组(书架)(Cookie) |
138
+ | `yuque_sort_book_stack` | mine | 排序知识库分组(书架)(Cookie) |
139
+ | `yuque_web_get_doc` | web_doc | Cookie 态读文档正文(含 body/content),不受会员过期限流 |
140
+ | `yuque_web_list_docs` | web_doc | Cookie 态列文档列表,更丰富的字段 |
141
+ | `yuque_web_list_repos` | web_doc | Cookie 态列知识库列表,含权限信息 |
142
+ | `yuque_web_get_toc` | web_doc | Cookie 态获取知识库目录 TOC |
143
+ | `yuque_web_delete_doc` | web_doc | Cookie 态删除文档(移入回收站,v2 被限流时的备用通道) |
144
+ | `yuque_web_move_catalog_node` | web_doc | Cookie 态移动目录节点 |
145
+ | `yuque_web_copy_catalog_node` | web_doc | Cookie 态复制目录节点 |
146
+ | `yuque_web_batch_move_catalog_nodes` | web_doc | Cookie 态批量移动目录节点 |
159
147
 
160
148
  See [SKILL.md](SKILL.md) or [yuque-ai-skills](https://github.com/yehuoshun/yuque-ai-skills) for full tool documentation with parameters and examples.
161
149
 
@@ -163,7 +151,7 @@ See [SKILL.md](SKILL.md) or [yuque-ai-skills](https://github.com/yehuoshun/yuque
163
151
 
164
152
  | Feature | Official yuque-mcp-server | yuque-ai-mcp |
165
153
  |---------|--------------------------|--------------|
166
- | Tools | 19 | **73** |
154
+ | Tools | 19 | **62** |
167
155
  | Granularity | Coarse | **Fine-grained** (1 tool / endpoint) |
168
156
  | Group, Recycle, Upload, Statistics | ❌ | ✅ |
169
157
  | Versions, Diff, Cross-book Copy | ❌ | ✅ |
@@ -176,10 +164,10 @@ See [SKILL.md](SKILL.md) or [yuque-ai-skills](https://github.com/yehuoshun/yuque
176
164
  ```
177
165
  server/src/
178
166
  ├── common/ # Shared: config, errors, types, format, validate,
179
- │ # api-client, web-request, register-tools, copy/export/schedule common,
180
- │ # repo-capacity (auto-expand), toc-cache (configurable TTL), text-utils
167
+ │ # api-client, web-request, register-tools, copy/export common,
168
+ │ # toc-cache (configurable TTL), text-utils
181
169
  ├── user/ search/ group/ doc/ toc/ repo/ statistic/
182
- ├── note/ recycle/ upload/ board/ rss/ crawler/ mine/ kv/
170
+ ├── note/ recycle/ upload/ board/ mine/ web-doc/
183
171
  ├── index.ts # stdio entry
184
172
  └── http.ts # HTTP SSE entry (port 3099)
185
173
  ```
@@ -191,43 +179,10 @@ server/src/
191
179
  "token": "Your Yuque API Token",
192
180
  "api_base": "https://www.yuque.com/api/v2",
193
181
  "cookie": "Optional, for recycle/upload features",
194
- "ctoken": "Optional, extracted from Cookie",
195
- "kv": { "enabled": true },
196
- "rss": {
197
- "enabled": true,
198
- "sources": {
199
- "cnblogs": {
200
- "name": "博客园",
201
- "slug_pattern": "/p/(\\d+)",
202
- "feeds": {
203
- "sitehome": { "label": "首页", "url": "https://feed.cnblogs.com/blog/sitehome/rss" }
204
- }
205
- }
206
- },
207
- "namespaces": {
208
- "cnblogs": {
209
- "book_id": [0],
210
- "kv_slugs": [],
211
- "schedule_slugs": []
212
- }
213
- }
214
- },
215
- "crawler": {
216
- "enabled": true,
217
- "namespaces": {
218
- "my-source": {
219
- "book_id": [0],
220
- "kv_slugs": [],
221
- "schedule_slugs": []
222
- }
223
- }
224
- }
182
+ "ctoken": "Optional, extracted from Cookie"
225
183
  }
226
184
  ```
227
185
 
228
- - `book_id`: Target repo ID array — last element is the active repo. Auto-expands when full (5000 docs).
229
- - `kv_slugs`: KV dedup shard docs (`{book_id}/{doc_id}` format)
230
- - `schedule_slugs`: Schedule config docs
231
186
  - `toc_cache_ttl_minutes`: TOC cache TTL in minutes (default 60). Set higher to reduce API calls, lower for fresher data.
232
187
 
233
188
  ## Error Handling
@@ -263,7 +218,7 @@ Both [yuque-ai-mcp](https://github.com/yehuoshun/yuque-ai-mcp) and [yuque-ai-ski
263
218
 
264
219
  ## Maintenance
265
220
 
266
- This project is listed in these directories. When the tool count or domain count changes, sync the entries (they mention "73 tools" / "16 domains"):
221
+ This project is listed in these directories. When the tool count or domain count changes, sync the entries (they mention "62 tools" / "13 domains"):
267
222
 
268
223
  - [punkpeye/awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers)
269
224
  - [zackchewa/awesome-china-mcp](https://github.com/zackchewa/awesome-china-mcp)
package/README_CN.md CHANGED
@@ -5,12 +5,12 @@
5
5
  <p align="center">
6
6
  <h1 align="center">yuque-ai-mcp</h1>
7
7
  <p align="center">
8
- <b>73 个细粒度 MCP 工具,覆盖语雀 OpenAPI 全部能力</b>
8
+ <b>62 个 MCP 工具(45 OpenAPI + 17 Web API)</b>
9
9
  </p>
10
10
  </p>
11
11
 
12
12
  <p align="center">
13
- <a href="https://github.com/yehuoshun/yuque-ai-mcp"><img src="https://img.shields.io/badge/版本-2.13.3-blue" alt="version" /></a>
13
+ <a href="https://github.com/yehuoshun/yuque-ai-mcp"><img src="https://img.shields.io/badge/版本-2.14.0-blue" alt="version" /></a>
14
14
  <a href="LICENSE"><img src="https://img.shields.io/badge/许可-MIT-green" alt="license" /></a>
15
15
  <a href="https://github.com/yehuoshun/yuque-ai-skills"><img src="https://img.shields.io/badge/skills-67%20指导-orange" alt="skills" /></a>
16
16
  </p>
@@ -21,13 +21,13 @@
21
21
 
22
22
  ---
23
23
 
24
- 基于 [Model Context Protocol](https://modelcontextprotocol.io/) 的语雀全功能 MCP Server。73 个工具,16 个域——每个语雀 OpenAPI 端点一个专用工具。
24
+ 基于 [Model Context Protocol](https://modelcontextprotocol.io/) 的语雀全功能 MCP Server。62 个工具,13 个域——45 个语雀 OpenAPI 端点 + 17 个需要浏览器会话 Cookie 的 Web API 工具。
25
25
 
26
26
  ## 为什么选这个
27
27
 
28
- - **19 → 73 工具** — 比官方 [yuque-mcp-server](https://github.com/yuque/yuque-mcp-server) 多 3 倍覆盖
28
+ - **19 → 62 工具** — 比官方 [yuque-mcp-server](https://github.com/yuque/yuque-mcp-server) 多 3 倍覆盖
29
29
  - **双传输模式** — stdio + HTTP SSE,共享注册中心,修改无需重启
30
- - **模块化架构** — 16 个域,barrel export,唯一注册中心
30
+ - **模块化架构** — 13 个域,barrel export,唯一注册中心
31
31
  - **完整 API 覆盖** — 团队、回收站、上传、统计、版本、画板——补全官方缺失
32
32
  - **[Skill 层](https://github.com/yehuoshun/yuque-ai-skills)** — 67 个 AI Agent 使用指导
33
33
 
@@ -75,14 +75,13 @@ npm run dev:http # HTTP SSE 模式 (http://localhost:3099)
75
75
  | **recycle** | 3 | 列表、恢复、彻底删除(Cookie 认证) |
76
76
  | **upload** | 1 | 文件上传到语雀 CDN(Cookie 认证) |
77
77
  | **board** | 3 | 思维导图、流程图、架构图 |
78
- | **web_doc** | 8 | Cookie 态文档读写、目录导航、目录节点移动/复制 |
79
- | **mine** | 4 | 书架列表、编辑中心、移动知识库、排序(Cookie 认证) |
80
- | **rss** | 3 | 数据源列表、抓取+去重+写入、定时策略分析 |
81
- | **crawler** | 4 | 抓取、CSS 提取、去重写入、定时策略分析 |
82
- | **kv** | 4 | 增删查列——增量分片,单文档 250KB 上限 |
83
- | **合计** | **73** | |
78
+ | **mine** | 4 | 书架列表、编辑中心、更新/排序书架(Cookie 认证) |
79
+ | **web_doc** | 8 | Web API:获取/列出文档、知识库、目录,移动/复制/删除目录节点(Cookie 认证) |
80
+ | **合计** | **62** | |
84
81
 
85
- ### 全部 73 个工具
82
+ **认证方式**:45 个走 OpenAPI(`X-Auth-Token`);17 个走 Web API,需 Cookie + `x-csrf-token` —— `web_doc`(8)、`mine`(4)、`recycle`(3)、`upload`(1)、`web_search`(1)。
83
+
84
+ ### 全部 62 个工具
86
85
 
87
86
  | 工具 | 域 | 说明 |
88
87
  |------|--------|-------------|
@@ -129,36 +128,25 @@ npm run dev:http # HTTP SSE 模式 (http://localhost:3099)
129
128
  | `yuque_get_note` | note | 获取小记详情 |
130
129
  | `yuque_create_note` | note | 创建小记 |
131
130
  | `yuque_update_note` | note | 更新小记 |
132
- | `yuque_list_recycles` | recycle | 列出回收站项目 |
133
- | `yuque_restore_recycle` | recycle | 恢复回收站项目 |
134
- | `yuque_destroy_recycle` | recycle | 彻底删除回收站项目 |
135
- | `yuque_upload_attachment` | upload | 上传文件到语雀 CDN |
131
+ | `yuque_list_recycles` | recycle | 列出回收站项目(Cookie) |
132
+ | `yuque_restore_recycle` | recycle | 恢复回收站项目(Cookie) |
133
+ | `yuque_destroy_recycle` | recycle | 彻底删除回收站项目(Cookie) |
134
+ | `yuque_upload_attachment` | upload | 上传文件到语雀 CDN(Cookie) |
136
135
  | `yuque_get_board` | board | 获取文档中的画板资源 |
137
136
  | `yuque_create_board` | board | 在文档中创建画板资源 |
138
137
  | `yuque_update_board` | board | 更新文档中的画板资源 |
138
+ | `yuque_get_book_stacks` | mine | 获取知识库分组(书架)列表(Cookie) |
139
+ | `yuque_get_editor_center` | mine | 获取个人编辑中心全景数据(Cookie) |
140
+ | `yuque_update_book_stack` | mine | 移动知识库到指定分组(书架)(Cookie) |
141
+ | `yuque_sort_book_stack` | mine | 排序知识库分组(书架)(Cookie) |
139
142
  | `yuque_web_get_doc` | web_doc | Cookie 态读文档正文(含 body/content),不受会员过期限流 |
140
143
  | `yuque_web_list_docs` | web_doc | Cookie 态列文档列表,更丰富的字段 |
141
144
  | `yuque_web_list_repos` | web_doc | Cookie 态列知识库列表,含权限信息 |
142
145
  | `yuque_web_get_toc` | web_doc | Cookie 态获取知识库目录 TOC |
143
146
  | `yuque_web_delete_doc` | web_doc | Cookie 态删除文档(移入回收站,v2 被限流时的备用通道) |
144
- | `yuque_web_copy_catalog_node` | web_doc | Cookie 态跨库复制目录节点(服务端重传附件,保留文件卡片) |
145
147
  | `yuque_web_move_catalog_node` | web_doc | Cookie 态移动目录节点 |
148
+ | `yuque_web_copy_catalog_node` | web_doc | Cookie 态复制目录节点 |
146
149
  | `yuque_web_batch_move_catalog_nodes` | web_doc | Cookie 态批量移动目录节点 |
147
- | `yuque_rss_list_sources` | rss | 列出所有可用 RSS 数据源及 feed 类型 |
148
- | `yuque_rss_fetch` | rss | 抓取 RSS/Atom Feed,解析后去重写入语雀 |
149
- | `yuque_rss_schedule` | rss | 分析更新频率,生成推荐抓取时间 |
150
- | `yuque_crawl_fetch` | crawler | 抓取网页原始 HTML |
151
- | `yuque_crawl_extract` | crawler | CSS 选择器从 HTML 提取内容 |
152
- | `yuque_crawl_save` | crawler | 去重 + 写入语雀 |
153
- | `yuque_crawl_schedule` | crawler | 分析爬虫抓取频率,生成推荐抓取时间 |
154
- | `yuque_get_book_stacks` | mine | 获取知识库分组(书架)列表 |
155
- | `yuque_get_editor_center` | mine | 获取个人编辑中心全景数据 |
156
- | `yuque_update_book_stack` | mine | 移动知识库到指定分组(书架) |
157
- | `yuque_sort_book_stack` | mine | 对知识库分组内的知识库进行排序 |
158
- | `yuque_kv_get` | kv | 读取 KV 命名空间的完整 JSON map(分片合并) |
159
- | `yuque_kv_set` | kv | 增量设置 key-value,超 250KB 自动分片 |
160
- | `yuque_kv_delete` | kv | 遍历分片查找并删除 key |
161
- | `yuque_kv_list` | kv | 列出已配置的 KV 命名空间 |
162
150
 
163
151
  完整工具文档(含参数和示例)见 [SKILL.md](SKILL.md) 或 [yuque-ai-skills](https://github.com/yehuoshun/yuque-ai-skills)。
164
152
 
@@ -166,7 +154,7 @@ npm run dev:http # HTTP SSE 模式 (http://localhost:3099)
166
154
 
167
155
  | 功能 | 官方 yuque-mcp-server | yuque-ai-mcp |
168
156
  |---------|--------------------------|--------------|
169
- | 工具数 | 19 | **73** |
157
+ | 工具数 | 19 | **62** |
170
158
  | 粒度 | 粗粒度 | **细粒度**(1 端点 = 1 工具) |
171
159
  | 团队、回收站、上传、统计 | ❌ | ✅ |
172
160
  | 版本、Diff、跨库复制 | ❌ | ✅ |
@@ -179,10 +167,10 @@ npm run dev:http # HTTP SSE 模式 (http://localhost:3099)
179
167
  ```
180
168
  server/src/
181
169
  ├── common/ # 公共:config, errors, types, format, validate,
182
- │ # api-client, web-request, register-tools, copy/export/schedule,
183
- │ # repo-capacity(自动扩容), toc-cache(可配置 TTL), text-utils
170
+ │ # api-client, web-request, register-tools, copy/export,
171
+ │ # toc-cache(可配置 TTL), text-utils
184
172
  ├── user/ search/ group/ doc/ toc/ repo/ statistic/
185
- ├── note/ recycle/ upload/ board/ rss/ crawler/ mine/ kv/
173
+ ├── note/ recycle/ upload/ board/ mine/ web-doc/
186
174
  ├── index.ts # stdio 入口
187
175
  └── http.ts # HTTP SSE 入口(端口 3099)
188
176
  ```
@@ -194,43 +182,10 @@ server/src/
194
182
  "token": "你的语雀 API Token",
195
183
  "api_base": "https://www.yuque.com/api/v2",
196
184
  "cookie": "可选,回收站/上传功能需要",
197
- "ctoken": "可选,从 Cookie 中提取",
198
- "kv": { "enabled": true },
199
- "rss": {
200
- "enabled": true,
201
- "sources": {
202
- "cnblogs": {
203
- "name": "博客园",
204
- "slug_pattern": "/p/(\\d+)",
205
- "feeds": {
206
- "sitehome": { "label": "首页", "url": "https://feed.cnblogs.com/blog/sitehome/rss" }
207
- }
208
- }
209
- },
210
- "namespaces": {
211
- "cnblogs": {
212
- "book_id": [0],
213
- "kv_slugs": [],
214
- "schedule_slugs": []
215
- }
216
- }
217
- },
218
- "crawler": {
219
- "enabled": true,
220
- "namespaces": {
221
- "my-source": {
222
- "book_id": [0],
223
- "kv_slugs": [],
224
- "schedule_slugs": []
225
- }
226
- }
227
- }
185
+ "ctoken": "可选,从 Cookie 中提取"
228
186
  }
229
187
  ```
230
188
 
231
- - `book_id`:目标知识库 ID 数组,最后一个为当前活跃仓库。满 5000 篇自动扩容追加。
232
- - `kv_slugs`:KV 去重分片文档(`{book_id}/{doc_id}` 格式)
233
- - `schedule_slugs`:定时策略配置文档
234
189
  - `toc_cache_ttl_minutes`:TOC 缓存 TTL(分钟),默认 60。调大可减少 API 调用,调小可获取更新鲜的数据。
235
190
 
236
191
  ## 错误处理
@@ -238,7 +193,7 @@ server/src/
238
193
  统一错误处理,返回结构化错误(HTTP 状态码 + 消息 + 响应摘要)。所有工具共用同一错误管道。
239
194
 
240
195
  关键错误:
241
- - `book_full` — 知识库超 5000 篇,自动创建新仓库并追加到 `book_id` 数组
196
+ - `book_full` — 知识库超 5000 篇(语雀 API 对超 5000 节点的知识库不可用)
242
197
  - `401` / `403` — Token/权限问题
243
198
  - `429` — 限流,自动重试
244
199
 
@@ -266,7 +221,7 @@ npm run build
266
221
 
267
222
  ## 维护
268
223
 
269
- 本项目已收录到以下目录。当工具数或域数变化时,需同步对应条目(条目中写了「73 个工具」/「16 个域」):
224
+ 本项目已收录到以下目录。当工具数或域数变化时,需同步对应条目(条目中写了「62 个工具」/「13 个域」):
270
225
 
271
226
  - [punkpeye/awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers)
272
227
  - [zackchewa/awesome-china-mcp](https://github.com/zackchewa/awesome-china-mcp)
package/SKILL.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # yuque-ai-mcp
2
2
 
3
- 语雀全功能 MCP Server,73 个工具 / 16 个域。当用户提到「语雀」「yuque」「知识库」「文档」「团队」等关键词时触发。
3
+ 语雀全功能 MCP Server,62 个工具 / 13 个域。当用户提到「语雀」「yuque」「知识库」「文档」「团队」等关键词时触发。
4
4
 
5
5
  ## 触发场景
6
6
 
@@ -12,9 +12,6 @@
12
12
  - 画板(思维导图/流程图)
13
13
  - 统计数据
14
14
  - 小记
15
- - RSS 抓取
16
- - 网页爬虫
17
- - KV 存储
18
15
 
19
16
  ## API 端点索引
20
17
 
@@ -96,14 +93,14 @@
96
93
  ### recycle(3 工具)
97
94
  | 工具 | 说明 |
98
95
  |------|------|
99
- | `yuque_list_recycles` | 列出回收站项目 |
100
- | `yuque_restore_recycle` | 恢复回收站项目 |
101
- | `yuque_destroy_recycle` | 彻底删除回收站项目 |
96
+ | `yuque_list_recycles` | 列出回收站项目(Cookie) |
97
+ | `yuque_restore_recycle` | 恢复回收站项目(Cookie) |
98
+ | `yuque_destroy_recycle` | 彻底删除回收站项目(Cookie) |
102
99
 
103
100
  ### upload(1 工具)
104
101
  | 工具 | 说明 |
105
102
  |------|------|
106
- | `yuque_upload_attachment` | 上传文件到语雀 CDN |
103
+ | `yuque_upload_attachment` | 上传文件到语雀 CDN(Cookie) |
107
104
 
108
105
  ### board(3 工具)
109
106
  | 工具 | 说明 |
@@ -112,30 +109,13 @@
112
109
  | `yuque_create_board` | 在文档中创建画板资源 |
113
110
  | `yuque_update_board` | 更新文档中的画板资源 |
114
111
 
115
- ### rss(3 工具)
116
- | 工具 | 说明 |
117
- |------|------|
118
- | `yuque_rss_list_sources` | 列出所有可用 RSS 数据源及 feed 类型 |
119
- | `yuque_rss_fetch` | 抓取 RSS/Atom Feed,解析后去重写入语雀 |
120
- | `yuque_rss_schedule` | 分析更新频率,生成推荐抓取时间并写入配置 |
121
-
122
- ### crawler(4 工具)
123
- | 工具 | 说明 |
124
- |------|------|
125
- | `yuque_crawl_fetch` | 抓取网页原始 HTML |
126
- | `yuque_crawl_extract` | CSS 选择器从 HTML 提取内容 |
127
- | `yuque_crawl_save` | 去重 + 写入语雀(接收 Agent 清洗后的内容) |
128
- | `yuque_crawl_schedule` | 分析爬虫抓取频率,生成推荐抓取时间 |
129
-
130
- > **清洗规范**:Agent 负责 fetch → 提取正文 → HTML→Markdown → 传干净 body 给 `crawl_save`。详见 `references/api/crawler_api.md`。
131
-
132
112
  ### mine(4 工具)
133
113
  | 工具 | 说明 |
134
114
  |------|------|
135
- | `yuque_get_book_stacks` | 获取知识库分组(书架)列表 |
136
- | `yuque_get_editor_center` | 获取个人编辑中心全景数据 |
137
- | `yuque_update_book_stack` | 移动知识库到指定分组(书架) |
138
- | `yuque_sort_book_stack` | 对知识库分组内的知识库进行排序 |
115
+ | `yuque_get_book_stacks` | 获取知识库分组(书架)列表(Cookie) |
116
+ | `yuque_get_editor_center` | 获取个人编辑中心全景数据(Cookie) |
117
+ | `yuque_update_book_stack` | 移动知识库到指定分组(书架)(Cookie) |
118
+ | `yuque_sort_book_stack` | 排序知识库分组(书架)(Cookie) |
139
119
 
140
120
  ### web_doc(8 工具,Cookie 态)
141
121
  | 工具 | 说明 |
@@ -145,18 +125,10 @@
145
125
  | `yuque_web_list_repos` | Cookie 态列知识库列表,含权限信息 |
146
126
  | `yuque_web_get_toc` | Cookie 态获取知识库目录 TOC |
147
127
  | `yuque_web_delete_doc` | Cookie 态删除文档(移入回收站,v2 被限流时的备用通道) |
148
- | `yuque_web_copy_catalog_node` | Cookie 态跨库复制目录节点(服务端重传附件,保留文件卡片) |
149
128
  | `yuque_web_move_catalog_node` | Cookie 态移动目录节点 |
129
+ | `yuque_web_copy_catalog_node` | Cookie 态复制目录节点 |
150
130
  | `yuque_web_batch_move_catalog_nodes` | Cookie 态批量移动目录节点 |
151
131
 
152
- ### kv(4 工具)
153
- | 工具 | 说明 |
154
- |------|------|
155
- | `yuque_kv_get` | 读取 KV 命名空间的完整 JSON map(分片合并) |
156
- | `yuque_kv_set` | 增量设置 key-value,超 250KB 自动分片 |
157
- | `yuque_kv_delete` | 遍历分片查找并删除 key |
158
- | `yuque_kv_list` | 列出已配置的 KV 命名空间 |
159
-
160
132
  ## 错误码
161
133
 
162
134
  所有工具共用统一错误处理。API 失败时返回结构化错误信息(含状态码、中文描述、响应摘要)。
@@ -182,27 +154,6 @@ yuque_get_doc ──(失败)──→ yuque_export_doc → 读本地文件 →
182
154
  "token": "语雀 API Token",
183
155
  "api_base": "https://www.yuque.com/api/v2",
184
156
  "cookie": "可选,回收站/上传/mine 功能需要",
185
- "ctoken": "可选,从 Cookie 中提取",
186
- "kv": { "enabled": true },
187
- "rss": {
188
- "enabled": true,
189
- "namespaces": {
190
- "cnblogs": {
191
- "book_id": [0],
192
- "kv_slugs": [],
193
- "schedule_slugs": []
194
- }
195
- }
196
- },
197
- "crawler": {
198
- "enabled": true,
199
- "namespaces": {
200
- "my-source": {
201
- "book_id": [0],
202
- "kv_slugs": [],
203
- "schedule_slugs": []
204
- }
205
- }
206
- }
157
+ "ctoken": "可选,从 Cookie 中提取"
207
158
  }
208
159
  ```
@@ -3,51 +3,5 @@
3
3
  "api_base": "https://www.yuque.com/api/v2",
4
4
  "toc_cache_ttl_minutes": 60,
5
5
  "cookie": "可选,回收站/上传功能需要。浏览器登录后 F12 → Application → Cookies → 复制完整 Cookie 字符串",
6
- "ctoken": "可选,从 Cookie 中提取 yuque_ctoken 的值",
7
- "rss": {
8
- "enabled": true,
9
- "sources": {
10
- "cnblogs": {
11
- "name": "博客园",
12
- "description": "开发者的网上家园,技术博客聚合平台",
13
- "slug_pattern": "/p/(\\d+)",
14
- "feeds": {
15
- "sitehome": { "label": "首页最新", "url": "https://feed.cnblogs.com/blog/sitehome/rss" },
16
- "picked": { "label": "编辑推荐", "url": "https://feed.cnblogs.com/blog/sitehome/picked" },
17
- "48h": { "label": "48小时阅读排行", "url": "https://feed.cnblogs.com/blog/sitehome/48h" },
18
- "10d": { "label": "10天推荐排行", "url": "https://feed.cnblogs.com/blog/sitehome/10d" },
19
- "user": {
20
- "label": "用户博客",
21
- "url_template": "https://feed.cnblogs.com/blog/u/{username}/rss",
22
- "params_schema": { "username": { "type": "string", "description": "博客园用户名", "required": true } }
23
- },
24
- "category": {
25
- "label": "分类",
26
- "url_template": "https://feed.cnblogs.com/blog/category/{category}/rss",
27
- "params_schema": { "category": { "type": "string", "description": "分类名", "required": true } }
28
- }
29
- }
30
- }
31
- },
32
- "namespaces": {
33
- "cnblogs": {
34
- "book_id": [0],
35
- "kv_slugs": [],
36
- "schedule_slugs": []
37
- }
38
- }
39
- },
40
- "kv": {
41
- "enabled": true
42
- },
43
- "crawler": {
44
- "enabled": true,
45
- "namespaces": {
46
- "my-source": {
47
- "book_id": [0],
48
- "kv_slugs": [],
49
- "schedule_slugs": []
50
- }
51
- }
52
- }
53
- }
6
+ "ctoken": "可选,从 Cookie 中提取 yuque_ctoken 的值"
7
+ }
@@ -5,7 +5,7 @@
5
5
  * 减少工具文件中的重复代码。
6
6
  * 重试策略:指数退避 1s → 2s → 4s,最多 3 次。
7
7
  */
8
- /** 执行 fetch 并自动重试。导出供外部 URL 请求(crawler/rss/import-url)复用 */
8
+ /** 执行 fetch 并自动重试。导出供外部 URL 请求(import-url)复用 */
9
9
  export declare function fetchWithRetry(url: string, options: RequestInit, context: string, attempt?: number, timeoutMs?: number): Promise<Response>;
10
10
  /** API 调用结果的类型 guard:检查是否是 MCP error */
11
11
  export declare function isErrorResult(result: unknown): result is {
@@ -23,7 +23,7 @@ function shouldRetry(res) {
23
23
  function sleep(ms) {
24
24
  return new Promise((r) => setTimeout(r, ms));
25
25
  }
26
- /** 执行 fetch 并自动重试。导出供外部 URL 请求(crawler/rss/import-url)复用 */
26
+ /** 执行 fetch 并自动重试。导出供外部 URL 请求(import-url)复用 */
27
27
  export async function fetchWithRetry(url, options, context, attempt = 1, timeoutMs = REQUEST_TIMEOUT) {
28
28
  const controller = new AbortController();
29
29
  const timer = setTimeout(() => controller.abort(), timeoutMs);
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/common/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/common/api-client.ts"],"names":[],"mappings":"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"}