본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 06. 20. 15:43

jfrog/mcp-jfrog

요약

JFrog Platform API를 위한 Model Context Protocol(MCP) 서버 프로젝트를 소개합니다. 저장소 관리, 빌드 추적, 아티팩트 검색 등 JFrog의 다양한 기능을 AI 에이전트와 연동하여 사용할 수 있도록 지원합니다.

핵심 포인트

  • MCP를 통해 JFrog 저장소 및 빌드 정보를 AI와 통합 관리 가능
  • 로컬/원격/가상 저장소 생성 및 관리 기능 지원
  • AQL 쿼리를 활용한 강력한 아티팩트 및 빌드 검색 기능
  • JFrog에서 공식 관리형 MCP 서버를 제공하여 보안 및 신뢰성 확보

JFrog Platform API를 위한 Model Context Protocol (MCP) 서버로, 저장소 관리(repository management), 빌드 추적(build tracking), 릴리스 라이프사이클 관리(release lifecycle management) 등을 지원합니다.

mcp_demo_min.mp4

이 프로젝트는 MCP를 통한 JFrog의 역량을 보여주기 위한 실험적인 프로젝트입니다. JFrog에서 공식적으로 지원하거나 검증하지 않습니다.

업데이트 (2025):

JFrog는 이제 JFrog Platform과의 원활한 통합을 위해 공식적이고 안전하며 원격으로 호스팅되는 MCP 서버를 제공합니다.

관리형 MCP 서버는 JFrog에서 유지 관리하며, 향상된 보안, 신뢰성 및 지원을 제공하므로 운영 환경(production) 사용을 권장합니다.

자세한 내용 알아보기 및 시작하기:

👉 JFrog MCP Server Documentation

저장소 관리 (Repository Management): 로컬, 원격 및 가상 저장소 생성 및 관리
빌드 추적 (Build Tracking): 빌드 정보 목록 표시 및 검색
런타임 모니터링 (Runtime Monitoring): 런타임 클러스터 및 실행 중인 컨테이너 이미지 보기
미션 컨트롤 (Mission Control): 연결된 JFrog Platform 인스턴스 보기
아티팩트 검색 (Artifact Search): 강력한 AQL 쿼리를 실행하여 아티팩트 및 빌드 검색
카탈로그 및 큐레이션 (Catalog and Curation): 패키지 정보, 버전, 취약점(vulnerabilities)에 접근하고 큐레이션 상태 확인
Xray: 스캔된 아티팩트 요약에 접근하고 아티팩트별 심각도(severity)에 따라 그룹화

저장소 관리 (Repository Management)

check_jfrog_availability

  • JFrog 플랫폼이 준비되었고 정상 작동하는지 확인

  • 반환값: 플랫폼 준비 상태

create_local_repository

  • Artifactory에 새로운 로컬 저장소 생성

  • 입력값:
    key (string): 저장소 키
    rclass (string): 저장소 클래스 ("local"이어야 함)
    packageType (string): 저장소의 패키지 유형
    description (선택 사항 string): 저장소 설명
    projectKey (선택 사항 string): 저장소를 할당할 프로젝트 키
    environments (선택 사항 string[]): 저장소를 할당할 환경들

  • 반환값: 생성된 저장소 상세 정보

create_remote_repository

  • 외부 패키지 레지스트리를 프록시하기 위해 Artifactory에 새로운 원격 저장소 생성
  • 입력값:
    key (string): 저장소 키
    rclass

(string): 저장소 클래스 (반드시 "remote"여야 함)
packageType

(string): 저장소의 패키지 타입 (Package type)
url

(string): 원격 저장소(remote repository)로의 URL
username

(optional string): 원격 저장소 사용자 이름
password

(optional string): 원격 저장소 비밀번호
description

(optional string): 저장소 설명
projectKey

(optional string): 저장소를 할당할 프로젝트 키 (Project key)
environments

