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:
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
- -securityFlicense-qualityA Model Context Protocol server that integrates with Figma's API, allowing interaction with Figma files, comments, components, projects, and webhook management.Last updated -997JavaScript
- -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
- -securityAlicense-qualityA Model Context Protocol server that enables interaction with PostgreSQL databases for analyzing setups, debugging issues, managing schemas, migrating data, and monitoring performance.Last updated -6TypeScriptMIT License
MockLoop MCP Serverofficial
-securityAlicense-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 -8PythonMIT License