dingtalk-wiki 1.2.0 → 1.2.1

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 (3) hide show
  1. package/README.md +26 -15
  2. package/README.zh-CN.md +26 -16
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -15,7 +15,8 @@
15
15
  ## Repository Highlights
16
16
 
17
17
  - **Official MCP gap**: Wiki / Docs read-write is not covered
18
- - **This project adds it**: workspace browsing, node browsing, and document creation
18
+ - **This project adds it**: workspace browsing, node browsing, document CRUD, and full-text search
19
+ - **Local search index**: MiniSearch + SQLite — full-text content search across docs and Notable tables
19
20
  - **MCP-compatible**: works with stdio-based MCP clients
20
21
  - **Agent-ready**: includes `SKILL.md` for OpenClaw-style skill workflows
21
22
 
@@ -124,6 +125,8 @@ node index.js
124
125
  | Browse workspaces | Not covered | ✅ |
125
126
  | Browse nodes / folders | Not covered | ✅ |
126
127
  | Read Notable / `.able` records | Not covered | ✅ |
128
+ | Name search | Not covered | ✅ |
129
+ | Full-text content search | Not covered | ✅ MiniSearch + SQLite |
127
130
  | MCP client compatibility | Partial / official scope only | ✅ stdio MCP-compatible |
128
131
  | OpenClaw skill packaging | No | ✅ includes `SKILL.md` |
129
132
 
@@ -143,7 +146,9 @@ node index.js
143
146
  - `WORKBOOK`
144
147
  - `MIND`
145
148
  - `FOLDER`
146
- - Search Wiki by linking to DingTalk search
149
+ - Search by name (`search_wiki`, BFS directory traversal, always available)
150
+ - Full-text content search (`search_wiki_content`, MiniSearch + SQLite index)
151
+ - Search index management (`refresh_search_index`)
147
152
  - Read Notable / `.able` sheets and records via official API
148
153
 
149
154
  ### Organization
@@ -243,17 +248,22 @@ mcporter call --stdio "node ./index.js" create_wiki_doc workspace_id="your_works
243
248
 
244
249
  ## Available MCP tools
245
250
 
246
- - `list_wiki_workspaces`
247
- - `get_wiki_workspace`
248
- - `list_wiki_nodes`
249
- - `get_wiki_node`
250
- - `create_wiki_doc`
251
- - `search_wiki`
252
- - `list_departments`
253
- - `get_department_users`
254
- - `get_user_info`
255
- - `list_notable_sheets`
256
- - `list_notable_records`
251
+ ### Wiki / Docs
252
+ - `list_wiki_workspaces` / `get_wiki_workspace`
253
+ - `list_wiki_nodes` / `get_wiki_node`
254
+ - `create_wiki_doc` / `delete_wiki_doc` / `rename_wiki_doc`
255
+ - `get_wiki_doc_content` / `update_wiki_doc_content`
256
+ - `search_wiki` — name search (BFS, no index needed)
257
+ - `search_wiki_content` — full-text search (requires index)
258
+ - `refresh_search_index` — rebuild search index
259
+
260
+ ### AI 表格 (Notable)
261
+ - `list_notable_sheets` / `list_notable_records`
262
+ - `create_notable_record` / `update_notable_record` / `delete_notable_record`
263
+ - `create_notable_sheet` / `delete_notable_sheet`
264
+
265
+ ### Organization
266
+ - `list_departments` / `get_department_users` / `get_user_info`
257
267
 
258
268
  ---
259
269
 
@@ -301,8 +311,9 @@ Please refer to DingTalk Open Platform documentation for the latest permission n
301
311
 
302
312
  - This is a community-maintained complement, not an official DingTalk project
303
313
  - Some APIs require enterprise approval on the DingTalk side
304
- - `search_wiki` is currently more of a search-entry helper than a full-text search implementation
305
- - Reading normal DingTalk document body content via official public API is still not implemented in this project
314
+ - `search_wiki` traverses directory tree by name (always available)
315
+ - `search_wiki_content` uses MiniSearch + SQLite for full-text search, requires `refresh_search_index` first
316
+ - Search index updates on write operations (create/update/rename/delete) via async hooks
306
317
  - Notable / `.able` support currently covers sheets and records, not arbitrary document-body export
307
318
 
308
319
  ---
package/README.zh-CN.md CHANGED
@@ -15,7 +15,8 @@
15
15
  ## 仓库要点
16
16
 
17
17
  - **官方 MCP 有空白**:没有覆盖 Wiki / Docs 读写
