yuque-ai-mcp 2.13.3 → 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 +40 -69
  2. package/README_CN.md +41 -67
  3. package/SKILL.md +15 -59
  4. package/config/config.example.json +7 -0
  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 +12 -14
  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 +3 -3
  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,13 +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
- | **mine** | 3 | Book stacks, editor center, update book stack (Cookie auth) |
76
- | **rss** | 3 | Source list, fetch + dedup + save, schedule analysis |
77
- | **crawler** | 4 | Fetch, CSS extract, dedup save, schedule analysis |
78
- | **kv** | 4 | Get, set, delete, list — incremental sharding, 250KB/doc limit |
79
- | **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** | |
80
78
 
81
- ### 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
82
82
 
83
83
  | Tool | Domain | Description |
84
84
  |------|--------|-------------|
@@ -88,8 +88,6 @@ npm run dev:http # HTTP SSE mode (http://localhost:3099)
88
88
  | `yuque_search` | search | 通用搜索文档/知识库 |
89
89
  | `yuque_rag_search` | search | RAG 检索增强搜索 + 自动获取文档内容 |
90
90
  | `yuque_web_search` | search | Cookie 态 Web 搜索,返回完整文档对象 + 精确总数 + 高亮摘要 |
91
- | `yuque_web_delete_doc` | doc | Cookie 态删除文档(v2 被限流时的备用通道,移入回收站) |
92
- | `yuque_web_copy_catalog_node` | doc | Cookie 态跨库复制目录节点(服务端重传附件,保留文件卡片) |
93
91
  | `yuque_get_group_users` | group | 获取团队成员列表 |
94
92
  | `yuque_update_group_user` | group | 变更团队成员角色 |
95
93
  | `yuque_delete_group_user` | group | 删除团队成员 |
@@ -127,27 +125,25 @@ npm run dev:http # HTTP SSE mode (http://localhost:3099)
127
125
  | `yuque_get_note` | note | 获取小记详情 |
128
126
  | `yuque_create_note` | note | 创建小记 |
129
127
  | `yuque_update_note` | note | 更新小记 |
130
- | `yuque_list_recycles` | recycle | 列出回收站项目 |
131
- | `yuque_restore_recycle` | recycle | 恢复回收站项目 |
132
- | `yuque_destroy_recycle` | recycle | 彻底删除回收站项目 |
133
- | `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) |
134
132
  | `yuque_get_board` | board | 获取文档中的画板资源 |
135
133
  | `yuque_create_board` | board | 在文档中创建画板资源 |
136
134
  | `yuque_update_board` | board | 更新文档中的画板资源 |
137
- | `yuque_rss_list_sources` | rss | 列出所有可用 RSS 数据源及 feed 类型 |
138
- | `yuque_rss_fetch` | rss | 抓取 RSS/Atom Feed,解析后去重写入语雀 |
139
- | `yuque_rss_schedule` | rss | 分析更新频率,生成推荐抓取时间 |
140
- | `yuque_crawl_fetch` | crawler | 抓取网页原始 HTML |
141
- | `yuque_crawl_extract` | crawler | CSS 选择器从 HTML 提取内容 |
142
- | `yuque_crawl_save` | crawler | 去重 + 写入语雀 |
143
- | `yuque_crawl_schedule` | crawler | 分析爬虫抓取频率,生成推荐抓取时间 |
144
- | `yuque_get_book_stacks` | mine | 获取知识库分组(书架)列表 |
145
- | `yuque_get_editor_center` | mine | 获取个人编辑中心全景数据 |
146
- | `yuque_update_book_stack` | mine | 移动知识库到指定分组(书架) |
147
- | `yuque_kv_get` | kv | 读取 KV 命名空间的完整 JSON map(分片合并) |
148
- | `yuque_kv_set` | kv | 增量设置 key-value,超 250KB 自动分片 |
149
- | `yuque_kv_delete` | kv | 遍历分片查找并删除 key |
150
- | `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 态批量移动目录节点 |
151
147
 
152
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.
153
149
 
