JavaLens — MCP-сервер для Claude Code: семантический анализ Java
Сервер даёт ИИ-агенту 75 инструментов семантического анализа Java на движке Eclipse JDT: поиск ссылок, рефакторинг, разбор типов. Пригодится, когда текстовый поиск путает перегрузки и реализации.
claude mcp add --env JAVA_PROJECT_PATH=<JAVA_PROJECT_PATH> --env JAVALENS_TIMEOUT_SECONDS=<JAVALENS_TIMEOUT_SECONDS> --env JAVALENS_LOG_LEVEL=<JAVALENS_LOG_LEVEL> --transport stdio javalens -- npx -y javalens-mcpЧто делает JavaLens
JavaLens подключается к агенту как MCP-сервер и отвечает на вопросы о коде через Eclipse JDT Core — тот же движок, что стоит в Eclipse IDE. Отсюда точность: инструмент различает чтение и запись поля, находит касты, аннотации, блоки catch, проверки instanceof, ссылки на методы и аргументы обобщённых типов. Поиск идёт по индексу, который JDT строит при загрузке проекта, а не перебором файлов.
Внутри 75 инструментов: навигация по символам, поиск реализаций, рефакторинг вроде переименования и извлечения метода, метрики вроде цикломатической сложности, поиск мёртвого кода и тестов, которые транзитивно покрывают символ. Парсится исходник от Java 1.1 до 25, включая markdown-Javadoc и компактные файлы. Lombok-члены тоже резолвятся: в поставку входит агент, поэтому аксессоры от @Data не выглядят неопределёнными.
Для запуска нужна Java 21 или новее в PATH либо заданный JAVA_HOME — это условие для обоих способов установки. Node.js 18+ понадобится только если ставить через npx; при загрузке архива с релизов он не нужен. Проект подхватывается асинхронно: сервер отвечает сразу, а статус загрузки показывает health_check. Без Java 21 сервер просто не стартует, так что проверьте версию до установки.
Учтите смещение моделей: агенты чаще тянутся к grep и чтению файлов, даже когда семантический разбор точнее. В CLAUDE.md стоит прописать, чтобы для Java использовались инструменты JavaLens, а не текстовый поиск.
Какие задачи решает
- найти все вызовы метода, не путая одноимённые методы из чужих классов
- отличить запись в поле от чтения
- собрать список реализаций интерфейса, а не любых упоминаний типа
- переименовать символ безопасно по всему проекту
- посчитать цикломатическую сложность метода
Примеры запросов агенту
- Найди через JavaLens все вызовы
UserService.save()в проекте - Покажи реализации интерфейса
PaymentGatewayи где каждая используется - Переименуй метод
calcTotalвcalculateTotalпо всему проекту
Как установить JavaLens
Командой платформы
claude mcp add --env JAVA_PROJECT_PATH=<JAVA_PROJECT_PATH> --env JAVALENS_TIMEOUT_SECONDS=<JAVALENS_TIMEOUT_SECONDS> --env JAVALENS_LOG_LEVEL=<JAVALENS_LOG_LEVEL> --transport stdio javalens -- npx -y javalens-mcpВместо <…> подставьте свои значения
Командой платформы
codex mcp add javalens --env JAVA_PROJECT_PATH=<JAVA_PROJECT_PATH> --env JAVALENS_TIMEOUT_SECONDS=<JAVALENS_TIMEOUT_SECONDS> --env JAVALENS_LOG_LEVEL=<JAVALENS_LOG_LEVEL> -- npx -y javalens-mcpВместо <…> подставьте свои значения
Файл настроек
{
"mcpServers": {
"javalens": {
"command": "npx",
"args": [
"-y",
"javalens-mcp"
],
"env": {
"JAVA_PROJECT_PATH": "<JAVA_PROJECT_PATH>",
"JAVALENS_TIMEOUT_SECONDS": "<JAVALENS_TIMEOUT_SECONDS>",
"JAVALENS_LOG_LEVEL": "<JAVALENS_LOG_LEVEL>"
}
}
}
}Вместо <…> подставьте свои значения
Файл настроек
{
"servers": {
"javalens": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"javalens-mcp"
],
"env": {
"JAVA_PROJECT_PATH": "<JAVA_PROJECT_PATH>",
"JAVALENS_TIMEOUT_SECONDS": "<JAVALENS_TIMEOUT_SECONDS>",
"JAVALENS_LOG_LEVEL": "<JAVALENS_LOG_LEVEL>"
}
}
}
}Вместо <…> подставьте свои значения
Командой платформы
gemini mcp add -e JAVA_PROJECT_PATH=<JAVA_PROJECT_PATH> -e JAVALENS_TIMEOUT_SECONDS=<JAVALENS_TIMEOUT_SECONDS> -e JAVALENS_LOG_LEVEL=<JAVALENS_LOG_LEVEL> javalens npx -y javalens-mcpВместо <…> подставьте свои значения
По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о JavaLens
Как установить JavaLens в Claude Code?
Проще всего одной командой: claude mcp add javalens -- npx -y javalens-mcp. Если нужны переменные окружения, используйте вторую форму: `claude mcp add --env JAVA_PROJECT_PATH=<JAVA_PROJECT_PATH> --env JAVALENS_TIMEOUT_SECONDS=<JAVALENS_TIMEOUT_SECONDS> --env JAVALENS_LOG_LEVEL=<JAVALENS_LOG_LEVEL> --transport stdio javalens -- npx -y javalens-mcp`.
Что делает JavaLens?
Даёт агенту 75 инструментов семантического анализа Java на Eclipse JDT: поиск ссылок и реализаций, навигацию, рефакторинг, метрики и поиск мёртвого кода. Работает точнее текстового поиска там, где важны перегрузки, наследование и обобщённые типы.
Что нужно для работы JavaLens?
Java 21 или новее в PATH либо заданный JAVA_HOME. Node.js 18+ требуется только для установки через npx; при загрузке архива с релизов GitHub он не нужен.