Skip to content

Add jf mcp command to configure the remote JFrog MCP server - #3533

Merged
ehl-jf merged 1 commit into
masterfrom
JGC-468-mcp-command
Jun 5, 2026
Merged

ehl-jf merged 1 commit into
masterfrom
JGC-468-mcp-command

Conversation

@ehl-jf

@ehl-jf ehl-jf commented Jun 4, 2026 •

Copy link
Copy Markdown
Contributor

jf mcp — connect AI agents to the JFrog MCP server

The JFrog Platform hosts a remote MCP (Model Context Protocol) server at <platform-url>/mcp. This PR adds a jf mcp command group so you can discover that endpoint and connect AI agents to it directly from the CLI.

jf mcp show

Prints the MCP endpoint for the configured server.

$ jf mcp show
MCP endpoint:  https://my.jfrog.io/mcp
Server ID:     my-platform
Auth:          OAuth (completed in the agent / client platform)

$ jf mcp show --format json
{
  "serverId": "my-platform",
  "platformUrl": "https://my.jfrog.io/",
  "mcpUrl": "https://my.jfrog.io/mcp",
  "transport": "http"
}

The endpoint is derived from the configured platform URL. It can be overridden with the --mcp-url flag or the JFROG_CLI_MCP_URL environment variable.

jf mcp install

Configures an AI agent to connect to the JFrog MCP server. Supported agents: cursor and claude.

# Configure Cursor for the current project
$ jf mcp install --agent cursor

# Configure Claude Code at the user (global) level
$ jf mcp install --agent claude --global

# Preview the resulting configuration without writing it
$ jf mcp install --agent cursor --dry-run

Before writing anything, the command verifies the MCP server is reachable (use --skip-check to bypass). It then merges a server entry into the agent's configuration file, preserving any existing entries:

  • Cursor — .cursor/mcp.json (project) or ~/.cursor/mcp.json (global)
  • Claude — .mcp.json (project) or ~/.claude.json (global)

The entry contains only the endpoint URL; no credentials are stored. Authentication is completed through the agent's own OAuth flow. After installation, the command reminds you to finish authorization (for example, run /mcp in Claude Code, or approve the server in Cursor) before the connection becomes active.

jf mcp uninstall

Removes the JFrog entry from an agent's configuration, leaving any other configured MCP servers untouched.

$ jf mcp uninstall --agent cursor
$ jf mcp uninstall --agent claude --global

Flags

Flag Commands Description
--mcp-url show, install Override the MCP endpoint (defaults to <platform-url>/mcp).
--format show Output format: table (default) or json.
--agent install, uninstall Target agent: cursor or claude.
--global install, uninstall Apply to the user-level configuration instead of the current project.
--project-dir install, uninstall Project directory to configure (defaults to the current directory).
--name install, uninstall Name of the MCP server entry (defaults to jfrog).
--dry-run install, uninstall Print the resulting configuration without writing it.
--skip-check install Skip the readiness check before writing configuration.

Standard server-selection flags (--server-id, --url, credentials, etc.) are also supported.

Note: This command targets the remote, platform-hosted MCP server. It is unrelated to jf source-mcp, which runs a local MCP server for source-code analysis.

Usage reporting

All jf mcp subcommands report anonymous usage metrics consistently with other JFrog CLI commands (honoring JFROG_CLI_REPORT_USAGE). The reporting logic shared with jf api was factored into a small internal utils/usage package to avoid duplication.


  • All tests have passed. If this feature is not already covered by the tests, new tests have been added.
  • The pull request is targeting the master branch.
  • The code has been validated to compile successfully by running go vet ./....
  • The code has been formatted properly using go fmt ./....

@ehl-jf ehl-jf added the new feature Automatically generated release notes label Jun 4, 2026
@ehl-jf
ehl-jf force-pushed the JGC-468-mcp-command branch from 9e6e835 to 9906e40 Compare June 4, 2026 06:52
@ehl-jf ehl-jf changed the title JGC-468 - Add jf mcp command to configure the remote JFrog MCP server Add jf mcp command to configure the remote JFrog MCP server Jun 4, 2026
@ehl-jf ehl-jf added the safe to test Approve running integration tests on a pull request label Jun 4, 2026
Introduce a new `jf mcp` command namespace that surfaces and configures the
remote, platform-hosted MCP (Model Context Protocol) server:

