lanbaoshen/mcp-jenkins
요약
Anthropic의 MCP 사양을 준수하여 Jenkins와 AI 언어 모델을 연결하는 오픈 소스 구현체입니다. 데이터 프라이버시를 유지하며 Jenkins 도구와 안전하고 문맥적인 AI 상호작용을 지원합니다.
핵심 포인트
- MCP 사양을 통한 Jenkins와 AI 모델 간의 연결 지원
- 데이터 프라이버시 및 보안 중심의 설계
- stdio, sse, streamable-http 등 다양한 전송 방식 지원
- uvx를 이용한 간편한 설치 및 실행 환경 제공
Model Context Protocol (MCP)는 Anthropic의 MCP 사양을 따라 Jenkins와 AI 언어 모델을 연결하는 오픈 소스 구현체입니다. 이 프로젝트는 데이터 프라이버시와 보안을 유지하면서 Jenkins 도구와 안전하고 문맥적인(contextual) AI 상호작용을 가능하게 합니다.
다음 설치 방법 중 하나를 선택하세요:
# uv 사용 (권장)
pip install uv
uvx mcp-jenkins
...
명령줄 인수(command line arguments)를 사용할 때, 다음과 같이 Jenkins 서버 세부 정보를 지정할 수 있습니다:
# 간단한 streamable-http 예시
uvx mcp-jenkins --transport streamable-http
| 인수 (Argument) | 설명 (Description) | 필수 여부 (Required) |
|---|---|---|
--jenkins-url | Jenkins 서버의 URL. (Http 앱은 헤더 x-jenkins-url을 통해 설정 가능) | 아니오 |
--jenkins-username | Jenkins 인증을 위한 사용자 이름. (Http 앱은 헤더 x-jenkins-username을 통해 설정 가능) | 아니오 |
--jenkins-password | Jenkins 인증을 위한 비밀번호 또는 API 토큰. (Http 앱은 헤더 x-jenkins-password를 통해 설정 가능) | 아니오 |
--jenkins-timeout | Jenkins API 요청에 대한 타임아웃(초 단위). 기본값은 5초입니다. | 아니오 |
--jenkins-verify-ssl/--no-jenkins-verify-ssl | Jenkins에 연결할 때 SSL 인증서를 검증할지 여부. 기본값은 검증함입니다. | 아니오 |
--jenkins-session-singleton/--no-jenkins-session-singleton | 동일한 세션 내의 모든 요청에 대해 싱글톤(singleton) Jenkins 클라이언트를 사용할지 여부. 기본값은 True입니다. | 아니오 |
--read-only | 읽기 전용(read-only) 모드를 활성화할지 여부. 기본값은 False입니다. | 아니오 |
--transport | 통신에 사용할 전송(transport) 방식. 옵션은 stdio, sse 또는 streamable-http입니다. 기본값은 stdio입니다. | 아니오 |
--host | streamable-http 전송을 위한 호스트 주소. 기본값은 0.0.0.0입니다. | 아니오 |
--port | streamable-http 전송을 위한 포트 번호. 기본값은 9887입니다. | 아니오 |
- Jetbrains 설정 열기
- Github Copilot > MCP > Configure로 이동
- 다음 구성을 추가합니다:
{
"servers": {
"my-mcp-server": {
...
mcp.json이 포함된.vscode폴더를 생성합니다.
로컬 설정을 위해 워크스페이스에 파일을 생성하거나, 설정 메뉴를 통해 settings.json을 편집합니다.
- SSE 모드
{
"servers": {
"jenkins": {
...
- Streamable-Http 모드
{
"servers": {
"mcp-jenkins-mcp": {
...
다음 명령어를 사용하여 Jenkins MCP 서버를 실행합니다:
uvx mcp-jenkins \
--jenkins-url xxx \
--jenkins-username xxx \
...
--transport streamable-http 또는 --transport sse로 실행할 때, 서버는 다음과 같은 일반 HTTP 생존 확인 (liveness) 엔드포인트를 노출합니다:
GET /healthz -> 200 OK
이 엔드포인트는 항상 200을 반환하며 x-jenkins-* 인증 헤더를 우회하므로, Jenkins 자격 증명 없이 Kubernetes의 생존 확인 (liveness) / 준비 상태 (readiness) 프로브 (probe)로 직접 안전하게 사용할 수 있습니다. 프로브 예시:
livenessProbe:
httpGet:
path: /healthz
...
참고: 이는 생존 확인 (liveness) 체크일 뿐이며, 상위 Jenkins 서버와의 연결성을 검증하지는 않습니다.
| 도구 (Tool) | 설명 |
|---|---|
get_item | 이름으로 특정 아이템 (item)을 가져옵니다. |
get_item_config | 특정 아이템의 설정을 가져옵니다. |
get_item_parameters | 특정 아이템의 파라미터 (parameters)를 가져옵니다. |
get_all_items | Jenkins의 모든 아이템을 가져옵니다. |
query_items | 패턴을 기반으로 아이템을 쿼리 (query) 합니다. |
build_item | 아이템을 빌드 (build) 합니다. |
get_all_nodes | Jenkins의 모든 노드 (nodes)를 가져옵니다. |
get_node | 이름으로 특정 노드를 가져옵니다. |
get_node_config | 특정 노드의 설정을 가져옵니다. |
get_all_queue_items | Jenkins의 모든 큐 (queue) 아이템을 가져옵니다. |
get_queue_item | ID로 특정 큐 아이템을 가져옵니다. |
cancel_queue_item | ID로 특정 큐 아이템을 취소합니다. |
get_build | 작업 (job) 이름과 빌드 번호로 특정 빌드를 가져옵니다. |
get_build_scripts | 특정 빌드와 관련된 스크립트를 가져옵니다. |
get_build_console_output | 특정 빌드의 콘솔 출력 (console output)을 가져옵니다. |
get_build_parameters | 특정 빌드의 파라미터를 가져옵니다. |
get_build_test_report | 특정 빌드의 테스트 보고서를 가져옵니다. |
get_running_builds | Jenkins에서 현재 실행 중인 모든 빌드를 가져옵니다. |
| stop_build | 작업 이름(job name)과 빌드 번호(build number)를 사용하여 특정 빌드를 중단합니다. |
| get_all_build_artifacts | 특정 빌드의 아티팩트 (artifacts) 목록을 나열합니다. |
| get_build_artifact | 특정 빌드로부터 아티팩트 (artifact)를 다운로드합니다. |
| get_build_artifact_url | 특정 빌드의 아티팩트 (artifact)에 대한 직접 URL을 가져옵니다. |
| get_view | 이름으로 특정 뷰 (view)를 가져옵니다. |
| get_all_views | 특정 뷰 (view)의 설정을 가져옵니다. |
| get_all_plugins | 설치된 모든 플러그인 (plugins)을 가져옵니다. |
| get_plugin | 짧은 이름 (short name)으로 특정 플러그인 (plugin)을 가져옵니다. |
| get_plugins_with_problems | 문제가 있는 플러그인 (plugins)을 가져옵니다 (누락된 의존성, 버전 불일치 등). |
| get_plugins_with_backup | 다운그레이드가 가능한 플러그인 (plugins)을 가져옵니다. |
| get_plugins_with_updates | 업데이트가 가능한 플러그인 (plugins)을 가져옵니다. |
| get_plugin_dependency_graph | Graphviz 형식으로 플러그인 (plugin)의 의존성 그래프 (dependency graph)를 가져옵니다. |
| run_groovy_script | Jenkins에서 임의의 Groovy 스크립트 (script)를 실행합니다. |
MIT 라이선스 하에 배포됩니다 - LICENSE 파일을 참조하세요. 이것은 공식 Jenkins 제품이 아닙니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기