关于 mcp-code-search-server
mcp-code-search-server 是一个 MCP 服务,可在代码库中搜索标识符并返回完整定义,面向使用 LLM 探索代码的场景。它解析 JavaScript/TypeScript、Java 和 Python。
主要功能
- 01使用 ripgrep 搜索代码标识符
- 02提取变量、函数和类的完整定义
- 03解析 JavaScript/TypeScript、Java 和 Python
- 04检测并处理多种文件编码
- 05排除常见非代码目录和文件类型
适用场景
- 01在代码库中定位函数定义
- 02查看类或变量及其上下文
MCP 相关
它通过 stdio 向 MCP 客户端提供 `search-files` 工具,可搜索指定目录并返回匹配标识符及其定义。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
1收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| query | string | 是 | 要搜索的代码标识符(如变量名、函数名、类名等) |
| cwd | string | 是 | 要搜索的目录路径。此目录将被递归搜索。 |
| filePattern | string | 否 | 用于筛选文件的glob模式(例如:'*.ts'表示只搜索TypeScript文件)。如果不提供,将搜索所有文件。 |
| excludePatterns | array | 否 | 要从搜索中排除的文件模式数组。这些模式将与默认排除模式合并。 |
| excludeDirs | array | 否 | 要从搜索中排除的目录数组。这些目录将与默认排除目录合并。 |
详细介绍
来自项目 READMEmcp-code-search-server
一个MCP Server,帮助LLM查找相关代码在文件中的位置,支持返回完整的函数定义。 An MCP Server, which helps the LLM find the location of relevant code within files and supports returning the complete function definitions.
项目简介
mcp-code-search-server 是一个基于 Model Context Protocol (MCP) 实现的服务器,专为大语言模型(LLM)提供代码搜索功能。它能够帮助LLM精准定位代码库中的标识符(如变量、函数、类等),并返回其完整定义,而不仅仅是引用位置。通过获取完整的代码定义及其上下文,有助于LLM更好地理解代码的内部逻辑、数据流和依赖关系。
主要功能
- 代码搜索:使用 ripgrep 高效搜索代码库中的标识符
- 多语言支持:支持JavaScript/TypeScript、Java和Python的代码解析
- 完整定义提取:自动识别并提取变量、函数、类等完整定义
- 多编码支持:自动检测并处理不同编码的文件(UTF-8, GBK, Big5等)
- 智能过滤:提供默认配置排除常见的非代码目录和文件类型
安装方法
# 使用npm安装
npm install mcp-code-search-server
# 或使用pnpm安装
pnpm install mcp-code-search-server
使用方法
作为命令行工具使用
npx mcp-code-search-server
在调试模式下使用
# 构建项目
npm run build
# 运行调试器
npm run debug
# 或者一步执行
npm run build-debug
在LLM工具中集成
本服务器基于MCP协议,可以作为Server被调用。大语言模型可以通过stdio接口与服务器通信。
{
"mcp": {
"servers": {
"code-search": {
"command": "npx",
"args": [
"-y",
"mcp-code-search-server"
]
}
}
}
}
API参数说明
search-files 工具
搜索代码标识符并返回其完整定义。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| query | string | 是 | 要搜索的代码标识符(变量名、函数名、类名等) |
| cwd | string | 是 | 要搜索的目录路径 |
| filePattern | string | 否 | 用于筛选文件的glob模式(例如:'*.ts') |
| excludePatterns | string[] | 否 | 要从搜索中排除的文件模式数组 |
| excludeDirs | string[] | 否 | 要从搜索中排除的目录数组 |
支持的语言
- JavaScript/TypeScript
- Java
- Python
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。