使用说明

项目简介

Obsidian Omnisearch MCP服务器是一个基于 FastMCP 构建的应用后端,旨在将 Obsidian 笔记库的搜索功能以 MCP 工具的形式提供给 LLM 客户端。借助此服务器,LLM 可以通过调用预设的工具来搜索 Obsidian 笔记,并获取匹配笔记的文件路径和内容,从而实现与个人知识库的联动。

主要功能点

  • Obsidian 笔记搜索: 允许 LLM 客户端通过关键词搜索 Obsidian 笔记库。
  • 返回文件路径: 搜索结果返回匹配笔记的绝对路径,方便后续操作。
  • 读取笔记内容: 提供工具读取指定路径的 Obsidian 笔记内容。
  • FastMCP 集成: 基于 FastMCP 框架开发,易于扩展和集成到 MCP 生态系统中。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/anpigon/mcp-server-obsidian-omnisearch.git
    cd mcp-server-obsidian-omnisearch
  2. 安装依赖:

    uv install

    确保已安装 uv

服务器配置

要将此 MCP 服务器配置到 MCP 客户端(例如 Claude Desktop),您需要提供服务器的启动命令和参数。以下是配置示例,以 JSON 格式添加到 MCP 客户端的配置文件中。

Claude Desktop 配置文件路径:

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

配置信息 (Development/Unpublished Servers Configuration):

{
  "mcpServers": {
    "obsidian-omnisearch": {
      "command": "uv",
      "args": [
        "--directory",
        "<dir_to>/mcp-server-obsidian-omnisearch", // 请替换为 mcp-server-obsidian-omnisearch 仓库的绝对路径
        "run",
        "mcp-server-obsidian-omnisearch",
        "/path/to/your/obsidian/vault"  // 请替换为您的 Obsidian vault 绝对路径
      ]
    }
  }
}

参数说明:

  • '"obsidian-omnisearch"': 服务器名称,在客户端中用于标识和调用。
  • '"command": "uv"': 启动服务器的命令,这里使用 'uv' 运行 Python 包。如果您已将项目发布,可以使用 '"uvx"' 运行。
  • '"args"': 传递给启动命令的参数列表。
    • '"--directory", "<dir_to>/mcp-server-obsidian-omnisearch"': 指定 uv 运行的目录为仓库根目录。 请务必将 '<dir_to>/mcp-server-obsidian-omnisearch' 替换为实际的仓库绝对路径。
    • '"run", "mcp-server-obsidian-omnisearch"': 使用 uv 运行 'mcp-server-obsidian-omnisearch' 包。
    • '"/path/to/your/obsidian/vault"': 请务必将 '"/path/to/your/obsidian/vault"' 替换为您的 Obsidian vault 的绝对路径。 这是服务器访问您的笔记库所必需的参数。

配置信息 (Published Servers Configuration):

如果您已经将此项目发布为 Python 包,可以使用以下配置:

{
  "mcpServers": {
    "obsidian-omnisearch": {
      "command": "uvx",
      "args": [
        "mcp-server-obsidian-omnisearch",
        "/path/to/your/obsidian/vault" // 请替换为您的 Obsidian vault 绝对路径
      ]
    }
  }
}

参数说明:

  • '"command": "uvx"': 使用 'uvx' 直接运行已发布的 Python 包。
  • '"args"':
    • '"mcp-server-obsidian-omnisearch"': 指定运行的包名称。
    • '"/path/to/your/obsidian/vault"': 请务必将 '"/path/to/your/obsidian/vault"' 替换为您的 Obsidian vault 的绝对路径。

重要前提:

  • Obsidian Omnisearch 插件: 确保您的 Obsidian 中已安装并启用了 Omnisearch 社区插件,并且插件正在运行。Omnisearch 插件提供本地 HTTP API 供此 MCP 服务器调用。

基本使用方法

  1. 启动服务器: 配置完成后,MCP 客户端通常会自动启动或允许手动启动已配置的 MCP 服务器。请参考您使用的 MCP 客户端的文档来启动 'obsidian-omnisearch' 服务器。

  2. 在 LLM 中调用工具: 在 LLM 客户端中,您可以使用以下工具来与 Obsidian Omnisearch MCP 服务器交互:

    • 'obsidian_notes_search(query: str)': 搜索 Obsidian 笔记。

      • 参数 'query': 搜索关键词。
      • 返回值: 包含匹配笔记信息的列表,例如文件路径、标题、摘要等。

      示例 (在 LLM 中指示其使用工具搜索笔记):

      请使用 'obsidian_notes_search' 工具搜索关于 "项目管理" 的笔记。
    • 'read_note(filepath: str)': 读取指定路径的 Obsidian 笔记内容。

      • 参数 'filepath': 要读取的笔记文件的绝对路径 (通常从 'obsidian_notes_search' 工具的返回值中获取)。
      • 返回值: 笔记文件的文本内容。

      示例 (在 LLM 中指示其读取特定笔记):

      请读取文件路径为 "/path/to/your/obsidian/vault/Projects/Project-A.md" 的笔记内容,使用 'read_note' 工具。

通过组合使用这两个工具,LLM 客户端可以实现对 Obsidian 笔记库的搜索和内容访问,从而扩展 LLM 的知识来源和应用场景。

信息

分类

生产力应用