Skip to main content
Glama

JFrog MCP Server

Official
by jfrog

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
  • Rayos X : Resumen de artefactos de escaneo de acceso, agrupados por gravedad por artefacto

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 por el cual 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 a 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)
  1. jfrog_get_artifacts_summary
  • Obtenga un resumen de problemas de artefactos en un repositorio o compilación, categorizados y contados por gravedad (Baja, Media, Alta, Crítica, Desconocida)
  • Entradas:
    • paths (matriz de cadenas): una matriz de rutas a los artefactos desde los cuales crear el resumen
  • Devoluciones: un resumen basado en el recuento de vulnerabilidades por gravedad para cada artefacto en la matriz proporcionada más el total de problemas

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)
  • TRANSPORT : Modo de transporte a utilizar, configúrelo en 'sse' para habilitar el transporte SSE (predeterminado: stdio)
  • PORT : Número de puerto a utilizar para el transporte SSE (predeterminado: 8080)
  • CORS_ORIGIN : Origen CORS permitido para conexiones SSE (predeterminado: '*')
  • LOG_LEVEL : Nivel de registro: DEBUG, INFO, WARN, ERROR (predeterminado: INFO)
  • MAX_RECONNECT_ATTEMPTS : Número máximo de intentos de reconexión para el servidor SSE (valor predeterminado: 5)
  • RECONNECT_DELAY_MS : Retraso base en milisegundos entre intentos de reconexión (valor predeterminado: 2000)

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 )

Características del transporte de SSE

El modo de transporte SSE incluye las siguientes características:

  • Gestión de conexiones : cada conexión SSE se rastrea con una identificación única, lo que permite a los clientes mantener el estado en todas las reconexiones.
  • Registro estructurado : registros detallados con marcas de tiempo, niveles de gravedad e información contextual relevante.
  • Resistencia de conexión : intentos de reconexión automática con retroceso exponencial si el servidor no se inicia.
  • Punto final de salud : un punto final de /health que devuelve información sobre el estado del servidor.
  • Seguimiento de conexión : seguimiento en tiempo real de conexiones activas con registro de estadísticas periódicas.
  • Métricas de rendimiento : seguimiento del tiempo de ejecución para operaciones de herramientas y solicitudes HTTP.

Al utilizar el modo SSE:

  1. Los clientes deben conectarse al punto final /sse y, opcionalmente, proporcionar un parámetro de consulta connectionId para el seguimiento de la sesión.
  2. Las solicitudes de los clientes deben enviarse al punto final /messages con el mismo connectionId que parámetro de consulta.
  3. El servidor responderá con los eventos enviados por el servidor a través de la conexión SSE establecida.

Ejemplo de conexión de cliente con ID de conexión:

GET /sse?connectionId=client123

Ejemplo de solicitud de cliente:

POST /messages?connectionId=client123 Content-Type: application/json { "jsonrpc": "2.0", "method": "listTools", "id": 1 }

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" }, "serverUrl": "http://localhost:8080/sse" } } }

Modo de transporte SSE

Para utilizar el servidor JFrog MCP con el modo de transporte SSE (útil para interfaces web como la vista web de Cursor):

{ "mcpServers": { "jfrog-sse": { "command": "docker", "args": [ "run", "--rm", "-p", "8080:8080", "-e", "TRANSPORT=sse", "-e", "PORT=8080", "-e", "CORS_ORIGIN=*", "-e", "LOG_LEVEL=INFO", "-e", "MAX_RECONNECT_ATTEMPTS=5", "-e", "RECONNECT_DELAY_MS=2000", "-e", "JFROG_ACCESS_TOKEN", "-e", "JFROG_URL", "mcp/jfrog" ], "env": { "JFROG_ACCESS_TOKEN": "<YOUR_TOKEN>", "JFROG_URL": "https://your-instance.jfrog.io", "serverUrl": "http://localhost:8080/sse" } } } }

Nota: para el modo SSE, debe agregar el parámetro serverUrl que apunta a su punto final SSE y exponer el puerto utilizado por el servidor (-p 8080:8080).

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 }, "serverUrl": "http://localhost:8080/sse" } } }

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

Modo de transporte SSE

Para Claude Desktop con transporte SSE:

{ "mcpServers": { "jfrog-sse": { "command": "docker", "args": [ "run", "--rm", "-p", "8080:8080", "-e", "TRANSPORT=sse", "-e", "PORT=8080", "-e", "CORS_ORIGIN=*", "-e", "LOG_LEVEL=INFO", "-e", "MAX_RECONNECT_ATTEMPTS=5", "-e", "RECONNECT_DELAY_MS=2000", "-e", "JFROG_ACCESS_TOKEN", "-e", "JFROG_URL", "mcp/jfrog" ], "env": { "JFROG_ACCESS_TOKEN": "<YOUR_TOKEN>", "JFROG_URL": "https://your-instance.jfrog.io", "serverUrl": "http://localhost:8080/sse" } } } }
</details> ## 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.
Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

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.

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. Descargo de responsabilidad
    1. Características
      1. Herramientas
        1. Configuración
          1. Instalación mediante herrería
          2. Prerrequisitos
        2. Variables de entorno
          1. Token de JFrog ( JFROG_ACCESS_TOKEN )
          2. URL de JFrog ( JFROG_URL )
          3. Características del transporte de SSE
          4. Cómo construir
        3. Uso
          1. npm
          2. Estibador
          3. Modo de transporte SSE
          4. npm
          5. Modo de transporte SSE

        Related MCP Servers

        • -
          security
          F
          license
          -
          quality
          A Model Context Protocol server that integrates with Figma's API, allowing interaction with Figma files, comments, components, projects, and webhook management.
          Last updated -
          997
          JavaScript
        • -
          security
          A
          license
          -
          quality
          A 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 -
          1
          Python
          MIT License
        • -
          security
          A
          license
          -
          quality
          A Model Context Protocol server that enables interaction with PostgreSQL databases for analyzing setups, debugging issues, managing schemas, migrating data, and monitoring performance.
          Last updated -
          6
          TypeScript
          MIT License
        • -
          security
          A
          license
          -
          quality
          A 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 -
          7
          Python
          MIT License
          • Apple

        View all related MCP servers

        MCP directory API

        We provide all the information about MCP servers via our MCP API.

        curl -X GET 'https://glama.ai/api/mcp/v1/servers/jfrog/mcp-jfrog'

        If you have feedback or need assistance with the MCP directory API, please join our Discord server