JM

jfrog/mcp-jfrog

Developer tools
118 stars 0 forks Quality 90 Trend 90

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

Overview

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

README

⛔ DEPRECATED — JFrog MCP Server (Experimental)

[!CAUTION]

🚨 THIS PROJECT IS DEPRECATED AND NO LONGER MAINTAINED 🚨

Do not use this repository for new or existing integrations.

This experimental MCP server has been superseded 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

⚠️ Deprecation Notice

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 an official, secure, and remotely hosted MCP server for 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.

Please migrate to the official server:

👉 JFrog MCP Server — Official Documentation

Features

  • 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

Tools

Setup

Installing via Smithery

To install mcp-jfrog for Claude Desktop automatically via Smithery:

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

Prerequisites

  • 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

Environment Variables

  • 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)

JFrog Token (JFROG_ACCESS_TOKEN)

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:

JFrog URL (JFROG_URL)

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

SSE Transport Features

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 /health endpoint 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.

When using SSE mode:

  1. Clients should connect to the /sse endpoint, optionally providing a connectionId query parameter for session tracking.
  2. Client requests should be sent to the /messages endpoint with the same connectionId as a query parameter.
  3. The server will respond with server-sent events through the established SSE connection.

Example client connection with connection ID:

GET /sse?connectionId=client123

Example client request:

POST /messages?connectionId=client123
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "method": "listTools",
  "id": 1
}

How to build

Clone the repo to your local machine using git clone and cd into the project directory:

git clone [email protected]:jfrog/mcp-jfrog.git

cd mcp-jfrog

Build as a Docker image:

docker build -t mcp/jfrog -f Dockerfile .

Build as an npm module:

npm i && npm run build

Usage

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.

View this README on GitHub

Install

docker run --rm -i -e JFROG_ACCESS_TOKEN -e JFROG_URL mcp/jfrog

Configuration

{ "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>" } } }