使用说明
项目简介
LanceDB MCP Server 是一个使用 LanceDB 向量数据库构建的 Model Context Protocol (MCP) 服务器。它允许大型语言模型 (LLM) 通过工具调用,直接访问和检索存储在 LanceDB 中的文档数据,实现基于本地文档的检索增强生成 (RAG) 和混合搜索。
主要功能点
- 文档索引与检索: 使用 LanceDB 存储文档的向量索引和文档摘要,支持高效的向量检索和关键词搜索。
- 工具化数据访问: 提供 'catalog_search', 'chunks_search', 'all_chunks_search' 等工具,允许 LLM 客户端调用这些工具来查询文档目录和文档内容。
- 本地数据安全: 索引数据存储在本地,保证数据安全和隐私,尤其适用于本地 LLM 应用。
- 高效 Token 利用: LLM 可以按需检索所需信息,减少不必要的 token 消耗。
安装步骤
- 安装 Node.js 18+: 确保你的系统安装了 Node.js 18 或更高版本。
- 安装依赖: 克隆仓库后,在项目根目录下运行 'npm install' 安装项目依赖。
- 安装 Ollama 模型 (可选): 如果使用默认配置,需要安装 'snowflake-arctic-embed2' 和 'llama3.1:8b' Ollama 模型。运行命令 'ollama pull snowflake-arctic-embed2' 和 'ollama pull llama3.1:8b'。 你也可以在 'src/config.ts' 文件中修改模型配置。
- 构建项目 (开发模式): 运行 '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 数据库存储目录的路径。请替换为你实际的目录路径。
基本使用方法
- 准备文档数据: 将你需要索引的文档 (例如 PDF 文件) 放在一个目录下。
- 运行 seed 脚本: 使用以下命令初始化 LanceDB 数据库并索引文档。将 '<PATH_TO_LOCAL_INDEX_DIR>' 替换为数据库目录,'<PATH_TO_DOCS>' 替换为文档目录。
如果需要重新创建索引,可以添加 '--overwrite' 参数:npm run seed -- --dbpath <PATH_TO_LOCAL_INDEX_DIR> --filesdir <PATH_TO_DOCS>npm run seed -- --dbpath <PATH_TO_LOCAL_INDEX_DIR> --filesdir <PATH_TO_DOCS> --overwrite - 启动 MCP 服务器: 根据你的 MCP 客户端配置,启动 LanceDB MCP 服务器。
- 在 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?" 来检索相关文档内容。
信息
分类
数据库与文件