gitlab-api
Gitlab Api
CLI 또는 API | MCP | Agent
Version: 27.1.0
문서 — API, CLI, MCP 인터페이스 전반의 설치, 배포, 사용법, 통합 A2A 에이전트 서버, 그리고 백엔드 GitLab 인스턴스 프로비저닝에 대한 안내는 공식 문서에서 관리됩니다.
Related MCP server: Kepler MCP GitLab Server
개요
Gitlab Api는 GitLab API + MCP Server + A2A Server와 직접 인터페이스하도록 설계된 프로덕션 등급의 Agent 및 Model Context Protocol (MCP) 서버입니다.
주요 기능
통합 Action-Routed MCP 도구: 메서드를 최적화된 토글 가능한 도구 모듈로 그룹화하여 LLM 컨텍스트에서 토큰 오버헤드를 최소화하고 도구 비대화를 제거합니다.
엔터프라이즈급 보안: Eunomia 정책, OIDC 토큰 위임, 세분화된 실행 컨텍스트 추적에 대한 포괄적인 지원을 제공합니다.
통합 그래프 에이전트: Agent Control Protocol (ACP) 및 표준 웹 인터페이스(AG-UI)를 지원하는 내장 Pydantic AI 에이전트입니다.
네이티브 텔레메트리 및 트레이싱: 기본 제공되는 OpenTelemetry 내보내기와 네이티브 Langfuse 트레이싱을 지원합니다.
CLI 또는 API
이 에이전트는 GitLab API + MCP Server + A2A Server API를 래핑합니다. 프로그래밍 방식 또는 통합 실행 진입점을 통해 상호작용할 수 있습니다.
기본 API 래퍼, 확장 스키마 바인딩, 개발자 SDK 참조 사용 방법에 대한 자세한 지침은 docs/index.md에서 관리됩니다.
MCP
이 서버는 동적 Action-Routed 도구를 활용하여 토큰 오버헤드를 최적화하고 IDE 호환성을 극대화합니다.
도구 표면 — MCP_TOOL_MODE
MCP_TOOL_MODE(공유 ~/.config/agent-utilities/config.json 또는 환경 변수)를 설정하세요:
condensed(기본값 — 아래의 action-routed 도구), verbose(API 메서드당 하나의 명명된 1:1 도구,
예: gitlab_get_branches(...), verbose 태그), 또는 both. --tools tag:verbose /
MCP_ENABLED_TAGS=verbose로 verbose 세트를 필터링할 수 있습니다. agent-utilities MCP Tool Modes 가이드를 참고하세요.
사용 가능한 MCP 도구
실행 중인 MCP 서버에서 자동 생성됨 — 수동으로 편집하지 마세요.
Condensed action-routed 도구 (기본값 — MCP_TOOL_MODE=condensed)
MCP Tool | 토글 환경 변수 | 설명 |
|
| 임의의 GitLab REST API 요청을 직접 실행합니다. |
|
| GitLab 브랜치 작업을 관리합니다. |
|
| GitLab 커밋 작업을 관리합니다. |
|
| GitLab 배포 토큰 작업을 관리합니다. |
|
| 유형, 필드, 사용자 정의 속성을 포함한 동적 GitLab GraphQL 스키마를 실시간으로 탐색합니다. |
|
| GitLab 환경 작업을 관리합니다. |
|
| GitLab 에픽을 관리합니다. |
|
| GitLab에서 원시 GraphQL 쿼리와 뮤테이션을 네이티브로 실행합니다. |
|
| 이름으로 유형화된 GitLab GraphQL 작업을 실행합니다. |
|
| GitLab 그룹 작업을 관리합니다. |
|
| GitLab CI 파이프라인 실행(+ 작업)을 epistemic-graph에 네이티브로 수집합니다. |
|
| GitLab 프로젝트를 유형화된 :Project 노드로 epistemic-graph에 네이티브로 수집합니다. |
|
| 구성된 GitLab 테넌트를 나열합니다 (CONCEPT:AU-KG.backend.declared-columns-so-schema). |
|
| GitLab 이슈를 관리합니다. |
|
| GitLab 작업(job) 작업을 관리합니다. |
|
| GitLab 라벨을 관리합니다. |
|
| GitLab 멤버 작업을 관리합니다. |
|
| GitLab 병합 요청 작업을 관리합니다. |
|
| GitLab 병합 규칙 작업을 관리합니다. |
|
| GitLab 마일스톤을 관리합니다. |
|
| GitLab 네임스페이스 작업을 관리합니다. |
|
| 이슈, 병합 요청, 커밋, 에픽에 대한 GitLab 노트/댓글을 관리합니다. |
|
| GitLab 패키지 작업을 관리합니다. |
|
| GitLab 파이프라인 일정 작업을 관리합니다. |
|
| GitLab 파이프라인 작업을 관리합니다. |
|
| GitLab 프로젝트 작업을 관리합니다. |
|
| GitLab 보호된 브랜치 작업을 관리합니다. |
|
| GitLab 릴리스 작업을 관리합니다. |
|
| GitLab 러너 작업을 관리합니다. |
|
| GitLab 스니펫을 관리합니다. |
|
| GitLab 태그 작업을 관리합니다. |
|
| GitLab 사용자 작업을 관리합니다. |
|
| 프로젝트의 의존성 목록과 보안 취약점을 검토합니다 (GitHub Dependabot에 해당하는 GitLab 버전). |
|
| GitLab 위키 작업을 관리합니다. |
Verbose 1:1 API 매핑 도구 (MCP_TOOL_MODE=verbose 또는 both)
MCP 도구 | 토글 환경 변수 | 설명 |
|
| 병합 요청을 수락(병합)합니다. |
|
| GitLab 서버에 사용자 지정 API 요청을 보냅니다. |
|
| 특정 병합 요청을 승인합니다. |
|
| 특정 프로젝트를 보관 처리합니다. |
|
| 병합 요청의 대기 중인 "파이프라인 성공 시 병합"(자동 병합)을 취소합니다. |
|
| 프로젝트 내 특정 작업을 취소합니다. |
|
| 커밋을 새 브랜치로 체리픽합니다. |
|
| 프로젝트에 새 브랜치를 생성합니다. |
|
| 새 커밋을 생성합니다. |
|
| 커밋에 댓글을 생성합니다. |
|
| 프로젝트에 새 환경을 생성합니다. |
|
| 새 그룹 에픽을 생성합니다. |
|
| 그룹에 대한 배포 토큰을 생성합니다. |
|
| 새 이슈를 생성합니다. |
|
| 새 라벨을 생성합니다. |
|
| 새 병합 요청을 생성합니다. |
|
| 프로젝트 마일스톤을 생성합니다. |
|
| 이슈에 새 노트/댓글을 생성합니다. |
|
| 특정 프로젝트에 대한 파이프라인 일정을 생성합니다. |
|
| 파이프라인 일정에 대한 변수를 생성합니다. |
|
| 새 프로젝트를 생성합니다. |
|
| 프로젝트에 대한 배포 토큰을 생성합니다. |
|
| 새 프로젝트 수준 병합 요청 승인 규칙을 생성합니다. |
|
| 프로젝트에 새 릴리스를 생성합니다. |
|
| 프로젝트의 릴리스에 대한 증거를 생성합니다. |
|
| 프로젝트 스니펫 또는 개인 스니펫을 생성합니다. |
|
| 프로젝트에 태그를 생성합니다. |
|
| 새 사용자를 생성합니다. |
|
| 프로젝트에 대한 새 위키 페이지를 생성합니다. |
|
| 프로젝트의 브랜치를 삭제합니다. |
|
| 프로젝트의 환경을 삭제합니다. |
|
| 그룹 에픽을 삭제합니다. |
|
| 그룹에 대한 배포 토큰을 삭제합니다. |
|
| 이슈를 삭제합니다. |
|
| 라벨을 삭제합니다. |
|
| 프로젝트의 모든 병합된 브랜치를 삭제합니다. |
|
| 프로젝트 마일스톤을 삭제합니다. |
|
| 노트를 삭제합니다. |
|
| 특정 프로젝트에 대한 파이프라인 일정을 삭제합니다. |
|
| 파이프라인 일정에서 변수를 삭제합니다. |
|
| 특정 프로젝트를 삭제합니다. |
|
| 프로젝트에 대한 배포 토큰을 삭제합니다. |
|
| 프로젝트 수준 병합 요청 승인 규칙을 삭제합니다. |
|
| 프로젝트에서 러너를 삭제합니다. |
|
| 프로젝트의 릴리스를 삭제합니다. |
|
| 러너를 삭제합니다. |
|
| 특정 프로젝트를 그룹에서 공유 해제합니다. |
|
| 스니펫을 삭제합니다. |
|
| 프로젝트의 중지된 환경(리뷰 앱)을 삭제합니다. |
|
| 프로젝트의 태그를 삭제합니다. |
|
| 사용자를 삭제합니다. |
|
| 프로젝트의 위키 페이지를 삭제합니다. |
|
| 그룹의 릴리스에서 릴리스 자산을 다운로드합니다. |
|
| 특정 프로젝트의 리포지토리 패키지를 다운로드합니다. |
|
| 특정 그룹을 편집합니다. |
|
| 그룹 수준 병합 요청 승인 설정을 편집합니다. |
|
| 특정 프로젝트에 대한 파이프라인 일정을 편집합니다. |
|
| 특정 프로젝트를 편집합니다. |
|
| 프로젝트 수준 병합 요청 승인 설정을 편집합니다. |
|
| 프로젝트에서 러너를 활성화합니다. |
|
| 프로젝트 내 특정 작업을 지웁니다. |
|
| 특정 프로젝트의 병합 요청 승인 상태를 가져옵니다. |
|
| 프로젝트의 특정 브랜치에 대한 정보를 검색합니다. |
|
| 프로젝트의 브랜치에 대한 정보를 검색합니다. |
|
| 특정 커밋을 가져옵니다. |
|
| 커밋의 댓글을 가져옵니다. |
|
| 커밋의 diff를 가져옵니다. |
|
| 커밋의 토론을 가져옵니다. |
|
| 커밋의 GPG 서명을 가져옵니다. |
|
| 커밋과 연결된 병합 요청을 가져옵니다. |
|
| 커밋의 참조를 가져옵니다. |
|
| 커밋의 상태를 가져옵니다. |
|
| 커밋을 가져옵니다. |
|
| 모든 배포 토큰을 가져옵니다. |
|
| 특정 환경의 세부 정보를 가져옵니다. |
|
| 프로젝트의 환경 목록을 가져옵니다. |
|
| 특정 그룹 에픽을 가져옵니다. |
|
| 그룹의 모든 에픽을 가져옵니다. |
|
| 특정 그룹의 세부 정보를 가져옵니다. |
|
| 그룹에 대한 특정 배포 토큰을 가져옵니다. |
|
| 특정 그룹에 대한 배포 토큰을 가져옵니다. |
|
| 특정 그룹의 하위 그룹을 가져옵니다. |
|
| 그룹(및 기본적으로 하위 그룹)의 이슈 목록을 가져옵니다. |
|
| 그룹 수준 병합 요청 승인 설정의 세부 정보를 가져옵니다. |
|
| 특정 그룹의 구성원을 가져옵니다. |
|
| 특정 그룹과 연결된 병합 요청을 가져옵니다. |
|
| 특정 그룹과 연결된 프로젝트를 가져옵니다. |
|
| 그룹의 릴리스에 대한 정보를 가져옵니다. |
|
| 그룹의 러너에 대한 정보를 가져옵니다. |
|
| 특정 그룹의 하위 그룹을 가져옵니다. |
|
| 그룹의 보안 취약점 결과를 가져옵니다(Ultimate). |
|
| 그룹 목록을 가져옵니다. |
|
| 단일 이슈를 가져옵니다. |
|
| 이슈 목록을 가져옵니다. project_id로 필터링할 수 있습니다. |
|
| 이름으로 특정 라벨을 가져옵니다. |
|
| 프로젝트의 모든 라벨을 가져옵니다. |
|
| 프로젝트의 최신 릴리스에 대한 정보를 가져옵니다. |
|
| 프로젝트의 최신 릴리스에 대한 자산을 가져옵니다. |
|
| 프로젝트의 최신 릴리스에 대한 증거를 가져옵니다. |
|
| 특정 프로젝트 및 병합 요청에 대한 병합 요청 수준 승인 규칙을 가져옵니다. |
|
| 병합 요청 목록을 가져옵니다. |
|
| 특정 프로젝트 마일스톤을 가져옵니다. |
|
| 프로젝트의 모든 마일스톤을 가져옵니다. |
|
| 특정 네임스페이스에 대한 정보를 가져옵니다. |
|
| 네임스페이스에 대한 정보를 가져옵니다. |
|
| 그룹 내 중첩 프로젝트에 대한 정보를 가져옵니다. |
|
| 특정 노트를 가져옵니다. |
|
| 특정 이슈의 모든 노트를 가져옵니다. |
|
| 프로젝트의 특정 파이프라인에 대한 정보를 가져옵니다. |
|
| 프로젝트 내 특정 파이프라인과 연결된 작업을 가져옵니다. |
|
| 프로젝트의 특정 파이프라인 일정에 대한 정보를 가져옵니다. |
|
| 특정 프로젝트의 파이프라인 일정을 가져옵니다. |
|
| 특정 프로젝트의 파이프라인에 대한 정보를 가져옵니다. |
|
| 특정 파이프라인 일정에서 트리거된 파이프라인을 가져옵니다. |
|
| 특정 프로젝트에 대한 정보를 가져옵니다. |
|
| 프로젝트의 기여자에 대한 정보를 가져옵니다. |
|
| 프로젝트의 종속성 목록(감지된 모든 종속성)을 가져옵니다. |
|
| 프로젝트에 대한 특정 배포 토큰을 가져옵니다. |
|
| 특정 프로젝트에 대한 배포 토큰을 가져옵니다. |
|
| 특정 프로젝트와 연결된 그룹을 가져옵니다. |
|
| 프로젝트 내 특정 작업의 세부 정보를 가져옵니다. |
|
| 프로젝트 내 특정 작업의 로그를 가져옵니다. |
|
| 특정 프로젝트와 연결된 작업을 가져옵니다. |
|
| 특정 프로젝트 수준 병합 요청 승인 규칙의 세부 정보를 가져옵니다. |
|
| 프로젝트 수준 병합 요청 승인 규칙을 가져옵니다. |
|
| 프로젝트 수준 병합 요청 승인 설정의 세부 정보를 가져옵니다. |
|
| 특정 프로젝트의 구성원을 가져옵니다. |
|
| 프로젝트의 특정 병합 요청의 세부 정보를 가져옵니다. |
|
| 특정 프로젝트의 병합 요청을 가져옵니다. |
|
| 프로젝트의 러너에 대한 정보를 가져옵니다. |
|
| 특정 프로젝트의 통계를 가져옵니다. |
|
| 프로젝트의 보안 취약점을 가져옵니다(Ultimate). |
|
| 프로젝트에 대한 정보를 가져옵니다. |
|
| 프로젝트의 특정 보호된 브랜치에 대한 정보를 가져옵니다. |
|
| 프로젝트의 보호된 브랜치에 대한 정보를 가져옵니다. |
|
| 특정 보호된 환경의 세부 정보를 가져옵니다. |
|
| 프로젝트의 보호된 환경 목록을 가져옵니다. |
|
| 프로젝트의 특정 보호된 태그에 대한 정보를 가져옵니다. |
|
| 프로젝트의 보호된 태그에 대한 정보를 가져옵니다. |
|
| 프로젝트에서 태그로 릴리스에 대한 정보를 가져옵니다. |
|
| 프로젝트의 릴리스에 대한 정보를 가져옵니다. |
|
| 특정 프로젝트의 리포지토리 패키지에 대한 정보를 가져옵니다. |
|
| 특정 러너에 대한 정보를 가져옵니다. |
|
| 특정 러너의 작업을 가져옵니다. |
|
| 러너에 대한 정보를 가져옵니다. |
|
| 특정 스니펫을 가져옵니다. |
|
| 스니펫 목록을 가져옵니다. project_id로 필터링할 수 있습니다. |
|
| 프로젝트의 특정 태그에 대한 정보를 가져옵니다. |
|
| 프로젝트의 태그에 대한 정보를 가져옵니다. |
|
| 특정 사용자에 대한 정보를 가져옵니다. |
|
| 사용자에 대한 정보를 가져옵니다. |
|
| 전역 ID로 단일 취약점을 가져옵니다(Ultimate). |
|
| 프로젝트의 위키 페이지 목록을 가져옵니다. |
|
| 특정 위키 페이지에 대한 정보를 가져옵니다. |
|
| 특정 병합 요청에 대한 승인을 가져옵니다. |
|
| 특정 러너를 일시 중지하거나 재개합니다. |
|
| 커밋에 빌드 상태를 게시합니다. |
|
| 프로젝트의 특정 브랜치를 보호합니다. |
|
| 프로젝트의 환경을 보호합니다. |
|
| 프로젝트의 태그를 보호합니다. |
|
| 특정 프로젝트의 리포지토리 패키지를 게시합니다. |
|
| 새 러너를 등록합니다. |
|
| 프로젝트의 특정 브랜치에 대한 코드 소유자 승인을 요구합니다. |
|
| GitLab 러너 등록 토큰을 재설정합니다. |
|
| 그룹 러너의 등록 토큰을 재설정합니다. |
|
| 프로젝트 러너의 등록 토큰을 재설정합니다. |
|
| 러너의 인증 토큰을 재설정합니다. |
|
| 프로젝트 내 특정 작업을 재시도합니다. |
|
| 커밋을 되돌립니다. |
|
| 특정 프로젝트에 대한 파이프라인을 실행합니다. |
|
| 특정 프로젝트에 대한 파이프라인 일정을 실행합니다. |
|
| 프로젝트 내 특정 작업을 실행합니다. |
|
| 특정 프로젝트를 그룹과 공유합니다. |
|
| 프로젝트의 환경을 중지합니다. |
|
| 프로젝트의 오래된 환경을 중지합니다. |
|
| 특정 프로젝트의 파이프라인 일정 소유권을 가져옵니다. |
|
| 특정 병합 요청의 승인을 취소합니다. |
|
| 특정 프로젝트의 보관을 해제합니다. |
|
| 프로젝트의 특정 브랜치 보호를 해제합니다. |
|
| 프로젝트의 환경 보호를 해제합니다. |
|
| 프로젝트의 태그 보호를 해제합니다. |
|
| 프로젝트의 기존 환경을 업데이트합니다. |
|
| 그룹 에픽을 업데이트합니다. |
|
| 이슈를 업데이트합니다. |
|
| 기존 라벨을 업데이트합니다. |
|
| 프로젝트 마일스톤을 업데이트합니다. |
|
| 노트를 업데이트합니다. |
|
| 기존 프로젝트 수준 병합 요청 승인 규칙을 업데이트합니다. |
|
| 프로젝트의 보호된 환경을 업데이트합니다. |
|
| 프로젝트의 릴리스에 대한 정보를 업데이트합니다. |
|
| 특정 러너의 세부 정보를 업데이트합니다. |
|
| 스니펫을 업데이트합니다. |
|
| 기존 사용자를 업데이트합니다. |
|
| 프로젝트의 기존 위키 페이지를 업데이트합니다. |
|
| 프로젝트의 위키 페이지에 첨부 파일을 업로드합니다. |
|
| 러너 인증을 확인합니다. |
기본 34개의 액션 라우팅 도구 · 196개의 verbose 1:1 도구. 각 항목은 해당 <DOMAIN>TOOL 토글이 false로 설정되지 않는 한 활성화됩니다. MCP_TOOL_MODE는 표면을 선택합니다(condensed 기본값 · verbose 1:1 · both). 자동 생성됨 — 편집하지 마십시오.
자세한 도구 스키마, 매개변수 형태 및 검증 제약 조건은 docs/usage.md에 보존되어 있습니다.
동적 도구 선택 및 표시 여부
이 MCP 서버는 런타임 시 동적 도구 집합 선택 및 표시 필터링을 지원합니다. 이를 통해 노출되는 도구 집합을 제한하여 LLM의 컨텍스트 창이 비대해지는 것을 방지할 수 있습니다.
도구 필터링은 여러 입력 채널을 통해 구성할 수 있습니다:
CLI 인수: 시작 시
--tools또는--toolsets(또는 해당 비활성화 대응 항목인--disabled-tools및--disabled-toolsets)를 전달합니다.환경 변수: 표준 환경 변수를 정의합니다:
MCP_ENABLED_TOOLS/MCP_DISABLED_TOOLSMCP_ENABLED_TAGS/MCP_DISABLED_TAGS
HTTP SSE 요청 헤더: 전송 초기화 중 사용자 정의 헤더를 전달합니다:
x-mcp-enabled-tools/x-mcp-disabled-toolsx-mcp-enabled-tags/x-mcp-disabled-tags
HTTP SSE 요청 쿼리 매개변수: 전송 연결 URL에 쿼리 매개변수를 직접 추가합니다:
?tools=tool1,tool2?tags=tag1
쿼리 문자열이나 매개변수가 제공되면 LLM이 없는 Knowledge Graph 해석 계층(DynamicToolOrchestrator 사용)이 쿼리 의도를 알려진 도구 태그, 이름 또는 설명과 매칭하며, 안전한 폴백과 자동 24시간 백그라운드 캐시 새로고침을 제공합니다.
MCP 구성 예시
커넥터 중심의
[mcp]엑스트라를 설치하십시오. 예시에서는gitlab-api[mcp]를 사용하여agent-utilities[mcp]를 통해 FastMCP / FastAPI를 추가합니다. 필수 Agent Utilities 코어는 여전히epistemic-graph[full]을 포함합니다.[agent-runtime]엑스트라는 모델 오케스트레이션을 추가로 활성화합니다.
stdio 전송 (로컬 IDE — Cursor, Claude Desktop, VS Code)
{
"mcpServers": {
"gitlab-mcp": {
"command": "uvx",
"args": [
"--from",
"gitlab-api[mcp]",
"gitlab-mcp"
],
"env": {
"MCP_TOOL_MODE": "intent",
"BRANCHESTOOL": "True",
"COMMITSTOOL": "True",
"CUSTOM_APITOOL": "True",
"DEPLOY_TOKENSTOOL": "True",
"ENVIRONMENTSTOOL": "True",
"EPICSTOOL": "True",
"GITLAB_TOKEN": "your_gitlab_token_here",
"GITLAB_URL": "https://gitlab.example.com",
"GRAPHQLTOOL": "True",
"GRAPHQL_OPSTOOL": "True",
"GROUPSTOOL": "True",
"ISSUESTOOL": "True",
"JOBSTOOL": "True",
"LABELSTOOL": "True",
"MEMBERSTOOL": "True",
"MERGE_REQUESTSTOOL": "True",
"MERGE_RULESTOOL": "True",
"MILESTONESTOOL": "True",
"MISCTOOL": "True",
"NAMESPACESTOOL": "True",
"NOTESTOOL": "True",
"PACKAGESTOOL": "True",
"PIPELINESTOOL": "True",
"PIPELINE_SCHEDULESTOOL": "True",
"PROJECTSTOOL": "True",
"PROTECTED_BRANCHESTOOL": "True",
"RELEASESTOOL": "True",
"RUNNERSTOOL": "True",
"SNIPPETSTOOL": "True",
"TAGSTOOL": "True",
"USERSTOOL": "True",
"VULNERABILITIESTOOL": "True",
"WIKITOOL": "True"
}
}
}
}런타임 참조에는 GraphOS와 같은 별칭 인식 런처가 필요합니다. 다른 런처는 해당 항목을 생략하고 자체 런타임 시크릿 경계를 통해 해석된 값을 주입해야 합니다.
Streamable-HTTP 전송 (네트워크 / 프로덕션)
{
"mcpServers": {
"gitlab-mcp": {
"command": "uvx",
"args": [
"--from",
"gitlab-api[mcp]",
"gitlab-mcp",
"--transport",
"streamable-http",
"--port",
"8000"
],
"env": {
"TRANSPORT": "streamable-http",
"HOST": "127.0.0.1",
"PORT": "8000",
"MCP_TOOL_MODE": "intent",
"BRANCHESTOOL": "True",
"COMMITSTOOL": "True",
"CUSTOM_APITOOL": "True",
"DEPLOY_TOKENSTOOL": "True",
"ENVIRONMENTSTOOL": "True",
"EPICSTOOL": "True",
"GITLAB_TOKEN": "your_gitlab_token_here",
"GITLAB_URL": "https://gitlab.example.com",
"GRAPHQLTOOL": "True",
"GRAPHQL_OPSTOOL": "True",
"GROUPSTOOL": "True",
"ISSUESTOOL": "True",
"JOBSTOOL": "True",
"LABELSTOOL": "True",
"MEMBERSTOOL": "True",
"MERGE_REQUESTSTOOL": "True",
"MERGE_RULESTOOL": "True",
"MILESTONESTOOL": "True",
"MISCTOOL": "True",
"NAMESPACESTOOL": "True",
"NOTESTOOL": "True",
"PACKAGESTOOL": "True",
"PIPELINESTOOL": "True",
"PIPELINE_SCHEDULESTOOL": "True",
"PROJECTSTOOL": "True",
"PROTECTED_BRANCHESTOOL": "True",
"RELEASESTOOL": "True",
"RUNNERSTOOL": "True",
"SNIPPETSTOOL": "True",
"TAGSTOOL": "True",
"USERSTOOL": "True",
"VULNERABILITIESTOOL": "True",
"WIKITOOL": "True"
}
}
}
}또는 url로 사전 배포된 Streamable-HTTP 인스턴스에 연결합니다:
{
"mcpServers": {
"gitlab-mcp": {
"url": "http://localhost:8000/gitlab-mcp/mcp"
}
}
}검토된 컨테이너 이미지를 최소 권한 stdio 자식 프로세스로 실행합니다(리스너 또는 게시된 포트 없음):
docker run -i --rm \
--read-only \
--cap-drop=ALL \
--security-opt=no-new-privileges \
--pids-limit=256 \
--tmpfs /tmp:rw,noexec,nosuid,nodev,size=64m \
-e TRANSPORT=stdio \
-e MCP_TOOL_MODE=intent \
-e BRANCHESTOOL=True \
-e COMMITSTOOL=True \
-e CUSTOM_APITOOL=True \
-e DEPLOY_TOKENSTOOL=True \
-e ENVIRONMENTSTOOL=True \
-e EPICSTOOL=True \
-e GITLAB_TOKEN=your_gitlab_token_here \
-e GITLAB_URL=https://gitlab.example.com \
-e GRAPHQLTOOL=True \
-e GRAPHQL_OPSTOOL=True \
-e GROUPSTOOL=True \
-e ISSUESTOOL=True \
-e JOBSTOOL=True \
-e LABELSTOOL=True \
-e MEMBERSTOOL=True \
-e MERGE_REQUESTSTOOL=True \
-e MERGE_RULESTOOL=True \
-e MILESTONESTOOL=True \
-e MISCTOOL=True \
-e NAMESPACESTOOL=True \
-e NOTESTOOL=True \
-e PACKAGESTOOL=True \
-e PIPELINESTOOL=True \
-e PIPELINE_SCHEDULESTOOL=True \
-e PROJECTSTOOL=True \
-e PROTECTED_BRANCHESTOOL=True \
-e RELEASESTOOL=True \
-e RUNNERSTOOL=True \
-e SNIPPETSTOOL=True \
-e TAGSTOOL=True \
-e USERSTOOL=True \
-e VULNERABILITIESTOOL=True \
-e WIKITOOL=True \
registry.example.invalid/gitlab-api@sha256:<digest> gitlab-mcp컨테이너화된 네트워크 HTTP의 경우, 운영자 소유 배포 프로필을 통해 인증된 TLS 인그레스(또는
직접 서버 TLS), 정확한 MCP_ALLOWED_HOSTS, 그리고 정확한 신뢰 프록시 CIDR 정책을 제공하십시오.
생성기는 인증되지 않은 비루프백 리스너를 생성하지 않습니다.
코드에서 읽은 환경 표면(MCP_TOOL_MODE + 패키지 변수)에서 자동 생성됨 — 편집하지 마십시오.
추가 배포 옵션
gitlab-api는 로컬 stdio 프로세스 또는 컨테이너로 실행하거나 원격
네트워크 경계 뒤에서 실행할 수 있습니다.
배포 가이드에는
자세한 전송 계약이 명시되어 있습니다.
로컬 컨테이너 — 리스너나 게시된 포트 없이 검토된 불변 이미지를 최소 권한 stdio 자식 프로세스로 실행합니다.
원격 URL — 운영자가 제공한 인증된 HTTPS 인그레스를 통해 연결합니다. 해당 URL, 아웃바운드 ID 참조, 신뢰 프로필 및 정확한
MCP_ALLOWED_HOSTS를AgentConfig에 유지합니다.
환경 변수
패키지 환경 변수
변수 | 예시 | 설명 |
|
| |
|
| |
|
| 옵션: stdio, streamable-http, sse |
|
| |
|
| |
| 시크릿 주입됨 | |
| 시크릿 주입됨 | |
|
| |
|
| 옵션: none, embedded, remote |
|
| |
|
| |
|
| |
| 시크릿 주입됨 | |
| — | 명명된 AgentConfig TLS 프로필; 비어 있으면 구성된 기본값 사용 |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
상속된 agent-utilities 변수 (모든 커넥터에 적용)
변수 | 예시 | 설명 |
|
| 도구 표면: |
| — | 쉼표로 구분된 도구 허용 목록 |
| — | 쉼표로 구분된 도구 거부 목록 |
| — | 쉼표로 구분된 태그 허용 목록 |
| — | 쉼표로 구분된 태그 거부 목록 |
| — | 아웃바운드 MCP 하위 인증: |
| — | OIDC 클라이언트 ID (서비스 계정 인증) |
|
| OIDC 서비스 계정용 런타임 시크릿 참조 |
| — | HTTP Basic 사용자 이름 ( |
|
| HTTP Basic 인증용 런타임 시크릿 참조 ( |
|
| 상세 로깅 |
|
| 버퍼링 없는 stdout (컨테이너에서 권장) |
|
| 에이전트가 연결하는 MCP 서버의 URL |
|
| 에이전트용 LLM 공급자 |
|
| 에이전트용 모델 ID |
|
| AG-UI 웹 인터페이스 제공 |
패키지 45개 + 상속 변수 16개. .env.example + 공유 agent-utilities 세트에서 자동 생성됨 — 편집하지 마십시오.
서버가 읽는 모든 변수입니다.
연결 및 자격 증명
커넥터는 기본적으로 단일 호스트이며 gitlab_instances가 구성된 경우 멀티 테넌트입니다(멀티 테넌시 참조). 인스턴스가 구성되지 않으면 아래의 단일 호스트 GITLAB_* 값으로 대체됩니다.
변수 | 설명 | 기본값 |
| 기본 GitLab 인스턴스 URL |
|
| GitLab 개인/프로젝트 액세스 토큰 ( | — |
| 선택적 런타임 TLS 프로필 선택기 | (설정 안 됨) |
여러 인스턴스는 공유 agent-utilities XDG 구성(
~/.config/agent-utilities/config.json)의gitlab_instances아래에 한 번 선언됩니다. 각 항목에는name,url,token, 선택적tls_profile이 있습니다. 클라이언트 팩토리에서 이름으로 테넌트를 지정합니다. 인스턴스가 설정되지 않으면 첫 번째 구성된 인스턴스로 해석됩니다(그 외에는GITLAB_URL/GITLAB_TOKEN).
MCP 서버 / 전송
변수 | 설명 | 기본값 |
|
|
|
| 바인드 호스트 (HTTP 전송) |
|
| 바인드 포트 (HTTP 전송) |
|
| 도구 표면: |
|
| 쉼표로 구분된 도구 허용/거부 목록 | — |
| 쉼표로 구분된 태그 허용/거부 목록 | — |
| 상세 로깅 |
|
| 버퍼링 없는 stdout (컨테이너에서 권장) |
|
도구 토글
각 작업 라우팅 도구는 해당 토글 환경 변수(false로 설정)를 통해 개별적으로 비활성화할 수 있습니다. 전체 목록은 위의 사용 가능한 MCP 도구 표에 있습니다(예: PROJECTSTOOL, MERGE_REQUESTSTOOL, PIPELINESTOOL, GRAPHQLTOOL, CUSTOM_APITOOL).
텔레메트리 및 거버넌스
변수 | 설명 | 기본값 |
| OpenTelemetry 내보내기 활성화 |
|
| OTLP 수집기 엔드포인트 | — |
| OTLP 인증 키 | — |
| OTLP 프로토콜 (예: | — |
| 권한 부여 모드: |
|
| 임베디드 정책 파일 |
|
| 원격 Eunomia 서버 URL | — |
에이전트 CLI (전체 [agent] 런타임 전용)
변수 | 설명 | 기본값 |
| 에이전트가 연결하는 MCP 서버의 URL |
|
| LLM 공급자 (예: |
|
| 모델 ID (예: |
|
| AG-UI 웹 인터페이스 제공 |
|
복사-붙여넣기 시작점은 .env.example을 참조하십시오.
에이전트
이 저장소는 완전히 통합된 Pydantic AI 그래프 에이전트를 갖추고 있습니다. **에이전트 제어 프로토콜 (ACP)**을 통해 통신하며 에이전트 웹 UI (AG-UI) 및 터미널 인터페이스와 원활하게 상호 작용합니다.
에이전트 CLI 실행
대화형 커맨드라인 에이전트를 시작하려면:
# Set credentials
export GITLAB_URL="your_value"
export GITLAB_TOKEN="your_value"
# Run the agent server
gitlab-agent --provider openai --model-id gpt-4oDocker Compose 오케스트레이션
다음 docker/agent.compose.yml은 에이전트, 웹 UI, 터미널 인터페이스를 함께 구성합니다:
version: '3.8'
services:
gitlab-api-mcp:
image: example/gitlab-api:mcp
container_name: gitlab-api-mcp
hostname: gitlab-api-mcp
restart: always
env_file:
- ../.env
environment:
- PYTHONUNBUFFERED=1
- HOST=0.0.0.0
- PORT=8000
- TRANSPORT=streamable-http
ports:
- "8000:8000"
healthcheck:
test: ["CMD", "python3", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
gitlab-api-agent:
image: example/gitlab-api@sha256:<digest>
container_name: gitlab-api-agent
hostname: gitlab-api-agent
restart: always
depends_on:
- gitlab-api-mcp
env_file:
- ../.env
command: [ "gitlab-agent" ]
environment:
- PYTHONUNBUFFERED=1
- HOST=0.0.0.0
- PORT=9017
- MCP_URL=http://gitlab-api-mcp:8000/mcp
- PROVIDER=${PROVIDER:-openai}
- MODEL_ID=${MODEL_ID:-gpt-4o}
- ENABLE_WEB_UI=True
- ENABLE_OTEL=True
ports:
- "9017:9017"
healthcheck:
test: ["CMD", "python3", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:9017/health')"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
자세한 그래프 노드 아키텍처 설명, 사용자 지정 스킬 구성, 에이전트 추적 가이드는 docs/deployment.md에서 확인할 수 있습니다.
멀티 테넌시 (여러 GitLab 인스턴스)
클라이언트는 기본적으로 멀티 테넌트입니다. 인스턴스 집합은 공유 agent-utilities XDG 구성(~/.config/agent-utilities/config.json)의 gitlab_instances 아래에 한 번 선언됩니다. Knowledge-Graph GitLab 인덱서가 읽는 동일한 목록이므로 하나의 구성이 코드/메타데이터 인덱싱과 모든 API/MCP 호출을 모두 구동합니다:
{
"gitlab_instances": [
{"name": "internal", "url": "https://gitlab.example.invalid", "token": "<GITLAB_TOKEN>", "tls_profile": "private-pki"},
{"name": "public", "url": "https://gitlab.com", "token": "<GITLAB_TOKEN>"}
]
}클라이언트 팩토리에서 이름으로 테넌트를 지정합니다. URL만으로도 작동하며, 인스턴스가 설정되지 않으면 첫 번째 구성된 인스턴스로 해석됩니다(그 외에는 GITLAB_URL/GITLAB_TOKEN):
from gitlab_api.auth import get_client
from gitlab_api.instances import list_configured_instances
internal = get_client(instance="internal") # resolves URL, token, and TLS profile
public = get_client(instance="public")
default = get_client() # first configured / GITLAB_URL fallback
names = [i.name for i in list_configured_instances()]MCP 서버는 구성된 테넌트를 검색하기 위해 gitlab_instances 도구(action=list|get)를 노출합니다(토큰은 절대 반환되지 않음). 인스턴스가 구성되지 않으면 커넥터는 항상 사용해 온 단일 호스트 GITLAB_URL/GITLAB_TOKEN으로 대체됩니다.
보안 및 거버넌스
엔터프라이즈 준비 agent-utilities 코어에 직접 구축되어 표준 보안 매개변수가 완전히 지원됩니다:
액세스 제어 및 정책 시행
Eunomia 정책: 세분화된 정책 기반 도구 권한 부여.
none, 로컬embedded(mcp_policies.json), 또는 중앙 집중식remote모드를 지원합니다.OIDC 토큰 위임: Web UI / ACP → Agent → MCP로 인증 사용자 자격 증명을 전달하기 위한 RFC 8693 토큰 교환을 준수합니다.
범위 지정 자격 증명: 실행 컨텍스트는 특정 호출자 ID로 제한됩니다.
런타임 보안 그리드
기능 | 기능 설명 | 활성화 |
도구 가드 | 인간 개입 검증이 포함된 민감도 검사 | 기본 활성화 |
프롬프트 주입 방어 | 입력 스캐닝, 반복 모니터링, 재귀 루프 차단 | 기본 활성화 |
컨텍스트 안전 가드 | 고착 루프 감지 및 컨텍스트 오버플로 사전 경고 | 기본 활성화 |
설치
실행하려는 항목에 맞는 엑스트라를 선택하십시오:
추가 | 설치 내용 | 사용 시점 |
| 커넥터 중심 MCP 서버 ( | MCP 서버만 실행하는 경우 (가장 작은 설치/이미지) |
| 에이전트 런타임 ( | 통합 에이전트를 실행하는 경우 |
| 모든 것 ( | 개발 / 두 표면 모두 |
# Connector-focused MCP server (includes the shared graph engine)
uv pip install "gitlab-api[mcp]"
# Agent runtime (adds model orchestration to the shared graph engine)
uv pip install "gitlab-api[agent]"
# Everything (development)
uv pip install "gitlab-api[all]" # or: python -m pip install "gitlab-api[all]"컨테이너 이미지 (:mcp vs :agent)
하나의 다단계 docker/Dockerfile이 --target으로 선택되는 두 개의 적정 크기 이미지를 빌드합니다:
이미지 태그 | 빌드 대상 | 내용 | 진입점 |
|
|
|
|
|
|
|
|
docker build --target mcp -t example/gitlab-api:mcp docker/ # connector-focused MCP server
docker build --target agent -t example/gitlab-api:agent-local docker/ # agent runtimedocker/mcp.compose.yml은 커넥터 중심 :mcp 서버를 실행하고, docker/agent.compose.yml은
에이전트(불변 에이전트 다이제스트)를 공동 배치된 :mcp 사이드카와 함께 실행합니다.
지식 그래프 데이터베이스(epistemic-graph)
[mcp]와 [agent] 모두 필수 에이전트 유틸리티 핵심 의존성(epistemic-graph[full])을 통해
epistemic-graph 엔진을 포함합니다. [mcp] 추가 옵션은 서버를 커넥터 중심으로 유지하고,
[agent]는 모델 오케스트레이션을 추가로 활성화합니다. 로컬 배포는 번들 엔진을 사용할 수 있습니다.
프로덕션 또는 공유 상태의 경우 epistemic-graph를 전용 데이터베이스 서비스로 실행하고
런타임이 이를 사용하도록 구성하십시오. 배포 레시피(단일 노드 + Raft HA), 연결 구성, 아키텍처
다이어그램은 epistemic-graph 배포 가이드에
문서화되어 있습니다.
문서
전체 문서는 공식 문서 사이트에 게시되어 있으며, 설치, 배포, 일상적인 운영에 대한 권장 참고 자료입니다.
페이지 | 내용 |
pip, 소스, 추가 옵션, 사전 빌드된 Docker 이미지 | |
MCP 및 에이전트 서버 실행, Compose, Caddy + Technitium, 환경 구성 | |
MCP 도구, | |
Docker로 GitLab 배포 | |
액션 라우팅 도구 표면 및 아키텍처 | |
개념 레지스트리( |
저장소 소유자
기여
기여를 환영합니다! 풀 리퀘스트를 제출하기 전에 로컬 검사를 실행하여 코드 품질을 확인해 주세요:
ruff format .로 코드 서식 지정ruff check .로 린트 검사mypy .로 타입 안전성 검증pytest로 테스트 스위트 실행
agent-utilities-deployment로 배포
통합 agent-utilities-deployment 워크플로우로 이 패키지를 프로비저닝하십시오.
이 워크플로우는 설치된 패키지, 편집 가능한 소스, 또는 불변 컨테이너 경로를 선택하고,
AgentConfig에서 런타임 비밀 및 TLS 참조만 기록하며, doctor, 등록, 정책,
관찰 가능성, 롤백 게이트를 실행합니다. 에이전트에게
**"agent-utilities-deployment로 gitlab-api 배포"**를 요청하십시오.
설치 모드 | 명령 |
설치된 패키지 |
|
편집 가능한 소스 |
|
불변 컨테이너 |
|
저장소에는 배포 프로필, 인증서 값, 또는 환경별 엔드포인트가 포함되어 있지 않습니다.
이러한 값은 AgentConfig와 구성된 비밀 공급자를 통해 런타임에 제공하십시오.
관리형 기능 계약
이 패키지는 참조된 워크플로우로 유지되는 전문 절차를 갖춘 간결한 표준 기능 표면을 제공합니다.
현재 MCP 도구, 스킬 메타데이터, connector_manifest.yml, 온톨로지, 매핑, 셰이프, 마이그레이션,
도구 스키마 지문, 인증 메타데이터는 하나의 버전 관리된 기능 계약을 형성합니다.
이들을 함께 검증하십시오. 오래된 도구 이름이나 과거의 작업별 스킬 래퍼에 의존하지 마십시오.
런타임 엔드포인트, 자격 증명, 인증서 신뢰, 테넌트 ID, 보존 및 관찰 가능성 정책은 배포 입력값이며 패키지에 포함된 값이 아닙니다. 네트워크 전송, GraphOS 위임 또는 추적 내보내기를 활성화하기 전에 구성, 신뢰 및 개인정보 보호를 참조하십시오.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- -licenseAqualityAmaintenanceMCP Server for the GitLab API, enabling project management, file operations, and more.95,52589,748MIT
- AlicenseNot gradedqualityDmaintenanceProduction-ready MCP server providing GitLab integration with OAuth authentication, enabling AI assistants to manage projects, issues, merge requests, branches, files, and commits across GitLab instances.MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for interacting with GitLab API, supporting both self-hosted instances and gitlab.com. Provides tools for managing issues, merge requests, code review, pipelines, milestones, releases, search, and file access.514MIT
- AlicenseNot gradedqualityAmaintenanceMCP server for the GitLab REST API providing tools to manage projects, merge requests, pipelines, CI/CD variables, approvals, issues, and code reviews.5MIT
Related MCP Connectors
Go MCP server for GitLab: 2 dynamic tools reach 1000+ REST/GraphQL actions. Free/CE, no paid tier.
A MCP server built for developers enabling Git based project management with project and personal…
MCP server for Appcircle mobile CI/CD platform.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Knuckles-Team/gitlab-api'
If you have feedback or need assistance with the MCP directory API, please join our Discord server