jdwp-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| debug.attachC | Connect to JVM via JDWP |
| debug.set_breakpointB | Set breakpoint at class:line, optionally conditional |
| debug.list_breakpointsB | List active breakpoints |
| debug.clear_breakpointB | Remove a breakpoint by ID |
| debug.continueA | Resume all threads |
| debug.step_intoB | Step into next line |
| debug.step_overB | Step over next line |
| debug.step_outC | Step out of current frame |
| debug.get_stackC | Get stack frames with variables |
| debug.get_variableB | Read one local variable by name |
| debug.select_threadB | Set default thread for inspection |
| debug.list_threadsB | List all threads |
| debug.pauseB | Suspend all threads |
| debug.disconnectA | End debug session |
| debug.get_last_eventB | Show last breakpoint/step event |
| debug.wait_for_eventC | Wait for next event with timeout |
| debug.inspectB | Inspect object fields by object ID |
| debug.find_classB | Search loaded classes by name pattern |
| debug.list_methodsB | List methods of a class with line ranges |
| debug.exception_breakpointA | Break on exceptions (caught/uncaught, optionally by class) |
| debug.evalC | Invoke a method on an object. Supports args: list.get(0), map.get("key") |
| debug.set_valueB | Set a local variable value in a stack frame |
| debug.snapshotA | Combined dump: last event + breakpoints + stack with vars |
| debug.vm_infoA | Get JVM version info |
| debug.watchB | Watchpoint: break when a field is modified |
| debug.traceA | Trace method calls on a class/package. Returns immediately; use debug.trace_result to get the call path. |
| debug.trace_resultA | Get collected trace after debug.trace. Shows call path with depth. |
| debug.wait_for_classA | Wait for a class to be loaded by the JVM. Use when set_breakpoint says class not found. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 28 tools
Each tool has a clearly distinct purpose, covering breakpoints, stepping, variable inspection, evaluation, tracing, and thread control. No two tools have overlapping functionality that would cause confusion.
All tools use the 'debug.' prefix and follow a consistent verb_noun or action_noun pattern in lowercase with underscores. Verbs like get, set, list, clear, step, wait are used uniformly.
With 28 tools, the count is slightly above the typical 3-15 range but still reasonable for a comprehensive JDWP debugger covering many operations. The tools are not redundant.
The tool surface covers major debugging workflows: attach, breakpoints, stepping, variable inspection, evaluation, tracing, and thread management. Minor gaps like modifying object fields or 'run to cursor' are absent but workable.