Skip to main content
Glama

JFrog MCP Server

Official
by jfrog

JFrog MCP 服务器(🧪 实验性)

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

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

免责声明

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

特征

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

工具

  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 (字符串):软件包的版本,如软件包存储库中所示
  • 返回:策展状态(已批准、已阻止或不确定)
  1. jfrog_get_artifacts_summary
  • 获取存储库或构建中的工件问题摘要,按严重程度(低、中、高、严重、未知)分类和计数
  • 输入:
    • paths (字符串数组):用于创建摘要的工件路径数组
  • 返回:基于所提供数组中每个工件的每个严重程度的漏洞计数以及总问题数的摘要

设置

通过 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(必需)
  • TRANSPORT :要使用的传输模式,设置为“sse”以启用 SSE 传输(默认值:stdio)
  • PORT :用于 SSE 传输的端口号(默认值:8080)
  • CORS_ORIGIN :SSE 连接允许的 CORS 来源(默认值:'*')
  • LOG_LEVEL :日志级别:DEBUG、INFO、WARN、ERROR(默认:INFO)
  • MAX_RECONNECT_ATTEMPTS :SSE 服务器的最大重新连接尝试次数(默认值:5)
  • RECONNECT_DELAY_MS :重新连接尝试之间的基本延迟(以毫秒为单位)(默认值:2000)

JFrog 令牌( JFROG_ACCESS_TOKEN

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

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

JFrog 网址 ( JFROG_URL )

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

SSE 传输功能

SSE传输模式包括以下特点:

  • 连接管理:每个 SSE 连接都使用唯一的 ID 进行跟踪,从而允许客户端在重新连接时保持状态。
  • 结构化日志:带有时间戳、严重性级别和相关上下文信息的详细日志。
  • 连接弹性:如果服务器启动失败,则使用指数退避自动重新连接尝试。
  • 健康端点:返回服务器状态信息的/health端点。
  • 连接跟踪:通过定期统计记录实时跟踪活动连接。
  • 性能指标:工具操作和 HTTP 请求的执行时间跟踪。

使用 SSE 模式时:

  1. 客户端应该连接到/sse端点,可选择提供connectionId查询参数以进行会话跟踪。
  2. 客户端请求应使用相同的connectionId作为查询参数发送到/messages端点。
  3. 服务器将通过已建立的 SSE 连接以服务器发送的事件进行响应。

带有连接 ID 的客户端连接示例:

GET /sse?connectionId=client123

客户端请求示例:

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

如何构建

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

SSE 传输模式

要使用具有 SSE 传输模式的 JFrog MCP 服务器(对于 Cursor 的 webview 等 web 界面很有用):

{ "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 模式,您需要添加指向您的 SSE 端点的serverUrl参数,并公开服务器使用的端口(-p 8080:8080)。

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

SSE 传输模式

对于具有 SSE 传输的 Claude Desktop:

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

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

  1. 免责声明
    1. 特征
      1. 工具
        1. 设置
          1. 通过 Smithery 安装
          2. 先决条件
        2. 环境变量
          1. JFrog 令牌( JFROG_ACCESS_TOKEN )
          2. JFrog 网址 ( JFROG_URL )
          3. SSE 传输功能
          4. 如何构建
        3. 用法
          1. npm
          2. Docker
          3. SSE 传输模式
          4. npm
          5. 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