功能覆盖矩阵
笔记管理
6/7 支持命令
mcp call obsidian.note.create path='Projects/llmcli.md' content='# llmcli 内容...'
输入参数
path: Vault 内相对路径(含 .md 后缀) content: Markdown 文本内容
示例输出
{ "path": "Projects/llmcli.md", "created": true } 命令
mcp call obsidian.note.read path='Projects/llmcli.md'
示例输出
{
"path": "Projects/llmcli.md",
"content": "# llmcli\n\n内容...",
"frontmatter": { "tags": ["project"] }
}
命令
mcp call obsidian.note.update path='Projects/llmcli.md' content='# llmcli(更新) 新内容'
示例输出
{ "path": "Projects/llmcli.md", "updated": true } 备注:全量覆盖,如需追加请先 read 再合并
命令
mcp call obsidian.note.append path='Daily/2026-01-10.md' content=' - [ ] 新任务'
示例输出
{ "path": "Daily/2026-01-10.md", "appended": true } 命令
mcp call obsidian.note.delete path='Drafts/old-draft.md'
示例输出
{ "deleted": true } 备注:通过 create + delete 组合实现,无原子 rename 接口
Gap:MCP server 未暴露 Obsidian 内置 rename 命令
命令
mcp call obsidian.vault.list folder='Projects'
示例输出
{ "files": ["Projects/llmcli.md", "Projects/ideas.md"] } 搜索
3/5 支持命令
mcp call obsidian.search.text query='agent MCP'
示例输出
{
"results": [
{ "path": "Projects/llmcli.md", "matches": ["...agent MCP..."] }
]
}
备注:依赖 Obsidian 内置全文索引(需打开 Vault)
命令
mcp call obsidian.search.tag tag='project'
示例输出
{ "results": ["Projects/llmcli.md", "Projects/ideas.md"] } 命令
mcp call vault.query frontmatter_key='status' frontmatter_value='active'
示例输出
{ "results": [...] } 备注:mcpvault 支持 Dataview 风格的 frontmatter 查询
命令
mcp call obsidian.search.text query='/TODO:.+/' use_regex=true
备注:支持简单正则,复杂模式可能超时
Gap:大型 Vault(>5000 文件)下性能有限
Gap:需要第三方插件(Smart Connections),MCP 工具暂不支持
标签管理
2/4 支持命令
mcp call obsidian.note.frontmatter.update path='Projects/llmcli.md' key='tags' value='["project","ai"]'
示例输出
{ "updated": true } Gap:需 Obsidian 内置 Tag Wrangler 插件,MCP 未实现此操作
命令
mcp call obsidian.vault.tags
备注:返回扁平标签列表,层级关系(project/active)需客户端解析
Gap:无树状结构返回,嵌套结构需自行解析 '/' 分隔
Canvas
2/4 支持命令
mcp call obsidian.note.read path='Mindmaps/arch.canvas'
示例输出
{
"content": "{\"nodes\":[...],\"edges\":[...]}",
"path": "Mindmaps/arch.canvas"
}
备注:Canvas 文件本质是 JSON,read 返回原始 JSON 字符串
命令
mcp call obsidian.note.create path='Mindmaps/new.canvas' content='{"nodes":[],"edges":[]}' 示例输出
{ "path": "Mindmaps/new.canvas", "created": true } 备注:需 read → 解析 JSON → 追加 node → write 回去,无专用 API
Gap:无原子 add-node 接口,多步操作存在并发覆盖风险
Gap:Canvas 渲染依赖 Electron GUI,无 headless 导出支持
Gap 总结 (7 个功能缺口)
笔记管理 › 移动 / 重命名笔记
MCP server 未暴露 Obsidian 内置 rename 命令
搜索 › 正则表达式搜索
大型 Vault(>5000 文件)下性能有限
搜索 › 语义向量搜索
需要第三方插件(Smart Connections),MCP 工具暂不支持
标签管理 › 批量重命名标签
需 Obsidian 内置 Tag Wrangler 插件,MCP 未实现此操作
标签管理 › 查询嵌套标签层级
无树状结构返回,嵌套结构需自行解析 '/' 分隔
Canvas › 添加节点到 Canvas
无原子 add-node 接口,多步操作存在并发覆盖风险
Canvas › 渲染 Canvas 为图片
Canvas 渲染依赖 Electron GUI,无 headless 导出支持