项目简介

ObsidianFetch 是一个基于 Model Context Protocol (MCP) 的服务器,专门设计用于访问和检索 Obsidian 笔记库中的信息。它通过标准化的接口向大型语言模型 (LLM) 客户端提供笔记内容和相关链接信息,帮助LLM更好地理解和利用用户的知识库,弥补现有MCP服务器在处理大量笔记和特定检索场景下的不足。

主要功能点

  • 访问 Obsidian 笔记库:能够读取指定路径下的 Obsidian 笔记文件('.md')。
  • 检索笔记:支持通过笔记名称精确查找或通过关键词(子字符串)搜索匹配的笔记名称列表。
  • 读取笔记内容:根据笔记名称返回其 Markdown 格式的完整内容。
  • 处理链接与别名:自动识别并处理笔记中的 Obsidian 内部链接('[[...]]')和标准的 Markdown 链接,支持通过笔记别名进行查找,并能显示指向当前笔记的反向链接(提及)。
  • 标准化接口:通过 MCP 协议(基于 JSON-RPC)提供结构化的数据访问和功能调用接口,便于 LLM 客户端集成。

安装步骤

确保你的系统安装了 Ruby 环境。然后执行以下命令安装 gem 包:

gem install obsidian_fetch

服务器配置

MCP 客户端需要知道如何启动并连接到 ObsidianFetch 服务器。典型的配置信息应包含服务器的名称、启动命令及其参数。启动命令通常是 'obsidian_fetch',参数是你 Obsidian 笔记库的完整路径。

例如,如果你的 Obsidian 笔记库位于 '/home/user/ObsidianVaults/MyNotes',则在 MCP 客户端的服务器配置中,你需要指定:

  • 'command' 为 'obsidian_fetch'
  • 'args' 包含一个元素,即你的笔记库路径 '/home/user/ObsidianVaults/MyNotes'。

具体的配置格式取决于你使用的 MCP 客户端,通常是一个 JSON 对象,包含 'server name'、'command'、'args' 等字段。

基本使用方法

ObisidianFetch 服务器启动后,会扫描指定的 Obsidian 笔记库,构建笔记、别名和链接的内部索引。通过 MCP 协议,连接的 LLM 客户端可以调用服务器提供的工具来获取信息,例如:

  • 调用名为 'read' 的工具:通过提供笔记的名称作为参数,服务器返回该笔记的完整内容,并可能包含提及该笔记的其他笔记列表。
  • 调用名为 'list' 的工具:通过提供搜索关键词作为参数,服务器返回一个匹配该关键词的笔记名称列表。

LLM 客户端会根据其任务需求和内部策略,利用这些工具与你的 Obsidian 笔记库进行交互,获取相关的上下文信息以辅助生成回答或执行任务。

信息

分类

生产力应用