Token导航 LogoToken导航TokenDH.com
Jdt MCP Server logo
开发工具未说明官方级别未说明来源级核验

Jdt MCP Server

MCP Server

一个将Eclipse JDT功能暴露给AI编码助手的独立CLI工具,提供52种工具覆盖导航、重构、代码生成和测试执行等功能。

工具数

47

提示词数

0

GitHub Stars

0

资源数

0
JavaClaude代码分析ClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

hauschel-ai-tools

提供方

hauschel-ai-tools

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Eclipse JDT MCP服务器

](https://github.com/hauschel-ai-tools/jdt-mcp-server)

注: GitHub存储库是一个只读镜像。请打开问题并拉取请求 忘记.

一个MCP服务器(模型上下文协议),将Eclipse JDT功能暴露给Claude Code、Cursor等AI编码助手。它提供 52工具 涵盖9个类别,包括导航、重构、代码生成、测试执行等。作为一个 独立CLI (stdio),而不需要Eclipse IDE。使用单个 curl | bash 命令,然后在任何Java项目中使用它。

______________________________________________________________________

Java Development Tools (JDT) 的模型上下文协议 (MCP) 服务器。为 AI 编码助手(如 Claude Code、Cursor 等)提供 JDT 功能。

独立CLI - 直接作为MCP子进程(stdio)在没有Eclipse IDE的情况下运行。只需安装,切换到Java项目,启动Claude代码。

灵感来自: Spring Tools 5嵌入式MCP服务器von Martin Lippert

特性

服务器设置 52 MCP工具 分为9个类别:

项目信息(5个工具)

工具描述
jdt_list_projects从这里开始列出Workspace中的所有Java项目。
jdt_get_classpath 获取项目的类路径(源文件夹、库、输出文件夹)
jdt_get_compilation_errors文件、行和消息的编译错误和警告
jdt_get_project_structure项目结构概述(Java版本,源文件夹,包)
jdt_refresh_project重要在外部文件更改后更新工作区 (Write/Edit, git)

导航(4个工具)

工具描述
jdt_find_type 按名称模式搜索类型(*Service, User*)
jdt_get_method_signature带参数的方法签名, 返回类型, 修改
jdt_find_implementations 查找接口或子类的所有实现
jdt_find_callers 查找一个方法的所有调用者

代码分析(4个工具)

工具描述
jdt_parse_java_file解析Java文件:包,导入,类型,方法,具有偏移的字段
jdt_get_type_hierarchy 类型层次结构:超级类,接口,子类
jdt_find_references 查找工作空间中类/方法/字段的所有用途
jdt_get_source_range阅读代码以文本形式返回方法/类的实际代码。

创建(3个工具)

工具描述
jdt_create_class 创建一个新的Java类
jdt_create_interface 创建新的Java接口
jdt_create_enum 使用常量创建新的 Java Enum

代码生成(9个工具)

工具描述
jdt_add_method 将方法添加到现有类
jdt_add_field 添加到现有类。
jdt_add_import添加导入语句(正确的位置,不重复)
jdt_implement_interface 实现接口并生成方法Stubs
jdt_generate_getters_setters生成 Getter/Setter(跳过现有的)
jdt_generate_constructor生成构造符(JPA/Jackson可选的无参数)
jdt_generate_equals_hashcode equals() 和 hashCode() 使用 java.util。生成对象。
jdt_generate_tostring toString() 生成: User{id=1, name='John'}
jdt_generate_delegate_methodsDelegation Pattern: 委派给另一个对象的方法

重构(10个工具)

工具描述
jdt_rename_element 安全重命名:重命名类/方法/字段,更新所有引用。
jdt_extract_method 将代码提取到新方法(自动检测参数/返回类型)
jdt_move_type 将类移动到其他包,更新所有导入。
jdt_organize_imports清理导入:删除未使用,排序
jdt_inline Variable/Expression inline(与 Extract 相反)
jdt_extract_interface 从类中提取接口
jdt_change_method_signature 更改方法签名,更新所有调用者
jdt_convert_to_lambda 将匿名类转换为lambda表达式
jdt_encapsulate_field 封装字段: 私有化 + Getter/Setter, 更新所有访问
jdt_introduce_parameter 提取本地变量作为方法参数

执行(6个工具)

工具描述
jdt_maven_build Maven-Build 自动检测 Maven Wrapper 和 Java 版本
jdt_run_main 使用 main() 运行 Java 类,获取 stdout/stderr
jdt_list_tests 测试列表(pattern='unit' 对于 \*Test.java, 'integration' 对于 \*IT.java)
jdt_run_tests 使用结构化JSON输出进行测试
jdt_start_tests_async异步启动长期运行的测试(>30s,例如 Spring Boot)
jdt_get_test_result 检索异步测试运行的状态/结果

文档(4个工具)

工具描述
jdt_get_javadoc 获取类/方法/字段的 Javadoc
jdt_get_annotations 检索具有值的元素的所有注释。
jdt_find_annotated_elements 查找所有带有特定注释的元素(@Service、@Test、@Entity)
jdt_generate_javadoc 使用 @param, @return, @throws 生成 Javadoc 注释

代码质量(2个工具)

工具描述
jdt_find_unused_code 查找未使用的导入、私有字段和方法
jdt_find_dead_code 查找无法访问的代码(在return/throw之后,死亡分支)

前提条件

  • Java 21+
  • Maven 3.9+(仅限源代码构建)

支持的平台

平台架构安装脚本手动
Linuxx86_64,aarch64`curl ... \bash`tar.gz
macOSx86_64,aarch64(苹果硅)`curl ... \bash`tar.gz
Windowsx86_64-zip+ jdtls-mcp.cmd

安装(Linux和macOS)

curl -sSL https://git.changinggraph.org/ai-tools/jdt-mcp-server/raw/branch/main/install.sh | bash

该脚本检测操作系统和架构,下载最新版本,安装后 ~/.local/share/jdtls-mcp/ 并自动配置Claude代码。

之后 :

cd /dein/java-projekt
claude

更新

只需再次执行相同的命令:

curl -sSL https://git.changinggraph.org/ai-tools/jdt-mcp-server/raw/branch/main/install.sh | bash

该脚本将识别现有安装并显示更新路径(例如: Update: 0.2.1 -> 0.2.2).

检查已安装版本:

jdtls-mcp --version

从本地构建安装

git clone https://git.changinggraph.org/ai-tools/jdt-mcp-server.git
cd jdt-mcp-server
./install-local.sh

卸载

curl -sSL https://git.changinggraph.org/ai-tools/jdt-mcp-server/raw/branch/main/uninstall.sh | bash

或手动:

rm -rf ~/.local/share/jdtls-mcp ~/.local/bin/jdtls-mcp
claude mcp remove jdt-mcp

Manuelle安装(Linux/macOS)

# Archiv herunterladen von:
# https://git.changinggraph.org/ai-tools/jdt-mcp-server/releases

# Entpacken
mkdir -p ~/.local/share/jdtls-mcp
tar xzf jdtls-mcp-linux.gtk.x86_64.tar.gz -C ~/.local/share/jdtls-mcp

# Claude Code konfigurieren
claude mcp add -s user jdt-mcp ~/.local/share/jdtls-mcp/bin/jdtls-mcp

Manuelle安装(Windows)

# ZIP-Archiv herunterladen von:
# https://git.changinggraph.org/ai-tools/jdt-mcp-server/releases

# Entpacken (z.B. nach %LOCALAPPDATA%\jdtls-mcp)
Expand-Archive jdtls-mcp-win32.win32.x86_64.zip -DestinationPath "$env:LOCALAPPDATA\jdtls-mcp"

# Claude Code konfigurieren
claude mcp add -s user jdt-mcp "$env:LOCALAPPDATA\jdtls-mcp\bin\jdtls-mcp.cmd"

高级选项

环境变量描述标准
JDTMCP_TRANSPORT运输: stdiohttpstdio
JDTMCP_WORKSPACE Eclipse Workspace 目录 ~/.jdt-mcp/workspaces/
JDTMCP_SOURCEinstall.sh 的下载来源: forgejogithub自动检测
JAVA_HOMEJava安装系统Java
# HTTP-Modus (für Debugging)
jdtls-mcp --http

工作区管理

JDT MCP 服务器管理 Eclipse工作区 每个工作目录。工作空间包含 JDT 元数据(索引、类路径、构建状态)——实际项目文件保留在其位置。

Workspaces 如何运作

~/mein-java-projekt/          ← Arbeitsverzeichnis (user.dir)
  ├── pom.xml                 ← Maven-Projekt wird automatisch importiert
  ├── modul-a/                ← Multi-Module: jedes Modul wird ein eigenes JDT-Projekt
  └── modul-b/

~/.jdt-mcp/
  ├── workspaces//  ← Eclipse Workspace (pro Arbeitsverzeichnis)
  │   └── .metadata/          ← JDT-Index, Build-State, Projekt-Referenzen
  └── jdt-mcp-mein-java-projekt.log  ← Log (pro Arbeitsverzeichnis)
  • 自动导入启动时,服务器将从工作目录(Maven,Gradle,Eclipse)导入所有项目 .project)
  • 持久工作区重新启动之间保留工作空间 - 无需重新导入
  • 每个目录一个工作空间每个工作目录都有自己的隔离工作空间(路径的MD5哈希)