@@ -155,7 +151,7 @@ See [SKILL.md](SKILL.md) or [yuque-ai-skills](https://github.com/yehuoshun/yuque
155
151
 
156
152
  | Feature | Official yuque-mcp-server | yuque-ai-mcp |
157
153
  |---------|--------------------------|--------------|
158
- | Tools | 19 | **69** |
154
+ | Tools | 19 | **62** |
159
155
  | Granularity | Coarse | **Fine-grained** (1 tool / endpoint) |
160
156
  | Group, Recycle, Upload, Statistics | ❌ | ✅ |
161
157
  | Versions, Diff, Cross-book Copy | ❌ | ✅ |
@@ -168,10 +164,10 @@ See [SKILL.md](SKILL.md) or [yuque-ai-skills](https://github.com/yehuoshun/yuque
168
164
  ```
169
165
  server/src/
170
166
  ├── common/ # Shared: config, errors, types, format, validate,
171
- │ # api-client, web-request, register-tools, copy/export/schedule common,
172
- │ # 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
173
169
  ├── user/ search/ group/ doc/ toc/ repo/ statistic/
174
- ├── note/ recycle/ upload/ board/ rss/ crawler/ mine/ kv/
170
+ ├── note/ recycle/ upload/ board/ mine/ web-doc/
175
171
  ├── index.ts # stdio entry
176
172
  └── http.ts # HTTP SSE entry (port 3099)
177
173
  ```
@@ -183,43 +179,10 @@ server/src/
183
179
  "token": "Your Yuque API Token",
184
180
  "api_base": "https://www.yuque.com/api/v2",
185
181
  "cookie": "Optional, for recycle/upload features",
186
- "ctoken": "Optional, extracted from Cookie",
187
- "kv": { "enabled": true },
188
- "rss": {
189
- "enabled": true,
190
- "sources": {
191
- "cnblogs": {
192
- "name": "博客园",
193
- "slug_pattern": "/p/(\\d+)",
194
- "feeds": {
195
- "sitehome": { "label": "首页", "url": "https://feed.cnblogs.com/blog/sitehome/rss" }
196
- }
197
- }
198
- },
199
- "namespaces": {
200
- "cnblogs": {
201
- "book_id": [0],
202
- "kv_slugs": [],
203
- "schedule_slugs": []
204
- }
205
- }
206
- },
207
- "crawler": {
208
- "enabled": true,
209
- "namespaces": {
210
- "my-source": {
211
- "book_id": [0],
212
- "kv_slugs": [],
213
- "schedule_slugs": []
214
- }
215
- }
216
- }
182
+ "ctoken": "Optional, extracted from Cookie"
217
183
  }
218
184
  ```
219
185
 
220
- - `book_id`: Target repo ID array — last element is the active repo. Auto-expands when full (5000 docs).
221
- - `kv_slugs`: KV dedup shard docs (`{book_id}/{doc_id}` format)
222
- - `schedule_slugs`: Schedule config docs
223
186
  - `toc_cache_ttl_minutes`: TOC cache TTL in minutes (default 60). Set higher to reduce API calls, lower for fresher data.
224
187
 
225
188
  ## Error Handling
@@ -248,10 +211,18 @@ npm run build
248
211
  # 4. Restart HTTP server + curl health
249
212
  # 5. Sync yuque-ai-skills
250
213
  # 6. Update README
214
+ # 7. Sync awesome-list entries when tool/domain count changes
251
215
  ```
252
216
 
253
217
  Both [yuque-ai-mcp](https://github.com/yehuoshun/yuque-ai-mcp) and [yuque-ai-skills](https://github.com/yehuoshun/yuque-ai-skills) are kept in sync.
254
218
 
219
+ ## Maintenance
220
+
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"):
222
+
223
+ - [punkpeye/awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers)
224
+ - [zackchewa/awesome-china-mcp](https://github.com/zackchewa/awesome-china-mcp)
225
+
255
226
  ## Tech Stack
256
227
 
257
228
  - TypeScript + Node.js
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,13 +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
- | **mine** | 2 | 书架列表、编辑中心(Cookie 认证) |
79
- | **rss** | 3 | 数据源列表、抓取+去重+写入、定时策略分析 |
80
- | **crawler** | 4 | 抓取、CSS 提取、去重写入、定时策略分析 |
81
- | **kv** | 4 | 增删查列——增量分片,单文档 250KB 上限 |
82
- | **合计** | **67** | |
78
+ | **mine** | 4 | 书架列表、编辑中心、更新/排序书架(Cookie 认证) |
79
+ | **web_doc** | 8 | Web API:获取/列出文档、知识库、目录,移动/复制/删除目录节点(Cookie 认证) |
80
+ | **合计** | **62** | |
83
81
 
84
- ### 全部 67 个工具
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 个工具
85
85
 
86
86
  | 工具 | 域 | 说明 |
87
87
  |------|--------|-------------|
@@ -128,26 +128,25 @@ npm run dev:http # HTTP SSE 模式 (http://localhost:3099)
128
128
  | `yuque_get_note` | note | 获取小记详情 |
129
129
  | `yuque_create_note` | note | 创建小记 |
130
130
  | `yuque_update_note` | note | 更新小记 |
131
- | `yuque_list_recycles` | recycle | 列出回收站项目 |
132
- | `yuque_restore_recycle` | recycle | 恢复回收站项目 |
133
- | `yuque_destroy_recycle` | recycle | 彻底删除回收站项目 |
134
- | `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) |
135
135
  | `yuque_get_board` | board | 获取文档中的画板资源 |
136
136
  | `yuque_create_board` | board | 在文档中创建画板资源 |
137
137
  | `yuque_update_board` | board | 更新文档中的画板资源 |
138
- | `yuque_rss_list_sources` | rss | 列出所有可用 RSS 数据源及 feed 类型 |
139
- | `yuque_rss_fetch` | rss | 抓取 RSS/Atom Feed,解析后去重写入语雀 |
140
- | `yuque_rss_schedule` | rss | 分析更新频率,生成推荐抓取时间 |
141
- | `yuque_crawl_fetch` | crawler | 抓取网页原始 HTML |
142
- | `yuque_crawl_extract` | crawler | CSS 选择器从 HTML 提取内容 |
143
- | `yuque_crawl_save` | crawler | 去重 + 写入语雀 |
144
- | `yuque_crawl_schedule` | crawler | 分析爬虫抓取频率,生成推荐抓取时间 |
145
- | `yuque_get_book_stacks` | mine | 获取知识库分组(书架)列表 |
146
- | `yuque_get_editor_center` | mine | 获取个人编辑中心全景数据 |
147
- | `yuque_kv_get` | kv | 读取 KV 命名空间的完整 JSON map(分片合并) |
148
- | `yuque_kv_set` | kv | 增量设置 key-value,超 250KB 自动分片 |
149
- | `yuque_kv_delete` | kv | 遍历分片查找并删除 key |
150
- | `yuque_kv_list` | kv | 列出已配置的 KV 命名空间 |
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) |
142
+ | `yuque_web_get_doc` | web_doc | Cookie 态读文档正文(含 body/content),不受会员过期限流 |
143
+ | `yuque_web_list_docs` | web_doc | Cookie 态列文档列表,更丰富的字段 |
144
+ | `yuque_web_list_repos` | web_doc | Cookie 态列知识库列表,含权限信息 |
145
+ | `yuque_web_get_toc` | web_doc | Cookie 态获取知识库目录 TOC |
146
+ | `yuque_web_delete_doc` | web_doc | Cookie 态删除文档(移入回收站,v2 被限流时的备用通道) |
147
+ | `yuque_web_move_catalog_node` | web_doc | Cookie 态移动目录节点 |
148
+ | `yuque_web_copy_catalog_node` | web_doc | Cookie 态复制目录节点 |
149
+ | `yuque_web_batch_move_catalog_nodes` | web_doc | Cookie 态批量移动目录节点 |
151
150
 
152
151
  完整工具文档(含参数和示例)见 [SKILL.md](SKILL.md) 或 [yuque-ai-skills](https://github.com/yehuoshun/yuque-ai-skills)。
153
152
 
@@ -155,7 +154,7 @@ npm run dev:http # HTTP SSE 模式 (http://localhost:3099)
155
154
 
156
155
  | 功能 | 官方 yuque-mcp-server | yuque-ai-mcp |
157
156
  |---------|--------------------------|--------------|
158
- | 工具数 | 19 | **67** |
157
+ | 工具数 | 19 | **62** |
159
158
  | 粒度 | 粗粒度 | **细粒度**(1 端点 = 1 工具) |
160
159
  | 团队、回收站、上传、统计 | ❌ | ✅ |
161
160
  | 版本、Diff、跨库复制 | ❌ | ✅ |
@@ -168,10 +167,10 @@ npm run dev:http # HTTP SSE 模式 (http://localhost:3099)
168
167
  ```
169
168
  server/src/
170
169
  ├── common/ # 公共:config, errors, types, format, validate,
171
- │ # api-client, web-request, register-tools, copy/export/schedule,
172
- │ # repo-capacity(自动扩容), toc-cache(可配置 TTL), text-utils
170
+ │ # api-client, web-request, register-tools, copy/export,
171
+ │ # toc-cache(可配置 TTL), text-utils
173
172
  ├── user/ search/ group/ doc/ toc/ repo/ statistic/
174
- ├── note/ recycle/ upload/ board/ rss/ crawler/ mine/ kv/
173
+ ├── note/ recycle/ upload/ board/ mine/ web-doc/
175
174
  ├── index.ts # stdio 入口
176
175
  └── http.ts # HTTP SSE 入口(端口 3099)
177
176
  ```
@@ -183,43 +182,10 @@ server/src/
183
182
  "token": "你的语雀 API Token",
184
183
  "api_base": "https://www.yuque.com/api/v2",
185
184
  "cookie": "可选,回收站/上传功能需要",
186
- "ctoken": "可选,从 Cookie 中提取",
187
- "kv": { "enabled": true },
188
- "rss": {
189
- "enabled": true,
190
- "sources": {
191
- "cnblogs": {
192
- "name": "博客园",
193
- "slug_pattern": "/p/(\\d+)",
194
- "feeds": {
195
- "sitehome": { "label": "首页", "url": "https://feed.cnblogs.com/blog/sitehome/rss" }
196
- }
197
- }
198
- },
199
- "namespaces": {
200
- "cnblogs": {
201
- "book_id": [0],
202
- "kv_slugs": [],
203
- "schedule_slugs": []
204
- }
205
- }
206
- },
207
- "crawler": {
208
- "enabled": true,
209
- "namespaces": {
210
- "my-source": {
211
- "book_id": [0],
212
- "kv_slugs": [],
213
- "schedule_slugs": []
214
- }
215
- }
216
- }
185
+ "ctoken": "可选,从 Cookie 中提取"
217
186
  }
218
187
  ```
219
188
 
220
- - `book_id`:目标知识库 ID 数组,最后一个为当前活跃仓库。满 5000 篇自动扩容追加。
221
- - `kv_slugs`:KV 去重分片文档(`{book_id}/{doc_id}` 格式)
222
- - `schedule_slugs`:定时策略配置文档
223
189
  - `toc_cache_ttl_minutes`:TOC 缓存 TTL(分钟),默认 60。调大可减少 API 调用,调小可获取更新鲜的数据。
224
190
 
225
191
  ## 错误处理
@@ -227,7 +193,7 @@ server/src/
227
193
  统一错误处理,返回结构化错误(HTTP 状态码 + 消息 + 响应摘要)。所有工具共用同一错误管道。
228
194
 
229
195
  关键错误:
230
- - `book_full` — 知识库超 5000 篇,自动创建新仓库并追加到 `book_id` 数组
196
+ - `book_full` — 知识库超 5000 篇(语雀 API 对超 5000 节点的知识库不可用)
231
197
  - `401` / `403` — Token/权限问题
232
198
  - `429` — 限流,自动重试
233
199
 
@@ -248,10 +214,18 @@ npm run build
248
214
  # 4. 重启 HTTP Server + curl health
249
215
  # 5. 同步 yuque-ai-skills
250
216
  # 6. 更新 README
217
+ # 7. 工具/域数量变化时,同步 awesome 榜单条目
251
218
  ```
252
219
 
253
220
  [yuque-ai-mcp](https://github.com/yehuoshun/yuque-ai-mcp) 和 [yuque-ai-skills](https://github.com/yehuoshun/yuque-ai-skills) 保持同步更新。
254
221
 
222
+ ## 维护
223
+
224
+ 本项目已收录到以下目录。当工具数或域数变化时,需同步对应条目(条目中写了「62 个工具」/「13 个域」):
225
+
226
+ - [punkpeye/awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers)
227
+ - [zackchewa/awesome-china-mcp](https://github.com/zackchewa/awesome-china-mcp)
228
+
255
229
  ## 技术栈
256
230
 
257
231
  - TypeScript + Node.js
package/SKILL.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # yuque-ai-mcp
2
2
 
3
- 语雀全功能 MCP Server,68 个工具 / 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,15 @@
112
109
  | `yuque_create_board` | 在文档中创建画板资源 |
113
110
  | `yuque_update_board` | 更新文档中的画板资源 |
114
111
 
115
- ### rss(3 工具)
112
+ ### mine(4 工具)
116
113
  | 工具 | 说明 |
117
114
  |------|------|
118
- | `yuque_rss_list_sources` | 列出所有可用 RSS 数据源及 feed 类型 |
119
- | `yuque_rss_fetch` | 抓取 RSS/Atom Feed,解析后去重写入语雀 |
120
- | `yuque_rss_schedule` | 分析更新频率,生成推荐抓取时间并写入配置 |
115
+ | `yuque_get_book_stacks` | 获取知识库分组(书架)列表(Cookie) |
116
+ | `yuque_get_editor_center` | 获取个人编辑中心全景数据(Cookie) |
117
+ | `yuque_update_book_stack` | 移动知识库到指定分组(书架)(Cookie) |
118
+ | `yuque_sort_book_stack` | 排序知识库分组(书架)(Cookie) |
121
119
 
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
- ### mine(2 工具)
133
- | 工具 | 说明 |
134
- |------|------|
135
- | `yuque_get_book_stacks` | 获取知识库分组(书架)列表 |
136
- | `yuque_get_editor_center` | 获取个人编辑中心全景数据 |
137
-
138
- ### web_doc(5 工具,Cookie 态)
120
+ ### web_doc(8 工具,Cookie 态)
139
121
  | 工具 | 说明 |
140
122
  |------|------|
141
123
  | `yuque_web_get_doc` | Cookie 态读文档正文(含 body/content),不受会员过期限流 |
@@ -143,14 +125,9 @@
143
125
  | `yuque_web_list_repos` | Cookie 态列知识库列表,含权限信息 |
144
126
  | `yuque_web_get_toc` | Cookie 态获取知识库目录 TOC |
145
127
  | `yuque_web_delete_doc` | Cookie 态删除文档(移入回收站,v2 被限流时的备用通道) |
146
-
147
- ### kv(4 工具)
148
- | 工具 | 说明 |
149
- |------|------|
150
- | `yuque_kv_get` | 读取 KV 命名空间的完整 JSON map(分片合并) |
151
- | `yuque_kv_set` | 增量设置 key-value,超 250KB 自动分片 |
152
- | `yuque_kv_delete` | 遍历分片查找并删除 key |
153
- | `yuque_kv_list` | 列出已配置的 KV 命名空间 |
128
+ | `yuque_web_move_catalog_node` | Cookie 态移动目录节点 |
129
+ | `yuque_web_copy_catalog_node` | Cookie 态复制目录节点 |
130
+ | `yuque_web_batch_move_catalog_nodes` | Cookie 态批量移动目录节点 |
154
131
 
155
132
  ## 错误码
156
133
 
@@ -177,27 +154,6 @@ yuque_get_doc ──(失败)──→ yuque_export_doc → 读本地文件 →
177
154
  "token": "语雀 API Token",
178
155
  "api_base": "https://www.yuque.com/api/v2",
179
156
  "cookie": "可选,回收站/上传/mine 功能需要",
180
- "ctoken": "可选,从 Cookie 中提取",
181
- "kv": { "enabled": true },
182
- "rss": {
183
- "enabled": true,
184
- "namespaces": {
185
- "cnblogs": {
186
- "book_id": 0,
187
- "kv_slugs": [],
188
- "schedule_slugs": []
189
- }
190
- }
191
- },
192
- "crawler": {
193
- "enabled": true,
194
- "namespaces": {
195
- "my-source": {
196
- "book_id": 0,
197
- "kv_slugs": [],
198
- "schedule_slugs": []
199
- }
200
- }
201
- }
157
+ "ctoken": "可选,从 Cookie 中提取"
202
158
  }
203
159
  ```
@@ -0,0 +1,7 @@
1
+ {
2
+ "token": "在此填入语雀 API Token",
3
+ "api_base": "https://www.yuque.com/api/v2",
4
+ "toc_cache_ttl_minutes": 60,
5
+ "cookie": "可选,回收站/上传功能需要。浏览器登录后 F12 → Application → Cookies → 复制完整 Cookie 字符串",
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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"}
@@ -4,70 +4,15 @@
4
4
  * 所有工具模块通过此文件获取配置,不再依赖环境变量。
5
5
  *
6
6
  * slug 格式:`{book_id}/{doc_id}`,用 / 分割解析。
7
- * kv_slugs / schedule_slugs 均为数组,支持多文档。
8
- *
9
- * RSS 源定义在 config.json 的 rss.sources 中,不硬编码在代码里。
10
7
  */
11
- interface NamespaceConfig {
12
- book_id: number[];
13
- kv_slugs?: string[];
14
- schedule_slugs?: string[];
15
- }
16
- /** RSS Feed 定义(config.json 中配置) */
17
- export interface RssFeedDef {
18
- label: string;
19
- description?: string;
20
- url?: string;
21
- url_template?: string;
22
- params_schema?: Record<string, {
23
- type: "string" | "number";
24
- description: string;
25
- required?: boolean;
26
- default?: string | number;
27
- }>;
28
- }
29
- /** RSS 源定义(config.json 中配置) */
30
- export interface RssSourceDef {
31
- name: string;
32
- description?: string;
33
- feeds: Record<string, RssFeedDef>;
34
- /** 从文章链接提取站点文章 ID 的正则,capture group 1 即为 slug。不配则 fallback 到 md5 */
35
- slug_pattern?: string;
36
- }
37
- interface RssConfig {
38
- enabled: boolean;
39
- sources?: Record<string, RssSourceDef>;
40
- namespaces?: Record<string, NamespaceConfig>;
41
- }
42
- interface KvConfig {
43
- enabled: boolean;
44
- }
45
- interface CrawlerConfig {
46
- enabled: boolean;
47
- namespaces?: Record<string, NamespaceConfig>;
48
- }
49
8
  interface Config {
50
9
  token: string;
51
10
  api_base: string;
52
11
  cookie?: string;
53
12
  ctoken?: string;
54
13
  toc_cache_ttl_minutes?: number;
55
- rss?: RssConfig;
56
- kv?: KvConfig;
57
- crawler?: CrawlerConfig;
58
14
  }
59
15
  export declare function loadConfig(): Config;
60
- /** 从 config 加载 RSS 源定义 */
61
- export declare function loadRssSources(): Record<string, RssSourceDef>;
62
- /** 持久化 config 到文件(记住首次加载路径,避免写到不同文件) */
63
- export declare function saveConfig(): void;
64
- /** 解析 slug:`{book_id}/{doc_id}` → { bookId, docId } */
65
- export declare function parseSlug(slug: string): {
66
- bookId: number;
67
- docId: number;
68
- } | null;
69
- /** 组装 slug:bookId/docId */
70
- export declare function buildSlugStr(bookId: number, docId: number): string;
71
16
  /** 自动生成 slug:英文/拼音 + 时间戳,中文名兜底纯时间戳 */
72
17
  export declare function autoSlug(name: string): string;
73
18
  export {};