mcpField
D
debugium

debugium

ローカル
github.com/Algiras開発ツール433 週間前に更新

debugium について

debugium は、リアルタイム Web UI、CLI、LLM 連携を備えた多言語デバッガーです。プログラムの動作を調べる開発者やエージェント向けに、セッション履歴や複合デバッグツールと複数の DAP アダプターを提供します。

主な機能

  1. 01リアルタイム Web デバッグ UI
  2. 02ブレークポイントと実行制御
  3. 03複数セッションとリモートデバッグ
  4. 04変数履歴とスナップショット
  5. 05デバッグセッション用 MCP ツール
  6. 06CLI によるセッション操作

活用シーン

  1. 01ブレークポイントで変数とコールスタックを確認
  2. 02実行停止間の変化を追跡
  3. 03リモートの Python・Java・Node プロセスに接続
  4. 04エージェントやターミナルからデバッグセッションを操作

MCP 対応

stdio MCP サーバーは、ブレークポイント、実行、変数、履歴、注釈、セッション管理など、デバッグセッションの確認と制御を行う 64 個のツールを公開します。ツールの表示はアダプターの機能に応じて制限されます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"algiras-debugium": {
"command": "npx",
"args": [
"-y",
"@algiras/debugium"
]
}
}
}
起動コマンドnpx -y @algiras/debugium

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@algiras/debugium0.1.2

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Debugium

リアルタイム Web UI と MCP 経由の LLM 統合を備えた多言語デバッガーです。

ブラウザーから Python、JavaScript、TypeScript、C、C++、Rust、Java、Scala、WebAssembly のプログラムをデバッグできます。Model Context Protocol による AI 主導の分析にも対応しています。

CI Docs

Debugium UI — 変数、コールスタック、ブレークポイント、ウォッチ、タイムライン、コンソールの各パネルを表示し、target_python.py のブレークポイントで一時停止している画面


機能

Web UI
  • リアルタイム Web UI — ソースビューアー、ブレークポイント、変数(再帰的な展開)、コールスタック、コンソール、タイムライン、ウォッチ式、検出結果を WebSocket 経由でリアルタイムに更新します
  • 複数タブ対応のソースビューアー — 複数のファイルを開き、スタックフレームをクリックして移動できます
  • 変数検索 — 再帰的な展開に対応し、名前で変数を絞り込めます
  • 変更された変数の強調表示 — 前回の停止以降に変更された変数をオレンジ色で表示します
  • スレッドセレクター — マルチスレッドプログラム内のスレッドを切り替えられます
  • パネルの折りたたみとサイズ変更 — ドラッグしてサイズを変更し、切り替えて折りたためます。Slim/Standard/Full のレイアウトプリセットに対応しています
  • ダークモード/ライトモードの切り替え
  • 自動再接続 — WebSocket が切断された後に UI が再接続し、状態を視覚的に表示します
  • キーボードショートカット — F5 で続行、F10 でステップオーバー、F11 でステップイン、Shift+F11 でステップアウト、Ctrl/Cmd+D でダークモード
  • ボタンアニメーション — デバッグコマンドの実行中はスピナーを表示し、完了時にフラッシュ表示します
デバッグ
  • 多言語対応 — Python(debugpy)、Node.js/TypeScript(js-debug)、C/C++/Rust(lldb-dap)、Java(java-debug)、Scala(Metals)、WebAssembly(lldb-dap)、または dap.json を介した任意の DAP アダプター
  • 包括的な DAP 対応 — ブレークポイント、ステップ実行、移動、メモリの読み書き、逆アセンブルなど、35 種類以上の DAP リクエストに対応します
  • ブレークポイント — 条件付き、ログポイント、ヒットカウント、関数、データ(ウォッチポイント)、例外、カーソル位置まで実行(continue_until)
  • 複数セッション — 複数のプログラムを同時にデバッグでき、子セッションへのルーティング(js-debug)にも対応します
  • リモートデバッグ — 別のマシンやコンテナー上で実行中の debugpy、JDWP、Node インスペクターに接続できます
LLM/MCP 統合
  • 64 個の MCP ツール — デバッグセッション全体を Claude または任意の LLM に公開します
  • 機能に応じて表示されるツール — アダプターの機能に基づき、ツールを自動的に表示または非表示にします
  • 複合ツール — get_debug_context(1 回の呼び出しで状況を把握)、step_until、step_until_change、run_until_exception、explain_exception、get_call_tree、compare_snapshots、find_first_change
  • 実行タイムライン — 停止のたびに、変更された変数とスタックの概要を記録します
  • ウォッチ式 — すべてのブレークポイントで自動評価され、LLM または UI から管理できます
  • 注釈と検出結果 — ソース行にメモをピン留めし、UI で確認できる結論を記録します
  • セッションのエクスポート/インポート — セッションをまたいでデバッグの知見を保存、復元できます
