@itapi-core/mcp-gitlab
v1.0.2
Published
KR: GitLab Project, Group, Repository, MR, Issue, Pipeline, Job, User 등 전체 CRUD와 범용 API 호출을 MCP 도구로 제공하는 서버. EN: MCP server for GitLab CRUD operations (projects, groups, repos, MRs, issues, pipelines, jobs, users, and more) over stdio and Streamable HTTP.
Maintainers
Readme
mcp-gitlab
KR: GitLab의 Project, Group, Repository, Merge Request, Issue, Pipeline, Job, User 등 전체 리소스에 대한 CRUD API를 MCP(Model Context Protocol) 도구로 제공하는 서버입니다. stdio 및 Streamable HTTP 전송 방식을 모두 지원합니다.
EN: An MCP server that exposes full GitLab CRUD operations — projects, groups, repositories, merge requests, issues, pipelines, jobs, users, labels, milestones, releases, CI/CD variables, environments, deploy keys, webhooks, wikis, snippets, and more — over both stdio and Streamable HTTP transports.
환경 변수 / Environment Variables
| 변수 / Variable | 설명 / Description | 기본값 / Default |
|---|---|---|
| GITLAB_URL | GitLab 인스턴스 URL / GitLab instance URL | https://gitlab.com |
| GITLAB_TOKEN | Personal Access Token (api 스코프 필요 / api scope required) | — (필수 / required) |
| TRANSPORT | 전송 방식 / Transport mode: stdio | http | sse | stdio |
| PORT | HTTP 서버 포트 / HTTP server port (HTTP 모드 전용 / HTTP mode only) | 3000 |
빠른 시작 / Quick Start
npx (stdio)
{
"mcpServers": {
"gitlab": {
"command": "npx",
"args": ["-y", "@itapi-core/mcp-gitlab"],
"env": {
"GITLAB_URL": "https://gitlab.com",
"GITLAB_TOKEN": "your-personal-access-token"
}
}
}
}npx (HTTP)
GITLAB_URL=https://gitlab.com GITLAB_TOKEN=your-token npx @itapi-core/mcp-gitlab --httpDocker
# .env 파일 생성
cp .env.example .env
# GITLAB_TOKEN 설정 후 실행
docker-compose up -d직접 빌드 / Build from source
npm install
npm run build
npm start # stdio
npm run start:http # HTTP도구 목록 / Tool List
Projects (프로젝트)
| 도구 / Tool | 설명 / Description |
|---|---|
| gitlab_list_projects | 프로젝트 목록 조회 / List projects |
| gitlab_get_project | 프로젝트 상세 조회 / Get project details |
| gitlab_create_project | 프로젝트 생성 / Create project |
| gitlab_update_project | 프로젝트 수정 / Update project |
| gitlab_delete_project | 프로젝트 삭제 / Delete project |
| gitlab_fork_project | 프로젝트 포크 / Fork project |
| gitlab_archive_project | 프로젝트 아카이브 / Archive project |
| gitlab_unarchive_project | 아카이브 해제 / Unarchive project |
| gitlab_list_project_members | 멤버 목록 조회 / List project members |
| gitlab_add_project_member | 멤버 추가 / Add project member |
| gitlab_update_project_member | 멤버 권한 수정 / Update member access level |
| gitlab_remove_project_member | 멤버 제거 / Remove project member |
Groups (그룹)
| 도구 / Tool | 설명 / Description |
|---|---|
| gitlab_list_groups | 그룹 목록 조회 / List groups |
| gitlab_get_group | 그룹 상세 조회 / Get group details |
| gitlab_create_group | 그룹 생성 / Create group |
| gitlab_update_group | 그룹 수정 / Update group |
| gitlab_delete_group | 그룹 삭제 / Delete group |
| gitlab_list_group_members | 그룹 멤버 목록 / List group members |
| gitlab_add_group_member | 그룹 멤버 추가 / Add group member |
| gitlab_remove_group_member | 그룹 멤버 제거 / Remove group member |
| gitlab_list_group_projects | 그룹 내 프로젝트 목록 / List group projects |
Repository – Branches (브랜치)
| 도구 / Tool | 설명 / Description |
|---|---|
| gitlab_list_branches | 브랜치 목록 / List branches |
| gitlab_get_branch | 브랜치 상세 / Get branch |
| gitlab_create_branch | 브랜치 생성 / Create branch |
| gitlab_delete_branch | 브랜치 삭제 / Delete branch |
| gitlab_protect_branch | 브랜치 보호 설정 / Protect branch |
| gitlab_unprotect_branch | 브랜치 보호 해제 / Unprotect branch |
Repository – Tags (태그)
| 도구 / Tool | 설명 / Description |
|---|---|
| gitlab_list_tags | 태그 목록 / List tags |
| gitlab_get_tag | 태그 상세 / Get tag |
| gitlab_create_tag | 태그 생성 / Create tag |
| gitlab_delete_tag | 태그 삭제 / Delete tag |
Repository – Commits (커밋)
| 도구 / Tool | 설명 / Description |
|---|---|
| gitlab_list_commits | 커밋 목록 / List commits |
| gitlab_get_commit | 커밋 상세 / Get commit |
| gitlab_create_commit | 멀티파일 커밋 생성 / Create commit with multiple file changes |
| gitlab_get_commit_diff | 커밋 diff 조회 / Get commit diff |
| gitlab_cherry_pick_commit | 체리픽 / Cherry-pick commit |
| gitlab_compare_refs | 브랜치/커밋 비교 / Compare branches or commits |
Repository – Files (파일)
| 도구 / Tool | 설명 / Description |
|---|---|
| gitlab_get_file | 파일 내용 조회 / Get file content |
| gitlab_create_file | 파일 생성 / Create file |
| gitlab_update_file | 파일 수정 / Update file |
| gitlab_delete_file | 파일 삭제 / Delete file |
| gitlab_list_repository_tree | 디렉토리 트리 조회 / List repository tree |
Merge Requests (머지 리퀘스트)
| 도구 / Tool | 설명 / Description |
|---|---|
| gitlab_list_merge_requests | MR 목록 / List merge requests |
| gitlab_get_merge_request | MR 상세 / Get merge request |
| gitlab_create_merge_request | MR 생성 / Create merge request |
| gitlab_update_merge_request | MR 수정 / Update merge request |
| gitlab_delete_merge_request | MR 삭제 / Delete merge request |
| gitlab_accept_merge_request | MR 머지 / Accept (merge) merge request |
| gitlab_approve_merge_request | MR 승인 / Approve merge request |
| gitlab_unapprove_merge_request | 승인 취소 / Unapprove merge request |
| gitlab_get_mr_diff | MR diff 조회 / Get merge request diff |
| gitlab_list_mr_notes | MR 댓글 목록 / List MR notes |
| gitlab_create_mr_note | MR 댓글 작성 / Create MR note |
| gitlab_update_mr_note | MR 댓글 수정 / Update MR note |
| gitlab_delete_mr_note | MR 댓글 삭제 / Delete MR note |
Issues (이슈)
| 도구 / Tool | 설명 / Description |
|---|---|
| gitlab_list_issues | 이슈 목록 / List issues |
| gitlab_get_issue | 이슈 상세 / Get issue |
| gitlab_create_issue | 이슈 생성 / Create issue |
| gitlab_update_issue | 이슈 수정 / Update issue |
| gitlab_delete_issue | 이슈 삭제 / Delete issue |
| gitlab_list_issue_notes | 이슈 댓글 목록 / List issue notes |
| gitlab_create_issue_note | 이슈 댓글 작성 / Create issue note |
| gitlab_update_issue_note | 이슈 댓글 수정 / Update issue note |
| gitlab_delete_issue_note | 이슈 댓글 삭제 / Delete issue note |
Pipelines (파이프라인)
| 도구 / Tool | 설명 / Description |
|---|---|
| gitlab_list_pipelines | 파이프라인 목록 / List pipelines |
| gitlab_get_pipeline | 파이프라인 상세 / Get pipeline |
| gitlab_create_pipeline | 파이프라인 트리거 / Create (trigger) pipeline |
| gitlab_cancel_pipeline | 파이프라인 취소 / Cancel pipeline |
| gitlab_retry_pipeline | 파이프라인 재시도 / Retry pipeline |
| gitlab_delete_pipeline | 파이프라인 삭제 / Delete pipeline |
| gitlab_get_pipeline_variables | 파이프라인 변수 조회 / Get pipeline variables |
Jobs (잡)
| 도구 / Tool | 설명 / Description |
|---|---|
| gitlab_list_jobs | 프로젝트 Job 목록 / List project jobs |
| gitlab_list_pipeline_jobs | 파이프라인 Job 목록 / List pipeline jobs |
| gitlab_get_job | Job 상세 / Get job |
| gitlab_get_job_log | Job 로그 조회 / Get job log |
| gitlab_cancel_job | Job 취소 / Cancel job |
| gitlab_retry_job | Job 재시도 / Retry job |
| gitlab_play_job | 수동 Job 실행 / Play manual job |
| gitlab_erase_job | Job 아티팩트 삭제 / Erase job artifacts |
Users (사용자)
| 도구 / Tool | 설명 / Description |
|---|---|
| gitlab_get_current_user | 현재 사용자 조회 / Get current user |
| gitlab_list_users | 사용자 목록 / List users (admin) |
| gitlab_get_user | 사용자 상세 / Get user by ID |
Labels (레이블)
| 도구 / Tool | 설명 / Description |
|---|---|
| gitlab_list_labels | 레이블 목록 / List labels |
| gitlab_get_label | 레이블 상세 / Get label |
| gitlab_create_label | 레이블 생성 / Create label |
| gitlab_update_label | 레이블 수정 / Update label |
| gitlab_delete_label | 레이블 삭제 / Delete label |
Milestones (마일스톤)
| 도구 / Tool | 설명 / Description |
|---|---|
| gitlab_list_milestones | 마일스톤 목록 / List milestones |
| gitlab_get_milestone | 마일스톤 상세 / Get milestone |
| gitlab_create_milestone | 마일스톤 생성 / Create milestone |
| gitlab_update_milestone | 마일스톤 수정 / Update milestone |
| gitlab_delete_milestone | 마일스톤 삭제 / Delete milestone |
Releases (릴리즈)
| 도구 / Tool | 설명 / Description |
|---|---|
| gitlab_list_releases | 릴리즈 목록 / List releases |
| gitlab_get_release | 릴리즈 상세 / Get release |
| gitlab_create_release | 릴리즈 생성 / Create release |
| gitlab_update_release | 릴리즈 수정 / Update release |
| gitlab_delete_release | 릴리즈 삭제 / Delete release |
CI/CD Variables (변수)
| 도구 / Tool | 설명 / Description |
|---|---|
| gitlab_list_project_variables | 변수 목록 / List CI/CD variables |
| gitlab_get_project_variable | 변수 상세 / Get variable |
| gitlab_create_project_variable | 변수 생성 / Create variable |
| gitlab_update_project_variable | 변수 수정 / Update variable |
| gitlab_delete_project_variable | 변수 삭제 / Delete variable |
Environments (환경)
| 도구 / Tool | 설명 / Description |
|---|---|
| gitlab_list_environments | 환경 목록 / List environments |
| gitlab_get_environment | 환경 상세 / Get environment |
| gitlab_create_environment | 환경 생성 / Create environment |
| gitlab_update_environment | 환경 수정 / Update environment |
| gitlab_delete_environment | 환경 삭제 / Delete environment |
| gitlab_stop_environment | 환경 중지 / Stop environment |
Deploy Keys (배포 키)
| 도구 / Tool | 설명 / Description |
|---|---|
| gitlab_list_deploy_keys | Deploy Key 목록 / List deploy keys |
| gitlab_get_deploy_key | Deploy Key 상세 / Get deploy key |
| gitlab_create_deploy_key | Deploy Key 생성 / Create deploy key |
| gitlab_delete_deploy_key | Deploy Key 삭제 / Delete deploy key |
| gitlab_enable_deploy_key | Deploy Key 활성화 / Enable deploy key |
Project Hooks / Webhooks (웹훅)
| 도구 / Tool | 설명 / Description |
|---|---|
| gitlab_list_project_hooks | 웹훅 목록 / List webhooks |
| gitlab_get_project_hook | 웹훅 상세 / Get webhook |
| gitlab_create_project_hook | 웹훅 생성 / Create webhook |
| gitlab_update_project_hook | 웹훅 수정 / Update webhook |
| gitlab_delete_project_hook | 웹훅 삭제 / Delete webhook |
Wiki (위키)
| 도구 / Tool | 설명 / Description |
|---|---|
| gitlab_list_wiki_pages | Wiki 페이지 목록 / List wiki pages |
| gitlab_get_wiki_page | Wiki 페이지 조회 / Get wiki page |
| gitlab_create_wiki_page | Wiki 페이지 생성 / Create wiki page |
| gitlab_update_wiki_page | Wiki 페이지 수정 / Update wiki page |
| gitlab_delete_wiki_page | Wiki 페이지 삭제 / Delete wiki page |
Snippets (스니펫)
| 도구 / Tool | 설명 / Description |
|---|---|
| gitlab_list_snippets | 내 스니펫 목록 / List my snippets |
| gitlab_list_project_snippets | 프로젝트 스니펫 목록 / List project snippets |
| gitlab_get_snippet | 스니펫 상세 / Get snippet |
| gitlab_create_snippet | 스니펫 생성 / Create snippet |
| gitlab_update_snippet | 스니펫 수정 / Update snippet |
| gitlab_delete_snippet | 스니펫 삭제 / Delete snippet |
Search (검색)
| 도구 / Tool | 설명 / Description |
|---|---|
| gitlab_search_global | 전체 검색 / Search across GitLab |
| gitlab_search_project | 프로젝트 내 검색 / Search within project |
Generic API (범용)
| 도구 / Tool | 설명 / Description |
|---|---|
| gitlab_api_request | 직접 API 호출 / Generic API request |
접근 레벨 참고 / Access Level Reference
| 값 / Value | 역할 / Role |
|---|---|
| 10 | Guest |
| 20 | Reporter |
| 30 | Developer |
| 40 | Maintainer |
| 50 | Owner |
라이선스 / License
ISC
