JFrog MCP Server

JFrog MCP Server

一个实验性的模型上下文协议服务器,可以访问 JFrog 平台 API 的各项功能,包括仓库管理、构建跟踪、构件搜索和软件包安全分析。

Category
访问服务器

README

JFrog MCP 服务器 (🧪 实验性)

smithery badge

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

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

免责声明

这是一个实验性项目,旨在演示 JFrog 在 MCP 方面的能力。 它未经 JFrog 官方支持或验证。

功能

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

工具

<details> <summary><strong>仓库管理</strong></summary>

  1. check_jfrog_availability

    • 检查 JFrog 平台是否准备就绪并正常运行
    • 返回:平台就绪状态
  2. create_local_repository

    • 在 Artifactory 中创建一个新的本地仓库
    • 输入:
      • key (string): 仓库键
      • rclass (string): 仓库类(必须为“local”)
      • packageType (string): 仓库的软件包类型
      • description (optional string): 仓库描述
      • projectKey (optional string): 将仓库分配到的项目键
      • environments (optional string[]): 将仓库分配到的环境
    • 返回:已创建的仓库详细信息
  3. create_remote_repository

    • 在 Artifactory 中创建一个新的远程仓库,以代理外部软件包注册表
    • 输入:
      • key (string): 仓库键
      • rclass (string): 仓库类(必须为“remote”)
      • packageType (string): 仓库的软件包类型
      • url (string): 远程仓库的 URL
      • username (optional string): 远程仓库用户名
      • password (optional string): 远程仓库密码
      • description (optional string): 仓库描述
      • projectKey (optional string): 将仓库分配到的项目键
      • environments (optional string[]): 将仓库分配到的环境
      • 许多其他可选参数用于特定仓库配置
    • 返回:已创建的仓库详细信息
  4. create_virtual_repository

    • 在 Artifactory 中创建一个新的虚拟仓库,该仓库聚合多个仓库
    • 输入:
      • key (string): 仓库键
      • rclass (string): 仓库类(必须为“virtual”)
      • packageType (string): 仓库的软件包类型
      • repositories (string[]): 要包含在虚拟仓库中的仓库键列表
      • description (optional string): 仓库描述
      • projectKey (optional string): 将仓库分配到的项目键
      • environments (optional string[]): 将仓库分配到的环境
      • 其他可选参数用于特定仓库配置
    • 返回:已创建的仓库详细信息
  5. list_repositories

    • 列出 Artifactory 中的所有仓库,并可选择进行过滤
    • 输入:
      • type (optional string): 按类型过滤仓库(local、remote、virtual、federated、distribution)
      • packageType (optional string): 按软件包类型过滤仓库
      • project (optional string): 按项目键过滤仓库
    • 返回:与过滤器匹配的仓库列表
  6. set_folder_property

    • 在 Artifactory 的文件夹上设置属性,并可选择递归应用
    • 输入:
      • folderPath (string): 应设置属性的文件夹的路径
      • properties (object): 要设置的属性的键值对
      • recursive (optional boolean): 是否将属性递归应用于子文件夹
    • 返回:操作结果
  7. execute_aql_query

    • 执行 Artifactory 查询语言 (AQL) 查询,以搜索 JFrog Artifactory 中的制品、构建或其他实体
    • 输入:
      • query (string): 要执行的 AQL 查询。 必须遵循 AQL 语法(例如,items.find({"repo":"my-repo"}).include("name","path"))
      • domain (optional string): 要搜索的主域(items、builds、archive.entries、build.promotions、releases)
      • transitive (optional boolean): 是否在远程仓库中搜索
      • limit (optional number): 要返回的最大结果数
      • offset (optional number): 要跳过的结果数
      • include_fields (optional string[]): 要包含在结果中的字段
      • sort_by (optional string): 用于对结果进行排序的字段
      • sort_order (optional string): 排序顺序(asc 或 desc)
    • 返回:带有元数据的搜索结果 </details>

<details> <summary><strong>构建管理</strong></summary>

  1. list_jfrog_builds

    • 返回 JFrog 平台中所有构建的列表
    • 返回:构建列表
  2. get_specific_build

    • 按名称获取特定构建的详细信息
    • 输入:
      • buildName (string): 要检索的构建的名称
      • project (optional string): 用于限定构建搜索范围的项目键
    • 返回:构建详细信息 </details>