- `jf mcp show`      prints the MCP endpoint (<platform-url>/mcp) as text or
                     JSON; overridable via --mcp-url or JFROG_CLI_MCP_URL.
- `jf mcp install`   configures an AI agent (cursor or claude) to connect to
                     the server. It first verifies the endpoint is reachable,
                     writes the agent-specific entry (cursor omits "type";
                     claude uses "type": "http"), and prompts the user to
                     complete OAuth in the agent. No credentials are stored.
- `jf mcp uninstall` removes the JFrog entry, leaving other servers untouched.

Supports --global/--project-dir scoping, --name, --dry-run and --skip-check.
@ehl-jf
ehl-jf force-pushed the JGC-468-mcp-command branch from 9906e40 to 188dc8d Compare June 4, 2026 07:06
@ehl-jf ehl-jf added safe to test Approve running integration tests on a pull request and removed safe to test Approve running integration tests on a pull request labels Jun 4, 2026
@ehl-jf
ehl-jf merged commit 4351777 into master Jun 5, 2026
92 of 93 checks passed
@ehl-jf
ehl-jf deleted the JGC-468-mcp-command branch June 5, 2026 05:10
social4hyq pushed a commit to social4hyq/homebrew-core that referenced this pull request Sep 20, 2026
jfrog-cli 2.108.0

Created-by: HarmonybrewBot
Commit-by: HarmonybrewBot
Merged-by: HarmonybrewBot
Description: Created by `brew bump`

---

Created with `brew bump-formula-pr`.<details>
  <summary>release notes</summary>
  <pre>## What changed in v2.108.0

> Auto-generated from 6 repositories · 2026-06-11  
> Comparing `v2.107.0` → `v2.108.0`

> ℹ️  No changes in: gofrog

### ✨ New Features

