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

Eclipse Test Runner MCP

MCP Server

Eclipse插件,通过模型上下文协议让AI编码助手运行JUnit测试、检查结果、读取控制台输出并提供代码智能分析。

工具数

28

提示词数

0

GitHub Stars

0

资源数

0
JavaClaude开发工具Claude

安装说明

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

作者 / 组织

Lesiuk

提供方

Lesiuk

最后核验

2026/5/17 20:23

快速接入

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

详细介绍

Eclipse测试运行程序MCP

![License: GPL-3.0](LICENSE) ![Java 17+](https://openjdk.org/) ![Eclipse 2024-12+](https://eclipseide.org/) ![MCP](https://modelcontextprotocol.io/)

Eclipse IDE插件,允许AI编码助手(克劳德代码, )运行JUnit测试,检查结果,检查编译错误,并通过 模型上下文协议.

  • 运行JUnit测试 --带有刷新、构建和错误检查的完整构建管道
  • 进度流 --长时间运行的工具通过SSE流式传输进度,实时报告每次测试通过/失败
  • 代码覆盖率 --通过EclEma/JaCoCo实现每行和每种方法的覆盖率
  • 交互式调试 --断点、步进、变量检查、表达式求值
  • 代码智能 --在工作区中查找对类、方法和字段的引用
  • 工作区诊断 --编译错误、控制台输出、项目列表

安装

该插件在Eclipse中作为OSGi包运行,并在 127.0.0.1:5188.

  1. 下载 eclipse.mcp.server_VERSION.jar发布页面
  2. 把它放进去 /dropins/
  3. 重新启动Eclipse

所有工具(核心、调试、BPMN2)都包含在一个JAR中。默认情况下启用调试工具。BPMN2工具默认情况下是禁用的--在中启用它们 Window > Preferences > MCP Server.

连接AI助手

服务器通过HTTP与MCP通信 http://127.0.0.1:5188/mcp。它支持Streamable HTTP——当客户端发送 Accept: text/event-stream 带着一个 progressToken,长时间运行的工具(run_test, clean_build)通过SSE流式传输进度通知,防止客户端超时。

克劳德代码:

claude mcp add eclipse --transport http http://127.0.0.1:5188/mcp -s user

GitHub Copilot命令行界面:

  1. 进入交互模式并键入 /mcp add
  2. 服务器名称 --进入 eclipse
  3. 服务器类型 --选择 超文本传输协议
  4. 统一资源定位符 --进入 http://127.0.0.1:5188/mcp
  5. 按 控制键+S 保存

工具

标记为的参数 \* 是必需的。其他都是可选的。

核心

工具说明
run_test完整流水线——刷新、构建、检查错误、启动测试。支持 methods 用于在单个JVM中执行多方法的数组。
get_test_results最近一次测试运行的结果(通过类+方法进行全栈跟踪)
get_coverage类的每行和每方法代码覆盖率
list_test_configs工作区中的所有JUnit启动配置
list_test_runs当前和最近的JUnit发布
list_projects工作区中所有打开的项目
get_problems编译错误(以及可选的警告)
get_console_output启动时的stdout/stderr
terminate停止运行启动
find_references查找对类、方法或字段的所有引用
clean_build从头开始清理和重建项目(在Eclipse严重不同步时使用)

调试

工具说明
breakpoint管理断点(操作:设置/删除/清除/列出)
get_debug_state检查调试器是否处于活动/挂起状态
get_stack_trace挂起线程的堆栈跟踪
list_variables列出当前堆栈帧中的所有可见变量
evaluate_expression在挂起的框架中计算Java表达式
step跨过、进入、返回或继续

BPMN2(默认禁用)

工具说明
bpmn2_create_process使用样板XML创建新的BPMN2流程文件
bpmn2_get_process读取BPMN2文件并返回所有节点、流、变量和信号
bpmn2_service_task添加一个调用Java服务方法的服务任务
bpmn2_subflow_call添加调用另一个BPMN2子流程的调用活动
bpmn2_script_task添加一个执行内联Java代码的脚本任务
bpmn2_gateway添加用于分支或合并的专用网关
bpmn2_node添加开始/结束事件或扩展点,更新或删除节点(操作:添加/更新/删除)
bpmn2_flow添加、更新或删除序列流(操作:添加/更新/删除)
bpmn2_variable添加或删除流程变量(操作:添加/删除)
bpmn2_signal添加或删除信号定义(操作:添加/删除)
bpmn2_import添加或删除Java类导入(操作:添加/删除)
bpmn2_item_definition添加或删除类型定义(操作:添加/删除)
bpmn2_text_annotation添加或删除图表注释(操作:添加/删除)
bpmn2_auto_layout自动布局图中的所有节点和边

典型会话

list_test_configs          → discover available JUnit configurations
run_test                   → edit code, then refresh + build + run
run_test (mode=coverage)   → same, but with code coverage enabled
run_test (mode=debug)      → run with debugger (set breakpoints first)
get_test_results           → re-check results or wait for completion
get_test_results (class+method) → drill into a specific failure's full stack trace
get_coverage               → inspect per-line coverage for a source class

调试会话示例:

breakpoint (action=set)    → set breakpoint at a suspicious line
run_test (mode=debug)      → launch test with debugger attached
get_debug_state            → check if breakpoint was hit
list_variables             → see all variables in scope
evaluate_expression        → evaluate a Java expression in context
step (action=over)         → step to the next line
step (action=resume)       → let the test finish

BPMN2工作流示例:

bpmn2_create_process       → create a new .bpmn2 file with process boilerplate
bpmn2_variable (add)       → add processCommandFlow variable
bpmn2_import (add)         → import a utility class for use in script tasks
bpmn2_signal (add)         → define a signal for event-driven start events

bpmn2_node (add start_event)→ add the main start event
bpmn2_service_task         → call a Java service (validated against workspace)
bpmn2_gateway              → add a diverging gateway for conditional branching
bpmn2_script_task          → add inline Java logic
bpmn2_subflow_call         → delegate to another BPMN2 subprocess
bpmn2_node (add ext_point) → add a web extension point (human task)
bpmn2_gateway              → add a converging gateway to merge branches
bpmn2_node (add end_event) → add the end event

bpmn2_flow (add)           → connect nodes with sequence flows
bpmn2_flow (add+condition) → add conditional branch with Java expression
bpmn2_text_annotation (add)→ annotate a node with a diagram comment

bpmn2_auto_layout          → arrange all shapes and edges on the diagram
bpmn2_get_process          → verify the complete process structure

Detailed tool reference

测试执行

run_test (config*, class*, method, methods[], project, dependencies[], mode){steps, success, compilationErrors[], launchResult{status, totalTests, passed, failed, failures[]}}

完整管道——从磁盘刷新项目,构建(首先按顺序构建依赖关系),检查编译错误,然后启动测试。如果发现编译错误,则快速失败。如果另一个测试已在运行,则拒绝调用。这 mode 参数控制测试的启动方式: run (默认), coverage (EclEmma/JaCoCo-使用 get_coverage 之后),或 debug (先设置断点)。

使用现有的启动配置作为模板——继承VM参数、类路径和环境——同时只覆盖测试目标(类/方法)。

多方法执行: 通过 methods (方法名称数组)在单个JVM启动中运行多个特定的测试方法,共享构建和初始化时间。两者 methodmethods 可以提供——它们被合并和去重。使用捆绑的Java代理拦截Eclipse的 RemoteTestRunner 仅执行指定的方法。需要Eclipse 2019-06或更新版本。

测试结果

get_test_results (wait, class, method){status, totalTests, passed, failed, errors, ignored, failures[]}{class, method, trace}

返回最近一次测试运行的结果。每个失败都包括异常消息和一个紧凑的堆栈跟踪:前3个应用程序帧加上所有测试类帧,框架内部被过滤,其余帧被折叠为 ... N more.通行证 wait=true 直到运行测试完成。通过 classmethod 获取特定故障的完整堆栈跟踪。

get_coverage (class*){class, summary{lineCoverage, branchCoverage, methodCoverage}, methods[{name, lineCoverage, branchCoverage, uncoveredLines[]}], lines[{line, status, branches}]}

覆盖运行后源类的详细代码覆盖率。按方法覆盖率返回未覆盖的行号和每行状态(COVERED, NOT_COVERED, PARTLY_COVERED).如果仍在加载,则等待覆盖率分析完成。

工作区和诊断

list_test_configs (){testConfigurations[{name, type}]}

枚举所有JUnit启动配置——常规JUnit、JUnit插件测试和SWTBot。

list_test_runs (){testRuns[{name, mode, terminated}]}

显示活动和最近的JUnit启动及其运行/终止状态。

list_projects (){projects[]}

工作区中所有打开项目的名称。

get_problems (project, includeWarnings){errorCount, warningCount, errors[{project, file, line, message}], warnings[]}

Eclipse的Problems视图中的Java编译错误。可选地包括警告。可以限定为单个项目。

get_console_output (name){configName, terminated, stdout, stderr}

从最近的启动(或按名称指定的启动)中捕获stdout和stderr。当流监视器缓冲区被清除时,自动返回到读取Eclipse控制台视图。

terminate (name){terminated}

停止运行启动。可选择按配置名称进行筛选。返回终止的启动次数。

代码智能

find_references (class*, member){element, totalReferences, files[{class, references[{line, source}]}]}

在所有打开的工作区项目中查找对Java类、方法或字段的所有引用。使用Eclipse的语义搜索引擎——查找实际用法,而不仅仅是名称匹配。如果 member 省略,查找对类本身的引用。处理方法重载(一起搜索所有重载)。结果按文件、行号和源代码行上下文分组。

clean_build (projects[]){projects[]}

从头开始清理和重建Eclipse项目。从磁盘刷新,执行完全清理(删除所有构建工件),然后进行完整的重建。当Eclipse严重不同步时使用——过时的编译错误、幻影缺失的类或损坏的增量构建状态。通过 projects 以针对特定项目,或省略清理/重建所有打开的项目。

调试

breakpoint (action*, class, line, condition, id) → 因行动而异

管理断点。 action='set' (要求 class, line;可选 condition):设置行断点,返回 {id, class, line, condition, enabled}. action='remove' (要求 id):按断点ID删除断点,返回 {removed, id}. action='clear':删除所有断点,返回 {removed} (计数)。 action='list':列出工作区中的所有Java行断点,返回 {breakpoints[{id, class, line, condition, enabled, hitCount}]}.

get_debug_state (){active, suspended, thread, threadId, location{class, method, line, sourceName, source}, reason}

检查调试会话是否处于活动状态,以及线程是否挂起(例如在断点处或步骤后)。

get_stack_trace (thread_id){thread, frames[{index, class, method, line, sourceName}]}

获取挂起线程的堆栈跟踪。使用帧索引 evaluate_expression 在特定框架的上下文中工作。

list_variables (thread_id, frame_index){frame, variableCount, variables[{name, type, value, fields[], length, elements[], truncated}]}

列出当前堆栈帧中所有可见的变量及其类型和浅值。显示局部变量、方法参数和 this 领域。对于对象,显示字段名称;对于数组,显示长度和前几个元素。使用 evaluate_expression 检查他们。

evaluate_expression (expression*, thread_id, frame_index){type, value, fields[]}

在挂起的堆栈帧的上下文中计算Java表达式。可以读取值、调用方法或修改变量。

step (action*, thread_id, timeout){action, thread, reason, location{class, method, line, sourceName, source}, terminated, testResults}

控制调试器执行: over (下一行), into (输入方法调用), return (退出当前方法),或 resume (运行到下一个断点或终止)。返回带有源上下文的新位置。终止时,包括测试结果(如有)。

从源头构建

需要Java 17+和Maven 3.9+。

mvn package -B

输出JAR落在 eclipse.mcp.server/target/.复制到Eclipse dropins/ 并重新启动。

更新日志

许可证

GPL-3.0

致谢

灵感来自 eclipse mcp服务器 马克斯·马丁森。

目录标签

目录标签

JavaClaude开发工具JUnit测试本地部署代码覆盖率交互式调试代码智能Eclipse插件

支持客户端

Claude

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

28

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP