Obsidian Index MCP Server 使用说明

项目简介

Obsidian Index MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器,它允许LLM客户端访问和搜索你的 Obsidian 笔记库。它将 Obsidian vault 中的笔记作为资源暴露,并提供语义搜索工具,使LLM能够理解和利用你的笔记内容。

主要功能点

  • 资源 (Resources): 将 Obsidian 笔记库中最近修改的笔记作为资源提供给LLM客户端。客户端可以通过 'obsidian://' 协议和 vault 名称、笔记路径访问指定的 Markdown 笔记。
  • 工具 (Tools): 提供 'search-notes' 工具,允许LLM客户端对笔记进行语义搜索。客户端可以输入查询语句,服务器将返回与查询相关的笔记资源。
  • 本地知识库: 为LLM提供访问本地 Obsidian 知识库的能力,增强LLM的上下文理解和信息检索能力。

安装步骤

  1. 环境准备: 确保你已安装 Python 和 'uv' 包管理器 (根据 README.md,推荐使用 'uv')。
  2. 克隆仓库: 克隆此 GitHub 仓库到本地:
    git clone https://github.com/tcsavage/mcp-obsidian-index.git
    cd mcp-obsidian-index
  3. 同步依赖: 使用 'uv sync' 命令同步依赖并更新 lockfile:
    uv sync
  4. 构建: 使用 'uv build' 命令构建 package distributions:
    uv build

服务器配置

为了让 MCP 客户端(例如 Claude)连接到 Obsidian Index MCP 服务器,你需要在客户端的配置文件中添加服务器配置信息。以下是配置示例 (Development/Unpublished Servers Configuration):

{
  "mcpServers": {
    "obsidian-index": {
      "command": "uv",
      "args": [
        "--directory",
        "<PATH_TO_PROJECT>",
        "run",
        "obsidian-index",
        "--database",
        "<PATH_TO_DATABASE>",  // 数据库文件路径,例如 text_index.db
        "--vault",
        "<PATH_TO_VAULT>",     // Obsidian vault 路径,可以指定多个 vault
        "--reindex",            // 首次运行或需要重建索引时添加此参数
        "--watch"              // 启用文件系统监控,自动更新索引
      ]
    }
  }
}

参数说明:

  • '"server name": "obsidian-index"': 服务器名称,客户端用此名称识别和连接服务器。
  • '"command": "uv"': 启动服务器的命令,这里使用 'uv' 包管理器。
  • '"args"': 启动命令的参数列表,包括:
    • '"--directory", "<PATH_TO_PROJECT>"': '<PATH_TO_PROJECT>' 替换为本地仓库的路径
    • '"run", "obsidian-index"': 运行 'obsidian-index' 应用。
    • '"--database", "<PATH_TO_DATABASE>"': '<PATH_TO_DATABASE>' 替换为数据库文件的路径,例如 'text_index.db'。数据库文件将用于存储笔记索引。
    • '"--vault", "<PATH_TO_VAULT>"': '<PATH_TO_VAULT>' 替换为你的 Obsidian vault 路径。可以指定多个 vault,重复添加 '--vault <PATH_TO_VAULT>' 参数。
    • '"--reindex"': (可选)首次运行或当你需要重建所有笔记的索引时,添加此参数。服务器启动时会重新索引所有 vault 中的笔记。
    • '"--watch"': (可选)启用文件系统监控。服务器将自动检测 vault 中笔记的更改(创建、修改)并更新索引。

根据你的操作系统,配置文件路径可能如下:

  • MacOS (Claude Desktop): '~/Library/Application\ Support/Claude/claude_desktop_config.json'
  • Windows (Claude Desktop): '%APPDATA%/Claude/claude_desktop_config.json'

基本使用方法

  1. 配置客户端: 根据上述 "服务器配置" 部分的说明,编辑 MCP 客户端的配置文件,添加 'obsidian-index' 服务器配置,并正确填写 '<PATH_TO_PROJECT>'、'<PATH_TO_DATABASE>' 和 '<PATH_TO_VAULT>' 参数
  2. 启动服务器: 在本地仓库目录下,使用以下命令启动 Obsidian Index MCP 服务器:
    uv run obsidian-index mcp --database <PATH_TO_DATABASE> --vault <PATH_TO_VAULT> --reindex --watch
    同样需要将 '<PATH_TO_DATABASE>' 和 '<PATH_TO_VAULT>' 替换为实际路径。 首次运行建议添加 '--reindex' 参数。
  3. 在 MCP 客户端中使用:
    • 访问资源: 在支持资源访问的 MCP 客户端中,可以使用 'obsidian://<VAULT_NAME>/<NOTE_PATH>' 格式的 URI 访问最近修改的笔记资源。例如 'obsidian://MyVault/MyNote.md'。
    • 调用工具: 在支持工具调用的 MCP 客户端中,可以调用 'search-notes' 工具进行语义搜索。工具需要 'query' 参数,例如 '{"query": "你的搜索关键词"}'。服务器将返回搜索结果,客户端可以根据结果访问相关笔记资源。

调试: 如果遇到问题,可以使用 MCP Inspector 进行调试,具体方法参考 README.md 的 "Debugging" 部分。

信息

分类

生产力应用