CLI 制御
  • 完全な CLI — 13 個のサブコマンドを使って、Web UI を使わずに別のターミナルからセッションを操作できます
  • 自動検出 — ~/.debugium/port にポートファイルを、~/.debugium/sessions/ にセッションログを保存します

インストール

Claude Code プラグイン(推奨)
/plugin marketplace add Algiras/debugium
/plugin install debugium@debugium

その後、プロジェクトの .mcp.json に追加してください(下記の MCP ツールを参照)。

macOS/Linux バイナリ
curl -fsSL https://raw.githubusercontent.com/Algiras/debugium/main/install.sh | bash
ソースから
# Prerequisites: Rust stable + wasm-pack
cargo install wasm-pack

# Build UI
wasm-pack build crates/debugium-ui --target web --out-dir pkg
cp crates/debugium-ui/pkg/cm_init.js         crates/debugium-ui/dist/pkg/
cp crates/debugium-ui/pkg/debugium_ui.js      crates/debugium-ui/dist/pkg/
cp crates/debugium-ui/pkg/debugium_ui_bg.wasm crates/debugium-ui/dist/pkg/

# Build & install server
cargo install --path crates/debugium-server

使い方

Python ファイルをデバッグする
debugium launch my_script.py --adapter python
Node.js/TypeScript ファイルをデバッグする
debugium launch app.js --adapter node
debugium launch app.ts --adapter typescript
C/C++/Rust をデバッグする
# C or C++ (compile with -g for debug info)
cc -g -O0 main.c -o main && debugium launch ./main --adapter lldb
c++ -g -O0 main.cpp -o main && debugium launch ./main --adapter lldb

# Rust
cargo build && debugium launch target/debug/my_binary --adapter lldb
Java/Scala をデバッグする
# Java (requires microsoft/java-debug adapter)
debugium launch MainClass --adapter java

# Scala (connect to a running Metals DAP server)
debugium launch build-target --adapter metals
debugium launch build-target --adapter metals:5005  # custom port
実行中のプロセスに接続する(リモートデバッグ)
# Python (debugpy listening on port 5678)
debugium attach --port 5678 --adapter python

# Java (JDWP on port 5005)
debugium attach --port 5005 --adapter java

# Node.js (inspector on port 9229)
debugium attach --port 9229 --adapter node

または MCP 経由で実行します:attach_session(port=5678, adapter="python", breakpoints=["/path/app.py:42"])

dap.json を介してカスタムアダプターを使用する
# Create a dap.json (see dap.json.example) then:
debugium launch my_program --config ./dap.json

# Or place dap.json in cwd / .debugium/ for auto-discovery:
debugium launch my_program   # finds ./dap.json automatically
初期ブレークポイントを設定する
debugium launch my_script.py --adapter python \
  --breakpoint /abs/path/my_script.py:42 \
  --breakpoint /abs/path/helpers.py:15
LLM / MCP 統合を有効にする

プロジェクトのルートに .mcp.json を追加します(Claude Code が自動的に読み込みます)。

{
  "mcpServers": {
    "debugium": {
      "command": "debugium",
      "args": ["mcp"]
    }
  }
}

その後、通常どおりセッションを起動します。MCP サーバーは、その時点でアクティブなポートに接続します。

debugium launch my_script.py --adapter python --breakpoint /abs/path/my_script.py:42

これで、Claude Code からすべての Debugium MCP ツールを利用できるようになります。推奨ワークフローについては CLAUDE.md を、すべてのツールのリファレンスについては SKILL.md を参照してください。


CLI 制御コマンド

セッションの実行中(debugium launch …)は、Web UI に触れることなく、2 つ目のターミナルまたは LLM エージェントから操作できます。

ポートは ~/.debugium/port から自動検出されます。--port で上書きできます。

グローバルフラグ(すべてのサブコマンド)
フラグデフォルト説明
--port PORT~/.debugium/port接続先のサーバーポート
--session IDdefault操作対象のセッション
--jsonオフ人間が読みやすい形式ではなく、生の JSON を出力します
状態の確認
debugium sessions                  # list active sessions
debugium threads                   # list threads
debugium stack                     # show call stack
debugium vars                      # show local variables (auto-resolves top frame)
debugium vars --frame-id 2         # show variables for a specific frame
debugium eval "len(fibs)"          # evaluate expression in top frame
debugium eval "x + 1" --frame-id 2
debugium source path/to/file.py    # print full source file
debugium source path/to/file.py --line 43  # windowed ±10 lines with → marker
debugium context                   # full snapshot: paused-at, stack, locals, source, breakpoints
debugium context --compact         # same but truncated (3 frames, 10 vars)
ブレークポイント
debugium bp set FILE:LINE [FILE:LINE …]   # set breakpoints (replaces existing in that file)
debugium bp list                          # list all breakpoints
debugium bp clear                         # clear all breakpoints
実行制御
debugium continue                  # resume execution
debugium step over                 # step over (next line)
debugium step in                   # step into a function call
debugium step out                  # step out of current function
UI 注釈(Web UI に表示)
debugium annotate FILE:LINE "message" [--color info|warning|error]
debugium finding "message"         [--level  info|warning|error]
ワークフローの例
# Terminal A — start the session
debugium launch tests/target_python.py --adapter python \
  --breakpoint "$(pwd)/tests/target_python.py:43"