18
- - **这个项目补上了**:支持 workspace、node 浏览和文档创建
18
+ - **这个项目补上了**:支持 workspace、node 浏览、文档 CRUD 和全文搜索
19
+ - **本地搜索索引**:MiniSearch + SQLite — 全文搜索文档和 Notable 表格内容
19
20
  - **MCP 兼容**:兼容 stdio 模式的 MCP client
20
21
  - **Agent 友好**:自带 `SKILL.md`,可直接作为 skill 复用
21
22
 
@@ -124,6 +125,8 @@ node index.js
124
125
  | 浏览 workspace | 未覆盖 | ✅ |
125
126
  | 浏览 nodes / 目录 | 未覆盖 | ✅ |
126
127
  | 读取 Notable / `.able` 记录 | 未覆盖 | ✅ |
128
+ | 名称搜索 | 未覆盖 | ✅ |
129
+ | 全文内容搜索 | 未覆盖 | ✅ MiniSearch + SQLite |
127
130
  | MCP 客户端兼容性 | 官方范围内 | ✅ stdio 兼容 |
128
131
  | OpenClaw skill 化复用 | 无 | ✅ 自带 `SKILL.md` |
129
132
 
@@ -142,7 +145,9 @@ node index.js
142
145
  - `WORKBOOK`
143
146
  - `MIND`
144
147
  - `FOLDER`
145
- - 提供跳转式 Wiki 搜索能力
148
+ - 按名称搜索(`search_wiki`,BFS 遍历目录树,无需索引)
149
+ - 全文内容搜索(`search_wiki_content`,MiniSearch + SQLite 索引)
150
+ - 搜索索引管理(`refresh_search_index`)
146
151
  - 通过官方 API 读取 Notable / `.able` 的数据表和记录
147
152
 
148
153
  ### 组织架构
@@ -236,17 +241,22 @@ mcporter call --stdio "node ./index.js" create_wiki_doc workspace_id="your_works
236
241
 
237
242
  ## 可用 MCP 工具
238
243
 
239
- - `list_wiki_workspaces`
240
- - `get_wiki_workspace`
241
- - `list_wiki_nodes`
242
- - `get_wiki_node`
243
- - `create_wiki_doc`
244
- - `search_wiki`
245
- - `list_departments`
246
- - `get_department_users`
247
- - `get_user_info`
248
- - `list_notable_sheets`
249
- - `list_notable_records`
244
+ ### Wiki / Docs
245
+ - `list_wiki_workspaces` / `get_wiki_workspace`
246
+ - `list_wiki_nodes` / `get_wiki_node`
247
+ - `create_wiki_doc` / `delete_wiki_doc` / `rename_wiki_doc`
248
+ - `get_wiki_doc_content` / `update_wiki_doc_content`
249
+ - `search_wiki` — 名称搜索(BFS,无需索引)
250
+ - `search_wiki_content` — 全文搜索(需先建索引)
251
+ - `refresh_search_index` — 重建搜索索引
252
+
253
+ ### AI 表格(Notable)
254
+ - `list_notable_sheets` / `list_notable_records`
255
+ - `create_notable_record` / `update_notable_record` / `delete_notable_record`
256
+ - `create_notable_sheet` / `delete_notable_sheet`
257
+
258
+ ### 组织架构
259
+ - `list_departments` / `get_department_users` / `get_user_info`
250
260
 
251
261
  ---
252
262
 
@@ -295,9 +305,9 @@ mcporter call --stdio "node ./index.js" create_wiki_doc workspace_id="your_works
295
305
 
296
306
  - 本项目是社区补充实现,不是钉钉官方项目
297
307
  - 部分 API 需要企业侧权限审批
298
- - `search_wiki` 当前更偏向“跳转辅助”,不是完整全文检索实现
299
- - 目前项目仍未实现通过官方公开 API 读取普通 DingTalk 文档正文
300
- - 当前 Notable / `.able` 支持的是数据表和 records 读取,不是任意正文导出
308
+ - `search_wiki` 通过 BFS 遍历目录树按名称匹配(始终可用)
309
+ - `search_wiki_content` 使用 MiniSearch + SQLite 全文搜索,需先运行 `refresh_search_index`
310
+ - 搜索索引在写入操作(创建/更新/重命名/删除)时通过异步 hook 自动更新
301
311
 
302
312
  ---
303
313
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dingtalk-wiki",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "description": "DingTalk Wiki / Docs read-write MCP server that fills the gap left by DingTalk official MCP.",
5
5
  "main": "index.js",
6
6
  "bin": {