JFrog MCP Server

Official

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Servidor MCP de JFrog (🧪 Experimental)

Servidor de Protocolo de Contexto de Modelo (MCP) para la API de la plataforma JFrog, que permite la gestión de repositorios, el seguimiento de compilaciones, la gestión del ciclo de vida de las versiones y más.

https://github.com/user-attachments/assets/aca3af2b-f294-41c8-8727-799a019a55b5

Descargo de responsabilidad

Este es un proyecto experimental que busca demostrar las capacidades de JFrog con MCP. No cuenta con soporte ni verificación oficial de JFrog.

Características

  • Gestión de repositorios : cree y administre repositorios locales, remotos y virtuales
  • Seguimiento de compilación : enumerar y recuperar información de compilación
  • Monitoreo en tiempo de ejecución : vea clústeres en tiempo de ejecución e imágenes de contenedores en ejecución
  • Control de misión : Ver instancias de la plataforma JFrog asociadas
  • Búsqueda de artefactos : ejecute potentes consultas AQL para buscar artefactos y compilaciones
  • Catálogo y curación : acceda a información de paquetes, versiones, vulnerabilidades y verifique el estado de curación

Herramientas

  1. check_jfrog_availability
    • Compruebe si la plataforma JFrog está lista y funcionando
    • Devoluciones: Estado de preparación de la plataforma
  2. create_local_repository
    • Crear un nuevo repositorio local en Artifactory
    • Entradas:
      • key (cadena): clave del repositorio
      • rclass (cadena): Clase de repositorio (debe ser "local")
      • packageType (cadena): tipo de paquete del repositorio
      • description (cadena opcional): Descripción del repositorio
      • projectKey (cadena opcional): Clave de proyecto a la que se asignará el repositorio
      • environments (cadena opcional[]): entornos a los que asignar el repositorio
    • Devoluciones: Detalles del repositorio creado
  3. create_remote_repository
    • Cree un nuevo repositorio remoto en Artifactory para hacer de proxy de registros de paquetes externos
    • Entradas:
      • key (cadena): clave del repositorio
      • rclass (cadena): Clase de repositorio (debe ser "remota")
      • packageType (cadena): tipo de paquete del repositorio
      • url (cadena): URL al repositorio remoto
      • username (cadena opcional): nombre de usuario del repositorio remoto
      • password (cadena opcional): contraseña del repositorio remoto
      • description (cadena opcional): Descripción del repositorio
      • projectKey (cadena opcional): Clave de proyecto a la que se asignará el repositorio
      • environments (cadena opcional[]): entornos a los que asignar el repositorio
      • Muchos otros parámetros opcionales para configuraciones de repositorio específicas
    • Devoluciones: Detalles del repositorio creado
  4. create_virtual_repository
    • Cree un nuevo repositorio virtual en Artifactory que agregue múltiples repositorios
    • Entradas:
      • key (cadena): clave del repositorio
      • rclass (cadena): Clase de repositorio (debe ser "virtual")
      • packageType (cadena): tipo de paquete del repositorio
      • repositories (string[]): Lista de claves de repositorio para incluir en el repositorio virtual
      • description (cadena opcional): Descripción del repositorio
      • projectKey (cadena opcional): Clave de proyecto a la que se asignará el repositorio
      • environments (cadena opcional[]): entornos a los que asignar el repositorio
      • Otros parámetros opcionales para configuraciones de repositorio específicas
    • Devoluciones: Detalles del repositorio creado
  5. list_repositories
    • Enumere todos los repositorios en Artifactory con filtrado opcional
    • Entradas:
      • type (cadena opcional): Filtrar repositorios por tipo (local, remoto, virtual, federado, distribución)
      • packageType (cadena opcional): Filtrar repositorios por tipo de paquete
      • project (cadena opcional): Filtrar repositorios por clave de proyecto
    • Devuelve: Lista de repositorios que coinciden con los filtros
  6. set_folder_property
    • Establecer propiedades en una carpeta en Artifactory, con aplicación recursiva opcional
    • Entradas:
      • folderPath (cadena): Ruta a la carpeta donde se deben establecer las propiedades
      • properties (objeto): pares clave-valor de propiedades a establecer
      • recursive (booleano opcional): si se deben aplicar propiedades recursivamente a las subcarpetas
    • Devuelve: Resultado de la operación
  7. execute_aql_query
    • Ejecute una consulta de lenguaje de consulta de artefactos (AQL) para buscar artefactos, compilaciones u otras entidades en JFrog Artifactory
    • Entradas:
      • query (cadena): La consulta AQL que se ejecutará. Debe seguir la sintaxis AQL (p. ej., items.find({"repo":"my-repo"}).include("name","path"))
      • domain (cadena opcional): el dominio principal en el que buscar (elementos, compilaciones, entradas de archivo, promociones de compilación, lanzamientos)
      • transitive (booleano opcional): si se debe buscar en repositorios remotos
      • limit (número opcional): Número máximo de resultados a devolver
      • offset (número opcional): Número de resultados a omitir
      • include_fields (cadena opcional[]): Campos a incluir en los resultados
      • sort_by (cadena opcional): Campo para ordenar los resultados
      • sort_order (cadena opcional): orden de clasificación (ascendente o descendente)
    • Devuelve: Resultados de búsqueda con metadatos
  8. list_jfrog_builds
    • Devuelve una lista de todas las compilaciones en la plataforma JFrog
    • Devoluciones: Lista de compilaciones
  9. get_specific_build
    • Obtener detalles de una compilación específica por nombre
    • Entradas:
      • buildName (cadena): nombre de la compilación a recuperar
      • project (cadena opcional): clave del proyecto para delimitar la búsqueda de compilación
    • Devoluciones: Detalles de la compilación
  10. list_jfrog_runtime_clusters
  • Devuelve una lista de todos los clústeres de tiempo de ejecución en la plataforma JFrog
  • Entradas:
    • limit (entero opcional): el número máximo de clústeres a devolver
    • next_key (cadena opcional): la siguiente clave que se utilizará para la paginación
  • Devuelve: Lista de clústeres de tiempo de ejecución
  1. get_jfrog_runtime_specific_cluster
  • Devolver un clúster de tiempo de ejecución por ID
  • Entradas:
    • clusterId (entero): el ID del clúster que se recuperará
  • Devoluciones: Detalles del clúster
  1. list_jfrog_running_images
  • Enumere todas las imágenes de contenedores en ejecución en los clústeres de tiempo de ejecución con su estado operativo y de seguridad
  • Entradas:
    • filters (cadena opcional): filtros para aplicar
    • num_of_rows (entero opcional): Número de filas a devolver
    • page_num (entero opcional): Número de página
    • statistics (booleano opcional): si se deben incluir estadísticas
    • timePeriod (cadena opcional): período de tiempo para consultar
  • Devoluciones: Lista de imágenes en ejecución
  1. list_jfrog_environments
  • Obtenga una lista de todos los tipos de entornos en la plataforma JFrog con sus detalles
  • Entradas:
  • Devoluciones: Lista de entornos
  1. list_jfrog_projects
  • Obtenga una lista de todos los proyectos en la plataforma JFrog con sus detalles
  • Entradas:
  • Devoluciones: Lista de proyectos
  1. get_specific_project
  • Obtenga información detallada sobre un proyecto específico en la plataforma JFrog
  • Entradas:
    • project_key (cadena): La clave única del proyecto a recuperar
  • Devoluciones: Detalles del proyecto
  1. create_project
  • Crear un nuevo proyecto en la plataforma JFrog
  • Entradas:
    • project_key (cadena): identificador único para el proyecto
    • display_name (cadena): Nombre para mostrar del proyecto
    • description (cadena): Descripción del proyecto
    • admin_privileges (objeto): privilegios administrativos para el proyecto
    • storage_quota_bytes (número): cuota de almacenamiento en bytes (-1 para ilimitado)
  • Devoluciones: Detalles del proyecto creado
  1. jfrog_get_package_info
  • Obtener información disponible públicamente sobre un paquete de software
  • Entradas:
    • type (cadena): el tipo de paquete (pypi, npm, maven, golang, nuget, huggingface, rubygems)
    • name (cadena): el nombre del paquete, tal como aparece en el repositorio de paquetes
    • version (cadena opcional): La versión del paquete (predeterminado: "última")
  • Devoluciones: Información del paquete, incluida la descripción, la última versión, la licencia y las URL.
  1. jfrog_get_package_versions
  • Obtenga una lista de versiones de un paquete disponible públicamente con fechas de publicación
  • Entradas:
    • type (cadena): el tipo de paquete (pypi, npm, maven, golang, nuget, huggingface, rubygems)
    • name (cadena): el nombre del paquete, tal como aparece en el repositorio de paquetes
  • Devuelve: Lista de versiones de paquetes con fechas de publicación
  1. jfrog_get_package_version_vulnerabilities
  • Obtenga una lista de vulnerabilidades conocidas que afectan a una versión específica de un paquete de código abierto
  • Entradas:
    • type (cadena): el tipo de paquete (pypi, npm, maven, golang, nuget, huggingface, rubygems)
    • name (cadena): el nombre del paquete, tal como aparece en el repositorio de paquetes
    • version (cadena opcional): La versión del paquete (predeterminado: "última")
    • pageSize (número opcional): Número de vulnerabilidades a devolver por página (valor predeterminado: 10)
    • pageCount (número opcional): Número de páginas a devolver (predeterminado: 1)
  • Devuelve: Lista de vulnerabilidades que afectan a la versión del paquete especificado
  1. jfrog_get_vulnerability_info
  • Obtenga información detallada sobre una vulnerabilidad específica, incluidos los paquetes y versiones afectados
  • Entradas:
    • cve_id (cadena): El ID de CVE o identificador de vulnerabilidad a buscar
    • pageSize (número opcional): Número de vulnerabilidades a devolver por página (valor predeterminado: 10)
    • pageCount (número opcional): Número de páginas a devolver (predeterminado: 1)
  • Devoluciones: Información detallada sobre vulnerabilidades y paquetes afectados
  1. jfrog_get_package_curation_status
  • Comprobar el estado de curación de una versión específica del paquete
  • Entradas:
    • packageType (cadena): el tipo de paquete (pypi, npm, maven, golang, nuget, huggingface, rubygems)
    • packageName (cadena): el nombre del paquete, tal como aparece en el repositorio de paquetes
    • packageVersion (cadena): La versión del paquete, tal como aparece en el repositorio de paquetes
  • Devoluciones: Estado de curación (aprobado, bloqueado o no concluyente)

