使用说明

项目简介

Obsidian Index MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的应用后端,旨在桥接大型语言模型 (LLM) 与本地 Obsidian 知识库。它允许 LLM 客户端通过标准化的 MCP 协议访问和利用 Obsidian Vault 中的信息。该服务器主要提供两个核心功能:将 Obsidian Vault 中最近修改的笔记作为资源暴露给 LLM,并提供一个工具用于在 Vault 中进行语义搜索。

主要功能点

  • 资源 (Resources)
    • 将 Obsidian Vault 中最近修改的笔记以资源的形式提供给 LLM 客户端。
    • 资源通过 'obsidian://<VAULT_NAME>/<NOTE_PATH>' 格式的 URI 进行寻址。
    • 资源以 'text/markdown' 媒体类型提供,内容为 Markdown 文本。
  • 工具 (Tools)
    • 实现 'search-notes' 工具,允许 LLM 客户端对 Obsidian Vault 中的笔记进行语义搜索。
    • 'search-notes' 工具接受文本查询作为输入,并返回与查询相关的笔记资源。

安装步骤

本仓库为 MCP 服务器的实现代码,通常无需显式安装步骤。您需要确保已安装 Python 环境,并按照仓库 'README.md' 文件的 "Development" -> "Building and Publishing" 部分的指引,使用 'uv sync' 命令安装项目依赖。

服务器配置

为了让 MCP 客户端(如 Claude Desktop)连接到 Obsidian Index MCP 服务器,您需要配置客户端的 MCP 服务器设置。以下是针对开发/未发布服务器的配置信息,您需要根据您的实际项目路径和数据库路径进行调整。

JSON 配置信息:

{
  "mcpServers": {
    "obsidian-index": {
      "command": "uv",
      "args": [
        "--directory",
        "<PATH_TO_PROJECT>",  //  [必填]  请替换为您的 obsidian-index 项目的本地路径
        "run",
        "obsidian-index",
        "--database",
        "<PATH_TO_DATABASE>", //  [必填]  请替换为您希望存放数据库文件的路径,例如 "text_index.db"
        "--vault",
        "<PATH_TO_VAULT>",    //  [必填]  请替换为您的 Obsidian Vault 的路径
        "--reindex",         //  [可选]  添加此参数将在服务器启动时重新索引所有笔记
        "--watch"            //  [可选]  添加此参数将启用文件系统监控,自动索引 Vault 中的更改
      ]
    }
  }
}

配置参数说明:

  • 'server name': 'obsidian-index' - 服务器名称,客户端用此名称来识别和调用。
  • 'command': 'uv' - 启动服务器的命令,这里使用 'uv' 包管理器来运行 Python 脚本。如果您将服务器发布为独立的包,可能需要使用 'uvx'。
  • 'args': 启动命令的参数列表,包括:
    • '--directory': 指向 Obsidian Index 项目根目录的路径。请务必替换 '<PATH_TO_PROJECT>' 为您的实际项目路径。
    • 'run': 'uv' 命令的子命令,用于运行指定的 Python 脚本。
    • 'obsidian-index': 要运行的 Python 入口点,对应 'src/obsidian_index/main.py' 中定义的 'obsidian-index' 命令组。
    • '--database': 指定数据库文件路径。请务必替换 '<PATH_TO_DATABASE>' 为您希望存放数据库文件的路径,例如 "text_index.db"。 数据库文件用于存储笔记的索引信息。
    • '--vault': 指定 Obsidian Vault 的路径。请务必替换 '<PATH_TO_VAULT>' 为您的 Obsidian Vault 的实际路径。 可以多次指定 '--vault' 参数来索引多个 Vault。
    • '--reindex' (可选): 如果添加此参数,服务器在启动时会强制重新索引所有 Vault 中的笔记。首次运行时建议添加,后续可以根据需要选择是否添加。
    • '--watch' (可选): 如果添加此参数,服务器会监控 Vault 目录的文件变化。当 Vault 中的笔记被创建、修改或删除时,服务器会自动更新索引。

配置方法:

  1. 找到您的 MCP 客户端(例如 Claude Desktop)的配置文件。根据 'README.md' 的指引,Claude Desktop 的配置文件路径为:
    • MacOS: '~/Library/Application\ Support/Claude/claude_desktop_config.json'
    • Windows: '%APPDATA%/Claude/claude_desktop_config.json'
  2. 打开配置文件,找到 '"mcpServers"' 部分。如果不存在,请手动创建。
  3. 将上述 JSON 配置信息添加到 '"mcpServers"' 中。
  4. 务必根据您的实际情况修改 '<PATH_TO_PROJECT>'、'<PATH_TO_DATABASE>' 和 '<PATH_TO_VAULT>' 为正确的路径。

基本使用方法

  1. 配置并启动 Obsidian Index MCP 服务器后,您的 MCP 客户端应该能够检测到该服务器。
  2. 在 LLM 客户端中,您应该可以:
    • 访问最近修改的笔记资源: 客户端可能会自动展示或允许您浏览最近修改的笔记列表。
    • 调用 'search-notes' 工具: 在需要搜索 Obsidian Vault 内容时,您可以指示 LLM 客户端调用 'search-notes' 工具,并提供搜索关键词。服务器将返回相关的笔记资源,供 LLM 使用。

注意: 具体的使用方式会依赖于您的 MCP 客户端的功能和界面。请参考您使用的 MCP 客户端的文档,了解如何利用 MCP 服务器提供的资源和工具。

信息

分类

生产力应用