The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Jetbrains Debugger MCP Plugin listing page.
A JetBrains IDE plugin that exposes an MCP (Model Context Protocol) server, giving AI coding assistants full programmatic control over the debugger. Set breakpoints, step through code, inspect variables, and evaluate expressions—all driven autonomously by your AI assistant.
Verified in CI (IntelliJ Plugin Verifier): IntelliJ IDEA, PyCharm, WebStorm, GoLand. Community-tested: RustRover, Android Studio, PhpStorm May work (untested): RubyMine, CLion, DataGrip
Debugger MCP Server gives AI coding assistants complete control over the IDE's debugger through the Model Context Protocol (MCP). Let your AI assistant debug code autonomously—from setting breakpoints to inspecting variables to stepping through execution.
Debug Session Management
Breakpoint Management
Execution Control
Variable Inspection
Expression Evaluation
Stack & Thread Navigation
Companion Skill
.claude/skills/ or export as .skill/.zipUnlike manual debugging, this plugin enables:
Perfect for AI-assisted development workflows where you want your assistant to investigate bugs, validate fixes, or explore code behavior autonomously.
Settings/Preferences > Plugins > Marketplace > Search for "Debugger MCP Server" > Install
Go to JetBrains Marketplace and install it by clicking the Install to ... button.
Download the latest version from the JetBrains Marketplace versions page and install it manually: Settings/Preferences > Plugins > ⚙️ > Install plugin from disk...
http://127.0.0.1:{PORT}/debugger-mcp/streamable-httpThe easiest way to configure your AI assistant:
Just tell your AI assistant:
"Debug the calculateTotal function—set a breakpoint at line 42, run the tests in debug mode, and show me the variable values when it pauses."
Or for more complex debugging:
"There's a bug in UserService. Set a breakpoint at line 42, run the tests in debug mode, and when it breaks, show me the stack trace and all local variables."
The easiest way is to use the "Install on Coding Agents" button in the IDE's tool window—it generates the correct command with your IDE-specific server name and port.
Or run this command manually in your terminal (replace <ide>-debugger and port with your IDE's values):
IDE-specific server names and default ports:
| IDE | Server Name | Default Port |
|---|---|---|
| IntelliJ IDEA | intellij-debugger | 29190 |
| Android Studio | android-studio-debugger | 29191 |
| PyCharm | pycharm-debugger | 29192 |
| WebStorm | webstorm-debugger | 29193 |
| GoLand | goland-debugger | 29194 |
| PhpStorm | phpstorm-debugger | 29195 |
| RubyMine | rubymine-debugger | 29196 |
| CLion | clion-debugger | 29197 |
| RustRover | rustrover-debugger | 29198 |
| DataGrip | datagrip-debugger | 29199 |
| Aqua | aqua-debugger | 29200 |
| DataSpell | dataspell-debugger | 29201 |
| Rider | rider-debugger | 29202 |
Options:
--scope user - Adds globally for all projects--scope project - Adds to current project onlyTo remove: claude mcp remove intellij-debugger (use your IDE's name)
The easiest way is to use the "Install on Coding Agents" button in the IDE's tool window—it generates the correct command with your IDE-specific server name and port.
Or run this command manually in your terminal (replace <ide>-debugger and port with your IDE's values):
To remove: codex mcp remove intellij-debugger (use your IDE's name)
Add to ~/.gemini/settings.json:
Add to .cursor/mcp.json in your project root or ~/.cursor/mcp.json globally:
Add to ~/.codeium/windsurf/mcp_config.json:
Note: Replace
intellij-debuggerand the port with your IDE's server name and default port (see table above).
Note: The port can be changed in Settings > Tools > Debugger MCP Server.
The plugin provides 23 MCP tools organized by category:
| Tool | Description |
|---|---|
list_run_configurations | List all available run configurations in the project |
execute_run_configuration | Execute a run configuration in debug or run mode |
| Tool | Description |
|---|---|
list_debug_sessions | List all active debug sessions with state and metadata |
start_debug_session | Start a new debug session for a run configuration |
stop_debug_session | Stop/terminate a debug session |
get_debug_session_status | Get comprehensive status (variables, stack, source) in one call |
| Tool | Description |
|---|---|
list_breakpoints | List all breakpoints with optional filtering |
set_breakpoint | Set a line breakpoint with condition, log message, suspend policy |
remove_breakpoint | Remove a breakpoint by ID or location |
| Tool | Description |
|---|---|
resume_execution | Resume paused execution |
pause_execution | Pause running execution |
step_over | Step over to next line (without entering methods) |
step_into | Step into method calls |
step_out | Step out of current method |
run_to_line | Continue execution until a specific line |
wait_for_pause | Block until the session pauses (breakpoint, step, manual) and return full status |
| Tool | Description |
|---|---|
get_stack_trace | Get current call stack with file/line/method info |
select_stack_frame | Change debugger context to a different stack frame |
list_threads | List all threads with state information |
| Tool | Description |
|---|---|
get_variables | Get all variables visible in current stack frame |
set_variable | Modify a variable's value during debugging |
| Tool | Description |
|---|---|
get_source_context | Get source code around current execution point |
| Tool | Description |
|---|---|
evaluate_expression | Evaluate an expression or code fragment in debug context |
Note: For detailed tool documentation with parameters, examples, and response formats, see USAGE.md.
When multiple projects are open in a single IDE window, you must specify which project to use with the project_path parameter:
If project_path is omitted:
The plugin adds a "Debugger MCP Server" tool window (bottom panel) that shows:
| Action | Description |
|---|---|
| Refresh | Refresh server status and command history |
| Copy URL | Copy the MCP server URL to clipboard |
| Clear History | Clear the command history |
| Export History | Export history to JSON file |
| Settings | Open settings |
| Star/Report Issues | Link to GitHub repository |
| Try IDE Index MCP Server | Link to companion plugin |
| Buy Me a Coffee | Support the developer |
| Get Companion Skill | Install or export the companion AI skill for enhanced debugging guidance |
| Install on Coding Agents | Install MCP server on AI assistants (prominent button on right) |
| Code | Name | Description |
|---|---|---|
| -32700 | Parse Error | Failed to parse JSON-RPC request |
| -32600 | Invalid Request | Invalid JSON-RPC request format |
| -32601 | Method Not Found | Unknown method name |
| -32602 | Invalid Params | Invalid or missing parameters |
| -32603 | Internal Error | Unexpected internal error |
Tool failures are not JSON-RPC errors. A tool that fails returns a successful result whose
payload carries isError: true and a human-readable message in content[0].text, so the model
can read what went wrong and retry:
The JSON-RPC error channel is reserved for protocol-level problems — malformed JSON, an
unparseable message, an unknown method (not an unknown tool).
Project resolution is the one failure that returns structured JSON in content[0].text, because
an agent that picked the wrong project needs the list of real ones to retry with:
error is one of no_project_open, project_not_found or multiple_projects_open.
Configure the plugin at Settings > Tools > Debugger MCP Server:
| Setting | Default | Description |
|---|---|---|
| Server Host | 127.0.0.1 | Bind address for the MCP server. Use 127.0.0.1 for localhost only, 0.0.0.0 for all interfaces, or a custom IP |
| Server Port | IDE-specific | Each IDE has a unique default port (e.g., 29190 for IntelliJ, 29192 for PyCharm). Range: 1024-65535 |
| Max History Size | 1000 | Maximum number of commands to keep in history |
| Evaluate Expression Safety Mode | Unrestricted | Controls plugin-side filtering before evaluate_expression reaches the debugger evaluator. Unrestricted preserves previous behavior. Default blocklist blocks built-in risky categories. Read-only also rejects mutation syntax and method calls that cannot be proven read-only |
| Additional blocked regex patterns | None | Optional custom deny rules for evaluate_expression. They apply in Default blocklist and Read-only, never in Unrestricted, and match expression text after comments and string literals are removed |
evaluate_expression is powerful because IDE debuggers can call methods and run code in the debugged process. The safety setting is a best-effort guardrail, not a sandbox.
Custom regex rules are additional blocked patterns. They do not replace the built-in restrictions.
Verified in CI (IntelliJ Plugin Verifier): IntelliJ IDEA, PyCharm, WebStorm, GoLand. Community-tested: RustRover, Android Studio, PhpStorm May work (untested): RubyMine, CLion, DataGrip, Aqua, DataSpell, Rider
The plugin runs an embedded Ktor CIO server on an IDE-specific port and supports three MCP transports.
The protocol itself — JSON-RPC framing, the initialize handshake, version negotiation, session
lifecycle and batching — is handled by the official
MCP Kotlin SDK; the plugin owns only the
routes, the loopback-Origin guard, and the debugger tools themselves.
This approach:
2024-11-05 up to 2025-11-25Contributions are welcome! See CONTRIBUTING.md for the build/test quickstart
and the project-specific tripwires (JDK 21, pumpingEdt, golden-contract regeneration). For
security concerns, see SECURITY.md. In short:
./gradlew testThis project is licensed under the MIT License - see the LICENSE file for details.
Plugin based on the IntelliJ Platform Plugin Template.