Skip to main content
Glama
L1ch404

io.github.L1ch404/jolink-runtime

by L1ch404

java_debugger

Inspect Java runtime state by setting breakpoints, watching exceptions, and reading stacks and variables, then resume or clean up suspensions.

Instructions

Observe executed paths and runtime state with breakpoints, exception events, stacks, and variables. Always resume or clean up every suspension.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
hostNoDebug connection host; localhost only.127.0.0.1
lineNoSource line for breakpoint set/removal.
actionYesRuntime operation to perform.
caughtNoWatch caught exceptions.
timeoutNoSeconds to wait for an event.
uncaughtNoWatch uncaught exceptions.
bp_actionNoBreakpoint operation.set
jdwp_portNoLocal Java debug port for launch or attach.
wait_modeNoblocking waits directly; with http_trigger it performs arm, trigger, and await in one call. Use arm then await with its wait_handle when an external action is needed after event waiting is armed. Resume every suspension.blocking
item_limitNoMaximum list/set/array items.
max_framesNoMaximum stack frames.
request_idNoException-watch identifier returned by set/list.
frame_indexNoFrame index for variables.
thread_nameNoOptional fallback selector for stack/variables. Omit it to use the active suspension's event-hit thread. Exact names are preferred; otherwise a unique prefix or substring must identify one JVM thread. The selected thread must be suspended for stack/variables to succeed.
wait_handleNoActive observation handle returned by arm or a nonterminal blocking result.
http_triggerNoOptional loopback request started only after event waiting is armed. Use with blocking for one-call arm/trigger/await, or with arm when work must occur before a later await. It is rejected while configured application readiness is starting; unverified readiness is allowed with a warning. Never send the same request again.
include_thisNoInclude this in variables.
breakpoint_idNoBreakpoint identifier returned by set/list.
class_patternNoClass name/pattern for breakpoint set or removal.
include_proxyNoAllow proxy classes in breakpoint matching.
suspension_idNoActive suspension id returned by wait_event/status. Pass it to stack, variables, and resume so stale observations are rejected; stack/variables use its event-hit thread when thread_name is omitted.
exception_classNoException class in Java name, JVM path, or signature form.
map_entry_limitNoMaximum map entries.
max_value_depthNoObject expansion depth.
exception_actionNoException-watch operation.set
include_generatedNoAllow generated classes in breakpoint matching.
allow_broad_caughtNoAllow noisy broad caught-exception watches.
semantic_collectionsNoRender supported Java collections logically.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral disclosure burden. It does reveal a key behavior: the tool creates suspensions and mandates cleanup/resume, which is beyond schema information. However, it does not disclose other potential effects (e.g., attaching to JVM, port usage, or that breakpoints may alter execution). The explicit cleanup warning is valuable but incomplete for a tool with 28 parameters and multiple actions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exceptionally concise: two sentences that front-load the purpose and immediately state the critical safety requirement. There is zero redundancy, and the instruction about resuming/cleaning up is placed where it deserves emphasis. Every word contributes to the tool's correct usage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is quite sparse for a tool of this complexity (28 parameters, multiple actions, nested objects). It doesn't outline a typical workflow (e.g., set breakpoint → wait_event → stack → resume) or clarify how the action enum relates to the parameters. The schema individually documents parameters but doesn't tie them together. The description provides a high-level overview and a safety rule, but an agent would need to infer the sequence from parameter names and enum choices. This is only partially complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter already has a thorough description in the schema. The main tool description adds no parameter-level detail beyond that; it only reinforces the cleanup requirement. Given the high coverage, a baseline of 3 is appropriate; the description does not enhance parameter understanding beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific purpose: 'Observe executed paths and runtime state with breakpoints, exception events, stacks, and variables.' This clearly identifies the tool as a debugger. It doesn't explicitly contrast with siblings like java_fast_test or java_application, but the function is evident and distinct, so it earns a 4 for being clear without explicit sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a critical usage directive: 'Always resume or clean up every suspension.' This is a direct guideline for correct operation, but it does not address when to choose this tool over alternatives. There's no mention of usage context (e.g., 'when you need to debug', or 'instead of java_fast_test'). It provides implied usage context but no explicit selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.