SL

stephanj/lsp4j-mcp

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

39 stars 6 forks Качество 67 Тренд 20

Сервер 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
Открыть полный README на GitHub

Установка

docker run --rm -i --mount type=bind source=/absolute/path/to/java/project target=/workspace lsp4j-mcp:local
Новичок в MCP? Начните с руководства на mcpskill.org →

Конфигурация

{ "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" } } } }