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 查询来搜索工件和构建
- 目录和管理:访问软件包信息、版本、漏洞并检查管理状态
工具
check_jfrog_availability
- 检查 JFrog 平台是否已准备就绪并正常运行
- 返回:平台就绪状态
create_local_repository
- 在 Artifactory 中创建新的本地存储库
- 输入:
key
(字符串):存储库键rclass
(字符串):存储库类(必须是“本地”)packageType
(字符串):存储库的包类型description
(可选字符串):存储库描述projectKey
(可选字符串):要分配存储库的项目键environments
(可选 string[]):将存储库分配到的环境
- 返回:创建的存储库详细信息
create_remote_repository
- 在 Artifactory 中创建一个新的远程存储库来代理外部包注册表
- 输入:
key
(字符串):存储库键rclass
(字符串):存储库类(必须是“远程”)packageType
(字符串):存储库的包类型url
(字符串):远程存储库的 URLusername
(可选字符串):远程存储库用户名password
(可选字符串):远程存储库密码description
(可选字符串):存储库描述projectKey
(可选字符串):要分配存储库的项目键environments
(可选 string[]):将存储库分配到的环境- 特定存储库配置的许多其他可选参数
- 返回:创建的存储库详细信息
create_virtual_repository
- 在 Artifactory 中创建一个聚合多个存储库的新虚拟存储库
- 输入:
key
(字符串):存储库键rclass
(字符串):存储库类(必须是“虚拟的”)packageType
(字符串):存储库的包类型repositories
(string[]):要包含在虚拟存储库中的存储库密钥列表description
(可选字符串):存储库描述projectKey
(可选字符串):要分配存储库的项目键environments
(可选 string[]):将存储库分配到的环境- 特定存储库配置的其他可选参数
- 返回:创建的存储库详细信息
list_repositories
- 列出 Artifactory 中的所有存储库,并可选择过滤
- 输入:
type
(可选字符串):按类型过滤存储库(本地、远程、虚拟、联合、分发)packageType
(可选字符串):按包类型过滤存储库project
(可选字符串):按项目键过滤存储库
- 返回:符合过滤器的存储库列表
set_folder_property
- 设置 Artifactory 中文件夹的属性,并可选择递归应用
- 输入:
folderPath
(字符串):应设置属性的文件夹路径properties
(对象):要设置的属性的键值对recursive
(可选布尔值):是否将属性递归应用于子文件夹
- 返回:运算结果
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
(可选字符串):排序顺序(升序或降序)
- 返回:带有元数据的搜索结果
list_jfrog_builds
- 返回 JFrog 平台中所有构建的列表
- 返回:构建列表
get_specific_build
- 按名称获取特定构建的详细信息
- 输入:
buildName
(字符串):要检索的构建的名称project
(可选字符串):用于确定构建搜索范围的项目键
- 返回:构建详细信息
list_jfrog_runtime_clusters
- 返回 JFrog 平台中所有运行时集群的列表
- 输入:
limit
(可选整数):返回的最大簇数next_key
(可选字符串):用于分页的下一个键
- 返回:运行时集群列表
get_jfrog_runtime_specific_cluster
- 通过 ID 返回运行时集群
- 输入:
clusterId
(整数):要检索的集群的 ID
- 返回:集群详细信息
list_jfrog_running_images
- 列出运行时集群中所有正在运行的容器镜像及其安全性和运行状态
- 输入:
filters
(可选字符串):要应用的过滤器num_of_rows
(可选整数):要返回的行数page_num
(可选整数):页码statistics
(可选布尔值):是否包含统计数据timePeriod
(可选字符串):要查询的时间段
- 返回:正在运行的图像列表
list_jfrog_environments
- 获取 JFrog 平台中所有环境类型及其详细信息的列表
- 输入:
- 返回:环境列表
list_jfrog_projects
- 获取 JFrog 平台上所有项目的列表及其详细信息
- 输入:
- 返回:项目列表
get_specific_project
- 获取 JFrog 平台中特定项目的详细信息
- 输入:
project_key
(字符串):要检索的项目的唯一键
- 返回:项目详情
create_project
- 在JFrog平台中创建新项目
- 输入:
project_key
(字符串):项目的唯一标识符display_name
(字符串):项目的显示名称description
(字符串):项目描述admin_privileges
(对象):项目的管理权限storage_quota_bytes
(数字):存储配额(以字节为单位)(-1 表示无限制)
- 返回:创建的项目详细信息
jfrog_get_package_info
- 获取有关软件包的公开信息
- 输入:
type
(字符串):包的类型(pypi、npm、maven、golang、nuget、huggingface、rubygems)name
(字符串):包的名称,如包存储库中所示version
(可选字符串):包的版本(默认值:“最新”)
- 返回:包信息,包括描述、最新版本、许可证和 URL
jfrog_get_package_versions
- 获取公开可用软件包的版本列表以及发布日期
- 输入:
type
(字符串):包的类型(pypi、npm、maven、golang、nuget、huggingface、rubygems)name
(字符串):包的名称,如包存储库中所示
- 返回:带有发布日期的软件包版本列表
jfrog_get_package_version_vulnerabilities
- 获取影响特定版本的开源软件包的已知漏洞列表
- 输入:
type
(字符串):包的类型(pypi、npm、maven、golang、nuget、huggingface、rubygems)name
(字符串):包的名称,如包存储库中所示version
(可选字符串):包的版本(默认值:“最新”)pageSize
(可选数字):每页返回的漏洞数量(默认值:10)pageCount
(可选数字):返回的页数(默认值:1)
- 返回:影响指定软件包版本的漏洞列表
jfrog_get_vulnerability_info
- 获取有关特定漏洞的详细信息,包括受影响的软件包和版本
- 输入:
cve_id
(字符串):要查找的 CVE ID 或漏洞标识符pageSize
(可选数字):每页返回的漏洞数量(默认值:10)pageCount
(可选数字):返回的页数(默认值:1)
- 返回:详细的漏洞信息和受影响的软件包
jfrog_get_package_curation_status
- 检查特定软件包版本的管理状态
- 输入:
packageType
(字符串):包的类型(pypi、npm、maven、golang、nuget、huggingface、rubygems)packageName
(字符串):包的名称,如包存储库中所示packageVersion
(字符串):软件包的版本,如软件包存储库中所示
- 返回:策展状态(已批准、已阻止或不确定)
设置
通过 Smithery 安装
要通过Smithery自动为 Claude Desktop 安装 mcp-jfrog:
先决条件
- 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
项目目录:
构建为 Docker 镜像:
构建为 npm 模块:
用法
npm
Docker
将以下内容添加到您的claude_desktop_config.json
中:
Docker
npm
执照
此 MCP 服务器遵循 Apache 许可证 2.0 许可。这意味着您可以自由使用、修改和分发该软件,但须遵守 Apache 许可证 2.0 的条款和条件。更多详情,请参阅项目代码库中的 LICENSE.md 文件。
This server cannot be installed
实验模型上下文协议服务器,可访问 JFrog 平台 API 功能,包括存储库管理、构建跟踪、工件搜索和包安全分析。