项目简介

这是一个强大且可用于生产环境的系统,它通过 FastMCP 协议将您的 Obsidian 笔记库连接到 Claude Desktop 等大型语言模型(LLM),利用 Milvus 向量数据库实现智能的文档搜索和检索。相较于传统的基于笔记应用的 MCP,它更适合处理大量研究资料,提供深度分析所需的全面搜索能力。

重要提示: 本项目资源消耗较高,需要大量内存(RAM)来维持 Milvus 服务器运行,因此不适合内存有限或需要节能的设备。目前仅支持 Windows 10 和 11。

主要功能点

  • 混合搜索: 结合向量相似度搜索和关键词搜索。
  • 智能语义搜索: 基于文本含义的高精度文档检索。
  • 高级AI与RAG特性: 支持分层检索、多查询融合、适应性调整搜索参数等,增强检索增强生成(RAG)效果。
  • 丰富的元数据过滤: 支持按标签(AND/OR/NOT 组合)、时间范围、文件类型等多种条件过滤。
  • 性能优化: 支持 GPU/CPU 自动选择和调优索引参数,提升搜索效率。
  • 知识图谱探索: 基于向量相似度发现文档间连接关系。
  • 与Claude Desktop集成: 通过 FastMCP 协议实现无缝连接。
  • 实时文件监控: 自动检测 Obsidian 笔记变化并进行增量索引。

安装步骤

  1. 检查系统要求:
    • Python 3.12+ (某些依赖兼容 3.9+,但 MCP 包需要 3.12)
    • Podman (用于运行 Milvus 容器)
    • 兼容 CUDA 的 GPU (可选,用于加速)
    • 已有的 Obsidian 笔记库 (包含 .md 和/或 .pdf 文件)
    • Windows 10 或 11
  2. 下载安装程序 (推荐): 从项目 README 中提供的 Dropbox 链接下载最新安装程序并运行。安装程序会自动处理依赖安装、Podman 和 WSL 设置等。
  3. 手动安装 (备选):
    • 确保已安装 Git。
    • 克隆仓库:'git clone https://github.com/jayjeo/obsidian-milvus-FastMCP' 进入项目目录。
    • 安装 Python 依赖:运行 'pip install ...' 安装 'requirements.txt' 中列出的所有包 (具体命令请参考 README 中的手动安装部分)。
    • 安装 Podman:从命令行运行 'winget install RedHat.Podman'。
    • 启用 WSL 2 和安装 Linux 发行版 (如 Ubuntu) 并设置为默认版本 (具体命令请参考 README)。
    • 运行 'pip install podman-compose'。
    • 配置路径:编辑项目根目录下的 '.env' 文件,设置 'OBSIDIAN_VAULT_PATH' 和 'PODMAN_PATH' (可运行 'find_podman_path.bat' 查找 Podman 路径)。
    • 初始化 Podman 容器:运行 'complete-podman-reset.bat'。
    • 初始化 Milvus 服务器:运行 'start_mcp_with_encoding_fix.bat'。
    • 重要: 推荐设置 Podman 和 Milvus 服务器开机自启动,请参考 README 中提供的 'Podman auto launch.md' 和 'Milvus auto launch.md' 指南。
  4. 运行安装设置脚本: 进入项目目录,运行 'run-setup.bat',选择 '(1)' 包安装 (如果未手动安装)、'(2)' Milvus 设置、'(3)' Collection 测试、'(4)' MCP 服务器验证、'(5)' Claude Desktop 集成等选项来完成最终配置和测试。

服务器配置(给 MCP 客户端,如 Claude Desktop)

MCP 客户端(如 Claude Desktop)需要知道如何启动并连接到这个 MCP 服务器。您需要在客户端的配置文件中添加一个服务器条目,通常是一个 JSON 格式的对象数组。

对于 Claude Desktop,这个配置通常在 'claude_desktop_config.json' 文件(位于用户应用数据目录下的 'Claude' 文件夹内)的 '"mcpServers"' 字段中。

根据本仓库的信息,您需要添加或确保存在以下配置条目:

{
  "mcpServers": {
    "obsidian-assistant": { // 服务器名称,MCP客户端用来标识这个服务器
      "command": "python", // 启动服务器的命令,这里是调用Python解释器
      "args": [ // 传递给command的参数列表
        "path/to/your/obsidian-milvus-FastMCP/mcp_server.py" // 指向本项目mcp_server.py文件的绝对路径
      ],
      "env": { // 环境变量,可选
        "PYTHONPATH": "path/to/your/obsidian-milvus-FastMCP/" // 设置PYTHONPATH,确保Python能找到项目模块
      }
    }
    // 如果有其他MCP服务器,也会在这里列出
  }
}

说明:

  • '"obsidian-assistant"' 是 MCP 服务器的名称,您可以根据喜好更改,但客户端需要知道这个名称才能调用。
  • '"command"' 是用于启动服务器进程的命令。
  • '"args"' 是传递给 'command' 的参数列表。其中最重要的就是指向本项目 'mcp_server.py' 文件的绝对路径。在运行 'run-setup.bat' 的选项 '(5)' 时,这个路径通常会自动填充为您项目的实际安装路径。
  • '"env"' 可以设置环境变量,例如 'PYTHONPATH' 指向项目根目录,确保服务器运行时可以正确导入项目内的其他 Python 模块(如 'milvus_manager', 'config' 等)。同样,'run-setup.bat' 会尝试自动配置这个路径。

完成此配置后,MCP 客户端(如 Claude Desktop)就可以通过这个配置发现并启动您的 Obsidian-Milvus-FastMCP 服务器,并通过 MCP 协议与其通信,调用其提供的工具和访问资源。

基本使用方法

  1. 启动服务器: 确保 Milvus 容器和 MCP 服务器已启动(推荐设置开机自启动)。如果未设置自启动,可以手动运行 'start_mcp_with_encoding_fix.bat' 或通过 'run-main.bat' 选择选项 '(1)'。请等待 Milvus 完全启动(可能需要几分钟)。
  2. 执行索引: 运行 'run-main.bat',选择选项 '(2)' (完整索引) 或 '(3)' (增量索引及清理删除文件),开始处理您的 Obsidian 笔记库并将其内容存入 Milvus。初次运行时需要完整索引。
  3. 打开Claude Desktop: 确保 Claude Desktop 已安装并根据上述步骤配置了服务器。
  4. 开始搜索: 在 Claude Desktop 中,您现在可以使用自然语言查询来搜索您的 Obsidian 笔记内容。Claude 将通过 MCP 协议调用本项目提供的各种搜索工具(如 'search_documents', 'intelligent_search' 等)来获取结果。您也可以直接在 MCP 工具列表中查找并调用可用的工具。

信息

分类

生产力应用