使用说明

项目简介

'mcp-server-reposearch' 是一个基于 Model Context Protocol (MCP) 的服务器,旨在为 LLM 客户端提供增强的文件内容搜索功能。它比内置的 'search_files' 工具更强大,支持更灵活的搜索选项和过滤规则,帮助 LLM 应用更有效地理解和分析代码仓库。

主要功能点

  • 增强的文件搜索: 在指定目录下递归搜索文件内容,支持关键词或正则表达式查询。
  • 灵活的过滤: 支持使用 '.reposearchignore' 文件(类似于 '.gitignore')定义忽略规则,排除不必要的文件和目录,提高搜索效率。
  • 可配置的搜索选项: 支持大小写敏感、全词匹配、正则表达式等搜索选项,满足不同的搜索需求。
  • 结果格式控制: 可以选择是否在搜索结果中包含匹配行的内容,可以根据需要控制返回信息的详细程度,节省 tokens。

安装步骤

  1. 前提条件: 确保已安装 Node.js 和 npm (Node.js 包管理器)。
  2. 克隆仓库: 打开终端,执行命令 'git clone https://github.com/happyZYM/mcp-server-reposearch.git' 将仓库克隆到本地。
  3. 进入目录: 使用 'cd mcp-server-reposearch' 命令进入项目目录。
  4. 安装依赖: 运行 'npm install' 安装项目所需的依赖包。
  5. 构建项目: 执行 'npm run build' 命令编译 TypeScript 代码到 JavaScript。

服务器配置

MCP 客户端需要配置以下 JSON 信息来启动和连接 'mcp-server-reposearch' 服务器。

{
  "server": {
    "name": "reposearch",
    "command": "node",
    "args": [
      "dist/src/index.js"
    ]
  }
}
  • 'server name': 为该服务器自定义的名称,例如 "reposearch",用于在 MCP 客户端中标识和调用。
  • 'command': 启动服务器的命令,这里使用 'node' 命令来运行 JavaScript 代码。
  • 'args': 传递给 'command' 的参数列表,这里指定了编译后的服务器入口文件 'dist/src/index.js' 的路径。

基本使用方法

  1. 启动服务器: 在项目根目录下,运行命令 'npm run start' 启动 MCP 服务器。服务器将在终端的标准输入/输出 (stdio) 上运行并等待客户端连接。
  2. 客户端配置与连接: 在您的 MCP 客户端应用中,根据上述 服务器配置 信息配置并连接到 'mcp-server-reposearch' 服务器。
  3. 调用 'search' 工具: 客户端连接成功后,可以使用 'search' 工具进行文件内容搜索。调用工具时需要提供以下参数:
    • 'directory' (string, 必填): 要搜索的目录的绝对路径。例如:'/path/to/your/code/repository'。请务必使用绝对路径。
    • 'query' (string, 必填): 要搜索的关键词或正则表达式。例如:'function main' 或 'error\s+handling'。
    • 'isRegex' (boolean, 可选, 默认: 'false'): 指定 'query' 是否为正则表达式。设置为 'true' 时,'query' 将被视为正则表达式进行匹配。
    • 'caseSensitive' (boolean, 可选, 默认: 'false'): 指定搜索是否区分大小写。设置为 'true' 时,搜索将区分大小写。
    • 'wholeWord' (boolean, 可选, 默认: 'false'): 指定是否只匹配整个单词。设置为 'true' 时,只会匹配完整的单词。
    • 'includeContent' (boolean, 可选, 默认: 'true'): 指定是否在搜索结果中包含匹配到的行的内容。为了有效控制 token 消耗,建议在不需要详细上下文时设置为 'false'。

示例工具调用参数 (JSON 格式):

{
  "action": "call-tool",
  "tool_name": "search",
  "arguments": {
    "directory": "/path/to/your/code/repository",
    "query": "example code",
    "isRegex": false,
    "includeContent": false
  }
}

请根据您的 MCP 客户端的具体使用方式来构造和发送工具调用请求。

信息

分类

开发者工具