joLink
What it does
A lightweight Java IDE for AI agents: incremental builds, fast tests, HotSwap and live debugging.
- Connects パソコンで動く
- Account or key No key needed
- Category 開発者ツール
インストール
使っているAIアプリを選んで、設定をコピーしてください。
チェック 3/3 合格 · あなたのパソコンで動きます
まず:どの AI を使っていますか?
使っているアプリを選ぶと、下に手順が表示されます。
Claude につなげますが、先に準備が必要です
joLink のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Python (uv) を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
パソコン版 Claude アプリの設定ファイルを開く
SettingsDeveloperEdit Config
この設定を貼り付けて保存
{ "mcpServers": { "jolink-runtime": { "command": "uvx", "args": [ "jolink-runtime" ], "env": { "JOLINK_DOWNLOAD_MIRROR": "your-value", "JOLINK_JDT_GC_AFTER_BUILD": "your-value" } } } }キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください
Claude を終了してもう一度開く
試してみる
joLink を使って、私に何ができるか教えて、1 つやってみせて✓ Claude が joLink を使っていると言うか、回答に joLink のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
ChatGPT はまだ joLink につなげません
joLink はパソコンに入れて使うものですが、ChatGPT は Web 上で動くサーバーにしかつなげません
代わりにできること
A · joLink につなげるアプリを使う
- joLink のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Python (uv) を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
- joLink のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Python (uv) を入れてください(1 回だけ)
- joLink のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Python (uv) を入れてください(1 回だけ)
- joLink のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Python (uv) を入れてください(1 回だけ)
B · 開発者ツール の中で ChatGPT につなげる別のサーバー
同じカテゴリでよく使われているものから、キーなしでアドレスだけでつなげるものを選びました
- Sentry✓ ChatGPT
- Compiler Explorer✓ ChatGPT
- GitDiagram✓ ChatGPT
Claude Code につなげますが、先に準備が必要です
joLink のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Python (uv) を入れてください(1 回だけ)
ターミナルを開く
Mac:Command+スペースで Terminal と入力 · Windows:PowerShell を開く
このコマンドを貼り付けて Enter
claude mcp add --scope user jolink-runtime --env JOLINK_DOWNLOAD_MIRROR=your-value --env JOLINK_JDT_GC_AFTER_BUILD=your-value -- uvx jolink-runtimeEnter の前に「your-value」を自分のキーに書き換えてください
キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください
Claude Code で /mcp と入力
joLink が一覧にあり、接続済みと表示されれば OK です
試してみる
joLink を使って、私に何ができるか教えて、1 つやってみせて✓ Claude Code が joLink を使っていると言うか、回答に joLink のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
Cursor につなげますが、先に準備が必要です
joLink のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Python (uv) を入れてください(1 回だけ)
キーを入力
joLink の設定で JOLINK_DOWNLOAD_MIRROR, JOLINK_JDT_GC_AFTER_BUILD が空です。自分のキーを入れて保存します
キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください
Cursor の AI チャットを Agent モードで開く
試してみる
joLink を使って、私に何ができるか教えて、1 つやってみせて✓ Cursor が joLink を使っていると言うか、回答に joLink のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に Cursor のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
VS Code につなげますが、先に準備が必要です
joLink のキーが必要です(提供元のサイトで作成) · 先にパソコンへ Python (uv) を入れてください(1 回だけ)
キーを入力
joLink の設定で JOLINK_DOWNLOAD_MIRROR, JOLINK_JDT_GC_AFTER_BUILD が空です。自分のキーを入れて保存します
キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください
VS Code の AI チャットを Agent モードで開く
試してみる
joLink を使って、私に何ができるか教えて、1 つやってみせて✓ VS Code が joLink を使っていると言うか、回答に joLink のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に VS Code のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
開発者向け:ターミナルのコマンドと JSON 設定
パソコンにインストール
Claude Code
claude mcp add --scope user jolink-runtime --env JOLINK_DOWNLOAD_MIRROR=your-value --env JOLINK_JDT_GC_AFTER_BUILD=your-value -- uvx jolink-runtimeClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"jolink-runtime": {
"command": "uvx",
"args": [
"jolink-runtime"
],
"env": {
"JOLINK_DOWNLOAD_MIRROR": "your-value",
"JOLINK_JDT_GC_AFTER_BUILD": "your-value"
}
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"jolink-runtime": {
"command": "uvx",
"args": [
"jolink-runtime"
],
"env": {
"JOLINK_DOWNLOAD_MIRROR": "your-value",
"JOLINK_JDT_GC_AFTER_BUILD": "your-value"
}
}
}
}VS Code (mcp.json)
{
"servers": {
"jolink-runtime": {
"type": "stdio",
"command": "uvx",
"args": [
"jolink-runtime"
],
"env": {
"JOLINK_DOWNLOAD_MIRROR": "your-value",
"JOLINK_JDT_GC_AFTER_BUILD": "your-value"
}
}
}
}自分で入力する値
JOLINK_DOWNLOAD_MIRRORenvDownload source for Java tooling. Use cn in China.JOLINK_JDT_GC_AFTER_BUILDenvRequest memory cleanup after compilation: 1 enables it, 0 disables it.
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
ひと目でわかる
- 週あたりのダウンロードi
- 54/週
- 接続方法
- パソコンで動く
- 最新バージョンi
- 0.1.0a10
- レジストリ公開日i
- 2026年10月29日
- コードの最終更新i
- 2026年11月11日
- 作者
- L1ch404
- パッケージ
pypi: jolink-runtime- ウェブサイト
- github.com
- レジストリでの状態
- 有効
使えるアプリ
このサーバーのつなぎ方と、各アプリの公式ドキュメントに基づきます。2026年11月10日に確認。
パソコン上で動かせるアプリ
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
できること
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
基本チェックi
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月12日にチェック
- ✓ 合格
作者とリポジトリが一致
レジストリ名は、リポジトリを所有するGitHubアカウント L1ch404 で確認済みです
- ✓ 合格
今もメンテナンスされている
コードの最終更新:昨日
- ✓ 合格
ライセンスがある
MITを使用
- – 対象外
エンドポイントが応答する
これはパソコンで動くため、インターネット上のエンドポイントはありません
- – 対象外
OAuthでサインイン
パソコンで動き、代わりにローカルの設定を使います
- … 未チェック
ツールの説明に隠れた指示がない
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
話し合い
質問、コツの共有、使えないことの報告ができます。「役に立った」の多い順です。
ユーザーレビュー
まだレビューはありません
開発者ツールのほかのサーバーとの比較i
- このカテゴリのほかの5786件のうち92%よりスターが多い
- このカテゴリのほかの5786件のうち64%より最近レジストリに公開
- 基本チェックの結果が、このカテゴリのほかの5786件のうち100%と同じかそれ以上
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
よくある質問
joLinkは安全ですか?
当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
どんなキーやコードが必要ですか?
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
パソコンで動きますか、それともクラウドですか?
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
今もメンテナンスされていますか?
GitHubリポジトリの最終更新は昨日、最新バージョン(0.1.0a10)がレジストリに届いたのは14 日前です。
どのアプリで使えますか?
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
代わりに使えるものは?
同じカテゴリには:REA, GitHub, Serena MCP: the IDE for your agent
同じカテゴリのほかの候補
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Serena MCP: the IDE for your agent
A powerful toolkit for coding, providing semantic retrieval and editing capabilities.
作者のREADME
READMEを開く
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
joLink Runtime
English | 简体中文
A lightweight, headless Java IDE for AI coding agents.
Closing the loop for autonomous Java development.
Design principle: Everything exists to reduce uncertainty for the LLM.
joLink does not provide an editor UI. Instead, it exposes incremental compilation, testing, application startup and breakpoint debugging through MCP to the coding agent you already use—so it can run the code, inspect real state, and verify its own changes.
Persistent compilation state and HotSwap reduce repeated full rebuilds and JVM restarts. When tests, logs and endpoint responses are not enough, the agent can use breakpoints and inspect exception events, stack frames and variables.
Free and local. It does not require a joLink account, model API key, inference provider, or separate agent application.
Install
- Open a new chat in your coding agent.
- Click the copy button in the code block below, paste the entire prompt into that chat, and send it.
Follow this guide:
https://github.com/L1ch404/jolink-runtime/blob/main/INSTALL.md Install joLink MCP and its English Skill for my current agent. Enable the global Java change-verification rule for this agent across projects. Use user-level installation by default and preserve existing configuration. Check the saved configuration, Skill and rule. If a client UI action or reload is needed, stop and tell me what to do; leave connection and rule-loading verification to a chat after reloading.
[!WARNING]
Following the prompt above adds a global Java verification rule to your current agent, applying across projects.
This encourages the agent to perform additional tests and runtime checks, which may increase token usage and task completion time.
If you do not want this global rule, remove the line that enables it before sending the prompt.
- If the agent reports that a reload is needed, reconnect MCP or restart the client as instructed, then open a new chat. Configuration complete but not yet loaded is not an installation failure. In the loaded chat, you can send:
Verify the existing joLink MCP and jolink-java Skill in this client without reinstalling them.
Call the joLink status tool exposed by this client once, and check its Skill list or loading facility. If I enabled it, also check whether the global Java change-verification rule is loaded through the client's native instructions view. If anything is unavailable or its loading cannot be confirmed, report it and stop; do not write a standalone verification script. Do not start applications or run tests.
The guide provides official client-specific locations and examples for Codex, Claude Code, Cursor, VS Code/Copilot, CodeBuddy, Gemini CLI, OpenCode, Cline, Roo Code, Windsurf and Kiro. All start MCP with uvx jolink-runtime@latest and use the same English Skill; no plugin bundle or universal installer is required. MCP performs the work; the Skill explains the workflows; the optional global verification rule makes proportionate Java verification part of implementation tasks across projects. The prompt above explicitly enables it; remove that line if you only want MCP and the Skill. The guide also covers uv setup, preserving configuration, reconnection and verification.
For Chinese instructions, use the Chinese installation guide.
Why joLink
Coding agents are good at reading and changing code, but they can become stuck in a loop of static assumptions:
analyze
-> patch -> assume the patch works -> patch again
joLink adds the missing runtime feedback loop:
analyze
-> change -> run -> observe -> update the hypothesis -> change again if necessary
This is useful when:
- the Java application is not running yet;
- a code change needs to be verified against real behavior;
- repeated patches have not solved the problem;
- endpoint results do not match the source-code interpretation;
- logs or tests are insufficient to explain the executed path;
- business naming is inconsistent and static search cannot find the relevant code;
- deeper runtime evidence such as breakpoints, stacks, or variables is needed.
The goal is not to use a debugger for every problem.
Start with the cheapest useful evidence:
application status
-> logs and actual outputs -> exception events -> executed path -> breakpoints, stack frames, and variables
Debug deeper only when necessary.
What it can do
joLink exposes four focused MCP tools:
java_application— project launch, compile-aware restart (HotSwap by default), stop, and attach;java_fast_test— selected Java tests, result details and cancellation, without an application launch;java_status— Java process discovery, compact status, on-demand details and logs;java_debugger— breakpoints, exception events, stacks, variables, and resume.
After editing a managed project, call java_application(action=restart). It incrementally compiles changes in the existing JDT workspace and prefers HotSwap; incompatible changes restart the JVM using those same compiled outputs. Set hotswap=false to force process/application reinitialization. The result's apply_method distinguishes HotSwap from a real restart. See restart workflow.
Fast Test uses a Maven or Gradle Probe only when its small configuration cache is absent or changed. The exported test Build World and JDT workspace persist across MCP processes. JDT keeps main and test classes current and runs explicit JUnit 4/5 or TestNG tests in an isolated JVM:
java_fast_test(action=run,
project_path=/path/to/project, source_files=[src/main/java/example/Service.java], tests=[example.ServiceTest#works], timeout=60) -> if unfinished, choose a suitable waiting interval, then call java_status(action=status) -> read diagnostics/failures with java_fast_test(action=result, test_run_id=...) -> cancel with java_fast_test(action=cancel, test_run_id=...)
java_status(status).fast_test stays compact. If compilation fails before run returns, its reply includes compiler diagnostics directly. Errors that occur after a timeout reply and failed-test details are available through result; follow the summary's next_action or use its test_run_id, without rerunning tests. Full compiler file lists are omitted. Only the active and most recently completed test attempts are retained in the current MCP session; an unavailable ID returns TEST_RUN_NOT_FOUND.
passed=false means the selected tests executed and found a failure; it is not a Tool infrastructure error. Fast Test does not require or modify a running application. The current JDT supports Java 8 through 26 source/target levels; product regression covers 8, 11, 17 and 21, including separate main/test levels. Target libraries and application/test JDKs still follow the project. Supported build layouts include Maven jar projects, one explicitly selected jar module in a standard Reactor, and Gradle Java builds including multi-Project dependencies (tested with 7.4.2, 8.10 and 8.14). Maven and Gradle multi-module launch and Fast Test resolve the selected module's upstream dependencies into separate JDT projects in one Worker. Unchanged modules reuse their output; JavaBuilder propagates changed APIs and constants to affected downstream sources. Local module dependencies use current workspace output rather than installed JARs; Maven also supports test-jar dependencies. See Gradle multi-module flow and evidence.
Demo
From an unexpected API response to runtime investigation.
Reading source code tells an agent what might happen. Running the application and inspecting its state helps the agent check what actually happens.
The screenshots below show a debugging example: an agent starts a Java application, checks an endpoint, notices an unexpected result, and uses joLink to investigate the execution path.
This is a constructed demonstration scenario, not a record of an actual business incident.
Some sensitive information in the screenshots has been redacted for privacy.
1. Start the application and check the actual response
The agent uses java_application to launch the application and java_status to check its state, then sends an HTTP request to a sample risk-scoring endpoint.
For score=80, the expected category is High Risk, but the agent reports Medium Risk. It checks additional boundary values before investigating further.
2. Set a breakpoint and inspect runtime variables
The agent uses java_debugger to set a breakpoint on the Medium Risk branch, triggers another request, and inspects the variables after the breakpoint is hit.
The conversation shows score=80 while execution is in the Medium Risk branch. This gives the agent runtime evidence to investigate its boundary-condition hypothesis, rather than relying only on source-code assumptions.
This example demonstrates application startup and runtime investigation. It is not a Fast Test performance benchmark; the screenshots cover the investigation stage, not the subsequent fix and re-verification.
Private diagnostics
joLink keeps stdout exclusively for MCP JSON-RPC. Python lifecycle logs and tracebacks are also written to a bounded private rotating file:
Windows: %LOCALAPPDATA%\jolink-runtime\logs\mcp.log
macOS/Linux: $XDG_CACHE_HOME/jolink-runtime/logs/mcp.log or ~/.cache/jolink-runtime/logs/mcp.log
status does not return mcp.log paths or logging configuration, even with details=true. Read the local file at the path above when diagnosing joLink itself. A diagnostic-file failure never prevents the MCP server from starting. The file is limited to 4 MiB with three rotated backups; stdout remains untouched.
java_status(action=status) is a compact overview: readiness, process/debug state, active operation and recent restart/Test summaries. Read java_status(action=status, details=true) for current launch errors, full last_reload, compiler/cache settings and timings. Completed launch/restart calls already return their own detailed result; the flag is useful when an operation continued after the synchronous reply timeout. Neither call reads or embeds build logs. Use java_status(action=logs, source=build) for the current launch's build log, or omit source to read application output; both accept tail. Restart summaries include a next_action pointing to details.
launch/restart replies include previous_startup_ms: the prior successful JVM startup duration saved locally for the same launch, captured before the new operation. It excludes Probe/JDT compilation. With ready_port it measures startup through observed TCP readiness; otherwise it only measures JVM/ JDWP startup. HotSwap and failed startups do not replace this observation. It is written once when startup succeeds to a small JSON file under the joLink cache's startup-timings/ directory. Stop, a new conversation or an MCP restart does not discard it. The next launch reads that file; no expiry, build-input validation or repeated status writes are involved. An unseen launch returns null. Treat it as a waiting reference, not a prediction or a readiness check.
Set JOLINK_LOG_LEVEL in the MCP server's environment and restart it: WARNING (default) keeps warnings/errors only; INFO records JDT cache/source/build/save summaries and native FULL fallback reasons; DEBUG also retains detailed W