Sitelet https://github.com/jfrog/vscode-plugin
Skip to content

Latest commit

 

History

71 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JFrog Plugin for VS Code

The official JFrog plugin for Visual Studio Code and GitHub Copilot Chat. The plugin connects your Copilot agent to the JFrog Platform with policy-governed MCP access, auto-installed governance instructions, and Agent Guard.

Paste this into your browser:

vscode://chat-plugin/install?source=jfrog/vscode-plugin

Features

The JFrog plugin provides the following capabilities, grouped by component:

Component Feature Description
MCP JFrog MCP server Remote JFrog MCP server auto-attached to every session via .mcp.json at https://${env:JFROG_PLATFORM_URL}/mcp (OAuth, no API keys).
Hook MCP server alignment Secures installed plugins' mcp.json and .mcp.json server commands with JFrog Agent Guard at Copilot SessionStart.
Skill Agent Guard Copilot manages MCPs through the JFrog Agent Guard. Through it you can discover, install, configure, update, and remove MCP servers from the JFrog AI Catalog approved for your project, and authenticate to remote HTTP MCPs via OAuth, API key, or bearer token.
Hook Agent Package Resolution (Preview) Inject Artifactory routing instructions at the start of each Copilot session.

Prerequisites

Before installing, make sure you have:

  • JFrog host URL and access token — Your JFrog platform URL and a valid access token.
  • VS Code — With the GitHub Copilot Chat extension installed and signed in.
  • GitHub Copilot editor preview features enabled (organizations only) — If your Copilot access is managed by a GitHub organization, an admin must navigate to Settings → Copilot → Policies → Editor preview features and set it to Enabled. Individual (non-org) Copilot users can skip this step.
  • Agent plugins and hooks enabled — Set both "chat.plugins.enabled": true and "chat.useHooks": true in VS Code settings. Enabling hooks alone still leaves the plugin unloaded.
  • Node.js (≥ 20) — available as node on your PATH
  • JFrog CLI (≥ 2.x, optional) — Recommended for jf config add authentication (see Authentication).
  • JFrog Platform access (optional) — If you want to use the Agent Guard feature, your JFrog subscription needs to include the AI Catalog entitlement. Contact your JFrog account team if you're unsure whether it's enabled.
  • JFrog project (optional) — If you want to use the Agent Guard feature.

Installation

You have three options for installing the plugin in VS Code. Pick whichever fits your workflow.

Option 1 — Magic link (recommended)

  1. From the JFrog Platform, navigate to AI/ML → Registry → Your Project → MCP Servers.
  2. Select an MCP server, then click Install MCP.
  3. Choose VS Code as your IDE, then click Install via magic link.

Alternatively, paste this into your browser:

vscode://chat-plugin/install?source=jfrog/vscode-plugin

VS Code opens, prompts you to install the plugin, and asks you to Trust the source.

Option 2 — Install from source via the command palette

  1. Open the Quick Open palette (Cmd+Shift+P on macOS or Ctrl+Shift+P on Windows/Linux).
  2. Run Chat: Install Plugin from Source.
  3. When prompted, enter:
    https://github.com/jfrog/vscode-plugin/
    
  4. Click Trust.

Option 3 — Add the marketplace to your VS Code settings

  1. Open your user settings.json (Cmd+Shift+PPreferences: Open User Settings (JSON)).
  2. Add the following entry inside the top-level { ... } object (don't forget a trailing comma if it isn't the last entry):
    {
      "chat.plugins.marketplaces": ["https://github.com/jfrog/vscode-plugin/"]
    }
  3. Open the Extensions panel (Cmd+Shift+X) and search for @agentPlugins jfrog/vscode-plugin.
  4. Select the plugin, click Install, and click Trust if prompted.

Authentication

1. Set persistent environment variables

