JFrog

by jfrog

107 stars
521 downloads
Not rated
GitHub

About

Bridges to the JFrog Platform, enabling interaction with Artifactory repositories, builds, security scanning, and release management for streamlined DevOps workflows.

Details

Author
jfrog
Repository
jfrog/mcp-jfrog
GitHub stars
107
Downloads
521
License
Apache License 2.0
Categories
Developer Tools, Productivity, Design, Workplace, AI, Communication, Security
Tags
#integration

- Repository management: create and manage local, remote, and virtual repositories
- Build tracking: list and retrieve build information
- Runtime monitoring: view runtime clusters and running container images
- Mission Control: view associated JFrog Platform instances
- Artifact search: execute AQL queries for artifacts and builds
- Catalog and Curation: access package info, versions, vulnerabilities, curation status
- Xray: access scan artifacts summary grouped by severity per artifact

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name JFrog
    Command (node, npx, python, etc.) npm
    Arguments
    • Argument 1 exec
    • Argument 2 -y
    • Argument 3 github:jfrog/mcp-jfrog
    Environment
    • JFROG_URL https://<YOUR_JFROG_INSTANCE_URL>
    • JFROG_ACCESS_TOKEN ACCESS_TOKEN

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

This server is deprecated and no longer maintained. Do not use this repository for new or existing integrations. Users are directed to the official JFrog MCP Server. The README does not provide installation or configuration instructions for this deprecated server; historical content is preserved for reference only.

check_jfrog_availability

Check if JFrog platform is ready and functioning. Returns the platform readiness status.

create_local_repository

Create a new local repository in Artifactory. Inputs: key (string), rclass (string), packageType (string), description (optional string), projectKey (optional string), environments (optional string[]). Returns created repository details.

create_remote_repository

Create a new remote repository in Artifactory to proxy external package registries. Inputs: key (string), rclass (string), packageType (string), url (string), username (optional string), password (optional string), description (optional string), projectKey (optional string), environments (optional string[]). Returns created repository details.

create_virtual_repository

Create a new virtual repository in Artifactory that aggregates multiple repositories. Inputs: key (string), rclass (string), packageType (string), repositories (string[]), description (optional string), projectKey (optional string), environments (optional string[]). Returns created repository details.

list_repositories

List all repositories in Artifactory with optional filtering. Inputs: type (optional string), packageType (optional string), project (optional string). Returns a list of repositories matching the filters.

set_folder_property

Set properties on a folder in Artifactory, with optional recursive application. Inputs: folderPath (string), properties (object), recursive (optional boolean). Returns operation result.

execute_aql_query

Execute an Artifactory Query Language (AQL) query to search for artifacts, builds, or other entities in JFrog Artifactory. Inputs: query (string), domain (optional string), transitive (optional boolean), limit (optional number), offset (optional number), include_fields (optional string[]), sort_by (optional string), sort_order (optional string). Returns search results with metadata.

list_jfrog_builds

Return a list of all builds in the JFrog platform. Returns a list of builds.

get_specific_build

Get details for a specific build by name. Inputs: buildName (string), project (optional string). Returns build details.

list_jfrog_runtime_clusters

Return a list of all runtime clusters in the JFrog platform. Inputs: limit (optional integer), next_key (optional string). Returns a list of runtime clusters.

get_jfrog_runtime_specific_cluster

Return a runtime cluster by ID. Inputs: clusterId (integer). Returns cluster details.

list_jfrog_running_images

List all running container images across runtime clusters with their security and operational status. Inputs: filters (optional string), num_of_rows (optional integer), page_num (optional integer), statistics (optional boolean), timePeriod (optional string). Returns a list of running images.

list_jfrog_environments

Get a list of all environments types in the JFrog platform with their details. Returns a list of environments.

list_jfrog_projects

Get a list of all projects in the JFrog platform with their details. Returns a list of projects.

get_specific_project

Get detailed information about a specific project in the JFrog platform. Inputs: project_key (string). Returns project details.

create_project

Create a new project in the JFrog platform. Inputs: project_key (string), display_name (string), description (string), admin_privileges (object), storage_quota_bytes (number). Returns created project details.

jfrog_get_package_info

Get publicly available information about a software package. Inputs: type (string), name (string), version (optional string). Returns package information including description, latest version, license, and URLs.