重置工作空间

如果工作区已损坏或无法正确识别项目:

# Workspace-Verzeichnis für aktuelles Arbeitsverzeichnis finden
HASH=$(printf '%s' "$PWD" | md5sum | cut -d' ' -f1)
rm -rf ~/.jdt-mcp/workspaces/$HASH

# Server neu starten (Claude Code neu starten oder Session beenden)

下次启动时,工作区将自动重新创建并导入所有新项目。

导入其他项目

不在工作目录中的项目可以稍后导入:

jdt_import_project(path="/pfad/zum/anderen/projekt")

工作空间环境变量

变量描述标准
JDTMCP_WORKSPACE 设置自己的 Workspace 目录 ~/.jdt-mcp/workspaces/

日志

每个服务器实例根据工作目录登录到自己的文件:

# Logs für ein bestimmtes Projekt anschauen
tail -f ~/.jdt-mcp/jdt-mcp-mein-java-projekt.log

典型的工作流程

  1. 开始: jdt_list_projects 打电话查看可用项目
  2. 探索: jdt_get_project_structure 为了概述, jdt_find_type 搜索
  3. 分析: jdt_parse_java_file 对于文件详情, jdt_find_references 用于应用
  4. 修改: jdt_create_class, jdt_generate_*, jdt_rename_element
  5. 更新: jdt_refresh_project 外部变化后
  6. 构建/测试: jdt_maven_build, jdt_run_tests

