Sandbox
@jonnyzzz/mcp-steroid

MCP bridge for JetBrains IDEs and coding agents

MCP Steroid lets an agent talk to a running JetBrains IDE through the Model Context Protocol. The plugin exposes IDE actions like screenshots, keyboard input, project discovery, refactorings, debugging, and test runs, while the `devrig` CLI installs and connects the pieces.

78 stars20 forksKotlinUpdated 15d ago
Codex debugs an application in IntelliJ IDEA -- MCP Steroid
Eugene Petrenko290 views • 6 months ago

Videos about this repo

Who it's for

Builders who want their agent to use a real JetBrains IDE instead of only reading files.

What it delivers

You can let an agent inspect, edit, debug, and test inside the IDE with the same tools you use by hand.

What it does

IDE actions over MCP

Exposes `steroid_execute_code`, `steroid_take_screenshot`, `steroid_input`, `steroid_list_projects`, `steroid_list_windows`, and `steroid_open_project`.

Kotlin code execution in the IDE JVM

Runs Kotlin inside the live IDE process so the agent can reach IntelliJ APIs, PSI, inspections, refactorings, and the debugger.

Visual IDE understanding

Captures screenshots with OCR and component metadata so the agent can work from what is on screen.

Project and window discovery

Lets the agent list open projects and IDE windows, then open projects programmatically.

CLI installation and registration

Uses `devrig` to install the agent bridge, register MCP settings, and install the plugin into running IDEs.

Prompt resources and skill guides

Provides `mcp-steroid://` resources that teach agents how to use IntelliJ APIs, debugger flows, and test runner workflows.

How to get it

  1. 1macOS / Linux
    curl -fsSL https://devrig.dev/install.sh | sh
  2. 2Windows
    irm https://devrig.dev/install.ps1 | iex
  3. 3Run
    devrig install claude
    devrig install codex
    devrig install gemini
  4. 4Run
    devrig install plugin
  5. 5When the plugin starts, it writes the connection details to .idea/mcp-steroid.md in each…
    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"

README

official JetBrains project

MCP Steroid

MCP Steroid Logo

Connect your AI coding agent to a real JetBrains IDE
Install devrig, and your agent works through the whole IntelliJ — not just the files

License JetBrains Marketplace Discord

WebsiteDemo VideosBlog PostDiscord


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.

One devrig bridge connects your AI Agent to all running IDEs at once — and can start more

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

ToolDescription
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

VideoDescriptionDuration
Codex Debugs in IntelliJ IDEAFull debugging session with Codex1:03:24
CodeDozer Demo 5Most popular demo1:00
CodeDozer & IntelliJ DebuggerDebugger integration showcase8:25
Now we call tasks in IntelliJTask execution demo2:21
Real Work in Monorepo Part 2Deep dive into real workflow18:37
Cursor Talks with IntelliJCursor integration0: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 KeyDefaultDescription
mcp.steroid.server.port6315MCP server port (0 for auto-assign)
mcp.steroid.server.host127.0.0.1Bind 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:

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


Built with care for the AI agent developer community

Files in the repo

Repository payload66 top-level entries
  • .gemini
  • .github
  • .idea
  • agent-output-filter
  • ai-agents
  • buildSrc
  • closeable-stack
  • devrig-common
  • docker
  • docs
  • execution-storage
  • experiments-report
  • gradle
  • ij-plugin
  • installer-gen
  • intellij-downloader
  • kotlin-cli
  • mcp-core
  • mcp-http
  • mcp-stdio
  • mcp-steroid-server
  • npx
  • npx-kt
  • ocr-common
  • ocr-tesseract
  • prompt-generator
  • prompts
  • prompts-api
  • release
  • test-experiments
  • test-helper
  • test-integration
  • test-integration-agent-launch
  • website
  • website-gen
  • .dockerignore
  • .editorconfig
  • .gitignore
  • AGENTS.md
  • build.gradle.kts
  • CLAUDE.md
  • CNAME
  • CODE_OF_CONDUCT.md
  • CONTRIBUTING.md
  • CONTRIBUTORS.md
  • EULA
  • gradle.properties
  • gradlew
  • gradlew.bat
  • IMPROVEMENTS.md
  • LICENSE
  • NOTICE
  • PLAN.md
  • README.md
  • settings.gradle.kts
  • TASKS.md
  • TODO-APPLY-PATCH.md
  • TODO-DPAIA.md
  • TODO-EXPERIMENTAL-PROJECT-SCENARIOS.md
  • TODO-GROWTH.md
  • TODO-INSTALLER.md
  • TODO-INTERNAL-API.md
  • TODO-NPX-BOOTSTRAPPER.md
  • TODO-TC-COVERAGE-AUDIT.md
  • TODO.md
  • VERSION

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More connectors

High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.

43k

Universal provider proxy for OpenAI Codex & Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code

14k
okf-memory/
okf-agent-memory

Git-native persistent memory for AI coding agents. Implements Google OKF v0.2 with sub-300µs in-memory BM25 search, embedded MCP server, and progressive disclosure. Slashes token bloat by 80% with zero external databases or dependencies. Built in pure Go.

547
tirth8205/
code-review-graph

Local-first code intelligence graph for MCP and CLI. Builds a persistent map of your codebase so AI coding tools read only what matters, with benchmarked context reductions on reviews and large-repo workflows.

31k
2akouwu/
reverify

Stop your AI from making things up — it proposes, deterministic tools decide, every claim checked against ground truth with evidence. Grounded facts and context survive resets. Reverse engineering is the proving ground. MCP server + CLI.

1.1k
t8y2/dbxConnectors

20 MB lightweight cross-platform database client for 90+ databases, including MySQL, PostgreSQL, SQLite, Redis, MongoDB, DuckDB, SQL Server, and Dameng. Built-in AI, MCP Server, CLI, desktop and Docker. | 轻量级跨平台数据库管理工具,支持 MySQL、PostgreSQL、SQLite、Redis、MongoDB、达梦等 90+ 数据库,提供桌面端、Docker、CLI、内置 AI 助手和 MCP Server。

19k