Skip to main content
Glama

JFrog MCP Server

Official
by jfrog

Сервер JFrog MCP (🧪 Экспериментальный)

Сервер протокола контекста модели (MCP) для API платформы JFrog, обеспечивающий управление репозиторием, отслеживание сборок, управление жизненным циклом релизов и многое другое.

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

Отказ от ответственности

Это экспериментальный проект, призванный продемонстрировать возможности JFrog с MCP. Он официально не поддерживается и не проверяется JFrog.

Функции

  • Управление репозиториями : создание и управление локальными, удаленными и виртуальными репозиториями.
  • Отслеживание сборки : список и извлечение информации о сборке
  • Мониторинг выполнения : просмотр кластеров выполнения и запущенных образов контейнеров.
  • Mission Control : просмотр связанных экземпляров платформы JFrog
  • Поиск артефактов : выполнение эффективных AQL-запросов для поиска артефактов и сборок.
  • Каталог и курирование : доступ к информации о пакете, версиям, уязвимостям и проверка статуса курирования.
  • Рентген : сводка артефактов сканирования, группировка по степени серьезности каждого артефакта

Инструменты

  1. check_jfrog_availability
    • Проверьте готовность и работоспособность платформы JFrog
    • Возврат: Статус готовности платформы
  2. create_local_repository
    • Создайте новый локальный репозиторий в Artifactory
    • Входные данные:
      • key (строка): Ключ репозитория
      • rclass (строка): Класс репозитория (должен быть «локальным»)
      • packageType (string): Тип пакета репозитория
      • description (необязательная строка): Описание репозитория
      • projectKey (необязательная строка): ключ проекта, которому будет назначен репозиторий.
      • environments (необязательно string[]): среды, в которые следует назначить репозиторий
    • Возвращает: Созданные данные репозитория
  3. create_remote_repository
    • Создайте новый удаленный репозиторий в Artifactory для прокси-сервера внешних реестров пакетов.
    • Входные данные:
      • key (строка): Ключ репозитория
      • rclass (строка): Класс репозитория (должен быть «удалённым»)
      • packageType (string): Тип пакета репозитория
      • url (строка): URL-адрес удаленного репозитория
      • username (необязательная строка): имя пользователя удаленного репозитория
      • password (необязательная строка): пароль удаленного репозитория
      • description (необязательная строка): Описание репозитория
      • projectKey (необязательная строка): ключ проекта, которому будет назначен репозиторий.
      • environments (необязательно string[]): среды, в которые следует назначить репозиторий
      • Множество других дополнительных параметров для определенных конфигураций репозитория.
    • Возвращает: Созданные данные репозитория
  4. create_virtual_repository
    • Создайте новый виртуальный репозиторий в Artifactory, который объединяет несколько репозиториев.
    • Входные данные:
      • key (строка): Ключ репозитория
      • rclass (строка): Класс репозитория (должен быть «виртуальным»)
      • packageType (string): Тип пакета репозитория
      • repositories (string[]): Список ключей репозитория для включения в виртуальный репозиторий
      • description (необязательная строка): Описание репозитория
      • projectKey (необязательная строка): ключ проекта, которому будет назначен репозиторий.
      • environments (необязательно string[]): среды, в которые следует назначить репозиторий
      • Другие необязательные параметры для определенных конфигураций репозитория
    • Возвращает: Созданные данные репозитория
  5. list_repositories
    • Список всех репозиториев в Artifactory с возможностью фильтрации
    • Входные данные:
      • type (необязательная строка): Фильтрация репозиториев по типу (локальный, удаленный, виртуальный, федеративный, дистрибутивный)
      • packageType (необязательная строка): Фильтрация репозиториев по типу пакета
      • project (необязательная строка): Фильтрация репозиториев по ключу проекта
    • Возвращает: Список репозиториев, соответствующих фильтрам.
  6. set_folder_property
    • Установка свойств папки в Artifactory с возможностью рекурсивного применения
    • Входные данные:
      • folderPath (строка): Путь к папке, в которой следует задать свойства.
      • properties (объект): пары «ключ-значение» свойств для установки
      • recursive (необязательно логическое значение): следует ли применять свойства рекурсивно к подпапкам
    • Возврат: Результат операции
  7. execute_aql_query
    • Выполнить запрос Artifactory Query Language (AQL) для поиска артефактов, сборок или других сущностей в JFrog Artifactory
    • Входные данные:
      • query (string): AQL-запрос для выполнения. Должен соответствовать синтаксису AQL (например, items.find({"repo":"my-repo"}).include("name","path"))
      • domain (необязательная строка): основной домен для поиска (элементы, сборки, архивные записи, сборки.рекламные акции, релизы)
      • transitive (необязательно логический): следует ли искать в удаленных репозиториях
      • limit (необязательное число): максимальное количество возвращаемых результатов
      • offset (необязательное число): количество результатов, которые нужно пропустить
      • include_fields (необязательно string[]): поля для включения в результаты
      • sort_by (необязательная строка): Поле для сортировки результатов.
      • sort_order (необязательная строка): порядок сортировки (по возрастанию или по убыванию)
    • Возвращает: Результаты поиска с метаданными
  8. list_jfrog_builds
    • Верните список всех сборок на платформе JFrog.
    • Возврат: Список сборок
  9. get_specific_build
    • Получить подробную информацию о конкретной сборке по названию
    • Входные данные:
      • buildName (строка): Имя сборки для извлечения
      • project (необязательная строка): ключ проекта для определения области поиска сборки
    • Возврат: Подробности сборки
  10. list_jfrog_runtime_clusters
  • Возврат списка всех кластеров времени выполнения на платформе JFrog
  • Входные данные:
    • limit (необязательное целое число): максимальное количество возвращаемых кластеров
    • next_key (необязательная строка): следующий ключ для использования при разбиении на страницы.
  • Возвращает: список кластеров времени выполнения.
  1. get_jfrog_runtime_specific_cluster
  • Возврат кластера времени выполнения по идентификатору
  • Входные данные:
    • clusterId (целое число): идентификатор кластера, который нужно получить.
  • Возвращает: сведения о кластере
  1. list_jfrog_running_images
  • Перечислите все запущенные образы контейнеров в кластерах времени выполнения с указанием их статуса безопасности и работоспособности.
  • Входные данные:
    • filters (необязательная строка): Фильтры для применения
    • num_of_rows (необязательное целое число): количество возвращаемых строк
    • page_num (необязательное целое число): Номер страницы
    • statistics (необязательно логическое значение): следует ли включать статистику
    • timePeriod (необязательная строка): период времени для запроса
  • Возвращает: Список запущенных образов
  1. list_jfrog_environments
  • Получите список всех типов сред на платформе JFrog с их подробностями.
  • Входные данные:
  • Возвращает: Список сред
  1. list_jfrog_projects
  • Получите список всех проектов на платформе JFrog с их подробностями
  • Входные данные:
  • Возвращает: Список проектов
  1. get_specific_project
  • Получите подробную информацию о конкретном проекте на платформе JFrog
  • Входные данные:
    • project_key (string): уникальный ключ проекта для извлечения
  • Возврат: Подробности проекта
  1. create_project
  • Создайте новый проект на платформе JFrog
  • Входные данные:
    • project_key (строка): Уникальный идентификатор проекта
    • display_name (string): Отображаемое имя проекта
    • description (строка): Описание проекта
    • admin_privileges (объект): Административные привилегии для проекта
    • storage_quota_bytes (число): Квота хранения в байтах (-1 для неограниченного)
  • Возвращает: Созданные детали проекта
  1. jfrog_get_package_info
  • Получите общедоступную информацию о программном пакете
  • Входные данные:
    • type (строка): тип пакета (pypi, npm, maven, golang, nuget, huggingface, rubygems)
    • name (строка): имя пакета, как оно отображается в репозитории пакетов.
    • version (необязательная строка): версия пакета (по умолчанию: «последняя»).
  • Возврат: информация о пакете, включая описание, последнюю версию, лицензию и URL-адреса.
  1. jfrog_get_package_versions
  • Получить список версий общедоступного пакета с датами публикации
  • Входные данные:
    • type (строка): тип пакета (pypi, npm, maven, golang, nuget, huggingface, rubygems)
    • name (строка): имя пакета, как оно отображается в репозитории пакетов.
  • Возвращает: Список версий пакета с датами публикации.
  1. jfrog_get_package_version_vulnerabilities
  • Получите список известных уязвимостей, влияющих на определенную версию пакета с открытым исходным кодом.
  • Входные данные:
    • type (строка): тип пакета (pypi, npm, maven, golang, nuget, huggingface, rubygems)
    • name (строка): имя пакета, как оно отображается в репозитории пакетов.
    • version (необязательная строка): версия пакета (по умолчанию: «последняя»).
    • pageSize (необязательное число): количество уязвимостей, возвращаемых на страницу (по умолчанию: 10)
    • pageCount (необязательное число): количество возвращаемых страниц (по умолчанию: 1)
  • Возвращает: Список уязвимостей, влияющих на указанную версию пакета.
  1. jfrog_get_vulnerability_info
  • Получите подробную информацию о конкретной уязвимости, включая затронутые пакеты и версии.
  • Входные данные:
    • cve_id (строка): идентификатор CVE или идентификатор уязвимости для поиска
    • pageSize (необязательное число): количество уязвимостей, возвращаемых на страницу (по умолчанию: 10)
    • pageCount (необязательное число): количество возвращаемых страниц (по умолчанию: 1)
  • Возвращает: подробную информацию об уязвимостях и затронутых пакетах.
  1. jfrog_get_package_curation_status
  • Проверьте статус курирования конкретной версии пакета
  • Входные данные:
    • packageType (строка): тип пакета (pypi, npm, maven, golang, nuget, huggingface, rubygems)
    • packageName (строка): Имя пакета, как оно отображается в репозитории пакетов.
    • packageVersion (строка): версия пакета, как она отображается в репозитории пакетов.
  • Возвращает: статус курирования (одобрено, заблокировано или неопределенно)
  1. jfrog_get_artifacts_summary
  • Получите сводку проблем с артефактами в репозитории или сборке, отсортированную по категориям и степени серьезности (низкая, средняя, высокая, критическая, неизвестная)
  • Входные данные:
    • paths (строковый массив): Массив путей к артефактам, из которых создается сводка.
  • Возвращает: сводку, основанную на количестве уязвимостей по степени серьезности для каждого артефакта в предоставленном массиве, а также общее количество проблем.

