使用说明
项目简介
'mcp-server-reposearch' 是一个基于 Model Context Protocol (MCP) 的服务器,旨在为 LLM 客户端提供增强的文件内容搜索功能。它比内置的 'search_files' 工具更强大,支持更灵活的搜索选项和过滤规则,帮助 LLM 应用更有效地理解和分析代码仓库。
主要功能点
- 增强的文件搜索: 在指定目录下递归搜索文件内容,支持关键词或正则表达式查询。
- 灵活的过滤: 支持使用 '.reposearchignore' 文件(类似于 '.gitignore')定义忽略规则,排除不必要的文件和目录,提高搜索效率。
- 可配置的搜索选项: 支持大小写敏感、全词匹配、正则表达式等搜索选项,满足不同的搜索需求。
- 结果格式控制: 可以选择是否在搜索结果中包含匹配行的内容,可以根据需要控制返回信息的详细程度,节省 tokens。
安装步骤
- 前提条件: 确保已安装 Node.js 和 npm (Node.js 包管理器)。
- 克隆仓库: 打开终端,执行命令 'git clone https://github.com/happyZYM/mcp-server-reposearch.git' 将仓库克隆到本地。
- 进入目录: 使用 'cd mcp-server-reposearch' 命令进入项目目录。
- 安装依赖: 运行 'npm install' 安装项目所需的依赖包。
- 构建项目: 执行 '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' 的路径。
基本使用方法
- 启动服务器: 在项目根目录下,运行命令 'npm run start' 启动 MCP 服务器。服务器将在终端的标准输入/输出 (stdio) 上运行并等待客户端连接。
- 客户端配置与连接: 在您的 MCP 客户端应用中,根据上述 服务器配置 信息配置并连接到 'mcp-server-reposearch' 服务器。
- 调用 '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 客户端的具体使用方式来构造和发送工具调用请求。
信息
分类
开发者工具