(optional string[]): 저장소를 할당할 환경 (Environments)

  • 특정 저장소 설정을 위한 기타 여러 선택적 매개변수

  • 반환값: 생성된 저장소 상세 정보

create_virtual_repository

  • 여러 저장소를 통합하는 새로운 가상 저장소 (virtual repository)를 Artifactory에 생성
  • 입력값:
    key

(string): 저장소 키
rclass

(string): 저장소 클래스 (반드시 "virtual"이어야 함)
packageType

(string): 저장소의 패키지 타입 (Package type)
repositories

(string[]): 가상 저장소에 포함할 저장소 키 목록
description

(optional string): 저장소 설명
projectKey

(optional string): 저장소를 할당할 프로젝트 키 (Project key)
environments

(optional string[]): 저장소를 할당할 환경 (Environments)

  • 특정 저장소 설정을 위한 기타 선택적 매개변수

  • 반환값: 생성된 저장소 상세 정보

list_repositories

  • 선택적 필터링을 사용하여 Artifactory의 모든 저장소 목록을 나열
  • 입력값:
    type

(optional string): 타입별 저장소 필터링 (local, remote, virtual, federated, distribution)
packageType

(optional string): 패키지 타입별 저장소 필터링
project

(optional string): 프로젝트 키별 저장소 필터링

  • 반환값: 필터와 일치하는 저장소 목록

set_folder_property

  • Artifactory의 폴더에 속성 (properties)을 설정하며, 선택적으로 재귀적 적용 가능
  • 입력값:
    folderPath

(string): 속성을 설정할 폴더의 경로
properties

(object): 설정할 속성의 키-값 쌍 (Key-value pairs)
recursive

(optional boolean): 하위 폴더에 속성을 재귀적으로 적용할지 여부

  • 반환값 (Returns): 작업 결과

execute_aql_query

  • JFrog Artifactory에서 아티팩트(Artifacts), 빌드(Builds) 또는 기타 엔티티(Entities)를 검색하기 위해 Artifactory Query Language (AQL) 쿼리를 실행합니다.
  • 입력값 (Inputs):
    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): 원격 저장소(Remote repositories)에서도 검색할지 여부
limit

(optional number): 반환할 최대 결과 수
offset

(optional number): 건너뛸 결과 수
include_fields

(optional string[]): 결과에 포함할 필드
sort_by

(optional string): 결과를 정렬할 필드
sort_order

(optional string): 정렬 순서 (asc 또는 desc)

  • 반환값 (Returns): 메타데이터를 포함한 검색 결과

빌드 관리 (Build Management)

list_jfrog_builds

  • JFrog 플랫폼의 모든 빌드 목록을 반환합니다.

  • 반환값 (Returns): 빌드 목록

get_specific_build

  • 이름으로 특정 빌드의 상세 정보를 가져옵니다.
  • 입력값 (Inputs):
    buildName

(string): 가져올 빌드의 이름
project

(optional string): 빌드 검색 범위를 제한할 프로젝트 키 (Project key)

  • 반환값 (Returns): 빌드 상세 정보

런타임 관리 (Runtime Management)

list_jfrog_runtime_clusters

  • JFrog 플랫폼의 모든 런타임 클러스터(Runtime clusters) 목록을 반환합니다.
  • 입력값 (Inputs):
    limit

(optional integer): 반환할 클러스터의 최대 수
next_key

(optional string): 페이지네이션 (Pagination)을 위해 사용할 다음 키

  • 반환값 (Returns): 런타임 클러스터 목록

get_jfrog_runtime_specific_cluster

  • ID로 런타임 클러스터를 반환합니다.
  • 입력값 (Inputs):
    clusterId

(integer): 가져올 클러스터의 ID

  • 반환값 (Returns): 클러스터 상세 정보

list_jfrog_running_images

  • 런타임 클러스터 전체에서 실행 중인 모든 컨테이너 이미지(Container images)를 보안 및 운영 상태와 함께 나열합니다.
  • 입력값 (Inputs):
    filters