<details> <summary><strong>运行时管理</strong></summary>

  1. list_jfrog_runtime_clusters

    • 返回 JFrog 平台中所有运行时集群的列表
    • 输入:
      • limit (optional integer): 要返回的最大集群数
      • next_key (optional string): 用于分页的下一个键
    • 返回:运行时集群列表
  2. get_jfrog_runtime_specific_cluster

    • 按 ID 返回运行时集群
    • 输入:
      • clusterId (integer): 要检索的集群的 ID
    • 返回:集群详细信息
  3. list_jfrog_running_images

    • 列出跨运行时集群的所有正在运行的容器镜像及其安全和操作状态
    • 输入:
      • filters (optional string): 要应用的过滤器
      • num_of_rows (optional integer): 要返回的行数
      • page_num (optional integer): 页码
      • statistics (optional boolean): 是否包含统计信息
      • timePeriod (optional string): 要查询的时间段
    • 返回:正在运行的镜像列表 </details>

<details> <summary><strong>访问控制</strong></summary>

  1. list_jfrog_environments

    • 获取 JFrog 平台中所有环境类型的列表及其详细信息
    • 输入:
    • 返回:环境列表
  2. list_jfrog_projects

    • 获取 JFrog 平台中所有项目的列表及其详细信息
    • 输入:
    • 返回:项目列表
  3. get_specific_project

    • 获取有关 JFrog 平台中特定项目的详细信息
    • 输入:
      • project_key (string): 要检索的项目的唯一键
    • 返回:项目详细信息
  4. create_project

    • 在 JFrog 平台中创建一个新项目
    • 输入:
      • project_key (string): 项目的唯一标识符
      • display_name (string): 项目的显示名称
      • description (string): 项目的描述
      • admin_privileges (object): 项目的管理权限
      • storage_quota_bytes (number): 存储配额(以字节为单位)(-1 表示无限制)
    • 返回:已创建的项目详细信息 </details>

<details> <summary><strong>目录和管理</strong></summary>

  1. jfrog_get_package_info

    • 获取有关软件程序包的公开可用信息
    • 输入:
      • type (string): 程序包的类型(pypi、npm、maven、golang、nuget、huggingface、rubygems)
      • name (string): 程序包的名称,如程序包仓库中所示
      • version (optional string): 程序包的版本(默认值:“latest”)
    • 返回:程序包信息,包括描述、最新版本、许可证和 URL
  2. jfrog_get_package_versions

    • 获取具有发布日期的公开可用程序包的版本列表
    • 输入:
      • type (string): 程序包的类型(pypi、npm、maven、golang、nuget、huggingface、rubygems)
      • name (string): 程序包的名称,如程序包仓库中所示
    • 返回:具有发布日期的程序包版本列表
  3. jfrog_get_package_version_vulnerabilities

    • 获取影响开源程序包特定版本的已知漏洞列表
    • 输入:
      • type (string): 程序包的类型(pypi、npm、maven、golang、nuget、huggingface、rubygems)
      • name (string): 程序包的名称,如程序包仓库中所示
      • version (optional string): 程序包的版本(默认值:“latest”)
      • pageSize (optional number): 每页返回的漏洞数(默认值:10)
      • pageCount (optional number): 要返回的页数(默认值:1)
    • 返回:影响指定程序包版本的漏洞列表
  4. jfrog_get_vulnerability_info

    • 获取有关特定漏洞的详细信息,包括受影响的程序包和版本
    • 输入:
      • cve_id (string): 要查找的 CVE ID 或漏洞标识符
      • pageSize (optional number): 每页返回的漏洞数(默认值:10)
      • pageCount (optional number): 要返回的页数(默认值:1)
    • 返回:详细的漏洞信息和受影响的程序包
  5. jfrog_get_package_curation_status

    • 检查特定程序包版本的管理状态
    • 输入:
      • packageType (string): 程序包的类型(pypi、npm、maven、golang、nuget、huggingface、rubygems)
      • packageName (string): 程序包的名称,如程序包仓库中所示
      • packageVersion (string): 程序包的版本,如程序包仓库中所示
    • 返回:管理状态(已批准、已阻止或不确定) </details>

安装

通过 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 访问令牌或使用具有适当权限的身份令牌:

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

JFrog URL (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

用法

<details> <summary><strong>与 Cursor 一起使用</strong></summary> 将以下内容添加到您的 ~/.cursor/mcp.json

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

</details>

<details> <summary><strong>与 Claude Desktop 一起使用</strong></summary>

将以下内容添加到您的 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>"
      }
    }
  }
}

</details>

许可证

此 MCP 服务器已获得 Apache License 2.0 许可。 这意味着您可以自由使用、修改和分发该软件,但须遵守 Apache License 2.0 的条款和条件。 有关更多详细信息,请参阅项目存储库中的 LICENSE.md 文件。

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选