jfrog_get_package_versions

Get a list of versions of a publicly available package with publication dates. Inputs: type (string), name (string). Returns a list of package versions with publication dates.

jfrog_get_package_version_vulnerabilities

Get a list of known vulnerabilities affecting a specific version of an open source package. Inputs: type (string), name (string), version (optional string), pageSize (optional number), pageCount (optional number). Returns a list of vulnerabilities affecting the specified package version.

jfrog_get_vulnerability_info

Get detailed information about a specific vulnerability, including affected packages and versions. Inputs: cve_id (string), pageSize (optional number), pageCount (optional number). Returns detailed vulnerability information and affected packages.

jfrog_get_package_curation_status

Check the curation status of a specific package version. Inputs: packageType (string), packageName (string), packageVersion (string). Returns curation status (approved, blocked, or inconclusive).

jfrog_get_artifacts_summary

Get artifacts issues summary in a repository or build, categorized and counted by severity. Inputs: paths (string array). Returns a summary based on vulnerability count per severity for each artifact in the provided array plus the total issues.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "jfrog": {
            "env": {
                "JFROG_URL": "https://<YOUR_JFROG_INSTANCE_URL>",
                "JFROG_ACCESS_TOKEN": "ACCESS_TOKEN"
            },
            "args": [
                "exec",
                "-y",
                "github:jfrog/mcp-jfrog"
            ],
            "command": "npm"
        }
    }
}

Linux

{
    "env": {
        "JFROG_URL": "https://<YOUR_JFROG_INSTANCE_URL>",
        "JFROG_ACCESS_TOKEN": "ACCESS_TOKEN"
    },
    "args": [
        "exec",
        "-y",
        "github:jfrog/mcp-jfrog"
    ],
    "command": "npm"
}

Macos

{
    "env": {
        "JFROG_URL": "https://<YOUR_JFROG_INSTANCE_URL>",
        "JFROG_ACCESS_TOKEN": "ACCESS_TOKEN"
    },
    "args": [
        "exec",
        "-y",
        "github:jfrog/mcp-jfrog"
    ],
    "command": "npm"
}

Windows

{
    "env": {
        "JFROG_URL": "https://<YOUR_JFROG_INSTANCE_URL>",
        "JFROG_ACCESS_TOKEN": "ACCESS_TOKEN"
    },
    "args": [
        "/c",
        "npm",
        "exec",
        "-y",
        "github:jfrog/mcp-jfrog"
    ],
    "command": "cmd"
}

⛔ DEPRECATED — JFrog MCP Server (Experimental)

🚨 THIS PROJECT IS DEPRECATED AND NO LONGER MAINTAINED 🚨

Do not use this repository for new or existing integrations.

This experimental MCP server has beensuperseded by the official JFrog MCP Server, which is built, maintained, and supported by JFrog. The official server is secure, remotely hosted, production-ready, and receives ongoing updates, bug fixes, and security patches.

👉 Use the official JFrog MCP Server instead:

https://jfrog.com/help/r/jfrog-integrations-documentation/jfrog-mcp-server

No further features, fixes, or security updates will be delivered to this repository. Any content below is preserved for historical reference only.

Model Context Protocol (MCP) Server for the JFrog Platform API, enabling repository management, build tracking, release lifecycle management, and more.

https://github.com/user-attachments/assets/aca3af2b-f294-41c8-8727-799a019a55b5

This project is deprecated and is no longer maintained by JFrog.

It was originally created as an experimental project to demonstrate JFrog's capabilities with MCP and was never officially supported or verified by JFrog. It will not receive further updates, bug fixes, or security patches.

JFrog now provides anofficial, secure, and remotely hosted MCP serverfor seamless integration with the JFrog Platform. The managed MCP server is maintained by JFrog and is the recommended and only supported option going forward, offering enhanced security, reliability, and support.

👉JFrog MCP Server — Official Documentation

- Repository Management: Create and manage local, remote, and virtual repositories
- Build Tracking: List and retrieve build information
- Runtime Monitoring: View runtime clusters and running container images
- Mission Control: View associated JFrog Platform instances
- Artifact Search: Execute powerful AQL queries to search for artifacts and builds
- Catalog and Curation: Access package information, versions, vulnerabilities, and check curation status
- Xray: Access scan artifacts summary, group by severity per artifact