# Terminal B (or LLM agent) — inspect and drive it
debugium sessions
debugium stack
debugium vars
debugium eval "len(fibs)"
debugium bp set tests/target_python.py:49
debugium continue                  # runs to line 49
debugium vars
debugium step over
debugium context --json            # machine-readable snapshot
debugium annotate tests/target_python.py:43 "called here" --color info
debugium finding "fibs has 10 elements" --level info
debugium bp clear

MCP ツール

MCP 経由で接続すると、64 個のツールを利用できます。主なツールは次のとおりです。

カテゴリツール
状況把握get_debug_context ★(停止位置+ローカル変数+スタック+ソースを 1 回の呼び出しで取得)
ブレークポイントset_breakpoint、set_breakpoints、set_logpoint、list_breakpoints、clear_breakpoints、set_function_breakpoints、set_exception_breakpoints、set_data_breakpoint、list_data_breakpoints、clear_data_breakpoints、breakpoint_locations
実行continue_execution、step_over、step_in、step_out、pause、goto、disconnect、terminate、restart
状態の確認get_stack_trace、get_scopes、get_variables、evaluate、get_threads、get_source、get_capabilities、loaded_sources、source_by_reference、step_in_targets
変更set_variable、set_expression
出力get_console_output、wait_for_output(古い一致を避けるための from_line 指定に対応)
メモリread_memory、write_memory、disassemble(ネイティブデバッグ)
履歴get_timeline、get_variable_history、compare_snapshots、find_first_change
注釈annotate、get_annotations、add_finding、get_findings
ウォッチadd_watch、remove_watch、get_watches
複合操作step_until、step_until_change、continue_until、run_until_exception、explain_exception、get_call_tree、restart_frame
セッションget_sessions、list_sessions、launch_session、attach_session、stop_session、export_session、import_session
制御goto_targets、cancel_request

注:step_over、step_in、step_out はブロッキングです。アダプターが一時停止するまで待ってから返ります。スリープを挟まずに続けて呼び出しても安全です。 continue_execution は、wait_for_output で使用する console_line_count を返します。 read_memory、goto、restart_frame などのツールは、アダプターが対応している場合にのみ表示されます。

入力スキーマを含む完全なリファレンスについては、SKILL.md を参照してください。


キーボードショートカット

キー操作
F5続行
F10ステップオーバー
F11ステップイン
Shift+F11ステップアウト
Ctrl/⌘+Dダークモード/ライトモードを切り替え

アーキテクチャ

debugium-server (Rust + Axum)
├── DAP proxy     — spawns / attaches to debug adapters (debugpy, js-debug, lldb-dap, java-debug, Metals, custom)
├── HTTP API      — /state, /sessions, /annotations, /findings, /watches, /timeline
├── WebSocket     — broadcasts DAP events + enriched stop data (changed vars, timeline) to UI
├── MCP stdio     — JSON-RPC 2.0 server exposing 64 tools for LLM integration
├── CLI control   — 13 subcommands to drive sessions from a second terminal
└── ~/.debugium/  — port file, session logs (events.ndjson), debug log

debugium-ui (Leptos + WASM)
├── CodeMirror 6  — source viewer with breakpoint gutters, exec arrow, LLM annotations, multi-tab
├── Reactive panels — Variables, Stack, Breakpoints, Findings, Watch, Timeline, Console (18 components)
└── WebSocket     — receives events, sends DAP commands, auto-reconnects with status indicator

対応言語とアダプター

言語--adapter フラグ前提条件検証済み
Pythonpython / debugpypip install debugpy✅
Node.jsnode / jsjs-debug(バンドル版、または vscode-js-debug からビルド)✅
TypeScripttypescript / ts / tsxPATH に js-debug と tsx または ts-node があること✅
C / C++lldb / codelldblldb-dap(macOS では Xcode、Linux では apt install lldb)✅
Rustlldb / rustlldb-dap と cargo build✅
Javajava / jvmmicrosoft/java-debug アダプター JAR✅
Scalametals / scala起動中の Metals DAP サーバー⚠️(Metals の起動が必要です)
WebAssemblywasmlldb-dap(LLVM ≥16)⚠️(WASM 対応の LLVM が必要です)
任意の DAP アダプター--config dap.jsondap.json.example を参照してください✅
リモートデバッグ

別のマシン(またはコンテナー)で実行中の DAP サーバーに接続します。

{
  "adapterId": "debugpy",
  "request": "attach",
  "host": "192.168.1.100",
  "port": 5678,
  "pathMappings": [{ "localRoot": ".", "remoteRoot": "/app" }]
}
debugium launch app.py --config remote.json

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。