JFrog MCP-Server (🧪 Experimentell)
Model Context Protocol (MCP)-Server für die JFrog Platform API, der Repository-Verwaltung, Build-Tracking, Release-Lebenszyklusverwaltung und mehr ermöglicht.
https://github.com/user-attachments/assets/aca3af2b-f294-41c8-8727-799a019a55b5
Haftungsausschluss
Dies ist ein experimentelles Projekt, das die Fähigkeiten von JFrog mit MCP demonstrieren soll. Es wird von JFrog weder offiziell unterstützt noch verifiziert.
Merkmale
- Repository-Verwaltung : Erstellen und verwalten Sie lokale, Remote- und virtuelle Repositories
- Build-Tracking : Build-Informationen auflisten und abrufen
- Laufzeitüberwachung : Laufzeitcluster und laufende Container-Images anzeigen
- Mission Control : Zugehörige JFrog-Plattforminstanzen anzeigen
- Artefaktsuche : Führen Sie leistungsstarke AQL-Abfragen aus, um nach Artefakten und Builds zu suchen
- Katalog und Kuration : Zugriff auf Paketinformationen, Versionen, Schwachstellen und Überprüfung des Kurationsstatus
- Xray : Zugriff auf die Zusammenfassung der Scan-Artefakte, Gruppierung nach Schweregrad pro Artefakt
Werkzeuge
check_jfrog_availability
- Prüfen Sie, ob die JFrog-Plattform bereit und funktionsfähig ist
- Rückgaben: Status der Plattformbereitschaft
create_local_repository
- Erstellen Sie ein neues lokales Repository in Artifactory
- Eingänge:
key
(Zeichenfolge): Repository-Schlüsselrclass
(Zeichenfolge): Repository-Klasse (muss „lokal“ sein)packageType
(Zeichenfolge): Pakettyp des Repositorydescription
(optionale Zeichenfolge): Repository-BeschreibungprojectKey
(optionale Zeichenfolge): Projektschlüssel, dem das Repository zugewiesen werden sollenvironments
(optionale Zeichenfolge[]): Umgebungen, denen das Repository zugewiesen werden soll
- Rückgabe: Details zum erstellten Repository
create_remote_repository
- Erstellen Sie ein neues Remote-Repository in Artifactory, um externe Paketregistrierungen zu proxyen
- Eingänge:
key
(Zeichenfolge): Repository-Schlüsselrclass
(Zeichenfolge): Repository-Klasse (muss „remote“ sein)packageType
(Zeichenfolge): Pakettyp des Repositoryurl
(Zeichenfolge): URL zum Remote-Repositoryusername
(optionale Zeichenfolge): Benutzername des Remote-Repositoryspassword
(optionale Zeichenfolge): Passwort des Remote-Repositorysdescription
(optionale Zeichenfolge): Repository-BeschreibungprojectKey
(optionale Zeichenfolge): Projektschlüssel, dem das Repository zugewiesen werden sollenvironments
(optionale Zeichenfolge[]): Umgebungen, denen das Repository zugewiesen werden soll- Viele weitere optionale Parameter für spezifische Repository-Konfigurationen
- Rückgabe: Details zum erstellten Repository
create_virtual_repository
- Erstellen Sie ein neues virtuelles Repository in Artifactory, das mehrere Repositorys aggregiert
- Eingänge:
key
(Zeichenfolge): Repository-Schlüsselrclass
(Zeichenfolge): Repository-Klasse (muss „virtuell“ sein)packageType
(Zeichenfolge): Pakettyp des Repositoryrepositories
(string[]): Liste der Repository-Schlüssel, die in das virtuelle Repository aufgenommen werden sollendescription
(optionale Zeichenfolge): Repository-BeschreibungprojectKey
(optionale Zeichenfolge): Projektschlüssel, dem das Repository zugewiesen werden sollenvironments
(optionale Zeichenfolge[]): Umgebungen, denen das Repository zugewiesen werden soll- Weitere optionale Parameter für bestimmte Repository-Konfigurationen
- Rückgabe: Details zum erstellten Repository
list_repositories
- Listen Sie alle Repositories in Artifactory mit optionaler Filterung auf
- Eingänge:
type
(optionale Zeichenfolge): Filtern Sie Repositories nach Typ (lokal, remote, virtuell, föderiert, Verteilung)packageType
(optionale Zeichenfolge): Filtern Sie Repositories nach Pakettypproject
(optionale Zeichenfolge): Filtern Sie Repositories nach Projektschlüssel
- Gibt zurück: Liste der Repositories, die den Filtern entsprechen
set_folder_property
- Legen Sie Eigenschaften für einen Ordner in Artifactory fest, mit optionaler rekursiver Anwendung
- Eingänge:
folderPath
(Zeichenfolge): Pfad zum Ordner, in dem Eigenschaften festgelegt werden sollenproperties
(Objekt): Schlüssel-Wert-Paare der festzulegenden Eigenschaftenrecursive
(optionaler Boolescher Wert): Ob Eigenschaften rekursiv auf Unterordner angewendet werden sollen
- Rückgabe: Operationsergebnis
execute_aql_query
- Führen Sie eine Artifactory Query Language (AQL)-Abfrage aus, um in JFrog Artifactory nach Artefakten, Builds oder anderen Entitäten zu suchen
- Eingänge:
query
(Zeichenfolge): Die auszuführende AQL-Abfrage. Muss der AQL-Syntax entsprechen (z. B. items.find({"repo":"my-repo"}).include("name","path")).domain
(optionale Zeichenfolge): Die primäre Domäne, in der gesucht werden soll (Elemente, Builds, Archiveinträge, Build-Aktionen, Releases).transitive
(optional boolesch): Ob in Remote-Repositorys gesucht werden solllimit
(optionale Zahl): Maximale Anzahl der zurückzugebenden Ergebnisseoffset
(optionale Zahl): Anzahl der zu überspringenden Ergebnisseinclude_fields
(optional string[]): In die Ergebnisse einzuschließende Feldersort_by
(optionale Zeichenfolge): Feld zum Sortieren der Ergebnissesort_order
(optionale Zeichenfolge): Sortierreihenfolge (aufsteigend oder absteigend)
- Rückgabe: Suchergebnisse mit Metadaten
list_jfrog_builds
- Gibt eine Liste aller Builds in der JFrog-Plattform zurück
- Rückgabe: Liste der Builds
get_specific_build
- Abrufen von Details zu einem bestimmten Build anhand des Namens
- Eingänge:
buildName
(Zeichenfolge): Name des abzurufenden Buildsproject
(optionale Zeichenfolge): Projektschlüssel zum Eingrenzen der Build-Suche
- Rückgabe: Builddetails
list_jfrog_runtime_clusters
- Gibt eine Liste aller Laufzeitcluster in der JFrog-Plattform zurück
- Eingänge:
limit
(optionale Ganzzahl): Die maximale Anzahl der zurückzugebenden Clusternext_key
(optionale Zeichenfolge): Der nächste Schlüssel, der für die Paginierung verwendet werden soll
- Rückgabe: Liste der Laufzeitcluster
get_jfrog_runtime_specific_cluster
- Gibt einen Laufzeitcluster nach ID zurück
- Eingänge:
clusterId
(Ganzzahl): Die ID des abzurufenden Clusters
- Rückgaben: Clusterdetails
list_jfrog_running_images
- Listen Sie alle laufenden Container-Images in Laufzeitclustern mit ihrem Sicherheits- und Betriebsstatus auf
- Eingänge:
filters
(optionale Zeichenfolge): Anzuwendende Filternum_of_rows
(optionale Ganzzahl): Anzahl der zurückzugebenden Zeilenpage_num
(optionale Ganzzahl): Seitenzahlstatistics
(optionaler Boolescher Wert): Ob Statistiken einbezogen werden sollentimePeriod
(optionale Zeichenfolge): abzufragender Zeitraum
- Gibt zurück: Liste der laufenden Bilder
list_jfrog_environments
- Erhalten Sie eine Liste aller Umgebungstypen in der JFrog-Plattform mit ihren Details
- Eingänge:
- Gibt zurück: Liste der Umgebungen
list_jfrog_projects
- Erhalten Sie eine Liste aller Projekte in der JFrog-Plattform mit ihren Details
- Eingänge:
- Retouren: Liste der Projekte
get_specific_project
- Erhalten Sie detaillierte Informationen zu einem bestimmten Projekt auf der JFrog-Plattform
- Eingänge:
project_key
(Zeichenfolge): Der eindeutige Schlüssel des abzurufenden Projekts
- Retouren: Projektdetails
create_project
- Erstellen Sie ein neues Projekt in der JFrog-Plattform
- Eingänge:
project_key
(Zeichenfolge): Eindeutige Kennung für das Projektdisplay_name
(Zeichenfolge): Anzeigename des Projektsdescription
(Zeichenfolge): Beschreibung des Projektsadmin_privileges
(Objekt): Administratorrechte für das Projektstorage_quota_bytes
(Zahl): Speicherkontingent in Bytes (-1 für unbegrenzt)
- Rückgabe: Erstellte Projektdetails
jfrog_get_package_info
- Erhalten Sie öffentlich verfügbare Informationen zu einem Softwarepaket
- Eingänge:
type
(Zeichenfolge): Der Pakettyp (pypi, npm, maven, golang, nuget, huggingface, rubygems)name
(Zeichenfolge): Der Name des Pakets, wie er im Paket-Repository angezeigt wirdversion
(optionale Zeichenfolge): Die Version des Pakets (Standard: „neueste“)
- Rückgabe: Paketinformationen einschließlich Beschreibung, neueste Version, Lizenz und URLs
jfrog_get_package_versions
- Erhalten Sie eine Liste der Versionen eines öffentlich verfügbaren Pakets mit Veröffentlichungsdaten
- Eingänge:
type
(Zeichenfolge): Der Pakettyp (pypi, npm, maven, golang, nuget, huggingface, rubygems)name
(Zeichenfolge): Der Name des Pakets, wie er im Paket-Repository angezeigt wird
- Rückgabe: Liste der Paketversionen mit Veröffentlichungsdaten
jfrog_get_package_version_vulnerabilities
- Erhalten Sie eine Liste bekannter Sicherheitslücken, die eine bestimmte Version eines Open-Source-Pakets betreffen
- Eingänge:
type
(Zeichenfolge): Der Pakettyp (pypi, npm, maven, golang, nuget, huggingface, rubygems)name
(Zeichenfolge): Der Name des Pakets, wie er im Paket-Repository angezeigt wirdversion
(optionale Zeichenfolge): Die Version des Pakets (Standard: „neueste“)pageSize
(optionale Zahl): Anzahl der pro Seite zurückzugebenden Schwachstellen (Standard: 10)pageCount
(optionale Zahl): Anzahl der zurückzugebenden Seiten (Standard: 1)
- Gibt zurück: Liste der Sicherheitslücken, die die angegebene Paketversion betreffen
jfrog_get_vulnerability_info
- Erhalten Sie detaillierte Informationen zu einer bestimmten Sicherheitslücke, einschließlich der betroffenen Pakete und Versionen
- Eingänge:
cve_id
(Zeichenfolge): Die CVE-ID oder Schwachstellenkennung, nach der gesucht werden sollpageSize
(optionale Zahl): Anzahl der pro Seite zurückzugebenden Schwachstellen (Standard: 10)pageCount
(optionale Zahl): Anzahl der zurückzugebenden Seiten (Standard: 1)
- Rückgabe: Detaillierte Informationen zu Sicherheitslücken und betroffenen Paketen
jfrog_get_package_curation_status
- Überprüfen Sie den Kurationsstatus einer bestimmten Paketversion
- Eingänge:
packageType
(Zeichenfolge): Der Pakettyp (pypi, npm, maven, golang, nuget, huggingface, rubygems)packageName
(Zeichenfolge): Der Name des Pakets, wie er im Paket-Repository angezeigt wirdpackageVersion
(Zeichenfolge): Die Version des Pakets, wie sie im Paket-Repository angezeigt wird
- Rückgabe: Kurationsstatus (genehmigt, blockiert oder nicht eindeutig)
jfrog_get_artifacts_summary
- Erhalten Sie eine Zusammenfassung der Artefaktprobleme in einem Repository oder Build, kategorisiert und gezählt nach Schweregrad (Niedrig, Mittel, Hoch, Kritisch, Unbekannt).
- Eingänge:
paths
(String-Array): Ein Array von Pfaden zu den Artefakten, aus denen die Zusammenfassung erstellt werden soll
- Gibt zurück: Eine Zusammenfassung basierend auf der Anzahl der Schwachstellen pro Schweregrad für jedes Artefakt im bereitgestellten Array plus der Gesamtzahl der Probleme
Aufstellen
Installation über Smithery
So installieren Sie mcp-jfrog für Claude Desktop automatisch über Smithery :
Voraussetzungen
- Node.js v18 oder höher
- Docker (bei Verwendung der Docker-Bereitstellung siehe )
- Eine gültige JFrog-Plattforminstanz mit entsprechenden Berechtigungen
- Zugriff zum Erstellen und Verwalten von Zugriffstoken in Ihrer JFrog-Plattforminstanz
Umgebungsvariablen
JFROG_ACCESS_TOKEN
: Ihr JFrog-Zugriffstoken (erforderlich)JFROG_URL
: Basis-URL für Ihre JFrog-Plattform (erforderlich)TRANSPORT
: Zu verwendender Transportmodus, auf „sse“ setzen, um SSE-Transport zu aktivieren (Standard: stdio)PORT
: Für den SSE-Transport zu verwendende Portnummer (Standard: 8080)CORS_ORIGIN
: Für SSE-Verbindungen zulässiger CORS-Ursprung (Standard: „*“)LOG_LEVEL
: Protokollierungsebene: DEBUG, INFO, WARN, ERROR (Standard: INFO)MAX_RECONNECT_ATTEMPTS
: Maximale Anzahl von Wiederverbindungsversuchen für den SSE-Server (Standard: 5)RECONNECT_DELAY_MS
: Basisverzögerung in Millisekunden zwischen Wiederverbindungsversuchen (Standard: 2000)
JFrog-Token ( JFROG_ACCESS_TOKEN
)
Um diesen MCP-Server zu verwenden, müssen Sie ein JFrog-Zugriffstoken erstellen oder ein Identitätstoken mit entsprechenden Berechtigungen verwenden:
Informationen zum Erstellen eines JFrog-Tokens finden Sie in der offiziellen JFrog-Dokumentation:
JFrog-URL ( JFROG_URL
)
Die URL Ihrer JFrog-Plattforminstanz (z. B. https://acme.jfrog.io )
SSE-Transportfunktionen
Der SSE-Transportmodus umfasst die folgenden Funktionen:
- Verbindungsverwaltung : Jede SSE-Verbindung wird mit einer eindeutigen ID verfolgt, sodass Clients ihren Status über erneute Verbindungen hinweg beibehalten können.
- Strukturierte Protokollierung : Detaillierte Protokolle mit Zeitstempeln, Schweregraden und relevanten Kontextinformationen.
- Verbindungsstabilität : Automatische Wiederverbindungsversuche mit exponentiellem Backoff, wenn der Server nicht gestartet werden kann.
- Health-Endpunkt : Ein
/health
Endpunkt, der Serverstatusinformationen zurückgibt. - Verbindungsverfolgung : Echtzeitverfolgung aktiver Verbindungen mit regelmäßiger Statistikprotokollierung.
- Leistungsmetriken : Verfolgung der Ausführungszeit für Toolvorgänge und HTTP-Anfragen.
Bei Verwendung des SSE-Modus:
- Clients sollten eine Verbindung zum
/sse
-Endpunkt herstellen und optional einenconnectionId
-Abfrageparameter für die Sitzungsverfolgung bereitstellen. - Clientanforderungen sollten mit derselben
connectionId
als Abfrageparameter an den/messages
-Endpunkt gesendet werden. - Der Server antwortet mit servergesendeten Ereignissen über die hergestellte SSE-Verbindung.
Beispiel einer Clientverbindung mit Verbindungs-ID:
Beispiel einer Client-Anforderung:
Wie man baut
Klonen Sie das Repo mit git clone
auf Ihren lokalen Computer und cd
in das Projektverzeichnis:
Als Docker-Image erstellen:
Als npm-Modul erstellen:
Verwendung
npm
Docker
SSE-Transportmodus
So verwenden Sie den JFrog MCP-Server mit dem SSE-Transportmodus (nützlich für Webschnittstellen wie Cursors Webview):
Hinweis: Für den SSE-Modus müssen Sie den Parameter serverUrl
hinzufügen, der auf Ihren SSE-Endpunkt verweist, und den vom Server verwendeten Port offenlegen (-p 8080:8080).
Fügen Sie Ihrer claude_desktop_config.json
Folgendes hinzu:
Docker
npm
SSE-Transportmodus
Für Claude Desktop mit SSE-Transport:
You must be authenticated.
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Tools
Experimenteller Model Context Protocol-Server, der Zugriff auf API-Funktionen der JFrog-Plattform ermöglicht, darunter Repository-Verwaltung, Build-Tracking, Artefaktsuche und Paketsicherheitsanalyse.
Related MCP Servers
- -security-license-qualityA Model Context Protocol server that enables interaction with Salesforce through REST API using jsforce, allowing users to execute SOQL queries, retrieve object metadata, and perform CRUD operations on Salesforce records.Last updated -
- -securityAlicense-qualityA Model Context Protocol server that enables interaction with Foundry tools through natural language, allowing users to create projects, build contracts, run tests, and manage Ethereum development environments.Last updated -1PythonMIT License
- AsecurityAlicenseAqualityA Model Context Protocol server that fetches up-to-date, version-specific documentation and code examples from libraries directly into LLM prompts, helping developers get accurate answers without outdated or hallucinated information.Last updated -2145,8339,538JavaScriptMIT License
- AsecurityFlicenseAqualityA Model Context Protocol server that enables users to perform third-party enrichment lookups for security observables (IP addresses, domains, URLs, emails) through services like VirusTotal, Shodan, and others.Last updated -1Python