Configuración

Instalación mediante herrería

Para instalar mcp-jfrog para Claude Desktop automáticamente a través de Smithery :

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

Prerrequisitos

  • Node.js v18 o superior
  • Docker (si utiliza la implementación de Docker, consulte )
  • Una instancia válida de la plataforma JFrog con los permisos adecuados
  • Acceso para crear y administrar tokens de acceso en su instancia de la plataforma JFrog

Variables de entorno

  • JFROG_ACCESS_TOKEN : Su token de acceso a JFrog (obligatorio)
  • JFROG_URL : URL base para su plataforma JFrog (obligatorio)

Token de JFrog ( JFROG_ACCESS_TOKEN )

Para utilizar este servidor MCP, debe crear un token de acceso JFrog o utilizar un token de Idenetity con los permisos adecuados:

Para obtener información sobre cómo crear un token JFrog, consulte la documentación oficial de JFrog:

URL de JFrog ( JFROG_URL )

URL de su instancia de la plataforma JFrog (por ejemplo, https://acme.jfrog.io )

Cómo construir

Clone el repositorio en su máquina local usando git clone y cd en el directorio del proyecto:

git clone git@github.com:jfrog/mcp-jfrog.git cd mcp-jfrog

Construir como una imagen de Docker:

docker build -t mcp/jfrog -f Dockerfile .

Construir como un módulo npm:

npm i && npm run build

Uso

npm

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

Estibador

{ "mcpServers": { "jfrog": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "JFROG_ACCESS_TOKEN", "-e", "JFROG_URL", "mcp/jfrog" ], "env": { "JFROG_ACCESS_TOKEN": "<YOUR_TOKEN>", "JFROG_URL": "https://your-instance.jfrog.io" // Your JFrog platform URL } } } }

Agregue lo siguiente a su claude_desktop_config.json :

Estibador

{ "mcpServers": { "jfrog": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "JFROG_ACCESS_TOKEN", "-e", "JFROG_URL", "mcp/jfrog" ], "env": { "JFROG_ACCESS_TOKEN": "<YOUR_TOKEN>", "JFROG_URL": "https://your-instance.jfrog.io" // Your JFrog platform URL } } } }

npm

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

Licencia

Este servidor MCP cuenta con la licencia Apache 2.0. Esto significa que puede usar, modificar y distribuir el software libremente, sujeto a los términos y condiciones de la licencia Apache 2.0. Para más información, consulte el archivo LICENSE.md en el repositorio del proyecto.

-
security - not tested
A
license - permissive license
-
quality - not tested

Servidor de protocolo de contexto de modelo experimental que permite el acceso a las capacidades de la API de la plataforma JFrog, incluida la gestión de repositorios, el seguimiento de compilaciones, la búsqueda de artefactos y el análisis de seguridad de paquetes.

  1. Disclaimer
    1. Features
      1. Tools
        1. Setup
          1. Installing via Smithery
          2. Prerequisites
        2. Environment Variables
          1. JFrog Token (JFROG_ACCESS_TOKEN)
          2. JFrog URL (JFROG_URL)
          3. How to build
        3. Usage
          1. npm
          2. Docker
          3. npm
        4. License
          ID: 2io8woslh9