Labsco
MCP SERVER

MCP Java Dev Tools

by nimbly-dev

Attaches a sidecar agent to a running JVM so the assistant reasons from what the code actually did at runtime, not from reading it.

Runtime Debugging & Crash Analysis
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 and build it