- Check if JFrog platform is ready and functioning
- Returns: Platform readiness status

- Create a new local repository in Artifactory
- Inputs:

- key(string): Repository key
- rclass(string): Repository class (must be "local")
- packageType(string): Package type of the repository
- description(optional string): Repository description
- projectKey(optional string): Project key to assign the repository to
- environments(optional string
[]): Environments to assign the repository to

- Create a new remote repository in Artifactory to proxy external package registries
- Inputs:

- key(string): Repository key
- rclass(string): Repository class (must be "remote")
- packageType(string): Package type of the repository
- url(string): URL to the remote repository
- username(optional string): Remote repository username
- password(optional string): Remote repository password
- description(optional string): Repository description
- projectKey(optional string): Project key to assign the repository to
- environments(optional string[]): Environments to assign the repository to
- Many other optional parameters for specific repository configurations

- Create a new virtual repository in Artifactory that aggregates multiple repositories
- Inputs:

- key(string): Repository key
- rclass(string): Repository class (must be "virtual")
- packageType(string): Package type of the repository
- repositories(string[]): List of repository keys to include in the virtual repository
- description(optional string): Repository description
- projectKey(optional string): Project key to assign the repository to
- environments(optional string[]): Environments to assign the repository to
- Other optional parameters for specific repository configurations

- List all repositories in Artifactory with optional filtering
- Inputs:

- type(optional string): Filter repositories by type (local, remote, virtual, federated, distribution)
- packageType(optional string): Filter repositories by package type
- project(optional string): Filter repositories by project key

- Set properties on a folder in Artifactory, with optional recursive application
- Inputs:

- folderPath(string): Path to the folder where properties should be set
- properties(object): Key-value pairs of properties to set
- recursive(optional boolean): Whether to apply properties recursively to sub-folders

- Execute an Artifactory Query Language (AQL) query to search for artifacts, builds, or other entities in JFrog Artifactory
- Inputs:

- query(string): The AQL query to execute. Must follow AQL syntax (e.g., items.find({"repo":"my-repo"}).include("name","path"))
- domain(optional string): The primary domain to search in (items, builds, archive.entries, build.promotions, releases)
- transitive(optional boolean): Whether to search in remote repositories
- limit(optional number): Maximum number of results to return
- offset(optional number): Number of results to skip
- include_fields(optional string[]): Fields to include in the results
- sort_by(optional string): Field to sort results by
- sort_order(optional string): Sort order (asc or desc)

- Return a list of all builds in the JFrog platform
- Returns: List of builds

- Get details for a specific build by name
- Inputs:

- buildName(string): Name of the build to retrieve
- project(optional string): Project key to scope the build search

- Return a list of all runtime clusters in the JFrog platform
- Inputs:

- limit(optional integer): The maximum number of clusters to return
- next_key(optional string): The next key to use for pagination

- Return a runtime cluster by ID
- Inputs:

- clusterId(integer): The ID of the cluster to retrieve

- List all running container images across runtime clusters with their security and operational status
- Inputs:

- filters(optional string): Filters to apply
- num_of_rows(optional integer): Number of rows to return
- page_num(optional integer): Page number
- statistics(optional boolean): Whether to include statistics
- timePeriod(optional string): Time period to query

- Get a list of all environments types in the JFrog platform with their details
- Inputs:
- Returns: List of environments

- Get a list of all projects in the JFrog platform with their details
- Inputs:
- Returns: List of projects

- Get detailed information about a specific project in the JFrog platform
- Inputs:

- project_key(string): The unique key of the project to retrieve

- Create a new project in the JFrog platform
- Inputs:

- project_key(string): Unique identifier for the project
- display_name(string): Display name of the project
- description(string): Description of the project
- admin_privileges(object): Administrative privileges for the project
- storage_quota_bytes(number): Storage quota in bytes (-1 for unlimited)

- Get publicly available information about a software package
- Inputs:

- type(string): The type of package (pypi, npm, maven, golang, nuget, huggingface, rubygems)
- name(string): The name of the package, as it appears in the package repository
- version(optional string): The version of the package (default: "latest")

- Get a list of versions of a publicly available package with publication dates
- Inputs:

- type(string): The type of package (pypi, npm, maven, golang, nuget, huggingface, rubygems)
- name(string): The name of the package, as it appears in the package repository