(optional string): 적용할 필터
num_of_rows

(optional integer): 반환할 행(Row) 수
page_num

(optional integer): 페이지 번호
statistics

(optional boolean): 통계 포함 여부
timePeriod

(optional string): 조회할 시간 범위 (Time period)

  • 반환값: 실행 중인 이미지 목록

액세스 제어 (Access Control)

list_jfrog_environments

  • JFrog 플랫폼 내의 모든 환경(environment) 유형과 상세 정보를 가져옵니다.

  • 입력값:

  • 반환값: 환경 목록

list_jfrog_projects

  • JFrog 플랫폼 내의 모든 프로젝트와 상세 정보를 가져옵니다.

  • 입력값:

  • 반환값: 프로젝트 목록

get_specific_project

  • JFrog 플랫폼 내의 특정 프로젝트에 대한 상세 정보를 가져옵니다.
  • 입력값:
    project_key

(string): 조회할 프로젝트의 고유 키

  • 반환값: 프로젝트 상세 정보

create_project

  • JFrog 플랫폼에 새로운 프로젝트를 생성합니다.
  • 입력값:
    project_key

(string): 프로젝트의 고유 식별자
display_name

(string): 프로젝트의 표시 이름
description

(string): 프로젝트 설명
admin_privileges

(object): 프로젝트에 대한 관리 권한
storage_quota_bytes

(number): 바이트(bytes) 단위의 저장 용량 할당량 (-1은 무제한)

  • 반환값: 생성된 프로젝트 상세 정보

카탈로그 및 큐레이션 (Catalog and Curation)

jfrog_get_package_info

  • 소프트웨어 패키지에 대해 공개적으로 사용 가능한 정보를 가져옵니다.
  • 입력값:
    type

(string): 패키지 유형 (pypi, npm, maven, golang, nuget, huggingface, rubygems)
name

(string): 패키지 저장소에 표시된 패키지 이름
version

(optional string): 패키지 버전 (기본값: "latest")

  • 반환값: 설명, 최신 버전, 라이선스 및 URL을 포함한 패키지 정보

jfrog_get_package_versions

  • 공개적으로 사용 가능한 패키지의 배포 날짜를 포함한 버전 목록을 가져옵니다.
  • 입력값:
    type

(string): 패키지 유형 (pypi, npm, maven, golang, nuget, huggingface, rubygems)
name

(string): 패키지 저장소에 표시된 패키지 이름

  • 반환값: 배포 날짜가 포함된 패키지 버전 목록

jfrog_get_package_version_vulnerabilities

  • 특정 오픈 소스 패키지 버전의 알려진 취약점 (vulnerabilities) 목록 가져오기
  • 입력값:
    type

(string): 패키지 유형 (pypi, npm, maven, golang, nuget, huggingface, rubygems)
name

(string): 패키지 저장소에 표시된 패키지 이름
version

(optional string): 패키지 버전 (기본값: "latest")
pageSize

(optional number): 페이지당 반환할 취약점 수 (기본값: 10)
pageCount

(optional number): 반환할 페이지 수 (기본값: 1)

  • 반환값: 지정된 패키지 버전에 영향을 미치는 취약점 목록

jfrog_get_vulnerability_info

  • 영향을 받는 패키지 및 버전을 포함하여 특정 취약점에 대한 상세 정보 가져오기
  • 입력값:
    cve_id

(string): 조회할 CVE ID 또는 취약점 식별자
pageSize

(optional number): 페이지당 반환할 취약점 수 (기본값: 10)
pageCount

(optional number): 반환할 페이지 수 (기본값: 1)

  • 반환값: 상세 취약점 정보 및 영향을 받는 패키지

jfrog_get_package_curation_status

  • 특정 패키지 버전의 큐레이션 (curation) 상태 확인
  • 입력값:
    packageType

