document 工具
这个工具覆盖文档 CRUD、树结构查询、元数据,以及与日记/转换相关的文档操作。
适用场景:你需要创建、移动、查询或转换文档。
相关页面:
常见动作
| 分组 | 动作 |
|---|---|
| 创建与读取 | create, lookup, get_doc |
| 树结构查询 | get_child_blocks, get_child_docs, list_tree, search_docs |
| 元数据与修改 | rename, move, remove, set_attr, duplicate |
| 日记 / 转换 | create_daily_note, heading_to_doc, doc_to_heading |
参数与语义
create支持人类可读path,也支持parentPath+title;省略markdown即创建空文档。创建子文档时优先使用path。parentPath+title可传人类可读父路径,也可传lookup返回的.sy结尾 storage path。lookup可按id、存储path、人类可读hpath/hPath查找;用include请求id、ids、path、hpath或docInfo。lookup返回的idPath会包含可用的id/ids。当同一 hpath 有多个同名文档时,include: ["ids"]会返回全部匹配 ID;内部已包含 SQL 兜底。rename、remove、move在非 ID 模式下通常需要存储路径。get_child_docs必须传文档id,不接受notebook + path。list_tree使用notebook + path,其中path是/或/20240318112233-abc123.sy这类存储路径,不是人类可读路径。- 如果批量
remove遇到思源短暂的indexing窗口,请改用notebook + storage path逐个删除并重试。 set_attr按文档 ID 写入文档元数据属性。
Markdown 与标题规则
create的markdown不需要写同名# 标题;如果写了,工具会自动剥离,避免双标题。create支持直接写((id '标题'))、裸((id))和#标签#。裸双链会自动补齐锚文本;如果解析失败,会降级为((id 'id'))并返回 warning。create允许[^1]脚注式引用和[text](siyuan://blocks/id)写入,但结果会提示它们不会创建思源真实反链。get_doc返回与fs.read一致的可编辑 Markdown,保留((id '标题'))和#标签#。
安全规则
remove、move需要显式确认。- 按路径修改前先确认路径类型。
示例
MCP:
json
{
"action": "create",
"notebook": "<notebook-id>",
"path": "/Inbox/Weekly Note",
"markdown": "周报正文"
}json
{
"action": "lookup",
"id": "<doc-id>",
"include": "path"
}CLI:
bash
siyuan document create --notebook <notebook-id> --path "/Inbox/Weekly Note" --markdown "周报正文"
siyuan document lookup --id <doc-id> --include path动作列表
createlookuprenameremovemoveget_child_blocksget_child_docsset_attrlist_treesearch_docsget_doccreate_daily_noteduplicateheading_to_docdoc_to_heading