Настраивать

Установка через Smithery

Чтобы автоматически установить mcp-jfrog для Claude Desktop через Smithery :

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

Предпосылки

  • Node.js v18 или выше
  • Docker (если используется развертывание Docker, см. )
  • Действительный экземпляр платформы JFrog с соответствующими разрешениями
  • Доступ для создания и управления токенами доступа в вашем экземпляре платформы JFrog.

Переменные среды

  • JFROG_ACCESS_TOKEN : Ваш токен доступа JFrog (обязательно)
  • JFROG_URL : базовый URL-адрес вашей платформы JFrog (обязательно)
  • TRANSPORT : режим транспорта, который нужно использовать, установите значение «sse», чтобы включить транспорт SSE (по умолчанию: stdio)
  • PORT : Номер порта, используемый для транспорта SSE (по умолчанию: 8080)
  • CORS_ORIGIN : источник CORS разрешен для соединений SSE (по умолчанию: '*')
  • LOG_LEVEL : Уровень ведения журнала: DEBUG, INFO, WARN, ERROR (по умолчанию: INFO)
  • MAX_RECONNECT_ATTEMPTS : Максимальное количество попыток повторного подключения для сервера SSE (по умолчанию: 5)
  • RECONNECT_DELAY_MS : Базовая задержка в миллисекундах между попытками повторного подключения (по умолчанию: 2000)

