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,...
概览
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
/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.
When using SSE mode:
- 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:
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.
安装
docker run --rm -i -e JFROG_ACCESS_TOKEN -e JFROG_URL mcp/jfrog配置
{
"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>"
}
}
}