
stephanj/lsp4j-mcp
Developer toolsЭта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал
Сервер Java MCP (Model Context Protocol), который обертывает JDTLS (Eclipse JDT Language Server) с помощью LSP4J для предоставления функций Java IDE помощникам ИИ, таким как Клод.
Обзор
Сервер Java MCP (Model Context Protocol), который обертывает JDTLS (Eclipse JDT Language Server) с помощью LSP4J для предоставления функций Java IDE помощникам ИИ, таким как Клод. Этот MCP-сервер предоставляет следующие инструменты: - Java 21+ - Maven 3.8+ - установленный JDTLS (например, через Homebrew: brew install jdtls) Это создает затененную JAR на target/lsp4j-mcp-1.0.0-SNAPSHOT.jar. Создайте многоступенчатое изображение. Он включает в себя Java 21, затененный MCP-сервер и прикрепленный дистрибутив Eclipse JDTLS: Запустите его через stdio и установите проект Java в /workspace: В Linux используйте хост UID/GID, когда языковому серверу необходимо записать метаданные проекта в установленное рабочее пространство: Сервер использует stdio, поэтому изображение не отображает сетевой порт. Журналы контейнеров записываются на stderr, в то время как stdout остается зарезервированным для протокола MCP. Изображение работает как UID / GID 10001 по умолчанию и ожидает не менее 1 ГБ памяти контейнера.
Обзор (машинный перевод)
Сервер Java MCP (Model Context Protocol), который обертывает JDTLS (Eclipse JDT Language Server) с помощью LSP4J для предоставления функций Java IDE помощникам ИИ, таким как Клод.
Особенности
Этот MCP-сервер предоставляет следующие инструменты:
| Инструмент | Описание
[скрыто] [скрыто] [скрыто] [скрыто]
| find_symbols | Поиск символов Java (классов, методов, полей) по имени |
| find_references | Найти все ссылки на символ в заданном месте файла |
[[Т2]][править править код]] Перейдите к определению символа.
document_symbols Получить все символы, определенные в файле Java
| find_interfaces_with_method | Найти все интерфейсы, содержащие способ с заданным именем |
Предпосылки
Java 21+ Maven 3.8+
- установлен JDTLS (например, через Homebrew:
brew install jdtls)
##Строить
Это создает затененную Джар[6].
Использование
Вариант 1: Запуск сценария
Вариант 2: Direct Java Command
Пример:
Вариант 3: конфигурация MCP кода Клода
Добавьте к [7]:
Вариант 4: Докер
Создайте многоступенчатое изображение. Он включает в себя Java 21, затененный MCP-сервер и Распределение Eclipse JDTLS:
Запустите его через stdio и установите проект Java на /workspace:
Эта страница переведена автоматически. Технические детали смотрите в оригинале.
README
Показан фрагмент оригинального README. Открыть оригинал.
LSP4J-MCP Server
A Java MCP (Model Context Protocol) server that wraps JDTLS (Eclipse JDT Language Server) using LSP4J to provide Java IDE features to AI assistants like Claude.
Features
This MCP server exposes the following tools:
| Tool | Description |
|---|---|
find_symbols |
Search for Java symbols (classes, methods, fields) by name |
find_references |
Find all references to a symbol at a given file location |
find_definition |
Go to the definition of a symbol |
document_symbols |
Get all symbols defined in a Java file |
find_interfaces_with_method |
Find all interfaces containing a method with a given name |
Prerequisites
- Java 21+
- Maven 3.8+
- JDTLS installed (e.g., via Homebrew:
brew install jdtls)
Build
mvn clean package
This creates a shaded JAR at target/lsp4j-mcp-1.0.0-SNAPSHOT.jar.
Usage
Option 1: Run Script
./run.sh /path/to/your/java/project
Option 2: Direct Java Command
java -jar target/lsp4j-mcp-1.0.0-SNAPSHOT.jar
Example:
java -jar target/lsp4j-mcp-1.0.0-SNAPSHOT.jar /Users/me/projects/myapp jdtls
Option 3: Claude Code MCP Configuration
Add to your .mcp.json:
{
"mcpServers": {
"java-lsp": {
"command": "java",
"args": [
"-jar",
"/path/to/LSP4J-MCP/target/lsp4j-mcp-1.0.0-SNAPSHOT.jar",
"/path/to/your/java/project",
"jdtls"
],
"env": {
"LOG_FILE": "/tmp/lsp4j-mcp.log"
}
}
}
}
Option 4: Docker
Build the multi-stage image. It includes Java 21, the shaded MCP server, and a pinned Eclipse JDTLS distribution:
docker build -t lsp4j-mcp:local .
Run it over stdio and mount the Java project at /workspace:
docker run --rm -i \
--mount type=bind,source=/absolute/path/to/java/project,target=/workspace \
lsp4j-mcp:local
On Linux, use the host UID/GID when the language server needs to write project metadata into the mounted workspace:
docker run --rm -i \
--user "$(id -u):$(id -g)" \
--mount type=bind,source=/absolute/path/to/java/project,target=/workspace \
lsp4j-mcp:local
Example MCP configuration:
{
"mcpServers": {
"java-lsp-docker": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--mount",
"type=bind,source=/absolute/path/to/java/project,target=/workspace",
"lsp4j-mcp:local"
]
}
}
}
The server uses stdio, so the image exposes no network port. Container logs are
written to stderr while stdout remains reserved for the MCP protocol. The image
runs as UID/GID 10001 by default and expects at least 1 GB of container memory.
Project Structure
LSP4J-MCP/
├── pom.xml # Maven build configuration
├── run.sh # Startup script
Установка
docker run --rm -i --mount type=bind source=/absolute/path/to/java/project target=/workspace lsp4j-mcp:localКонфигурация
{
"mcpServers": {
"java-lsp": {
"command": "java",
"args": [
"-jar",
"/path/to/LSP4J-MCP/target/lsp4j-mcp-1.0.0-SNAPSHOT.jar",
"/path/to/your/java/project",
"jdtls"
],
"env": {
"LOG_FILE": "/tmp/lsp4j-mcp.log"
}
}
}
}