Токен JFrog ( JFROG_ACCESS_TOKEN )

Чтобы использовать этот сервер MCP, вам необходимо создать токен доступа JFrog или использовать токен Idenetity с соответствующими разрешениями:

Информацию о том, как создать токен JFrog, можно найти в официальной документации JFrog:

URL-адрес JFrog ( JFROG_URL )

URL вашего экземпляра платформы JFrog (например, https://acme.jfrog.io )

Транспортные возможности SSE

Транспортный режим SSE включает в себя следующие функции:

  • Управление соединениями : каждое соединение SSE отслеживается с помощью уникального идентификатора, что позволяет клиентам сохранять состояние при повторных соединениях.
  • Структурированное ведение журнала : подробные журналы с временными метками, уровнями серьезности и соответствующей контекстной информацией.
  • Устойчивость соединения : автоматические попытки повторного подключения с экспоненциальной задержкой, если сервер не запускается.
  • Конечная точка здоровья : конечная точка /health , которая возвращает информацию о состоянии сервера.
  • Отслеживание подключений : отслеживание активных подключений в режиме реального времени с периодической регистрацией статистики.
  • Показатели производительности : отслеживание времени выполнения операций инструмента и HTTP-запросов.

При использовании режима SSE:

  1. Клиенты должны подключаться к конечной точке /sse , при необходимости предоставляя параметр запроса connectionId для отслеживания сеанса.
  2. Клиентские запросы должны отправляться в конечную точку /messages с тем же connectionId в качестве параметра запроса.
  3. Сервер ответит отправленными сервером событиями через установленное соединение SSE.

Пример клиентского подключения с идентификатором подключения:

GET /sse?connectionId=client123

Пример запроса клиента:

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

Как построить

Клонируйте репозиторий на локальную машину с помощью git clone и cd в каталог проекта:

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

Сборка как образа Docker:

docker build -t mcp/jfrog -f Dockerfile .

Сборка как npm-модуля:

npm i && npm run build

Использование

нпм

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

Докер

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

Транспортный режим SSE

Чтобы использовать сервер JFrog MCP с транспортным режимом SSE (полезно для веб-интерфейсов, таких как Cursor's WebView):

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

Примечание: для режима SSE вам необходимо добавить параметр serverUrl , указывающий на вашу конечную точку SSE, и указать порт, используемый сервером (-p 8080:8080).

Добавьте следующее в ваш claude_desktop_config.json :

Докер
{ "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" } } }

нпм

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

Транспортный режим SSE

Для Claude Desktop с транспортом 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.

You must be authenticated.

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.

Сервер экспериментального контекстного протокола модели, который обеспечивает доступ к возможностям API платформы JFrog, включая управление репозиторием, отслеживание сборок, поиск артефактов и анализ безопасности пакетов.

  1. Отказ от ответственности
    1. Функции
      1. Инструменты
        1. Настраивать
          1. Установка через Smithery
          2. Предпосылки
        2. Переменные среды
          1. Токен JFrog ( JFROG_ACCESS_TOKEN )
          2. URL-адрес JFrog ( JFROG_URL )
          3. Транспортные возможности SSE
          4. Как построить
        3. Использование
          1. нпм
          2. Докер
          3. Транспортный режим SSE
          4. нпм
          5. Транспортный режим SSE

        Related MCP Servers

        • -
          security
          -
          license
          -
          quality
          A 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 -
        • -
          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
        • A
          security
          A
          license
          A
          quality
          A 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 -
          2
          145,833
          9,538
          JavaScript
          MIT License
          • Linux
          • Apple
        • A
          security
          F
          license
          A
          quality
          A 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 -
          1
          Python
          • 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