Variable Description
JFROG_URL Your JFrog platform URL, e.g. https://mycompany.jfrog.io (no trailing /).
JFROG_PLATFORM_URL Your JFrog platform host, without the scheme, e.g. mycompany.jfrog.io. Resolves the JFrog MCP server URL (https://${env:JFROG_PLATFORM_URL}/mcp).
JFROG_ACCESS_TOKEN Your JFrog access token

2. Configure the JFrog CLI

If you have never configured the JFrog CLI on this machine:

  1. Open your terminal.
  2. Run:
    jf config add
  3. Follow the interactive prompts to enter the same JFrog platform URL and access token.

Usage

After authentication, open a workspace in VS Code. The JFrog skills load on demand, the JFrog Agent Guard becomes active, and any MCP servers approved for your project become available to your Copilot agent. You can manage everything through natural language — no terminal commands required.

Agent Package Resolution

The shipped template enables Agent Package Resolution with empty repository bindings (nothing is routed until Consent Enable or an admin adds defaultGlobalRepos). When it is on, a SessionStart hook injects the resolved Artifactory repositories and package-routing policy into every new Copilot chat. Configure the JFrog CLI with jf config add, then start a new chat after changing the configuration.

The feature is fail-open for the chat session: disabled or unexpected failure returns an empty hook result instead of preventing Copilot from starting. An enabled but unconfigured installation injects a NOT READY advisory with setup instructions. The hook has a 15-second limit to accommodate a cold, verified repository lookup without delaying indefinitely.

See the user guide for setup and the administrator guide for rollout and governance configuration.

MCP server alignment

At Copilot SessionStart, the plugin discovers MCP configuration files owned by installed agent plugins and passes them to Agent Guard's shared --rewrite-mcp-json pipeline. Agent Guard rewrites eligible server commands so they run through the configured JFrog project policy. The hook is fail-open and has a 60-second limit; the rewrite pipeline itself is budgeted at 35 seconds. A cold npx fetch of Agent Guard can consume the remaining time, in which case the hook still returns success and does not rewrite files in that session. A later session with a warm cache retries. Disabled, unchanged, or failed rewrites do not block a chat.

Discovery checks both mcp.json and .mcp.json, in that order, under ~/.copilot/installed-plugins/{marketplace}/{plugin}, ~/.copilot/installed-plugins/_direct/{id}, ~/.vscode/agent-plugins/…, and the VS Code runtime plugin tree (~/Library/Application Support/Code/agentPlugins on macOS, %APPDATA%\Code\agentPlugins on Windows, $XDG_CONFIG_HOME/Code/agentPlugins on Linux), plus this plugin's own configs next to the adaptor.

VS Code loads plugin MCP servers from its own per-install copy under Code/agentPlugins, so both that copy and the install tree it came from are rewritten. Otherwise the running servers stay unsecured until VS Code re-copies the plugin.

Default discovery only walks stable VS Code (Code/agentPlugins). Only plugin MCP configurations are considered. The hook never rewrites user mcp.json under Code/User, Code - Insiders/User, or VSCodium/User, or a workspace .vscode/mcp.json (including when the override root is the resolved path of a .vscode symlink).

Environment controls:

  • JF_AGENT_REWRITE_MCP_JSON_DISABLE=1 disables rewriting.
  • JF_AGENT_REWRITE_MCP_JSON_FORCE=1 ignores the current-state marker and forces a refresh.
  • This hook always uses the pinned @jfrog/agent-guard version shipped with the plugin; JFROG_AGENT_GUARD_VERSION=latest is not honored here.
  • JF_ALIGN_MCP_JSON_ROOTS replaces the default Copilot installed-plugins, ~/.vscode/agent-plugins, and Code/agentPlugins roots (and skips this plugin's own configs). Separate roots with colon or comma on macOS/Linux, and semicolon or comma on Windows. Overrides may point outside the default, but discovery still rejects workspace .vscode and Code / Code - Insiders / VSCodium User configs and symlinks escaping an override root.

If the alignment pipeline changes any discovered configuration bytes, even if the pipeline later times out or reports a failure, Copilot displays: JFrog Agent Guard secured your plugins' MCP servers. Run Developer: Reload Window to reconnect. Use the Command Palette command Developer: Reload Window before using the rewritten MCP servers.

Discover, inspect, and install MCPs

Ask the agent… What happens
"Which MCP servers can I install?" Returns all MCP servers approved for your current project that you can install.
"What MCP servers do I already have?" Returns only the MCP servers already installed on your machine.
"Show me the details for the filesystem MCP server." Returns detailed metadata, required configuration (environment variables, runtime arguments), and active tool policies for a given server.
"Add the GitHub MCP server." Installs an approved MCP server and syncs its tool policies locally. Secrets are requested via a CLI command — never in chat.
"Update the environment variables for the Slack MCP." Replaces the configuration for an already-installed server without removing and reinstalling it.
"Remove the Slack MCP server." Removes the server and its stored credentials from your local setup. Changes apply immediately.
"Log in to the remote Jira MCP server using OAuth." Authenticates with a remote HTTP-based MCP server (OAuth, API key, or bearer token).
"Log out of the Jira MCP server." Removes stored authentication credentials for a server.

How secrets are handled

When an MCP server requires a sensitive configuration, the agent cannot set the value directly. Instead, it returns a CLI command for you to copy and run in your terminal. Secrets such as API keys, tokens, and connection strings are never exposed in the agent chat history.


Troubleshooting

See the JFrog MCP Registry troubleshooting guide.

The jfrog MCP server shows "Stopped"

VS Code starts MCP servers on demand, so the jfrog server often shows Stopped until something needs it. This is expected — but if the tools aren't showing up, start it manually first: open the MCP: List Servers command (or the MCP view), select jfrog, and choose Start Server. On first start VS Code opens the browser for a one-time OAuth authorization, after which the JFrog tools appear.

JFrog MCP tools don't appear after signing in

The JFrog MCP is a remote HTTP server the plugin attaches at https://${env:JFROG_PLATFORM_URL}/mcp; VS Code authorizes it over OAuth on first connect (no API keys). In VS Code / Copilot Chat two extra steps are sometimes needed before the agent can use the tools:

  • Enable the tools in the tool picker. Open the 🛠 Configure Tools panel and enable the jfrog server's tools — newly added tools are not selected automatically.
  • Open a new chat. A chat's tool set is fixed when it starts, so the tools that appeared after login only take effect in a new chat.

If the agent keeps falling back to the jf CLI even though the JFrog tools are present, it usually means the tools aren't selected in the picker — enable them and start a new chat. Make sure JFROG_PLATFORM_URL is set in the IDE launch environment so https://${env:JFROG_PLATFORM_URL}/mcp resolves correctly.


Support


Contributing

See CONTRIBUTING.md for development setup, coding conventions, and the pull-request process.

Security

See SECURITY.md for how to report vulnerabilities.

License

Licensed under the Apache License 2.0.

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages