代码智能搜索工具

Repo Lens MCP Server 是一个跨仓库代码智能搜索工具,帮助开发者在本地 JS/TS 和 PHP 仓库中快速查找函数、类和 API 路由。

  • by YohannHommet
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 YohannHommet/mcp-repo-search-server

使用说明

回购镜头MCP服务器

面向开发人员的跨存储库代码智能。

在所有本地JS/TS和PHP存储库中搜索函数、类和API路由,而无需切换上下文。


为什么使用这个?

问题: 您正在前端回购中工作,需要找到后端API端点。或者,您正在调试,需要找到在monorepo中定义函数的位置。使用Claude Code,您可以搜索当前的存储库,但您的其他本地项目呢?

解决方案: Repo Lens允许您在YAML配置文件中声明一次存储库,或临时搜索任何目录,并使用基于AST的结构搜索同时搜索所有存储库。在不离开当前上下文的情况下,找到所需的确切函数签名、类定义或API路由。

用例

  • 前端+后端开发: 在前端回购中工作时搜索后端API路由
  • PHP+JS/TS项目: 在TypeScript类型旁边查找PHP类、特征和接口
  • 微服务架构: 跨多个服务查找函数定义
  • Monorepo导航: 在不切换目录的情况下跨包搜索
  • 代码探索: 了解生态系统中的不同项目是如何连接的

快速入门

npx repo-lens-mcp

主要特点

基于AST的智能

与grep风格的文本搜索不同,Repo Lens使用 ast grep (用Rust编写)将代码解析为抽象语法树:

  • 结构精度: 区分 class User 和 const User
  • 出口意识: 仅查找导出函数,或包含私有函数
  • 签名提取: 获取完整的函数签名,而不仅仅是名称

零摩擦搜索

使用以下命令立即搜索任何目录 paths 参数--无需配置:

  • 将目录路径直接传递给任何搜索工具
  • 在中声明持久存储库 repolens.yaml 带有可重复使用的别名
  • 混合使用:在同一查询中注册存储库+临时路径

多存储库搜索

声明一次存储库并一次搜索所有存储库:

  • 静态YAML配置——声明一次,始终搜索
  • 按存储库别名筛选或搜索全部
  • 结果包括存储库上下文

API路由发现

在Express、NestJS、Fastify和Laravel项目中映射所有API端点。发现 /users/:id 端点(秒)。


安装

克劳德桌面/VS代码(推荐)

将此添加到您的 claude_desktop_config.json (或VS代码MCP设置):

{
  "mcpServers": {
    "repo-lens": {
      "command": "npx",
      "args": ["-y", "repo-lens-mcp", "--config", "/home/user/repolens.yaml"]
    }
  }
}

重启克劳德,你就可以走了。

本地开发

git clone https://github.com/YohannHommet/repo-lens-mcp.git
cd repo-lens-mcp
pnpm install
pnpm build
pnpm dev

配置

配置文件(repolens.yaml)

创建一个声明存储库的YAML配置文件:

# repolens.yaml
repositories:
  - path: ~/projects/backend-api
    alias: backend
  - path: ~/projects/frontend-app
    alias: frontend
  - path: ~/projects/shared-lib

~ 会自动扩展到您的主目录。

配置路径解析

  1. --config <path> CLI参数(显式--如果找不到文件则失败)
  2. 违约: ~/.config/repo-lens-mcp/repolens.yaml (graceful--如果未找到,则返回空,ad-hoc路径仍然有效)

环境变量

变量 默认值 描述
MCP_LOG_LEVEL info 日志级别: debug, info, warn, error

例子:

{
  "env": {
    "MCP_LOG_LEVEL": "debug"
  }
}

能力

存储库列表(1个工具)

工具 说明
repolens_list_repositories 列出所有已配置的存储库(只读)

符号搜索(3个工具)

基于AST的结构化搜索,由AST grep提供支持。支持 JavaScript/TypeScript 和 PHP (类、特征、接口、枚举、函数、方法、常量):

工具 说明
repolens_find_functions 在JS/TS和PHP中查找函数/方法定义(支持通配符,如 handle*)
repolens_find_classes 查找类定义(也查找PHP特征)
repolens_find_types 查找接口和类型别名(PHP:仅限接口)

所有搜索工具都接受:

  • paths --要搜索的临时目录路径(逗号分隔,无需注册)
  • repoFilter --按别名筛选已注册的存储库

API路线发现(1个工具)

工具 说明
repolens_find_api_routes 跨越Express、NestJS、Fastify、Laravel映射API端点

使用示例

1.搜索任何目录(无配置)

“在我的后端中查找以'handle'开头的所有函数”

repolens_find_functions(paths: "/home/user/projects/backend", name: "handle*")

2.列出已配置的存储库

“有哪些可用的仓库?”

repolens_list_repositories()

3.查找API端点

“查找处理POST请求/登录的Express路由”

repolens_find_api_routes(repoFilter: "backend", method: "POST", pathPattern: "/login")

4.找到一个特定的类

“UserService类在哪里定义?”

repolens_find_classes(name: "UserService")

文本搜索/文件操作呢?

Repo Lens专注于 基于AST的多存储库搜索。对于当前存储库中的文本搜索和文件操作,请使用Claude Code的内置工具(Grep、Read、Glob),这些工具针对单个存储库使用进行了优化。

这种分离使Repo Lens保持快速,并专注于它最擅长的领域:跨存储库结构代码智能。


许可证

AGPL-3.0

这个软件是免费使用的。如果修改和分发它(或将其作为网络服务运行),则必须在相同的许可证下共享源代码。


Built with care by Yohann Hommet