Skip to content

feat: add MCP config adapter for JetBrains IDEs#102

Draft
latekvo wants to merge 5 commits intomainfrom
ignacylatka/arg-103-add-mcp-config-adapter-for-jetbrains-ides
Draft

feat: add MCP config adapter for JetBrains IDEs#102
latekvo wants to merge 5 commits intomainfrom
ignacylatka/arg-103-add-mcp-config-adapter-for-jetbrains-ides

Conversation

@latekvo
Copy link
Copy Markdown
Member

@latekvo latekvo commented Apr 9, 2026

Adds a JetBrains MCP config adapter supporting IntelliJ IDEA, WebStorm, PyCharm, GoLand, Rider, CLion, PhpStorm, RubyMine, DataGrip, RustRover, Aqua, DataSpell, Fleet, and Android Studio

  • Only works with local .idea/mcp.json project level configs for now

Resolves ARG-103

Add a JetBrains adapter to the MCP configuration system that supports
IntelliJ IDEA, WebStorm, PyCharm, GoLand, Rider, CLion, PhpStorm,
RubyMine, DataGrip, RustRover, Aqua, DataSpell, Fleet, and Android
Studio.

The adapter detects JetBrains installations by scanning the platform-
specific config directory (~/Library/Application Support/JetBrains on
macOS, ~/.config/JetBrains on Linux) for known product prefixes. It
also detects local .idea project directories.

Project-level config writes to .idea/mcp.json. Global config targets
the most recent product version directory's options/mcp.json.
@latekvo latekvo marked this pull request as draft April 9, 2026 15:23
@latekvo
Copy link
Copy Markdown
Member Author

latekvo commented Apr 13, 2026

Postponing till 1.0.0

latekvo added 2 commits April 17, 2026 18:25
- remove() now uses writeJsonOrRemove so empty configs are deleted (matches peer adapters; unblocks generic uninstall test)
- globalPath() picks newest product version with numeric parsing so 2025.10 > 2025.2 across all detected products
- Product matcher requires a digit right after the prefix to prevent collisions (PyCharm vs PyCharmCE) and ignores non-versioned dirs
- Scope detection to macOS only
- Add JetBrains row to the Supported Editors table
Comment thread packages/mcp/src/cli/mcp-configs.ts Outdated
Comment on lines +613 to +629
const JETBRAINS_PRODUCTS = [
"IntelliJIdea",
"WebStorm",
"PyCharm",
"PyCharmCE",
"GoLand",
"Rider",
"CLion",
"PhpStorm",
"RubyMine",
"DataGrip",
"RustRover",
"Aqua",
"DataSpell",
"Fleet",
"AndroidStudio",
];
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nearly each of these has a unique global config directory. So for now at least we're limiting ourselves to local-only, since on the project level they all support the .idea/ config directory.

latekvo added 2 commits April 17, 2026 18:52
.idea/ is shared by every IntelliJ-platform IDE (IntelliJ, WebStorm, PyCharm,
GoLand, Rider, CLion, PhpStorm, RubyMine, DataGrip, RustRover, Aqua, DataSpell,
Android Studio), so a single .idea/mcp.json covers them all — no need to scan
per-product global dirs or fan out writes. Fleet uses a different layout entirely
and is dropped. Mirrors the VS Code adapter shape: globalPath() returns null
and init.ts already falls back to the project path for project-only adapters.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant