Connect AI Agents to the JFrog MCP Server

The jf mcp command group discovers and configures the remote MCP (Model Context Protocol) server hosted on the JFrog Platform. Use it to print the MCP endpoint or to wire an AI agent (Cursor or Claude Code) directly to your JFrog Platform instance so the agent can call JFrog APIs on your behalf.

Prerequisites

To use jf mcp:

  • JFrog CLI installed and at least one server configured with jf config add (or pass --url inline).
  • For jf mcp install: a supported AI agent (Cursor or Claude Code) installed on the workstation.
  • For jf mcp install --global: write access to your home directory (for example, ~/.cursor/ or ~/.claude.json).

Subcommands

The following table lists the jf mcp subcommands.

SubcommandDescription
jf mcp showPrint the MCP endpoint URL for the configured server
jf mcp installConfigure an AI agent (Cursor or Claude) to connect to the JFrog MCP server
jf mcp uninstallRemove the JFrog entry from an agent's MCP configuration

jf mcp show

Prints the MCP endpoint (<platform-url>/mcp) for the configured server. Use this to confirm the endpoint before installing it in an agent, or to retrieve the URL for manual configuration.

Synopsis

jf mcp show [--mcp-url=<url>] [--format=<format>] [--server-id=<id>]

Aliases: none

Options

The following table lists options for jf mcp show.

