使用说明

项目简介

LanceDB MCP Server 是一个使用 LanceDB 向量数据库构建的 Model Context Protocol (MCP) 服务器。它允许大型语言模型 (LLM) 通过工具调用,直接访问和检索存储在 LanceDB 中的文档数据,实现基于本地文档的检索增强生成 (RAG) 和混合搜索。

主要功能点

  • 文档索引与检索: 使用 LanceDB 存储文档的向量索引和文档摘要,支持高效的向量检索和关键词搜索。
  • 工具化数据访问: 提供 'catalog_search', 'chunks_search', 'all_chunks_search' 等工具,允许 LLM 客户端调用这些工具来查询文档目录和文档内容。
  • 本地数据安全: 索引数据存储在本地,保证数据安全和隐私,尤其适用于本地 LLM 应用。
  • 高效 Token 利用: LLM 可以按需检索所需信息,减少不必要的 token 消耗。

安装步骤

  1. 安装 Node.js 18+: 确保你的系统安装了 Node.js 18 或更高版本。
  2. 安装依赖: 克隆仓库后,在项目根目录下运行 'npm install' 安装项目依赖。
  3. 安装 Ollama 模型 (可选): 如果使用默认配置,需要安装 'snowflake-arctic-embed2' 和 'llama3.1:8b' Ollama 模型。运行命令 'ollama pull snowflake-arctic-embed2' 和 'ollama pull llama3.1:8b'。 你也可以在 'src/config.ts' 文件中修改模型配置。
  4. 构建项目 (开发模式): 运行 'npm run build' 构建项目。

服务器配置

将以下 JSON 配置添加到你的 MCP 客户端配置文件中 (例如 Claude Desktop App 的 'claude_desktop_config.json')。你需要将 'PATH_TO_LOCAL_INDEX_DIR' 替换为你本地存储 LanceDB 索引的目录路径。

{
  "mcpServers": {
    "lancedb": {
      "command": "npx",
      "args": [
        "lance-mcp",
        "PATH_TO_LOCAL_INDEX_DIR"
      ]
    }
  }
}

参数说明:

  • 'PATH_TO_LOCAL_INDEX_DIR': [必填] 本地 LanceDB 数据库存储目录的路径。请替换为你实际的目录路径。

本地开发模式配置: 如果你在本地开发模式下运行服务器,可以使用以下配置,同样需要替换 'PATH_TO_LANCE_MCP' 和 'PATH_TO_LOCAL_INDEX_DIR' 为实际路径。

{
  "mcpServers": {
    "lancedb": {
      "command": "node",
      "args": [
        "PATH_TO_LANCE_MCP/dist/index.js",
        "PATH_TO_LOCAL_INDEX_DIR"
      ]
    }
  }
}

参数说明:

  • 'PATH_TO_LANCE_MCP': [必填] LanceDB MCP Server 项目的本地路径。请替换为你克隆仓库的本地目录路径。
  • 'PATH_TO_LOCAL_INDEX_DIR': [必填] 本地 LanceDB 数据库存储目录的路径。请替换为你实际的目录路径。

基本使用方法

  1. 准备文档数据: 将你需要索引的文档 (例如 PDF 文件) 放在一个目录下。
  2. 运行 seed 脚本: 使用以下命令初始化 LanceDB 数据库并索引文档。将 '<PATH_TO_LOCAL_INDEX_DIR>' 替换为数据库目录,'<PATH_TO_DOCS>' 替换为文档目录。
    npm run seed -- --dbpath <PATH_TO_LOCAL_INDEX_DIR> --filesdir <PATH_TO_DOCS>
    如果需要重新创建索引,可以添加 '--overwrite' 参数:
    npm run seed -- --dbpath <PATH_TO_LOCAL_INDEX_DIR> --filesdir <PATH_TO_DOCS> --overwrite
  3. 启动 MCP 服务器: 根据你的 MCP 客户端配置,启动 LanceDB MCP 服务器。
  4. 在 MCP 客户端中使用工具: 在支持 MCP 的 LLM 客户端 (例如 Claude Desktop App) 中,你可以使用以下工具来与 LanceDB 服务器交互:
    • 'catalog_search': 搜索文档目录。例如,你可以提问 "What documents do we have in the catalog?"
    • 'chunks_search': 根据文档来源搜索文档内容块。
    • 'all_chunks_search': 搜索所有文档的内容块。 例如,你可以提问 "Why is the US healthcare system so broken?" 来检索相关文档内容。

信息

分类

数据库与文件