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_availabilityPrüfen Sie, ob die JFrog-Plattform bereit und funktionsfähig ist
Rückgaben: Status der Plattformbereitschaft
create_local_repositoryErstellen 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_repositoryErstellen 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 sollViele weitere optionale Parameter für spezifische Repository-Konfigurationen
Rückgabe: Details zum erstellten Repository
create_virtual_repositoryErstellen 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 sollWeitere optionale Parameter für bestimmte Repository-Konfigurationen
Rückgabe: Details zum erstellten Repository
list_repositoriesListen 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_propertyLegen 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_queryFü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_buildsGibt eine Liste aller Builds in der JFrog-Plattform zurück
Rückgabe: Liste der Builds
get_specific_buildAbrufen 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
/healthEndpunkt, 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
connectionIdals 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:
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 Resources
Related MCP Servers
- Asecurity-licenseAqualityA Model Context Protocol server that integrates with Figma's API, allowing interaction with Figma files, comments, components, projects, and webhook management.Last updated -5581
- -security-license-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 -1MIT License
- Asecurity-licenseAqualityA Model Context Protocol server that enables interaction with PostgreSQL databases for analyzing setups, debugging issues, managing schemas, migrating data, and monitoring performance.Last updated -111MIT License
MockLoop MCP Serverofficial
-security-license-qualityA Model Context Protocol server that generates and runs mock API servers from API documentation like OpenAPI/Swagger specs, enabling developers and AI assistants to quickly spin up mock backends for development and testing.Last updated -12MIT License