It does one thing your assistant's built-in tools cannot: reach outside the current repository and find a definition by shape rather than by string. The AST pass is what makes the answers usable — you get the signature and whether it is exported, not a grep hit you have to open. Text search and file reads inside the repo you are already in are left to the tools that are better at them.
A search server for the case your editor cannot cover: you are in the frontend repo and the answer is in the backend one. It parses code with ast-grep rather than matching text, so it can tell `class User` from `const User` and return a full signature instead of a line. JavaScript, TypeScript and PHP are supported, across repositories you register once or directories you pass ad hoc.
- `repolens_find_functions` finds function and method definitions, wildcards included, in JS/TS and PHP
- `repolens_find_classes` finds class definitions, and PHP traits
- `repolens_find_types` finds interfaces and type aliases
- `repolens_find_api_routes` maps API endpoints across Express, NestJS, Fastify and Laravel
- `repolens_list_repositories` lists what is registered
- Every search tool takes `paths` for ad-hoc directories and `repoFilter` to narrow to registered repos by alias
Run it with `npx -y repo-lens-mcp` (package `repo-lens-mcp`, version 0.3.0) over stdio. No account, no key, nothing leaves the machine. A `repolens.yaml` listing repository paths and aliases is optional — pass `--config` to point at one, or drop it at `~/.config/repo-lens-mcp/repolens.yaml`; without it the ad-hoc `paths` parameter still works. `MCP_LOG_LEVEL` controls logging.
One command — npx repo-lens-mcp