(string): 패키지 유형 (pypi, npm, maven, golang, nuget, huggingface, rubygems)
packageName

(string): 패키지 저장소에 표시된 패키지 이름
packageVersion

(string): 패키지 저장소에 표시된 패키지 버전

  • 반환값: 큐레이션 상태 (approved, blocked, 또는 inconclusive)

Xray

jfrog_get_artifacts_summary

  • 저장소 또는 빌드 내의 아티팩트(artifacts) 이슈 요약을 심각도(Low, Medium, High, Critical, Unknown)별로 분류 및 집계하여 가져오기
  • 입력값:
    paths

(string array): 요약을 생성할 아티팩트 경로 배열

  • 반환값: 제공된 배열의 각 아티팩트에 대해 심각도별 취약점 수에 기반한 요약 및 총 이슈 수

Smithery를 통해 Claude Desktop용 mcp-jfrog를 자동으로 설치하려면:

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

  • Node.js v18 이상
  • Docker (Docker 배포를 사용하는 경우, Docker Deployment 참조)
  • 적절한 권한을 가진 유효한 JFrog 플랫폼 인스턴스
  • JFrog 플랫폼 인스턴스에서 액세스 토큰 (access tokens)을 생성하고 관리할 수 있는 권한

JFROG_ACCESS_TOKEN
: 귀하의 JFrog 액세스 토큰 (필수)

JFROG_URL
: 귀하의 JFrog 플랫폼 기본 URL (필수)

TRANSPORT
: 사용할 전송 모드 (Transport mode), 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)

이 MCP 서버를 사용하려면 JFrog 액세스 토큰 (Access Token)을 생성하거나 적절한 권한을 가진 ID 토큰 (identity token)을 사용해야 합니다.

JFrog 토큰 생성 방법에 대한 정보는 JFrog 공식 문서를 참조하십시오:

귀하의 JFrog 플랫폼 인스턴스 URL (예: https://acme.jfrog.io)

SSE 전송 모드는 다음과 같은 기능을 포함합니다:

연결 관리 (Connection Management): 각 SSE 연결은 고유한 ID로 추적되어, 클라이언트가 재연결 시도 시에도 상태를 유지할 수 있습니다.
구조화된 로깅 (Structured Logging): 타임스탬프, 심각도 레벨 및 관련 컨텍스트 정보가 포함된 상세 로그를 제공합니다.
연결 탄력성 (Connection Resilience): 서버 시작에 실패할 경우 지수 백오프 (exponential backoff)를 적용하여 자동으로 재연결을 시도합니다.
상태 확인 엔드포인트 (Health Endpoint): 서버 상태 정보를 반환하는 /health 엔드포인트를 제공합니다.
연결 추적 (Connection Tracking): 주기적인 통계 로깅과 함께 활성 연결을 실시간으로 추적합니다.
성능 메트릭 (Performance Metrics): 도구 작업 및 HTTP 요청에 대한 실행 시간을 추적합니다.

SSE 모드를 사용할 때:

  • 클라이언트는 /sse 엔드포인트에 연결해야 하며, 선택적으로 connectionId를 제공할 수 있습니다.

세션 추적을 위한 쿼리 파라미터 (query parameter)입니다. - 클라이언트 요청은 동일한 connectionId를 쿼리 파라미터로 포함하여 /messages 엔드포인트로 전송해야 합니다. - 서버는 구축된 SSE 연결을 통해 서버 전송 이벤트 (Server-Sent Events, SSE)로 응답합니다.

연결 ID (connection ID)를 사용한 클라이언트 연결 예시:

GET /sse?connectionId=client123

클라이언트 요청 예시:

POST /messages?connectionId=client123
Content-Type: application/json
{
...

git clone을 사용하여 로컬 머신으로 리포지토리 (repo)를 복제하고, 프로젝트 디렉토리로 cd 하세요:

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

Docker 이미지로 빌드하기:

docker build -t mcp/jfrog -f Dockerfile .

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0