Skip to content

AX-1934 - Auto-deliver JFrog skills and JFrog MCP to Junie for JetBrains IDEs - #4

Merged
yanivt-jfrog merged 8 commits into
mainfrom
AX-1934-junie-mcp-tool-validation
Aug 19, 2026
Merged

AX-1934 - Auto-deliver JFrog skills and JFrog MCP to Junie for JetBrains IDEs#4
yanivt-jfrog merged 8 commits into
mainfrom
AX-1934-junie-mcp-tool-validation

Conversation

@yanivt-jfrog

@yanivt-jfrog yanivt-jfrog commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Delivers the JFrog Agent Skills bundle (jfrog-skills v0.20.0) and the JFrog (remote) MCP server to Junie automatically on IDE startup: JfrogJunieDeployer unpacks skills into ~/.junie/skills/ and merges a jfrog entry into ~/.junie/mcp/mcp.json (host resolved from JFROG_PLATFORM_URL, falling back to the jf CLI config). Adds Marketplace publishing tooling (signing + publishing + workflow_dispatch workflow), sets the compliant name JFrog for Coding Agents, and drops the until-build cap for forward compatibility. Trims the initial scaffold to keep this first release focused — removes the unused native IDE-MCP tool stubs, the manual configure action, and the unused kotlinx-serialization setup (standardizing on the IDE-provided Gson). Verified: buildPlugin, validator, and verifyPlugin (Compatible, dynamic) all pass.

Why those were removed

JfrogToolset.kt + extension + com.intellij.mcpServer: these contributed native stub JFrog tools (Artifactory search, Xray scan, AI Catalog lookup) into the IDE's built-in MCP server. They had no real backend, and they forced a hard dependency on the com.intellij.mcpServer bundled plugin (narrower compatibility). This release ships the real JFrog remote MCP (OAuth) via ~/.junie/mcp/mcp.json, which supersedes the stubs. Native IDE-side MCP tools are a phase-2 item.
ConfigureJfrogMcpAction.kt + + : a manual Tools → "Configure JFrog MCP…" fallback (copied config to clipboard, opened settings). Once JfrogJunieDeployer writes ~/.junie/mcp/mcp.json automatically on startup, the manual action and its notification group are redundant.
jfrog-junie.xml + <depends optional="true" … org.jetbrains.junie>: an optional dependency on Junie's plugin id we could never confirm against a real build, pointing at an empty config file. An unverified id risks classloader problems for zero benefit.

yanivt-jfrog and others added 6 commits August 17, 2026 14:04
- JfrogToolset: add required @McpTool/@McpDescription annotations so the
  three tools actually register with the IDE MCP server (bare suspend funs
  are ignored in 2025.2+; confirmed against bundled mcpserver.jar).
- build.gradle.kts: widen untilBuild 252.* -> 262.* so the plugin installs
  in current 2026.2 (build 262) IDEs.
- README: document the one-time "Auto-Configure Junie" step and router-only
  behavior; trim one-time Marketplace setup from the publishing section.
- jfrog-junie.xml: correct the comment to reflect validated 262 behavior
  (Junie must be auto-configured; tools default to router-only).

Validated live on IntelliJ IDEA 2026.2 with Junie: tools install, register,
and appear as mcp_idea_jfrog_* after Auto-Configure.

Co-authored-by: Cursor <cursoragent@cursor.com>
Ship the JFrog skills bundle and a JFrog (remote) MCP server entry the
way the Cursor/Claude/Codex plugins do, but via plugin code since a
compiled JetBrains plugin can't drop files into place directly.

On IDE startup JfrogJunieDeployer materializes into the user's ~/.junie:
- ~/.junie/skills/       the bundled jfrog-skills tree (version-marker guarded)
- ~/.junie/mcp/mcp.json  a merged "jfrog" entry, URL resolved from JFROG_PLATFORM_URL

The skill tree is zipped into the plugin jar at build time; the MCP
template (.junie/mcp/mcp.json) mirrors the cursor-plugin shape. Skills
stay pinned at v0.20.0 for this first release; upgrading to the latest
is a follow-up PR.

Co-authored-by: Cursor <cursoragent@cursor.com>
Drop the optional <depends config-file="jfrog-junie.xml">org.jetbrains.junie
plus the empty jfrog-junie.xml it loaded. It did nothing (delivery runs via
the unconditional JfrogJunieDeployer startup activity; IDE-native tools via
com.intellij.mcpServer), targeted an unconfirmed alias id, and was a plausible
aggravator of a runIde-sandbox loader-constraint violation in Junie's
matterhorn.core module. Document Junie's double-descriptor packaging and the
"validate in a real IDE, not the sandbox" guidance in CONTRIBUTING.md.

Co-authored-by: Cursor <cursoragent@cursor.com>
A GUI IDE launched from the Dock/Finder does not inherit the shell's
JFROG_PLATFORM_URL, so the deployer wrote a literal <JFROG_PLATFORM_URL>
placeholder and the jfrog MCP failed with "Cannot reach :443". Fall back to
the default server URL in ~/.jfrog/jfrog-cli.conf.v* (read directly, since the
jf CLI may not be on the IDE's PATH) before writing a placeholder.

Co-authored-by: Cursor <cursoragent@cursor.com>
Stop tracking the Kotlin compiler session dir (.kotlin/) accidentally added in
the previous commit and add it to .gitignore.

Co-authored-by: Cursor <cursoragent@cursor.com>
@yanivt-jfrog
yanivt-jfrog requested a review from a team as a code owner August 18, 2026 09:26
@yanivt-jfrog yanivt-jfrog changed the title AX-1934 - Add Jfrog mcp tool validation AX-1934 - Auto-deliver JFrog skills and JFrog MCP to Junie for JetBrains IDEs Aug 18, 2026
Comment thread src/main/kotlin/com/jfrog/jetbrains/startup/JfrogJunieDeployer.kt
Comment thread src/main/kotlin/com/jfrog/jetbrains/startup/JfrogJunieDeployer.kt
Comment thread src/main/kotlin/com/jfrog/jetbrains/startup/JfrogJunieDeployer.kt
Comment thread src/main/kotlin/com/jfrog/jetbrains/startup/JfrogJunieDeployer.kt Outdated
Comment thread src/main/kotlin/com/jfrog/jetbrains/startup/JfrogJunieDeployer.kt Outdated
Comment thread src/main/kotlin/com/jfrog/jetbrains/startup/JfrogJunieDeployer.kt Outdated
Comment thread .github/workflows/publish-marketplace.yml Outdated
@yanivt-jfrog
yanivt-jfrog merged commit 2d49834 into main Aug 19, 2026
3 checks passed
@yanivt-jfrog
yanivt-jfrog deleted the AX-1934-junie-mcp-tool-validation branch August 19, 2026 06:56
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.

2 participants