debug_checkLABSCO SUMMARY
Evidence from the running process, not inference from the source.
Static analysis cannot tell you which branch a request took or which mapper actually ran; attaching to the JVM can. The strictness is deliberate — dynamic attach demands the exact PID and a confirmation, discovery deliberately does not expose other processes' command lines, and a probe that cannot be placed fails rather than returning something plausible. Set-up is the real cost: an agent jar, a JVM argument and a correct include scope before anything works.
What it is
A bridge between a coding agent and a live Java process. A ByteBuddy agent instruments the classes you scope it to, and the server exposes line-level probes, route synthesis, failure analysis and regression runs on top of it. The current focus is HTTP entrypoints.
What you get
- probe — line-level runtime evidence from the instrumented classes
- route_synthesis to work out which code path an HTTP entrypoint actually takes
- failure_analysis for trace analysis and comparing a reproduction against the original failure
- execution_orchestration and artifact_management for running checks and keeping their outputs
- execution_profile_export — a run turned into a PowerShell or shell script, a Postman collection, or a performance replay
- jvm_lifecycle for discovering local JVMs and attaching or deactivating the agent
- debug_check alongside them for the deterministic debugging path
- Fail-closed contracts: when the runtime is unreachable or a probe cannot be placed, the tool says so rather than guessing
- Nine installable skills covering probe runs, regression suites, bug drills, fix planning and failure lenses
Requirements
Node.js and JDK 21 or newer — Java 17 will not work, because the agent and the attach helper compile for 21. Maven to build the agent jar. The target JVM either starts with the agent on its command line, scoped by an include filter, or has it attached dynamically by PID, which requires an exact PID and an explicit confirmation. The agent's include scope decides what you can see; if your classes are not in the startup log, the filter is wrong.
Setup effort
Build from source — clone the repository, then point your client at the binary
USE CASES
Finding out what really runs behind an endpoint
Synthesise the route for the entrypoint and confirm it with probe evidence from the live process.
Reproducing a stack trace someone pasted you
Run the failure analysis against the running app rather than diagnosing from the trace alone.
Checking a change did not break a path
Orchestrate the regression run and keep its artifacts for comparison.
Handing a reproduction to someone else
Export the run as a shell script or a Postman collection so it travels.
Attaching to an app that is already up
Discover the local JVM, attach the agent to that exact PID, then deactivate when you are done.
Confirming a specific line is even reached
Place a line probe and read what values it saw, rather than adding logging and redeploying.
8 tools
Listed in project docs. Your client may show a different list.
artifact_managementproberoute_synthesisfailure_analysisexecution_profile_exportexecution_orchestrationjvm_lifecycleBEFORE YOU INSTALL
What to know first
Tools you get
8 tools named in the project's documentation.
INSTALLATION
Connect your client
Clone the repository, then point your client at the binary. This one is built from source rather than installed with a single command.
Server setup
git clone https://github.com/nimbly-dev/mcp-java-dev-tools.git
cd mcp-java-dev-tools
npm install
./scripts/install.shWhen the installer prompts for the MCP env config, enter MCP_JAVA_AGENT_JAR — the absolute path to the built Java agent jar.
Add the following as a JVM argument when launching your application (Java 21 or newer). The README gives only this Windows path: its C:\Users\<YOUR_USERNAME>\repository\mcp-java-dev-tools part is the location of your clone
-javaagent:C:\Users\<YOUR_USERNAME>\repository\mcp-java-dev-tools\java-agent\core\core-probe\target\mcp-java-dev-tools-agent-0.1.8.jar=host=0.0.0.0;port=9191;exclude=com.nimbly.mcpjavadevtools.agent.,.config.,Test
MCP Clients
Codex
./scripts/install.sh --client codex --no-configure-mcp-envClaude Code
./scripts/install.sh --client claude --no-configure-mcp-env