Obsidian笔记管理服务

一个连接AI助手(如Claude)到Obsidian笔记库的服务器,支持通过自然语言对话进行笔记的读取、写入、搜索和组织。

  • by amjad1233
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 amjad1233/obsidian-mcp-server

使用说明

黑曜石MCP服务器

一 MCP(模型上下文协议) 将Claude等人工智能助手连接到您的服务器 黑曜石 拱顶。通过自然对话阅读、写作、搜索和组织你的笔记。

建立在 黑名单本地REST API 插件。


快速入门(5分钟)

新来的? 严格遵循这些步骤,你就可以开始运行了。无需编码经验。

第一步:安装黑曜石插件

  1. 打开 黑曜石
  2. 首选 设置 (左下角的齿轮图标)
  3. 点击 社区插件 在左侧边栏中
  4. 点击 浏览 并搜索 “本地REST API”
  5. 点击 安装那么 启用
  6. 仍在插件设置中,查找并 复制API密钥 --在步骤3中,您将需要它

如果你没有看到社区插件,你需要关闭 受限模式 首先(社区插件页面顶部有一个切换按钮)。

步骤2:下载并安装此服务器

打开您的终端(在Mac上:在Spotlight中搜索“终端”)并运行:

git clone https://github.com/amjad1233/obsidian-mcp-server.git
cd obsidian-mcp-server
npm install

没有Node.js? 从这里下载 nodejs.org (选择LTS版本)。没有git?下载自 git-scm.com.

第三步:联系克劳德

挑选 一 取决于您使用的内容:

Claude Desktop (the app)
  1. 查找您的配置文件:

    • 雨衣: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 窗户: %APPDATA%\Claude\claude_desktop_config.json
  2. 在任何文本编辑器中打开它并添加 obsidian 内部堵塞 mcpServers。如果文件为空或不存在,请粘贴整个文件:

{
  "mcpServers": {
    "obsidian": {
      "command": "node",
      "args": ["/full/path/to/obsidian-mcp-server/mcp-server.js"],
      "env": {
        "OBSIDIAN_API_KEY": "paste-your-api-key-here"
      }
    }
  }
}
  1. 替换 /full/path/to/ 使用您克隆回购的位置(例如。, /Users/yourname/obsidian-mcp-server/mcp-server.js)
  2. 替换 paste-your-api-key-here 使用步骤1中的API密钥
  3. 重新启动克劳德桌面
Claude Code (the CLI)
  1. 创建或编辑 ~/.mcp.json:
{
  "mcpServers": {
    "obsidian": {
      "command": "node",
      "args": ["/full/path/to/obsidian-mcp-server/mcp-server.js"],
      "env": {
        "OBSIDIAN_API_KEY": "paste-your-api-key-here"
      }
    }
  }
}
  1. (可选)自动允许所有工具,这样您就不会每次都收到提示。添加 ~/.claude/settings.json 在...之下 permissions.allow:
"mcp__obsidian__obsidian_list_vault",
"mcp__obsidian__obsidian_read_note",
"mcp__obsidian__obsidian_create_note",
"mcp__obsidian__obsidian_update_note",
"mcp__obsidian__obsidian_search_vault",
"mcp__obsidian__obsidian_move_note",
"mcp__obsidian__obsidian_delete_note",
"mcp__obsidian__obsidian_get_tags"
  1. 启动新的Claude Code会话

第四步:测试

确保 黑曜石是开放的然后问克劳德:

“列出我黑曜石保险库中的所有文件”

如果你看到你的文件,你就完了!


部署检查表

每次在新机器上设置服务器时都使用此选项:

  • [ ] Node.js 18+ 已安装(node --version)
  • [ ] 黑曜石 已安装并打开
  • [ ] 本地REST API 在Obsidian中安装并启用插件
  • [ ] API密钥 从插件设置复制
  • [ ] Repo克隆 和 npm install 跑
  • [ ] 配置文件 已更新(克劳德桌面或克劳德代码)
    • []路径 mcp-server.js 是正确和绝对的
    • []粘贴了API键(不是占位符)
  • [ ] 克劳德重新开始 (桌面:退出并重新打开/代码:新会话)
  • [ ] 黑曜石正在奔跑 当你试图使用这些工具时
  • [ ] 测试: 让克劳德列出你的保险库

特性

工具 说明
obsidian_list_vault 列出vault(或子文件夹)中的所有文件和文件夹
obsidian_read_note 阅读笔记的完整降价内容和封面
obsidian_create_note 使用自动生成的frontmatter创建新笔记
obsidian_update_note 覆盖或附加到现有注释
obsidian_search_vault 通过上下文摘录在整个数据库中进行全文搜索
obsidian_move_note 将笔记从一条路径移动到另一条路径
obsidian_delete_note 软删除(垃圾)或永久删除笔记
obsidian_get_tags 获取整个保险库中使用的所有标签及其计数

配置

服务器完全通过环境变量配置,代码中没有秘密。

变量 必填 默认 描述
OBSIDIAN_API_KEY 是 - Local REST API插件中的API密钥
OBSIDIAN_HOST 没有 http://127.0.0.1 运行Obsidian REST API的主机
OBSIDIAN_PORT 没有 27123 REST API的端口

使用示例

配置后,您可以向Claude询问以下问题:

  • “列出收件箱文件夹中的所有内容”
  • “阅读我今天的会议记录”
  • “根据这些要求在项目/网站重新设计中创建新注释…”
  • “在我的保险库中搜索有关季度计划的任何信息”
  • “将收件箱笔记移动到我的项目文件夹”
  • “我在保险库中使用了哪些标签?”
  • “将今天的站立笔记添加到我的跑步日志中”

运作原理

Claude <-> MCP Protocol (stdio) <-> This Server <-> Obsidian Local REST API <-> Your Vault

服务器使用MCP协议通过stdio与Claude通信,并将工具调用转换为针对本地主机上运行的Obsidian本地REST API的HTTP请求。所有注释路径都是相对于vault根的。

故障排除

问题 解决方案
“无法连接到Obsidian REST API” 请确保Obsidian已打开并且本地REST API插件已启用
“未设置OBSIDIAN_API_KEY环境变量” 检查配置文件-API密钥丢失或为空
工具未显示在Claude中 重新启动Claude桌面/启动新的Claude代码会话
“注释已存在” 使用 obsidian_update_note 而不是 obsidian_create_note
“不允许路径遍历” 不使用 ../ 在路径中--所有路径都是相对于vault根目录的
服务器无法启动 运行 node mcp-server.js 直接查看错误
错误的Node.js版本 运行 node --version --你需要18岁或以上

备注

  • 黑曜石一定在跑 本地REST API插件处于活动状态,以便服务器工作
  • 所有文件路径都是相对于vault根的(例如。, Folder/Subfolder/Note.md)
  • obsidian_create_note 自动生成YAML frontmatter created 时间戳和 tags
  • obsidian_delete_note 默认情况下移动到垃圾箱--pass permanent: true 用于硬删除
  • obsidian_get_tags 扫描多达5000个markdown文件;非常大的保险库可能会看到部分结果

许可证

麻省理工学院