- **[build-info-go]** Added pnpm package support to recognise 403 Forbidden output [#389](jfrog/build-info-go#389) (@Phavya-jfrog)
- **[jfrog-cli]** Add jf mcp command to configure the remote JFrog MCP server [#3533](jfrog/jfrog-cli#3533) (@ehl-jf)
- **[jfrog-cli]** Add AI context description to commands [#3503](jfrog/jfrog-cli#3503) (@ehl-jf)
- **[jfrog-cli]** feat: add server id to login command [#3394](jfrog/jfrog-cli#3394) (@tim-goto)
- **[jfrog-cli]** RTECO-1021 - Enhance metrics visibility by including package manager context [#3534](jfrog/jfrog-cli#3534) (@fluxxBot)
- **[jfrog-cli]** Make nix command visible [#3539](jfrog/jfrog-cli#3539) (@reshmifrog)
- **[jfrog-cli]** Added Post Failure Run support for pnpm and Yarn [#3509](jfrog/jfrog-cli#3509) (@Phavya-jfrog)
- **[jfrog-cli-artifactory]** JGC-473 - Add AI-agent help text to artifactory commands [#455](jfrog/jfrog-cli-artifactory#455) (@ehl-jf)
- **[jfrog-cli-artifactory]** RTECO-1021 - Enhance metrics visibility by including package manager context [#481](jfrog/jfrog-cli-artifactory#481) (@fluxxBot)
- **[jfrog-cli-artifactory]** RTECO-1400 - Add path validation to prevent traversal attacks in artifact handling [#487](jfrog/jfrog-cli-artifactory#487) (@fluxxBot)
- **[jfrog-cli-core]** RTECO-1021 - Enhance metrics visibility by including package manager context [#1569](jfrog/jfrog-cli-core#1569) (@fluxxBot)
- **[jfrog-cli-security]** Support parsing SCA issues without components [#758](jfrog/jfrog-cli-security#758) (@attiasas)
- **[jfrog-cli-security]** JGC-473 - Add AI-agent help text to security commands [#760](jfrog/jfrog-cli-security#760) (@ehl-jf)
- **[jfrog-cli-security]** Feature/xray 138688 add yarn support for jf ca [#759](jfrog/jfrog-cli-security#759) (@gauriy-tech)
- **[jfrog-cli-security]** XRAY-144809 - CA command [Maven]: Add option to consider plugin deps [#771](jfrog/jfrog-cli-security#771) (@gauriy-tech)
- **[jfrog-cli-security]** Feature/xray 138688 add pnpm support for jf ca [#769](jfrog/jfrog-cli-security#769) (@gauriy-tech)

### 🐛 Bug Fixes

- **[build-info-go]** RTECO-1287 jf poetry install --only main captures all dependency  [#391](jfrog/build-info-go#391) (@reshmifrog)
- **[jfrog-cli]** RTECO 1296 fix repeated 401 errors before fallback authentication [#3537](jfrog/jfrog-cli#3537) (@reshmifrog)
- **[jfrog-cli]** RTECO-1287 jf poetry install --only main captures all dependency  [#3530](jfrog/jfrog-cli#3530) (@reshmifrog)
- **[jfrog-cli-artifactory]** Updated logic for extracting repository key in case of reverse proxy scenario [#458](jfrog/jfrog-cli-artifactory#458) (@naveenku-jfrog)
- **[jfrog-cli-core]** Revert "Fix reference token privilege escalation" [#1571](jfrog/jfrog-cli-core#1571) (@reshmifrog)
- **[jfrog-cli-security]** XRAY-140212 - Updated gradle dep tree jar with the missing deps fix [#751](jfrog/jfrog-cli-security#751) (@gauriy-tech)
- **[jfrog-cli-security]** fix: disable npm workspaces for native config reads [#762](jfrog/jfrog-cli-security#762) (@omribz156)

### 📦 Other Changes

- **[build-info-go]** RTECO-1365 Include e2e tests from jfrog cli to build-info-go [#390](jfrog/build-info-go#390) (@reshmifrog)
- **[jfrog-cli-artifactory]** pnpm update error output handling [#465](jfrog/jfrog-cli-artifactory#465) (@Phavya-jfrog)
- **[jfrog-cli-security]** Auto install Cocoapods when Podfile.lock not exist [#723](jfrog/jfrog-cli-security#723) (@attiasas)
- **[jfrog-client-go]** Use Windows system certificate store for CLI TLS transport [#1351](jfrog/jfrog-client-go#1351) (@RemiBou)

---

### 📊 Summary

| Repository | Changes |
|---|---|
| [jfrog-cli](https://github.com/jfrog/jfrog-cli) | 8 |
| [jfrog-cli-security](https://github.com/jfrog/jfrog-cli-security) | 8 |
| [jfrog-cli-artifactory](https://github.com/jfrog/jfrog-cli-artifactory) | 5 |
| [build-info-go](https://github.com/jfrog/build-info-go) | 3 |
| [jfrog-cli-core](https://github.com/jfrog/jfrog-cli-core) | 2 |
| [jfrog-client-go](https://github.com/jfrog/jfrog-client-go) | 1 |
| **Total** | **27** |

### 🔗 Module Version Changes

| Module | From | To |
|---|---|---|
| [build-info-go](https://github.com/jfrog/build-info-go) | `v1.13.1-0.20260528065004-80409c046540` | `v1.13.1-0.20260610071651-260ad6720e0d` |
| [jfrog-cli-artifactory](https://github.com/jfrog/jfrog-cli-artifactory) | `v0.8.1-0.20260603105750-3886c0f01286` | `v0.8.1-0.20260610074911-82ce7d90edbd` |
| [jfrog-cli-core](https://github.com/jfrog/jfrog-cli-core) | `v2.60.1-0.20260601130310-8d52a530da18` | `v2.60.1-0.20260609101026-df3091b39d06` |
| [jfrog-cli-security](https://github.com/jfrog/jfrog-cli-security) | `v1.29.3` | `v1.30.0` |
| [jfrog-client-go](https://github.com/jfrog/jfrog-client-go) | `v1.55.1-0.20260528115006-6ca9682a3255` | `v1.55.1-0.20260603130552-af1dd449b994` |
</pre>
  <p>View the full release notes at <a href="https://github.com/jfrog/jfrog-cli/releases/tag/v2.108.0">https://github.com/jfrog/jfrog-cli/releases/tag/v2.108.0</a>.</p>
</details>
<hr>

See merge request: Harmonybrew/homebrew-core!11303

This branch had an error being deployed

1 failed deployment
frogbot — 188dc8d9 Deployed Jun 4, 2026 by ehl-jf via scan-pull-request #4375
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new feature Automatically generated release notes safe to test Approve running integration tests on a pull request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants