提供安全、直接访问Obsidian保险库文件系统的MCP服务器。
大多数现有的Obsidian MCP服务器依赖于Obsidian REST API插件,这需要:
而此服务器直接与磁盘上的Obsidian保险库文件交互,使其兼容使用obsidian.nvim的设置——这是一个Neovim插件,无需安装Obsidian应用即可提供类似的功能。
discover-mocs工具提供了对您保险库知识结构的高层次地图,通过发现内容地图及其关系。从这里开始,导航速度提升10倍!npm install
# 将/home/decoder/dev/obsidian/decoder替换为您自己的保险库路径
npx @modelcontextprotocol/inspector node src/index.js /home/decoder/dev/obsidian/decoder
Inspector将在http://localhost:5173打开。
# 运行所有测试
npm test
# 在监视模式下运行测试
npm run test:watch
# 运行带有覆盖率报告的测试
npm run test:coverage
# 运行带有覆盖率检查阈值的测试
npm run coverage
# 运行变异测试(所有文件)
npm run test:mutation
# 运行变异测试(仅限分页代码——更快)
npm run test:mutation-pagination
要将此服务器添加到Claude Desktop,请使用Claude CLI:
# 克隆此仓库
git clone https://github.com/Piotr1215/mcp-obsidian.git
cd mcp-obsidian
# 安装依赖项
npm install
# 添加到Claude(将/path/to/your/vault替换为您的Obsidian保险库路径)
claude mcp add obsidian -s user -- node /path/to/mcp-obsidian/src/index.js /path/to/your/vault
例如,如果您将仓库克隆到了~/dev/mcp-obsidian,并且您的保险库位于~/Documents/ObsidianVault:
claude mcp add obsidian -s user -- node ~/dev/mcp-obsidian/src/index.js ~/Documents/ObsidianVault
这将把服务器添加到您的Claude配置文件中(通常为~/.claude.json或~/.config/Claude/claude_desktop_config.json)。
要验证安装:
claude mcp list
您应该看到可用的MCP服务器列表中有obsidian。
跨所有笔记搜索内容。
特性:
title:term, content:term, tag:term(term1 OR term2) AND term3上下文选项:
includeContext(默认:true) - 显示周围行contextLines(默认:2) - 匹配前后行数(0-1-10)示例:
readme AND install - 查找包含两个词的笔记title:setup OR tag:documentation - 根据标题或标签查找"getting started" -deprecated - 精确短语,排除已废弃(python OR javascript) AND tutorial - 使用括号分组的复杂查询示例输出带上下文:
{
"files": [{
"path": "notes/dotfiles.md",
"matchCount": 3,
"matches": [{
"line": 42,
"content": "Managing my dotfiles with stow",
"context": {
"lines": [
{ "number": 40, "text": "## Configuration Management", "isMatch": false },
{ "number": 41, "text": "", "isMatch": false },
{ "number": 42, "text": "Managing my dotfiles with stow", "isMatch": true },
{ "number": 43, "text": "has simplified my setup process.", "isMatch": false },
{ "number": 44, "text": "", "isMatch": false }
],
"highlighted": "Managing my **dotfiles** with stow"
}
}]
}],
"totalMatches": 43,
"fileCount": 15
}
根据H1标题(# 标题)搜索笔记。
列出保险库中的所有Markdown文件或特定目录。
读取特定笔记的完整内容。
创建或更新具有新内容的笔记。
从保险库中删除笔记。
查找包含特定标签的笔记。
获取一个或所有笔记的元数据,而不读取完整内容。
⭐ 推荐:从这里开始! 发现MOCs(内容地图),了解您保险库的知识结构。
内容地图是组织中心笔记(标记为#moc),链接到相关的内容。它们是由Nick Milo提出的灵活替代传统文件夹结构的方法。
特性:
为什么使用MOCs?
示例输出:
找到10个MOCs
📚 保险库索引 (24个链接的笔记)
路径: 00-INDEX.md
链接: Work-MOC, AI-MOC, Development-MOC, DevOps-MOC, Tools-MOC, Personal-MOC, Homelab-MOC, MCP-Framework-MOC
🔗 链接到MOCs: Work-MOC, AI-MOC, Development-MOC, DevOps-MOC, Tools-MOC, Personal-MOC, Homelab-MOC, MCP-Framework-MOC
📚 AI-MOC (61个链接的笔记)
路径: _mocs/AI-MOC.md
链接: chatgpt, ollama, langchain, aider, gp-nvim, MCP-Framework-MOC, ...
🔗 链接到MOCs: MCP-Framework-MOC, Development-MOC, DevOps-MOC, Tools-MOC, Work-MOC, 00-INDEX
此工具使代理能够立即理解您的知识图谱结构,使得导航比盲目关键词搜索快约10倍。
此服务器实现了MCP资源支持,用于HATEOAS风格的发现:
obsidian-note://相对路径/到/note.md示例:当您搜索"MCP"时,结果包含资源链接:
{
"content": [
{
"type": "text",
"text": "在2个文件中找到5个匹配项,对于\"MCP\""
},
{
"type": "resource_link",
"uri": "obsidian-note://guides/MCP-Guide.md",
"name": "MCP实现指南",
"description": "3个匹配项 | 标签: mcp, guide, development"
}
]
}
代理可以使用资源URI直接读取笔记,从而无缝地浏览您的知识库。
此服务器实施了全面的安全措施:
.md文件npm testnpm run coverage