用途:当用户提到 Obsidian 库、笔记、标签、frontmatter、日记、备份或同步时,按意图选择后端执行操作。
后端路由:MCP 为默认,用于读写、补丁、搜索笔记,frontmatter 与标签更新,元数据与批量操作,以及全部移动/重命名。Obsidian CLI/App 仅用于需要应用上下文的场景,如从 URI 打开笔记、触发插件工作流。CLI git 用于初始化仓库、配置远程、提交、拉取、推送,以及周期性或手动备份同步。意图不明时优先 MCP,除非用户明确要求同步、备份、git 或应用行为。
安全重命名:所有移动/重命名都用 MCP move_note,即使 Obsidian 正在运行,也不要自动调用 Obsidian CLI 的 move。移动前用相对路径与不含扩展名的文件名搜索旧 wikilink;移动后读取每个引用笔记,仅修补精确的 wikilink 目标(含嵌入、别名、片段),保留显示文本与 #heading / #^block-id 后缀。再次搜索旧路径与基名,报告残留引用而非直接宣称成功。search_notes 最多返回 20 条,达到上限或基名有歧义时,应告知无法证明反链已完全修复并询问是否继续。分别报告移动结果与反链修复情况。
主要能力与坑:patch_note 默认拒绝多重匹配,replaceAll 仅在明确需要时使用;其替换作用于含 frontmatter 的完整文件,且禁止空字符串。search_notes 返回压缩 JSON,字段缩写为 p、t、ex、mc、ln、uri,硬上限 20 条,多词查询按词 OR 匹配并给整句加权。write_note 自动递归创建目录,追加/前置模式会合并 frontmatter。delete_note 需路径完全一致确认,move_file 需双重确认,仅用于二进制文件。manage_tags 读取合并 frontmatter 与行内标签,增删只改 frontmatter。read_multiple_notes 用 allSettled,需同时检查 ok 与 err,每次最多 10 条。
Git 同步:先预检 git 可用、是否为仓库、user.name/email、远程。同步顺序为 git add -A、git commit、git pull --rebase、git push,默认不强推;冲突时停止并说明下一步,不静默解决。gh 仅可选用于引导远程。
CLI 模式:先解析 CLI 二进制(macOS 可查 /usr/local/bin/obsidian 与 /Applications/Obsidian.app/Contents/MacOS/obsidian-cli),检查 Obsidian 是否运行;库用 obsidian vault="VaultName" 指定,无法唯一匹配时询问用户。常用命令如 obsidian read、obsidian open path="Notes/example.md"、obsidian daily、obsidian daily:append content="- [ ] New task"、obsidian search query="meeting notes" limit=10、obsidian tags sort=count counts、obsidian backlinks file="My Note"、obsidian unresolved。不要用 obsidian move。
限制:关于 1.12.7+ 打包 obsidian-cli 与 PATH 的说明仅在 macOS 验证过,Linux 与 Windows 未确认,属建议性而非阻断。资料未提供收费与价格信息。