MCP Repo Search Server
Servidor MCP que proporciona a los LLMs inteligencia estructural de código a través de múltiples repositorios.
Documentación
Repo Lens MCP Server
Inteligencia de código entre repositorios para desarrolladores.
Busca funciones, clases y rutas de API en todos tus repositorios locales JS/TS y PHP sin cambiar de contexto.
¿Por qué usar esto?
El problema: Estás trabajando en tu repositorio frontend y necesitas encontrar un endpoint de API backend. O estás depurando y necesitas encontrar dónde se define una función en tu monorepo. Con Claude Code, puedes buscar en el repositorio actual, pero ¿qué pasa con tus otros proyectos locales?
La solución: Repo Lens te permite declarar tus repositorios una vez en un archivo de configuración YAML — o buscar en cualquier directorio ad-hoc — y buscar en todos ellos simultáneamente usando búsqueda estructural basada en AST. Encuentra la firma de función exacta, la definición de clase o la ruta de API que necesitas sin salir de tu contexto actual.
Casos de uso
- Desarrollo Frontend + Backend: Busca rutas de API backend mientras trabajas en tu repositorio frontend
- Proyectos PHP + JS/TS: Encuentra clases, traits e interfaces de PHP junto con tipos de TypeScript
- Arquitectura de microservicios: Encuentra definiciones de funciones en múltiples servicios
- Navegación en monorepo: Busca entre paquetes sin cambiar de directorio
- Exploración de código: Comprende cómo se conectan los diferentes proyectos en tu ecosistema
Inicio rápido
npx repo-lens-mcp
Características principales
Inteligencia basada en AST
A diferencia de la búsqueda de texto estilo grep, Repo Lens usa ast-grep (escrito en Rust) para analizar el código en Árboles de Sintaxis Abstracta:
- Precisión estructural: Distingue entre
class Useryconst User - Conciencia de exportación: Encuentra solo funciones exportadas, o incluye las privadas
- Extracción de firmas: Obtén firmas de funciones completas, no solo nombres
Búsqueda sin fricción
Busca en cualquier directorio al instante con el parámetro paths — sin necesidad de configuración:
- Pasa rutas de directorio directamente a cualquier herramienta de búsqueda
- Declara repositorios persistentes en
repolens.yamlcon alias para uso repetido - Combina ambos: repositorios registrados + rutas ad-hoc en la misma consulta
Búsqueda multi-repositorio
Declara tus repositorios una vez y búscalos todos a la vez:
- Configuración YAML estática — declara una vez, busca siempre
- Filtra por alias de repositorio o busca en todos
- Los resultados incluyen el contexto del repositorio
Descubrimiento de rutas de API
Mapea todos los endpoints de API en proyectos Express, NestJS, Fastify y Laravel. Encuentra ese endpoint /users/:id en segundos.
Instalación
Claude Desktop / VS Code (Recomendado)
Añade esto a tu claude_desktop_config.json (o a la configuración MCP de VS Code):
{
"mcpServers": {
"repo-lens": {
"command": "npx",
"args": ["-y", "repo-lens-mcp", "--config", "/home/user/repolens.yaml"]
}
}
}
Reinicia Claude y estarás listo.
Desarrollo local
git clone https://github.com/YohannHommet/repo-lens-mcp.git
cd repo-lens-mcp
pnpm install
pnpm build
pnpm dev
Configuración
Archivo de configuración (repolens.yaml)
Crea un archivo de configuración YAML que declare tus repositorios:
# repolens.yaml
repositories:
- path: ~/projects/backend-api
alias: backend
- path: ~/projects/frontend-app
alias: frontend
- path: ~/projects/shared-lib
~ se expande automáticamente a tu directorio de inicio.
Resolución de ruta de configuración
--config <path>argumento CLI (explícito — falla si no se encuentra el archivo)- Predeterminado:
~/.config/repo-lens-mcp/repolens.yaml(con gracia — devuelve vacío si no se encuentra, las rutas ad-hoc aún funcionan)
Variables de entorno
| Variable | Predeterminado | Descripción |
|---|---|---|
MCP_LOG_LEVEL | info | Nivel de registro: debug, info, warn, error |
Ejemplo:
{
"env": {
"MCP_LOG_LEVEL": "debug"
}
}
Capacidades
Listado de repositorios (1 herramienta)
| Herramienta | Descripción |
|---|---|
repolens_list_repositories | Lista todos los repositorios configurados (solo lectura) |
Búsqueda de símbolos (3 herramientas)
Búsqueda estructural basada en AST impulsada por ast-grep. Soporta JavaScript/TypeScript y PHP (clases, traits, interfaces, enums, funciones, métodos, constantes):
| Herramienta | Descripción |
|---|---|
repolens_find_functions | Encuentra definiciones de funciones/métodos en JS/TS y PHP (soporta comodines como handle*) |
repolens_find_classes | Encuentra definiciones de clases (también encuentra traits de PHP) |
repolens_find_types | Encuentra interfaces y alias de tipo (PHP: solo interfaces) |
Todas las herramientas de búsqueda aceptan:
paths— Rutas de directorio ad-hoc para buscar (separadas por comas, sin necesidad de registro)repoFilter— Filtra repositorios registrados por alias
Descubrimiento de rutas de API (1 herramienta)
| Herramienta | Descripción |
|---|---|
repolens_find_api_routes | Mapea endpoints de API en Express, NestJS, Fastify, Laravel |
Ejemplos de uso
1. Buscar en cualquier directorio (sin configuración)
"Encuentra todas las funciones que comiencen con 'handle' en mi backend"
repolens_find_functions(paths: "/home/user/projects/backend", name: "handle*")
2. Listar repositorios configurados
"¿Qué repositorios están disponibles?"
repolens_list_repositories()
3. Encontrar un endpoint de API
"Encuentra la ruta de Express que maneja solicitudes POST a /login"
repolens_find_api_routes(repoFilter: "backend", method: "POST", pathPattern: "/login")
4. Encontrar una clase específica
"¿Dónde está definida la clase UserService?"
repolens_find_classes(name: "UserService")
¿Qué pasa con la búsqueda de texto / operaciones de archivos?
Repo Lens se centra en la búsqueda multi-repositorio basada en AST. Para búsqueda de texto y operaciones de archivos dentro de tu repositorio actual, usa las herramientas integradas de Claude Code (Grep, Read, Glob) que están optimizadas para uso en un solo repositorio.
Esta separación mantiene a Repo Lens rápido y enfocado en lo que mejor hace: inteligencia estructural de código entre repositorios.
Licencia
AGPL-3.0
Este software es de uso gratuito. Si lo modificas y distribuyes (o lo ejecutas como servicio de red), debes compartir tu código fuente bajo la misma licencia.
Hecho con cuidado por Yohann Hommet