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 客户端调用。

安装步骤

  1. 环境准备: 确保您已安装 Node.js 和 npm (或 yarn)。
  2. 配置 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'
  3. 添加服务器配置: 在 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': '[]' - 自动批准列表,当前为空。

基本使用方法

  1. 启动 MCP 客户端: 启动您配置了 Files Vector Store 服务器的 MCP 客户端(如 VSCode Cline Extension 或 Claude Desktop App)。

  2. 调用 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 格式):
        {
          "jsonrpc": "2.0",
          "result": {
            "content": [
              {
                "type": "text",
                "text": "[{\"content\": \"matched text content\", \"source\": \"/path/to/file\", \"fileType\": \"markdown\", \"score\": 0.85}]"
              }
            ]
          },
          "id": 1
        }
        响应中的 'text' 字段包含了 JSON 格式的搜索结果,每个结果包含匹配的文本内容 ('content')、来源文件路径 ('source')、文件类型 ('fileType') 和相关性得分 ('score')。
    • 'get_stats' 工具: 用于获取关于索引文件的统计信息。

      • 参数: 无。
      • 示例请求 (JSON-RPC 格式):
        {
          "jsonrpc": "2.0",
          "method": "call_tool",
          "params": {
            "server_name": "files-vectorstore",
            "tool_name": "get_stats",
            "arguments": {}
          },
          "id": 2
        }
      • 示例响应 (JSON-RPC 格式):
        {
          "jsonrpc": "2.0",
          "result": {
            "content": [
              {
                "type": "text",
                "text": "{\"totalDocuments\": 42, \"watchedDirectories\": [\"/path/to/docs\"], \"processingFiles\": []}"
              }
            ]
          },
          "id": 2
        }
        响应中的 'text' 字段包含了 JSON 格式的统计信息,包括总文档数 ('totalDocuments')、监控的目录 ('watchedDirectories') 和正在处理的文件 ('processingFiles')。

通过以上步骤,您就可以在 MCP 客户端中使用 Files Vector Store 服务器,利用本地文件内容增强 LLM 的能力。

信息

分类

数据库与文件