io.github.L1ch404/jolink-runtime
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| JOLINK_LOG_LEVEL | No | Controls joLink diagnostic logging. WARNING (default) keeps warnings/errors only; INFO records JDT cache/source/build/save summaries and native FULL fallback reasons; DEBUG also retains detailed Worker output; ERROR keeps errors only; OFF disables joLink diagnostic logging. | WARNING |
| JOLINK_DOWNLOAD_MIRROR | No | Optional mirror selection for first-time JDK/Eclipse downloads. Set to 'cn' to try TUNA, then the joLink mirror, then upstream on failure. A custom mirror base URL uses that mirror followed by upstream. 'official' (or an empty value) uses upstream only. | |
| JOLINK_WORKER_JAVA_HOME | No | Optional path to a corporate-provided 64-bit JDK 17+ for the JDT worker. If unset, a private, pinned Temurin 21 runtime is used. |
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 | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| java_applicationA | Launch, attach, restart, stop, or detach Java applications. For Maven/Gradle, use project_path plus main_class without IDEA, or select an IDEA launch. Use java_fast_test to run tests without launching an application. Launch and restart wait up to timeout (at most 30 seconds), returning the result if finished or the original background task if still running. After editing a managed Maven/Gradle project, use restart: it detects changed sources, incrementally compiles them, and prefers HotSwap (hotswap=true by default). Incompatible changes use the same compiled outputs to restart the JVM. Set hotswap=false for a real process restart and application reinitialization. apply_method reports hotswap or restart; HotSwap does not refresh framework state or count as a JVM startup. previous_startup_ms reports the prior successful startup duration saved locally for this launch, or null if unavailable. It survives MCP restarts and excludes compilation. A pending restart returns reload_id; observe active_operation and last_reload using java_status. Direct JAR/classpath launches restart their existing artifact without source compilation. |
| java_fast_testA | Run selected Java tests in Maven or Gradle projects, incrementally compiling changed sources. Supports JUnit 4/5 and TestNG. No application launch is required, and an existing application is left running. Provide project_path and tests (Class or Class#method); action defaults to run. First-time preparation and compilation can take minutes; subsequent calls reuse unchanged results. Waits up to timeout (maximum 30 seconds); unfinished work returns its test_run_id and continues in the background. Observe it with java_status or cancel it here using action='cancel' and the same test_run_id. If compilation fails before run returns, it includes compiler diagnostics directly. java_status stays compact; use action='result' with test_run_id for background error diagnostics and failed-test details without rerunning tests. This is not the complete Maven/Gradle verification or packaging lifecycle. |
| java_statusA | Discover local Java processes, inspect a compact application/build overview with status, or request current launch/restart details with status and details=true. Use logs with source=application (default) or source=build for log text. status omits build-log text and detailed launch/restart results. It includes only a Fast Test summary; read test details with java_fast_test(action='result', test_run_id=...). |
| java_debuggerA | Observe executed paths and runtime state with breakpoints, exception events, stacks, and variables. Always resume or clean up every suspension. |
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 4 tools
Each tool has a clearly separate purpose: fast tests, application lifecycle, status/log inspection, and debugging. Cross-references such as using java_status to observe test runs are explicit and do not create ambiguity.
All tools use the same java_ prefix and snake_case convention, and the second element is a stable noun or noun phrase. The naming pattern is predictable even though it is resource-oriented rather than verb-first.
Four tools is well-scoped for a Java runtime development assistant. Each tool bundles related operations such as run/cancel/result and launch/restart/stop, so the count feels complete rather than sparse.
The main development loop is covered: run tests, launch/restart apps, inspect status/logs, and debug. Minor gaps exist because the tools deliberately exclude full Maven/Gradle verification and packaging, and there is no explicit test discovery operation.