FlagDefaultDescription
--mcp-urlOverride the MCP endpoint URL. Defaults to <platform-url>/mcp from the configured server
--formattableOutput format: table (default) or json
--server-idUse a specific configured server instead of the default
--urlJFrog Platform base URL (for example https://acme.jfrog.io/). Overrides the configured server

Output

--format table

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

--format json

{
  "serverId": "my-platform",
  "platformUrl": "https://my.jfrog.io/",
  "mcpUrl": "https://my.jfrog.io/mcp",
  "transport": "http"
}

jf mcp install

Configures an AI agent to connect to the JFrog MCP server. The command:

  1. Verifies the MCP endpoint is reachable (use --skip-check to bypass).
  2. Merges a JFrog server entry into the agent's configuration file, preserving existing entries.
  3. Reminds you to complete OAuth authorization in the agent before the connection becomes active.

No credentials are stored. Authentication is completed through the agent's own OAuth flow after installation.

Supported configuration targets:

AgentProject scope (default)Global scope (--global)
Cursor.cursor/mcp.json~/.cursor/mcp.json
Claude.mcp.json~/.claude.json

Synopsis

jf mcp install --agent=<agent> [--global] [--project-dir=<dir>] [--name=<name>] [--mcp-url=<url>] [--dry-run] [--skip-check] [--server-id=<id>]

Aliases: none

Options

The following table lists options for jf mcp install.

FlagDefaultDescription
--agentRequired. Target AI agent: cursor or claude
--globalfalseApply to the user-level (global) configuration instead of the current project
--project-dircurrent dirProject directory to configure
--namejfrogName of the MCP server entry written to the agent configuration
--mcp-urlOverride the MCP endpoint URL. Defaults to <platform-url>/mcp
--dry-runfalsePrint the resulting configuration without writing it
--skip-checkfalseSkip the MCP server reachability check before writing configuration
--server-idUse a specific configured server instead of the default
--urlJFrog Platform base URL. Overrides the configured server URL

jf mcp uninstall

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

Synopsis

jf mcp uninstall --agent=<agent> [--global] [--project-dir=<dir>] [--name=<name>] [--server-id=<id>]

Aliases: none

Options

The following table lists options for jf mcp uninstall.

FlagDefaultDescription
--agentRequired. Target AI agent: cursor or claude
--globalfalseRemove from the user-level (global) configuration instead of the current project
--project-dircurrent dirProject directory from which to remove the entry
--namejfrogName of the MCP server entry to remove
--server-idUse a specific configured server instead of the default

Environment Variables

The following table lists the related environment variables.

VariableDescription
JFROG_CLI_MCP_URLOverride the MCP endpoint URL. Equivalent to passing --mcp-url on any jf mcp command
JFROG_CLI_REPORT_USAGEWhen set to false, disables anonymous usage reporting for all jf mcp subcommands

Examples

Show the MCP Endpoint

To print the MCP endpoint for the default configured server:

jf mcp show

To print the endpoint as JSON:

jf mcp show --format json

To print the endpoint for a specific configured server:

jf mcp show --server-id=my-platform

Configure Cursor for a Project

To configure Cursor for the current project:

  1. Run:
jf mcp install --agent cursor
  1. The CLI writes a server entry to .cursor/mcp.json in the current directory and prints:
JFrog MCP server entry written to .cursor/mcp.json
To complete the connection, approve the "jfrog" server in Cursor's MCP panel.
  1. Open Cursor, go to Settings > MCP, and approve the jfrog server to finish the OAuth flow.

Configure Cursor Globally

To configure Cursor for all projects at the user level:

jf mcp install --agent cursor --global

The CLI writes the entry to ~/.cursor/mcp.json.

Configure Claude Code Globally

To configure Claude Code at the global level:

jf mcp install --agent claude --global

The CLI writes the entry to ~/.claude.json. After installation, run /mcp in Claude Code to approve the server and complete authorization.

Preview Without Writing

To preview the resulting configuration without making any changes:

jf mcp install --agent cursor --dry-run

The CLI prints the configuration that would be written but makes no changes to disk.

Use a Custom MCP URL

To configure an agent with a non-default MCP endpoint:

jf mcp install --agent claude --mcp-url=https://acme.jfrog.io/mcp

Remove the JFrog Entry from Cursor

To remove the JFrog MCP server entry from the current project's Cursor configuration:

jf mcp uninstall --agent cursor

To remove it from the global Cursor configuration:

jf mcp uninstall --agent cursor --global

When to Use

  • jf mcp show: Use to confirm the MCP endpoint before configuring an agent, or to retrieve the URL for a manual configuration.
  • jf mcp install: Use to connect Cursor or Claude Code to the JFrog MCP server so the agent can call JFrog Platform APIs (Artifactory, Security, Access, and others) during AI-assisted workflows.
    • Use --global to apply the configuration to all projects on your workstation.
    • Use --dry-run to verify the output before committing changes.
  • jf mcp uninstall: Use to disconnect an agent from the JFrog MCP server, for example when rotating platforms or cleaning up configuration.

Important Notes

  • The command stores no credentials in the agent configuration. The entry that jf mcp install writes contains only the endpoint URL. The agent's OAuth flow completes authentication after installation.
  • After running jf mcp install, the connection isn't active until you complete authorization in the agent. For example, run /mcp in Claude Code or approve the server in Cursor's MCP settings panel.
  • jf mcp install merges the JFrog entry into the existing agent configuration. The command preserves any other MCP servers already configured in the file.
  • By default, jf mcp install verifies that the MCP endpoint is reachable before writing any configuration. Use --skip-check to bypass this check in environments where the endpoint may not be accessible at configuration time (for example, inside CI).
  • The --name flag controls the key used for the JFrog entry (default: jfrog). Use it if you need to configure multiple JFrog Platform instances in the same agent.

Troubleshooting

To resolve common jf mcp errors:

The following table lists common errors, causes, and resolutions.

ErrorCauseResolution
MCP server is not reachable at <url>The endpoint check failed before writing the configurationVerify the platform URL is correct and reachable from your machine. Use --skip-check to bypass the check if the endpoint is not yet accessible.
unknown agent: <value>Invalid value passed to --agentUse cursor or claude.
entry "jfrog" not found in configurationAttempting to uninstall an entry that does not existVerify the correct --agent flag and --name value, and check the configuration file directly.
Agent does not connect after installationOAuth not completed in the agentApprove the server in the agent: run /mcp in Claude Code, or go to Settings > MCP in Cursor.
permission denied writing to ~/.cursor/mcp.jsonInsufficient write access to the home directoryCheck file ownership and permissions (ls -la ~/.cursor/).