MCP Steroid
What is devrig?
devrig is the product you install: a small command-line
tool that connects your AI coding agent (Claude Code, Codex, or Gemini) to a real JetBrains IDE.
It brings its own runtime, registers itself with your agent, and bridges the agent's calls to
the IDE — no manual MCP wiring.
devrig reaches the IDE through MCP Steroid, a JetBrains IDE plugin (this repo) that exposes the IDE's real semantic actions — typed refactorings, inspections, the debugger, and test runs — over the open Model Context Protocol. You install devrig; devrig uses MCP Steroid.
Unlike file-only assistants, this gives AI agents the same capabilities developers use: semantic code understanding, advanced refactorings, debugging, test running, visual awareness, and the entire IntelliJ API surface — all inside the running IDE's JVM.
One bridge, every IDE
A single devrig process connects your AI Agent to all the IntelliJ-family IDEs running on
your machine at once — each open on a different project — and can download and start more on demand.
What your agent gets
- Visual IDE understanding — screenshots + OCR + component tree
- UI automation — control the IDE like a human developer
- Native IntelliJ APIs — PSI, inspections, refactorings, and more
- Kotlin scripting — full platform access at runtime via
steroid_execute_code - Standard MCP protocol — connects to MCP-compatible AI agents
We continuously measure IDE-access vs plain-shell agents on real codebases. See the experiment findings for the evidence-based results.
Explore the CLI
The command tree is discoverable from either direction:
devrig --help
devrig tools
devrig help execute_code
devrig list_projects --json
devrig open_project --project_path="$PWD" --task_id=demo-open --reason="open current project from CLI" --wait --json
devrig prompt mcp-steroid://prompt/skill --project_name="PROJECT_NAME_FROM_LIST_PROJECTS" --json
list_projects is canonical (projects and project are compatibility aliases). Human output is
readable and may use terminal color; commands that advertise --json emit one ANSI-free document for
agents and scripts. Incomplete commands print focused help with every missing value. See the
devrig CLI guide or the contributor
CLI contract.
Install
1. Install devrig — one command
macOS / Linux
curl -fsSL https://devrig.dev/install.sh | sh
Windows
irm https://devrig.dev/install.ps1 | iex
The script does exactly two things: it installs the devrig CLI with its own bundled runtime into ~/.mcp-steroid, and it registers the stable devrig launcher on your PATH (if devrig is not found afterwards, open a new terminal or add ~/.mcp-steroid/bin to PATH). It never touches your agent configs or your IDEs — it finishes by printing the explicit next-step commands (steps 2 and 3 below). Installation is idempotent; re-run it any time to update.
2. Register your AI agent
devrig install claude
devrig install codex
devrig install gemini
devrig install <agent> registers devrig as the mcp-steroid MCP server in Claude Code, Codex, or Gemini (one of claude, codex, gemini). The entry lands in the user-scope config, so it is visible from every project. For any other MCP client, devrig install config prints the manual mcp.json snippet to paste. See the devrig CLI guide for the full command set.
3. Install the MCP Steroid plugin
devrig install plugin
devrig install plugin installs (or updates) the MCP Steroid plugin into every JetBrains IDE currently running on your machine — each IDE asks for your confirmation with its own native install dialog, so nothing is installed silently. Alternatively, install MCP Steroid from the JetBrains Marketplace (search MCP Steroid in Settings > Plugins > Marketplace).
Requirements
- A JetBrains IDE — IntelliJ IDEA, PyCharm, GoLand, WebStorm, Rider, CLion, or Android Studio.
- A standard desktop IDE runs with a real display: the normal GUI on macOS/Windows, or under Xvfb (a virtual X display) on Linux/CI. Plain non-backend headless mode is unsupported (best-effort, see #177); a frontendless Remote Development backend is supported. Backend product mode, not the presence of a client window or the raw AWT-headless flag alone, determines that distinction — see Running devrig in CI.
- An MCP-compatible AI agent (Claude Code, Codex, or Gemini).
For a clean machine with no IDE running, an agent can discover the download catalog with devrig backend download --json, install IDEA Ultimate 2026.2, and call steroid_open_project. The managed IU-262 backend starts on demand as a frontendless Remote Development backend with MCP Steroid included; no separate start command or client window is required. Readiness is the project path plus Maven/Gradle import, not a screenshot. See the devrig CLI guide.
Faster plugin updates (optional): add https://devrig.dev/updatePlugins.xml in Settings > Plugins > Gear icon > Manage Plugin Repositories.... Or install a ZIP from GitHub Releases via Install Plugin from Disk.
Verify the connection
When the plugin starts, it writes the connection details to .idea/mcp-steroid.md in each open project. Ask your agent to list the open projects:
claude -p "List all open projects using steroid_list_projects"
codex exec "List all open projects using steroid_list_projects"
gemini "List all open projects using steroid_list_projects"
If you see your open IntelliJ projects, the connection works. The plugin also serves the raw server URL at http://127.0.0.1:6315/mcp (Streamable HTTP transport) for clients that prefer to talk to the IDE directly.
Local development loop (deploy both halves from a checkout)
Working on MCP Steroid itself? Two Gradle tasks push your checkout into the live environment — no IDE restarts, no reinstalling.
One-time per IDE: install the Plugin Hot Reload plugin into every IDE you deploy to — download the ZIP from its Releases page, then Settings | Plugins | ⚙ | Install Plugin from Disk…, restart once. It exposes the local hot-reload endpoint (a ~/.<pid>.hot-reload marker per running IDE) that deployPlugin talks to.
# 1. devrig (the CLI): build, stage under ~/.mcp-steroid/devrig/, and regenerate the
# ~/.mcp-steroid/bin/devrig launcher via `devrig install devrig`.
./gradlew deployDevrig
# assert: the launcher runs YOUR build — a dev version stamped with your checkout's git hash
~/.mcp-steroid/bin/devrig version
# → <base>.19999-SNAPSHOT-<git hash of your HEAD>
# 2. the IDE plugin: build the plugin ZIP and hot-reload it into every running IDE.
./gradlew :ij-plugin:deployPlugin
# assert: the task output ends with SUCCESS per IDE —
# Installing and loading plugin: MCP Steroid (<base>.19999-SNAPSHOT-<git hash>)
# Plugin MCP Steroid reloaded successfully
Both tasks fail loudly instead of half-deploying: deployDevrig fails when devrig install devrig cannot write the launcher (e.g. a DEVRIG_BIN_NO_AUTO_REGISTER opt-out), and deployPlugin fails with No running IDEs found when no IDE with the hot-reload plugin is up, or on anything but SUCCESS from an IDE.
Compatible AI Agents
devrig install registers MCP Steroid directly with:
- Claude (Claude Code)
- Codex CLI
- Gemini CLI
MCP Steroid speaks the standard Model Context Protocol, so other MCP-capable clients can also connect to the plugin's server directly — see How it works.
Capabilities
Design philosophy in one breath
The MCP tool surface is intentionally small — power lives in
mcp-steroid:// prompt resources that teach agents to call IntelliJ's
APIs directly inside steroid_execute_code. New tools and new
McpScriptContext methods are not the lever for "agents deliver more";
better recipes are. The full canonical statement lives in
docs/PHILOSOPHY.md and is mirrored at runtime
as mcp-steroid://skill/design-philosophy.
8 MCP Tools
| Tool | Description |
|---|---|
Execute Code (steroid_execute_code) |
Run Kotlin code inside the IDE's JVM with full API access |
Execute Feedback (steroid_execute_feedback) |
Provide execution ratings back to agents |
Fetch Resource (steroid_fetch_resource) |
Fetch any mcp-steroid:// skill guide / recipe by URI |
Vision Screenshot (steroid_take_screenshot) |
Capture IDE screenshots with component metadata |
Vision Input (steroid_input) |
Send keyboard/mouse events to the IDE via a sequence-string DSL |
List Projects (steroid_list_projects) |
Discover all open IntelliJ projects |
List Windows (steroid_list_windows) |
Enumerate IDE windows and components |
Open Project (steroid_open_project) |
Open projects programmatically |
58 MCP Resources
Comprehensive guides and examples covering:
- LSP Operations (11) — Go to definition, find references, hover, completion
- IDE Power Operations (22) — Refactorings, code generation, project analysis
- Debugger Integration (7) — Breakpoints, thread control, debugging workflows
- Test Runner (10) — Run tests, inspect results, navigate test trees
- VCS Operations (3) — Git annotations, file history
- Project Workflows (4) — Open projects with trust levels
- Skill Guides (3) — IntelliJ API, debugger, and test runner guides
Featured Demo Videos
| Video | Description | Duration |
|---|---|---|
| Codex Debugs in IntelliJ IDEA | Full debugging session with Codex | 1:03:24 |
| CodeDozer Demo 5 | Most popular demo | 1:00 |
| CodeDozer & IntelliJ Debugger | Debugger integration showcase | 8:25 |
| Now we call tasks in IntelliJ | Task execution demo | 2:21 |
| Real Work in Monorepo Part 2 | Deep dive into real workflow | 18:37 |
| Cursor Talks with IntelliJ | Cursor integration | 0:44 |
Watch all demos: MCP Steroid Playlist
Configuration
MCP Steroid can be configured via IntelliJ's Registry (Help > Find Action > Registry) or JVM system properties.
| Registry Key | Default | Description |
|---|---|---|
mcp.steroid.server.port |
6315 | MCP server port (0 for auto-assign) |
mcp.steroid.server.host |
127.0.0.1 | Bind address (use 0.0.0.0 for Docker) |
mcp.steroid.storage.path |
(empty) | Custom storage path (default: ~/.mcp-steroid/runs/) |
See the full Configuration Documentation on the website.
Architecture
- Technology: Kotlin on the JVM, running inside the IDE process
- HTTP Server: Ktor 3.3.2 (Streamable HTTP + SSE)
- Protocol: Model Context Protocol (MCP)
- Default Port: 6315
- OCR: Tesseract 5.5.1
- Platform: IntelliJ Platform Plugin SDK
The server runs inside the IDE's JVM process — no inter-process communication. Direct access to the project model, semantic index, PSI tree, test runner, debugger, and VCS layer.
About the Project
MCP Steroid is an open-source project by Eugene Petrenko (@jonnyzzz), licensed under Apache 2.0.
Read more:
- MCP Steroid Is Now Open Source — announcement and project history
- IntelliJ as a Skill Factory — build custom agent skills without plugin development
- Project Assessment: 75 Days, 1300+ Commits — architecture and quality deep dive
IntelliJ IDEA, IntelliJ Platform, PyCharm, WebStorm, and JetBrains are trademarks of JetBrains s.r.o.
Contributing
We welcome contributions! See CONTRIBUTING.md for guidelines on how to get started, and CONTRIBUTORS.md for the list of people who have helped make MCP Steroid better.
License
MCP Steroid is open-source software licensed under the Apache License 2.0.
Links
- Website: devrig.dev
- JetBrains Marketplace: plugins.jetbrains.com
- Discord: discord.gg/e9qgQ7NeTC
- GitHub Issues: github.com/jonnyzzz/mcp-steroid/issues
- GitHub Sponsors: github.com/sponsors/jonnyzzz
- Blog: jonnyzzz.com
- YouTube: @jonnyzzz
- LinkedIn: jonnyzzz
- X/Twitter: @jonnyzzz
No comments yet
Be the first to share your take.