jfrog_get_package_version_vulnerabilities

- Get a list of known vulnerabilities affecting a specific version of an open source package
- Inputs:

- type(string): The type of package (pypi, npm, maven, golang, nuget, huggingface, rubygems)
- name(string): The name of the package, as it appears in the package repository
- version(optional string): The version of the package (default: "latest")
- pageSize(optional number): Number of vulnerabilities to return per page (default: 10)
- pageCount(optional number): Number of pages to return (default: 1)

- Get detailed information about a specific vulnerability, including affected packages and versions
- Inputs:

- cve_id(string): The CVE ID or vulnerability identifier to look up
- pageSize(optional number): Number of vulnerabilities to return per page (default: 10)
- pageCount(optional number): Number of pages to return (default: 1)

- Check the curation status of a specific package version
- Inputs:

- packageType(string): The type of package (pypi, npm, maven, golang, nuget, huggingface, rubygems)
- packageName(string): The name of the package, as it appears in the package repository
- packageVersion(string): The version of the package, as it appears in the package repository
- jfrog_get_artifacts_summary

- Get artifacts issues summary in a repository or build, categorized and counted by severity (Low, Medium, High, Critical, Unkown)
- Inputs:

- paths(string array): An array of paths to the artifacts from which to create the summary from

To install mcp-jfrog for Claude Desktop automatically viaSmithery:

npx -y @smithery/cli install @jfrog/mcp-jfrog --client claude

- Node.js v18 or higher
- Docker (if using Docker deployment,
See Docker Deployment)
- A valid JFrog platform instance with appropriate permissions
- Access to create and manage access tokens in your JFrog platform instance

- JFROG_ACCESS_TOKEN: Your JFrog access token (required)
- JFROG_URL: Base URL for your JFrog platform (required)
- TRANSPORT: Transport mode to use, set to 'sse' to enable SSE transport (default: stdio)
- PORT: Port number to use for SSE transport (default: 8080)
- CORS_ORIGIN: CORS origin allowed for SSE connections (default: '')
- LOG_LEVEL: Logging level: DEBUG, INFO, WARN, ERROR (default: INFO)
- MAX_RECONNECT_ATTEMPTS: Maximum number of reconnection attempts for SSE server (default: 5)
- RECONNECT_DELAY_MS: Base delay in milliseconds between reconnection attempts (default: 2000)

To use this MCP server, you need to create a JFrog Access Token or use an identity token with appropriate permissions:

For information on how to create a JFrog Token, please refer to the JFrog official documentations:

Your JFrog platform instance URL (e.g.https://acme.jfrog.io)

The SSE transport mode includes the following features:

- Connection Management: Each SSE connection is tracked with a unique ID, allowing clients to maintain state across reconnection attempts.
- Structured Logging: Detailed logs with timestamps, severity levels, and relevant contextual information.
- Connection Resilience: Automatic reconnection attempts with exponential backoff if the server fails to start.
- Health Endpoint: A/healthendpoint that returns server status information.
- Connection Tracking: Real-time tracking of active connections with periodic statistics logging.
- Performance Metrics: Execution time tracking for tool operations and HTTP requests.
- Clients should connect to the/sseendpoint, optionally providing aconnectionIdquery parameter for session tracking.
- Client requests should be sent to the/messagesendpoint with the sameconnectionIdas a query parameter.
- The server will respond with server-sent events through the established SSE connection.

Example client connection with connection ID:

POST /messages?connectionId=client123 Content-Type: application/json { "jsonrpc": "2.0", "method": "listTools", "id": 1 }

Clone the repo to your local machine usinggit cloneandcdinto the project directory:

git clone git@github.com:jfrog/mcp-jfrog.git cd mcp-jfrog
docker build -t mcp/jfrog -f Dockerfile .
{ "mcpServers": { "MCP-JFrog": { "command": "npm", "args": [ "exec", "-y", "github:jfrog/mcp-jfrog" ], "env": { "JFROG_ACCESS_TOKEN": "ACCESS_TOKEN", "JFROG_URL": "https://<YOUR_JFROG_INSTANCE_URL>" } } }, "mcp-local-dev":{ "command": "node", "args": [ "/<ABSOLUT_PATH_TO>/mcp-jfrog/dist/index.js" ], "env": { "JFROG_ACCESS_TOKEN": "<ACCESS_TOKEN>>", "JFROG_URL": "<JFROG_URL>" } } }
{ "mcpServers": { "jfrog": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "JFROG_ACCESS_TOKEN", "-e", "JFROG_URL", "mcp/jfrog" ], "env": { "JFROG_ACCESS_TOKEN": "<YOUR_TOKEN>", "JFROG_URL": "https://your-instance.jfrog.io" }, "serverUrl": "http://localhost:8080/sse" } } }

