JFrog MCP Server

Official

hybrid server

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

JFrog MCP 服务器(🧪 实验性)

JFrog 平台 API 的模型上下文协议 (MCP) 服务器,支持存储库管理、构建跟踪、发布生命周期管理等。

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

免责声明

这是一个实验项目,旨在展示 JFrog 使用 MCP 的功能。它尚未获得 JFrog 的官方支持或验证。

特征

  • 存储库管理:创建和管理本地、远程和虚拟存储库
  • 构建跟踪:列出并检索构建信息
  • 运行时监控:查看运行时集群和正在运行的容器镜像
  • 任务控制:查看关联的 JFrog 平台实例
  • 工件搜索:执行强大的 AQL 查询来搜索工件和构建
  • 目录和管理:访问软件包信息、版本、漏洞并检查管理状态

工具

  1. check_jfrog_availability
    • 检查 JFrog 平台是否已准备就绪并正常运行
    • 返回:平台就绪状态
  2. create_local_repository
    • 在 Artifactory 中创建新的本地存储库
    • 输入:
      • key (字符串):存储库键
      • rclass (字符串):存储库类(必须是“本地”)
      • packageType (字符串):存储库的包类型
      • description (可选字符串):存储库描述
      • projectKey (可选字符串):要分配存储库的项目键
      • environments (可选 string[]):将存储库分配到的环境
    • 返回:创建的存储库详细信息
  3. create_remote_repository
    • 在 Artifactory 中创建一个新的远程存储库来代理外部包注册表
    • 输入:
      • key (字符串):存储库键
      • rclass (字符串):存储库类(必须是“远程”)
      • packageType (字符串):存储库的包类型
      • url (字符串):远程存储库的 URL
      • username (可选字符串):远程存储库用户名
      • password (可选字符串):远程存储库密码
      • description (可选字符串):存储库描述
      • projectKey (可选字符串):要分配存储库的项目键
      • environments (可选 string[]):将存储库分配到的环境
      • 特定存储库配置的许多其他可选参数
    • 返回:创建的存储库详细信息
  4. create_virtual_repository
    • 在 Artifactory 中创建一个聚合多个存储库的新虚拟存储库
    • 输入:
      • key (字符串):存储库键
      • rclass (字符串):存储库类(必须是“虚拟的”)
      • packageType (字符串):存储库的包类型
      • 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 查询语言 (AQL) 查询以搜索 JFrog Artifactory 中的工件、构建或其他实体
    • 输入:
      • query (字符串):要执行的 AQL 查询。必须遵循 AQL 语法(例如,items.find({"repo":"my-repo"}).include("name","path"))
      • domain (可选字符串):要搜索的主要域(items、builds、archive.entries、build.promotions、releases)
      • 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
  • 通过 ID 返回运行时集群
  • 输入:
    • clusterId (整数):要检索的集群的 ID
  • 返回:集群详细信息
  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 (字符串):要检索的项目的唯一键
  • 返回:项目详情
  1. create_project
  • 在JFrog平台中创建新项目
  • 输入:
    • project_key (字符串):项目的唯一标识符
    • display_name (字符串):项目的显示名称
    • 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 ID 或漏洞标识符
    • pageSize (可选数字):每页返回的漏洞数量(默认值:10)
    • pageCount (可选数字):返回的页数(默认值:1)
  • 返回:详细的漏洞信息和受影响的软件包
  1. jfrog_get_package_curation_status
  • 检查特定软件包版本的管理状态
  • 输入:
    • packageType (字符串):包的类型(pypi、npm、maven、golang、nuget、huggingface、rubygems)
    • packageName (字符串):包的名称,如包存储库中所示
    • packageVersion (字符串):软件包的版本,如软件包存储库中所示
  • 返回:策展状态(已批准、已阻止或不确定)

设置

通过 Smithery 安装

要通过Smithery自动为 Claude Desktop 安装 mcp-jfrog:

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

先决条件

  • Node.js v18 或更高版本
  • Docker(如果使用 Docker 部署,请参阅)
  • 具有适当权限的有效 JFrog 平台实例
  • 访问并管理 JFrog 平台实例中的访问令牌

环境变量

  • JFROG_ACCESS_TOKEN :您的 JFrog 访问令牌(必需)
  • JFROG_URL :您的 JFrog 平台的基本 URL(必需)

JFrog 令牌( JFROG_ACCESS_TOKEN

要使用此 MCP 服务器,您需要创建 JFrog 访问令牌或使用具有适当权限的 Idenetity 令牌:

有关如何创建 JFrog Token 的信息,请参阅 JFrog 官方文档:

JFrog 网址 ( JFROG_URL )

您的 JFrog 平台实例 URL(例如https://acme.jfrog.io

如何构建

使用git clone将 repo 克隆到本地计算机并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

用法

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

Docker

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

将以下内容添加到您的claude_desktop_config.json中:

Docker

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

执照

此 MCP 服务器遵循 Apache 许可证 2.0 许可。这意味着您可以自由使用、修改和分发该软件,但须遵守 Apache 许可证 2.0 的条款和条件。更多详情,请参阅项目代码库中的 LICENSE.md 文件。

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

实验模型上下文协议服务器,可访问 JFrog 平台 API 功能,包括存储库管理、构建跟踪、工件搜索和包安全分析。

  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