Files Vector Store:本地文件语义搜索 MCP 服务器
项目简介
Files Vector Store 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型(LLM)提供本地文件的语义搜索能力。通过监控您指定的目录,Files Vector Store 会自动索引文件内容,并利用向量嵌入技术实现高效的语义搜索。这使得 LLM 能够理解和利用本地文件中的信息,扩展其知识范围和应用场景。
主要功能点
- 实时文件监控和索引: 自动监控指定目录,当文件新增、修改或删除时,服务器会自动更新索引。
- 语义搜索: 使用先进的向量嵌入技术,根据内容含义进行搜索,而非关键词匹配,提供更精准的搜索结果。
- 支持多种文件类型: 能够处理包括文本、HTML、JSON 和 Markdown 等多种常见文件类型。
- 可配置的参数: 允许用户自定义文本块大小和重叠度,以及忽略文件模式,以优化索引和搜索效果。
- 提供 MCP 工具: 通过标准 MCP 协议提供 'search' 和 'get_stats' 两个工具,方便 LLM 客户端调用。
安装步骤
- 环境准备: 确保您已安装 Node.js 和 npm (或 yarn)。
- 配置 MCP 设置: 您需要将 Files Vector Store 服务器添加到您的 MCP 客户端(如 VSCode Cline Extension 或 Claude Desktop App)的 MCP 服务器配置文件中。配置文件的位置通常如下:
- VSCode Cline Extension: '~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json'
- Claude Desktop App: '~/Library/Application Support/Claude/claude_desktop_config.json'
- 添加服务器配置: 在 MCP 配置文件的 'mcpServers' 字段中添加以下 JSON 配置:
{ "mcpServers": { "files-vectorstore": { "command": "npx", "args": [ "-y", "@lishenxydlgzs/simple-files-vectorstore" ], "env": { "WATCH_DIRECTORIES": "/path/to/your/directories" }, "disabled": false, "autoApprove": [] } } }
服务器配置
上述 'files-vectorstore' 配置块定义了如何启动 Files Vector Store 服务器。
- 'server name': 'files-vectorstore' - 服务器的名称,用于在 MCP 客户端中标识和引用。
- 'command': 'npx' - 用于执行 npm 包的命令。
- 'args': '["-y", "@lishenxydlgzs/simple-files-vectorstore"]' - 传递给 'npx' 的参数,用于安装并运行 '@lishenxydlgzs/simple-files-vectorstore' npm 包。 '-y' 参数表示自动确认安装。
- 'env': 环境变量配置。
- 'WATCH_DIRECTORIES': [必填] 指定要监控的目录。请将 '/path/to/your/directories' 替换为您希望服务器监控的实际目录路径。如果要监控多个目录,请使用逗号分隔,例如 '/path/to/dir1,/path/to/dir2'。
- 'CHUNK_SIZE': [可选] 文本分块大小,用于文件处理。默认为 '1000'。您可以根据需要调整,例如 'CHUNK_SIZE: "2000"'。
- 'CHUNK_OVERLAP': [可选] 文本块之间的重叠字符数。默认为 '200'。您可以根据需要调整,例如 'CHUNK_OVERLAP: "500"'。
- 'IGNORE_FILE': [可选] '.gitignore' 风格的忽略文件路径。您可以指定一个文件路径,服务器将根据该文件中的模式排除特定的文件或目录。例如 'IGNORE_FILE: "/path/to/.gitignore"'。
- 'disabled': 'false' - 表示服务器已启用。
- 'autoApprove': '[]' - 自动批准列表,当前为空。
基本使用方法
-
启动 MCP 客户端: 启动您配置了 Files Vector Store 服务器的 MCP 客户端(如 VSCode Cline Extension 或 Claude Desktop App)。
-
调用 MCP 工具: 在 MCP 客户端中,您可以使用以下工具与 Files Vector Store 服务器交互:
-
'search' 工具: 用于在索引文件中执行语义搜索。
- 参数:
- 'query' (必填): 搜索查询字符串。
- 'limit' (可选): 返回结果的最大数量,默认为 '5',最大值为 '20'。
- 示例请求 (JSON-RPC 格式):
{ "jsonrpc": "2.0", "method": "call_tool", "params": { "server_name": "files-vectorstore", "tool_name": "search", "arguments": { "query": "你的搜索关键词", "limit": 10 } }, "id": 1 } - 示例响应 (JSON-RPC 格式):
响应中的 'text' 字段包含了 JSON 格式的搜索结果,每个结果包含匹配的文本内容 ('content')、来源文件路径 ('source')、文件类型 ('fileType') 和相关性得分 ('score')。{ "jsonrpc": "2.0", "result": { "content": [ { "type": "text", "text": "[{\"content\": \"matched text content\", \"source\": \"/path/to/file\", \"fileType\": \"markdown\", \"score\": 0.85}]" } ] }, "id": 1 }
- 参数:
-
'get_stats' 工具: 用于获取关于索引文件的统计信息。
- 参数: 无。
- 示例请求 (JSON-RPC 格式):
{ "jsonrpc": "2.0", "method": "call_tool", "params": { "server_name": "files-vectorstore", "tool_name": "get_stats", "arguments": {} }, "id": 2 } - 示例响应 (JSON-RPC 格式):
响应中的 'text' 字段包含了 JSON 格式的统计信息,包括总文档数 ('totalDocuments')、监控的目录 ('watchedDirectories') 和正在处理的文件 ('processingFiles')。{ "jsonrpc": "2.0", "result": { "content": [ { "type": "text", "text": "{\"totalDocuments\": 42, \"watchedDirectories\": [\"/path/to/docs\"], \"processingFiles\": []}" } ] }, "id": 2 }
-
通过以上步骤,您就可以在 MCP 客户端中使用 Files Vector Store 服务器,利用本地文件内容增强 LLM 的能力。
信息
分类
数据库与文件