To use the JFrog MCP Server with SSE transport mode (useful for web interfaces like Cursor's webview):

{ "mcpServers": { "jfrog-sse": { "command": "docker", "args": [ "run", "--rm", "-p", "8080:8080", "-e", "TRANSPORT=sse", "-e", "PORT=8080", "-e", "CORS_ORIGIN=", "-e", "LOG_LEVEL=INFO", "-e", "MAX_RECONNECT_ATTEMPTS=5", "-e", "RECONNECT_DELAY_MS=2000", "-e", "JFROG_ACCESS_TOKEN", "-e", "JFROG_URL", "mcp/jfrog" ], "env": { "JFROG_ACCESS_TOKEN": "<YOUR_TOKEN>", "JFROG_URL": "https://your-instance.jfrog.io", "serverUrl": "http://localhost:8080/sse" } } } }

Note: For SSE mode, you need to add theserverUrlparameter pointing to your SSE endpoint, and expose the port used by the server (-p 8080:8080).

Add the following to yourclaude_desktop_config.json:

{ "mcpServers": { "jfrog": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "JFROG_ACCESS_TOKEN", "-e", "JFROG_URL", "mcp/jfrog" ], "env": { "JFROG_ACCESS_TOKEN": "<YOUR_TOKEN>", "JFROG_URL": "https://your-instance.jfrog.io" // Your JFrog platform URL }, "serverUrl": "http://localhost:8080/sse" } } }
{ "mcpServers": { "MCP-JFrog": { "command": "npm", "args": [ "exec", "-y", "github:jfrog/mcp-jfrog" ], "env": { "JFROG_ACCESS_TOKEN": "ACCESS_TOKEN", "JFROG_URL": "https://<YOUR_JFROG_INSTANCE_URL>" } } } }
{ "mcpServers": { "jfrog-sse": { "command": "docker", "args": [ "run", "--rm", "-p", "8080:8080", "-e", "TRANSPORT=sse", "-e", "PORT=8080", "-e", "CORS_ORIGIN=*", "-e", "LOG_LEVEL=INFO", "-e", "MAX_RECONNECT_ATTEMPTS=5", "-e", "RECONNECT_DELAY_MS=2000", "-e", "JFROG_ACCESS_TOKEN", "-e", "JFROG_URL", "mcp/jfrog" ], "env": { "JFROG_ACCESS_TOKEN": "<YOUR_TOKEN>", "JFROG_URL": "https://your-instance.jfrog.io", "serverUrl": "http://localhost:8080/sse" } } } }
</details> ## License This MCP server is licensed under the Apache License 2.0. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the Apache License 2.0. For more details, please see the LICENSE.md file in the project repository.

This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.

Create crafted UI components inspired by the best 21st.dev design engineers.

Bring agent evaluations, observability, and synthetic test set generation directly into your IDE for free with Galileo's new MCP server

An MCP server to help AI assistants to answer questions and generate AccelByte Extend SDK code more effectively .

MCP server for AI Diagram Maker — generate beautiful software engineering diagrams directly inside Cursor, Claude Desktop, Claude Code, or any MCP-compatible AI agent

ALAPI MCP Tools,Call hundreds of API interfaces via MCP

AI-powered SVG animation generator that transforms static files into animated SVG components using the Allyson platform

MCP server that gives AI assistants on-demand access to 1,500+ amCharts docs, ~300 code examples, and 1000+ class API references.

APIMatic MCP Server is used to validate OpenAPI specifications using APIMatic. The server processes OpenAPI files and returns validation summaries by leveraging APIMatic’s API.

One shared context layer for AI agents and humans — live API specs, DB schemas, and versioned contracts across repos so every agent and teammate works from the same source of truth.

Build and deploy full-stack Next.js apps with 98 tools for React, AWS, and MongoDB

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.