参数格式

  • 项目名称Eclipse 项目名称 jdt_list_projects)
  • 类名 (完全合格): com.example.MyClass
  • 方法Name/ 字段Name: com.example.MyClass#methodName
  • 文件路径Java 文件的绝对路径
  • 抵消文件中的字符位置(从 jdt_parse_java_file)

故障排除

服务器未启动

  1. 检查日志 : `~/.jdt-mcp/jdt-mcp-

.log`

  1. 查看Java版本: java -version (需要21+)
  2. 二进制测试: jdtls-mcp 直接运行,观察 stderr 输出

文件更改后过时的数据

jdt_refresh_project 打电话!服务器不会自动检测到外部更改。

测试过长

jdt_start_tests_async 而非 jdt_run_tests 使用。MCP客户端超时为60s。

已知的限制

限制受影响的工具原因问题
使用通用的接口方法重命名不会更新实现jdt_rename_elementJDT错误: RenameVirtualMethodProcessor 可以在无头模式下 Processor.process(T) 不是太 SimpleProcessor.process(String) 通用绑定(Generics-Binding)不存在。调用者会正确更新,覆盖方法不会。#29
Eclipse JUnit Runner 与 JUnit Platform 1.x 不兼容 jdt_run_tests, jdt_start_tests_asyncNoClassDefFoundError: OutputDirectoryCreator --Eclipse JDT JUnit5 Runner erwarte JUnit Platform 6.x解决方法: jdt_maven_build(goals="test")#71
无法识别未使用的 package-private 字段。 jdt_find_unused_code JDT 只能识别未使用的私有成员,而不是包私有。 #72
jdt_inline 无法嵌入某些静态工厂方法。 jdt_inlineJDT错误: InlineMethodRefactoring.create() 提供 null 对于一些无头模式的方法模式
jdt_extract_interface 使用字符串操作而不是ASTRewrite。 jdt_extract_interface 可能在复杂的类声明(嵌套通用,多个注释)中失败。 #52

发展

冒烟测试

该服务器具有基于stdio的烟雾测试,用于测试MCP协议握手和基本工具调用:

tests/smoke-test.sh [path/to/jdtls-mcp-binary]

没有争论 jdtls-mcp 从 PATH 中使用。

许可证

EUPL-1.2 -欧盟公共许可证

参与

欢迎贡献!请创建问题或Pull请求: https://git.changinggraph.org/ai-tools/jdt-mcp-server

目录标签

目录标签

JavaClaude代码分析Java开发本地部署AI辅助编程重构工具测试执行

支持客户端

ClaudeCursor

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

47

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP