You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit b8b2e8e
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: CHANGELOG.md
+10Lines changed: 10 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
8
8
## [Unreleased]
9
9
10
+
### Added
11
+
-**Ruby debugging support** – launch and attach via `rdbg` (debug gem) DAP, including remote attach to containers and Kubernetes pods through port forwarding; conditional breakpoints, locals, repl-context expression evaluation, detach/re-attach (adapted from PR #88, contributed by [@Poyraxx](https://github.com/Poyraxx))
12
+
-**Direct-connect attach** – adapter policies can now return a `connect`-mode spawn config to attach straight to an already-listening DAP server without spawning an adapter process; policy selection is driven by the session language via a single shared `getPolicyForLanguage()` mapping instead of adapter-command sniffing
13
+
-**Ruby documentation** – `docs/ruby/README.md` user guide with verified launch/attach flows and Docker/Kubernetes remote-attach walkthroughs (`examples/ruby/remote-attach/`)
14
+
15
+
### Fixed
16
+
- Attach sessions no longer apply host-side file existence checks to breakpoint paths — attach targets may run on a remote filesystem (container, pod, other machine)
17
+
-`test:unit` now actually runs the per-adapter unit suites on Windows (the `tests/adapters/*/unit` glob never expanded under cmd.exe)
18
+
- CLI bundle prepare-pack workspace list updated for new adapter packages
-`packages/adapter-go/` - Go debug adapter (Delve)
@@ -326,6 +329,13 @@ packages/adapter-{language}/
326
329
- debugpy must be installed: `pip install debugpy`
327
330
- The system will auto-detect Python path or use `PYTHON_PATH` env var
328
331
332
+
### Ruby
333
+
- Ruby 2.7+ must be installed (3.1+ recommended — bundles the debug gem)
334
+
- The `debug` gem (rdbg) must be available: `gem install debug`
335
+
- Auto-detects ruby/rdbg from PATH and common install locations, or use `RUBY_PATH`/`RDBG_PATH` env vars
336
+
- Launch always stops at load (the entry pause is auto-continued for `stopOnEntry=false`); attach connects directly to a running `rdbg --open` DAP socket without spawning an adapter process, including remote targets via port mapping/`kubectl port-forward` (see `docs/ruby/README.md`)
337
+
- On Windows, rdbg's `.bat` shim is bypassed by running the sibling rdbg script via the Ruby interpreter (Node cannot spawn `.bat` without a shell)
mcp-debugger is a Model Context Protocol (MCP) server that exposes step-through debugging as structured tool calls. It lets AI agents set breakpoints, inspect variables, evaluate expressions, and step through running programs across six languages — driving real language debuggers through the Debug Adapter Protocol (DAP).
18
+
mcp-debugger is a Model Context Protocol (MCP) server that exposes step-through debugging as structured tool calls. It lets AI agents set breakpoints, inspect variables, evaluate expressions, and step through running programs across seven languages — driving real language debuggers through the Debug Adapter Protocol (DAP).
19
19
20
20
> 🆕 **v0.21.0** — the minimum runtime is now **Node.js 22+** (Node 20 reached end-of-life). See the [CHANGELOG](./CHANGELOG.md) for the full release history.
21
21
22
22
## ✨ Key Features
23
23
24
24
- 🌐 **Multi-language support** – Clean adapter pattern for any language
25
25
- 🐍 **Python debugging via debugpy** – Full DAP protocol support
26
+
- 💎 **Ruby debugging via rdbg** – Launch and attach workflows, including remote attach to containers and Kubernetes pods
- 🦀 **Rust debugging via CodeLLDB** – Debug Rust & Cargo projects (Linux/macOS; Windows needs the GNU toolchain — see [Rust on Windows](docs/rust-debugging-windows.md))
28
29
- 🐹 **Go debugging via Delve** – Full DAP support for Go programs
29
30
- ☕ **Java debugging via JDI bridge** – Launch and attach modes with JDK 21+
30
31
- 🔷 **.NET/C# debugging via netcoredbg** – Debug .NET applications with full DAP support
31
32
- 🧪 **Mock adapter for testing** – Test without external dependencies
32
-
- 🛰️ **Out-of-IDE & remote attach** – Attach over host/port to a process on another machine or inside a container (Python via debugpy, Java via JDWP), with source-path mapping
33
+
- 🛰️ **Out-of-IDE & remote attach** – Attach over host/port to a process on another machine or inside a container (Python via debugpy, Ruby via rdbg, Java via JDWP), with source-path mapping
33
34
- 🔌 **STDIO and Streamable HTTP transports** – Works with any MCP client (legacy SSE transport is deprecated)
- ⚡ **npx ready** – Run directly with `npx @debugmcp/mcp-debugger` - no installation needed
@@ -41,7 +42,7 @@ mcp-debugger is a Model Context Protocol (MCP) server that exposes step-through
41
42
42
43
## 🚀 Quick Start
43
44
44
-
> **Requirements:** Node.js 22+ for the server. Each language you debug also needs its own toolchain installed (Python + debugpy, Node.js, Go + Delve, JDK 21+, .NET SDK, or the Rust toolchain).
45
+
> **Requirements:** Node.js 22+ for the server. Each language you debug also needs its own toolchain installed (Python + debugpy, Ruby + the `debug` gem / `rdbg`, Node.js, Go + Delve, JDK 21+, .NET SDK, or the Rust toolchain).
45
46
46
47
### For MCP Clients (Claude Desktop, etc.)
47
48
@@ -108,7 +109,7 @@ mcp-debugger exposes debugging operations as MCP tools that can be called with s
108
109
// Tool: create_debug_session
109
110
// Request:
110
111
{
111
-
"language": "python", // or "javascript", "rust", "go", "java", "dotnet", or "mock" for testing
112
+
"language": "python", // or "ruby", "javascript", "rust", "go", "java", "dotnet", or "mock" for testing
112
113
"name": "My Debug Session"
113
114
}
114
115
// Response:
@@ -307,6 +308,7 @@ Then get the local variables:
307
308
- 🧩 [Adapter API Reference](./docs/architecture/adapter-api-reference.md) – Adapter, factory, loader, and registry contracts
308
309
- 🔄 [Migration Guide](./docs/migration-guide.md) – Upgrading to v0.15.0 (dynamic loading)
309
310
- 🐍 [Python Debugging Guide](./docs/python/README.md) – Python-specific features
311
+
- 💎 [Ruby Debugging Guide](./docs/ruby/README.md) – Ruby debugging with `rdbg`, including remote attach
310
312
- 🟨 [JavaScript Debugging Guide](./docs/javascript/README.md) – JavaScript/TypeScript features
311
313
- 🐹 [Go Debugging Guide](./docs/go/README.md) – Go debugging with Delve
Copy file name to clipboardExpand all lines: docs/agent-debugging-guide.md
+22-2Lines changed: 22 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# MCP Debugger Usage Guide for AI Agents
2
2
3
-
This guide explains how to correctly use the MCP Debugger tools when testing debugging functionality across all supported languages (Python, JavaScript, Rust, Go, Java, .NET/C#).
3
+
This guide explains how to correctly use the MCP Debugger tools when testing debugging functionality across all supported languages (Python, Ruby, JavaScript, Rust, Go, Java, and .NET/C#).
The MCP Debugger is fully functional for Python, JavaScript, Rust, Go, Java, and .NET/C#. The key insights are:
306
+
The MCP Debugger is fully functional for Python, Ruby, JavaScript, Rust, Go, Java, and .NET/C#. The key insights are:
288
307
-**JavaScript**: Stack trace filtering hides internal frames; may need `continue_execution` if initially stopped at internals
289
308
-**Python**: Use variablesReference to expand variable containers
309
+
-**Ruby**: Supports launch and attach flows through `rdbg`; use Bundler mode for Rails and RSpec-style entrypoints
290
310
-**Rust**: CodeLLDB adapter is vendored; the GNU toolchain is required for reliable debugging -- MSVC-built binaries may produce errors with CodeLLDB. Set `RUST_MSVC_BEHAVIOR` env var to control MSVC handling
291
311
-**Go**: Uses Delve's native DAP support
292
312
-**Java**: Use FQCN for breakpoints, pass `mainClass`/`classpath` via `dapLaunchArgs`
Copy file name to clipboardExpand all lines: docs/architecture/adapter-pattern-design.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
## Overview
4
4
5
-
The Debug Adapter Pattern powers mcp-debugger as a multi-language debugging platform supporting 7 languages (Python, JavaScript, Rust, Go, Java, .NET/C#, and Mock). This design uses a **dual-pattern architecture** that combines two complementary adapter patterns:
5
+
The Debug Adapter Pattern powers mcp-debugger as a multi-language debugging platform supporting 7 programming languages plus a mock adapter (Python, Ruby, JavaScript, Rust, Go, Java, and .NET/C#). This design uses a **dual-pattern architecture** that combines two complementary adapter patterns:
6
6
7
7
1.**IDebugAdapter Interface**: Complete adapter implementations for full language support
8
8
2.**AdapterPolicy Interface**: Lightweight policies for language-specific session management behaviors
Copy file name to clipboardExpand all lines: docs/getting-started.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Getting Started with Debug MCP Server
2
2
3
-
This guide will walk you through testing the Debug MCP Server locally with a simple Python example. The server also supports JavaScript, Rust, Go, Java, and .NET/C# debugging -- see the language-specific guides for details.
3
+
This guide will walk you through testing the Debug MCP Server locally with a simple Python example. The server also supports Ruby, JavaScript, Rust, Go, Java, and .NET/C# debugging -- see the language-specific guides for details.
0 commit comments