@zereight/mcp-gitlab 2.1.51 → 2.1.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.ko.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # GitLab MCP Server
2
2
 
3
+ [![npm](https://img.shields.io/npm/v/@zereight/mcp-gitlab.svg)](https://www.npmjs.com/package/@zereight/mcp-gitlab)
4
+ [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_GitLab_MCP-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](vscode:mcp/install?%7B%22name%22%3A%22zereight.gitlab-mcp%22%2C%22type%22%3A%22stdio%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40zereight%2Fmcp-gitlab%40latest%22%5D%2C%22env%22%3A%7B%22GITLAB_PERSONAL_ACCESS_TOKEN%22%3A%22%24%7Binput%3Agitlab-token%7D%22%2C%22GITLAB_API_URL%22%3A%22https%3A%2F%2Fgitlab.com%2Fapi%2Fv4%22%2C%22GITLAB_PERMISSION_MODE%22%3A%22full%22%7D%7D)
5
+
3
6
  [English](./README.md) | [한국어](./README.ko.md) | [简体中文](./README.zh-CN.md)
4
7
 
5
8
  📖 **[문서 →](https://zereight.github.io/gitlab-mcp/)** 설정 가이드, 환경 변수, 전체 도구 레퍼런스는 호스팅된 문서 사이트에서 확인할 수 있습니다.
@@ -8,17 +11,31 @@
8
11
 
9
12
  ## @zereight/mcp-gitlab
10
13
 
11
- AI 클라이언트를 위한 포괄적인 GitLab MCP 서버입니다. stdio, SSE, Streamable HTTP를 통해 프로젝트, 머지 리퀘스트, 이슈, 파이프라인, 위키, 릴리스, 마일스톤 등을 관리할 수 있습니다.
14
+ **에이전트 워크플로우에 최적화된 GitLab MCP** — stdio, SSE, Streamable HTTP를 통해 프로젝트, 머지 리퀘스트, 이슈, 파이프라인, 위키, 릴리스, 마일스톤 등을 관리할 수 있습니다.
12
15
 
13
16
  PAT, OAuth, 읽기 전용 모드, 동적 API URL, 원격 인증을 지원하며 VS Code, Claude, Cursor, Copilot 및 기타 MCP 클라이언트에서 사용할 수 있습니다.
14
17
 
15
18
  ### 왜 이 GitLab MCP를 사용하나요?
16
19
 
17
- - 넓은 GitLab 지원 범위: 프로젝트, 저장소 탐색, 머지 리퀘스트, 이슈, 파이프라인, 위키, 릴리스, 라벨, 마일스톤 등
18
- - 유연한 인증: Personal Access Token, 로컬 OAuth2 브라우저 플로우, MCP OAuth 프록시, 요청별 원격 인증
19
- - 여러 전송 방식: 로컬 클라이언트용 stdio, 레거시 클라이언트용 SSE, 최신 원격 배포용 Streamable HTTP
20
- - 클라이언트 친화적 설정: Claude Code, Codex, Antigravity, OpenCode, Copilot, Cline, Roo Code, Cursor, Kilo Code, Amp Code 예시 제공
21
- - 셀프 호스팅 대응: 커스텀 GitLab 인스턴스, 프록시 설정, 동적 API URL 라우팅 지원
20
+ - **217개 도구 + `discover_tools`** — 작은 toolset으로 시작하고, 런타임에 카테고리 활성화
21
+ - **MR 2단계 리뷰** — `list_merge_request_changed_files` → 배치 `get_merge_request_file_diff`
22
+ - **Agent Skill 내장** — `skills/gitlab-mcp/` 워크플로우 가이드
23
+ - **유연한 인증** — Personal Access Token, 로컬 OAuth2 브라우저 플로우, MCP OAuth 프록시, 요청별 원격 인증
24
+ - **여러 전송 방식** — 로컬 클라이언트용 stdio, 레거시 클라이언트용 SSE, 최신 원격 배포용 Streamable HTTP
25
+ - **클라이언트 친화적 설정** — Claude Code, Codex, Antigravity, OpenCode, Copilot, Cline, Roo Code, Cursor, Kilo Code, Amp Code 예시 제공
26
+ - **셀프 호스팅 대응** — 커스텀 GitLab 인스턴스, 프록시 설정, 동적 API URL 라우팅 지원
27
+
28
+ ### 비교 요약
29
+
30
+ | | @zereight/mcp-gitlab | GitLab MCP A (커뮤니티 CQRS형) |
31
+ |---|----------------------|--------------------------------|
32
+ | **적합한 경우** | AI 에이전트 워크플로우 | 엔터프라이즈 멀티 인스턴스 / 그룹형 도구 |
33
+ | **도구 모델** | ~217개 세분화 도구 + `discover_tools` | ~50–60개 `browse_*` / `manage_*` 그룹 도구 |
34
+ | **MR 리뷰** | 2단계 배치 diff | 서버마다 다름 |
35
+ | **Node.js** | >=18 | 보통 >=24 |
36
+ | **라이선스** | MIT | 서버마다 다름 |
37
+
38
+ [전체 비교 →](./docs/comparison/community-gitlab-mcp-a.md)
22
39
 
23
40
  빠른 시작: 아래에서 Personal Access Token 또는 OAuth2 설정 중 하나를 선택하고 `@zereight/mcp-gitlab`을 설치한 뒤 MCP 클라이언트 설정에서 `zereight-mcp-gitlab`을 사용하세요.
24
41
 
@@ -81,7 +98,7 @@ npm install -g @zereight/mcp-gitlab
81
98
 
82
99
  예시는 기존 `mcp-gitlab`보다 충돌 가능성이 낮은 `zereight-mcp-gitlab` 별칭을 사용합니다. MCP 클라이언트가 찾지 못하면 `which zereight-mcp-gitlab`의 절대 경로를 사용하세요.
83
100
 
84
- 전역 설치를 쓰지 않으려면 `npx -y @zereight/mcp-gitlab@2.1.49`처럼 직전 안정 버전(문서가 권장하는 버전)으로 고정하세요. 항상 최신 버전을 원하면 `npx -y @zereight/mcp-gitlab@latest`를 사용하세요. 새 버전이 나오면 서버가 시작 시 stderr로 알려줍니다(`GITLAB_DISABLE_VERSION_CHECK=true`로 비활성화 가능).
101
+ 전역 설치를 쓰지 않으려면 `npx -y @zereight/mcp-gitlab@2.1.52`처럼 직전 안정 버전(문서가 권장하는 버전)으로 고정하세요. 항상 최신 버전을 원하면 `npx -y @zereight/mcp-gitlab@latest`를 사용하세요. 새 버전이 나오면 서버가 시작 시 stderr로 알려줍니다(`GITLAB_DISABLE_VERSION_CHECK=true`로 비활성화 가능).
85
102
 
86
103
  #### CLI 인자 사용하기(환경 변수 문제가 있는 클라이언트용)
87
104
 
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # GitLab MCP Server
2
2
 
3
+ [![npm](https://img.shields.io/npm/v/@zereight/mcp-gitlab.svg)](https://www.npmjs.com/package/@zereight/mcp-gitlab)
4
+ [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_GitLab_MCP-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](vscode:mcp/install?%7B%22name%22%3A%22zereight.gitlab-mcp%22%2C%22type%22%3A%22stdio%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40zereight%2Fmcp-gitlab%40latest%22%5D%2C%22env%22%3A%7B%22GITLAB_PERSONAL_ACCESS_TOKEN%22%3A%22%24%7Binput%3Agitlab-token%7D%22%2C%22GITLAB_API_URL%22%3A%22https%3A%2F%2Fgitlab.com%2Fapi%2Fv4%22%2C%22GITLAB_PERMISSION_MODE%22%3A%22full%22%7D%7D)
3
5
  [![MCP Toplist](https://mcptoplist.com/badge/io.github.zereight%2Fgitlab-mcp.svg)](https://mcptoplist.com/server/io.github.zereight%2Fgitlab-mcp) [![mcpindex](https://mcpindex.ai/api/v1/badge/io-github-zereight-gitlab-mcp)](https://mcpindex.ai/server/io-github-zereight-gitlab-mcp)
4
6
 
5
7
  [English](./README.md) | [한국어](./README.ko.md) | [简体中文](./README.zh-CN.md)
@@ -10,17 +12,31 @@
10
12
 
11
13
  ## @zereight/mcp-gitlab
12
14
 
13
- A comprehensive GitLab MCP server for AI clients. Manage projects, merge requests, issues, pipelines, wiki, releases, tags, milestones, and more through stdio, SSE, and Streamable HTTP.
15
+ **Agent-workflow-optimized GitLab MCP** — manage projects, merge requests, issues, pipelines, wiki, releases, tags, milestones, and more through stdio, SSE, and Streamable HTTP.
14
16
 
15
17
  Supports PAT, OAuth, read-only mode, dynamic API URLs, and remote authorization for VS Code, Claude, Cursor, Copilot, and other MCP clients.
16
18
 
17
19
  ### Why use this GitLab MCP?
18
20
 
19
- - Broad GitLab coverage — projects, repository browsing, merge requests, issues, pipelines, wiki, releases, tags, labels, milestones, and more
20
- - Flexible auth — Personal Access Token, local OAuth2 browser flow, MCP OAuth proxy, and per-request remote authorization
21
- - Multiple transports — stdio for local clients, SSE for legacy clients, and Streamable HTTP for modern remote deployments
22
- - Client-friendly setup — examples for Claude Code, Codex, Antigravity, OpenCode, Copilot, Cline, Roo Code, Cursor, Kilo Code, and Amp Code
23
- - Self-hosted ready — works with custom GitLab instances, proxy settings, and dynamic API URL routing
21
+ - **229 tools + `discover_tools`** — start with a small toolset; activate more at runtime without CQRS-style grouping
22
+ - **MR 2-step review** — `list_merge_request_changed_files` → batched `get_merge_request_file_diff`
23
+ - **Agent Skill built in** — workflow guidance in `skills/gitlab-mcp/`
24
+ - **Flexible auth** — Personal Access Token, local OAuth2 browser flow, MCP OAuth proxy, and per-request remote authorization
25
+ - **Multiple transports** — stdio for local clients, SSE for legacy clients, and Streamable HTTP for modern remote deployments
26
+ - **Client-friendly setup** — examples for Claude Code, Codex, Antigravity, OpenCode, Copilot, Cline, Roo Code, Cursor, Kilo Code, and Amp Code
27
+ - **Self-hosted ready** — works with custom GitLab instances, proxy settings, and dynamic API URL routing
28
+
29
+ ### How we compare
30
+
31
+ | | @zereight/mcp-gitlab | GitLab MCP A (community CQRS-style) |
32
+ |---|----------------------|-------------------------------------|
33
+ | **Best for** | AI agent workflows | Enterprise multi-instance / grouped tools |
34
+ | **Tool model** | ~229 granular tools + `discover_tools` | ~50–60 grouped `browse_*` / `manage_*` tools |
35
+ | **MR review** | 2-step batched diff | Varies |
36
+ | **Node.js** | >=18 | Often >=24 |
37
+ | **License** | MIT | Varies |
38
+
39
+ [Full comparison →](./docs/comparison/community-gitlab-mcp-a.md)
24
40
 
25
41
  Quick start: choose either Personal Access Token or OAuth2 setup below, install `@zereight/mcp-gitlab`, and use `zereight-mcp-gitlab` in your MCP client configuration.
26
42
 
@@ -83,7 +99,7 @@ npm install -g @zereight/mcp-gitlab
83
99
 
84
100
  The examples use `zereight-mcp-gitlab`, a less collision-prone alias for the legacy `mcp-gitlab` binary. If your MCP client cannot find it, use the absolute path from `which zereight-mcp-gitlab`.
85
101
 
86
- No global install? Pin `npx` to the previous stable release (the version these docs recommend), for example `npx -y @zereight/mcp-gitlab@2.1.49`. If you always want the newest release, use `npx -y @zereight/mcp-gitlab@latest` instead. The server prints a notice to stderr on startup when a newer version is available (disable with `GITLAB_DISABLE_VERSION_CHECK=true`).
102
+ No global install? Pin `npx` to the previous stable release (the version these docs recommend), for example `npx -y @zereight/mcp-gitlab@2.1.52`. If you always want the newest release, use `npx -y @zereight/mcp-gitlab@latest` instead. The server prints a notice to stderr on startup when a newer version is available (disable with `GITLAB_DISABLE_VERSION_CHECK=true`).
87
103
 
88
104
  #### Using CLI Arguments (for clients with env var issues)
89
105
 
@@ -674,100 +690,113 @@ Register the skill directory in your AI client to get optimal tool usage guidanc
674
690
  121. `create_pipeline` - Create a new pipeline for a branch or tag
675
691
  122. `retry_pipeline` - Retry a failed or canceled pipeline
676
692
  123. `cancel_pipeline` - Cancel a running pipeline
677
- 124. `play_pipeline_job` - Run a manual pipeline job
678
- 125. `retry_pipeline_job` - Retry a failed or canceled pipeline job
679
- 126. `cancel_pipeline_job` - Cancel a running pipeline job
680
- 127. `list_job_artifacts` - List artifact files in a job's artifacts archive. Returns file names, paths, types, and sizes
681
- 128. `download_job_artifacts` - Download the entire artifact archive (zip) for a job to a local path. Returns the saved file path
682
- 129. `get_job_artifact_file` - Get the content of a single file from a job's artifacts by its path within the archive
683
- 130. `list_merge_requests` - List merge requests globally or in a specific GitLab project with filtering options (project_id is now optional)
684
- 131. `list_milestones` - List milestones in a GitLab project with filtering options
685
- 132. `get_milestone` - Get details of a specific milestone
686
- 133. `create_milestone` - Create a new milestone in a GitLab project
687
- 134. `edit_milestone` - Edit an existing milestone in a GitLab project
688
- 135. `delete_milestone` - Delete a milestone from a GitLab project
689
- 136. `get_milestone_issue` - Get issues associated with a specific milestone
690
- 137. `get_milestone_merge_requests` - Get merge requests associated with a specific milestone
691
- 138. `promote_milestone` - Promote a milestone to the next stage
692
- 139. `get_milestone_burndown_events` - Get burndown events for a specific milestone
693
- 140. `list_group_milestones` - List milestones in a GitLab group with filtering options
694
- 141. `get_group_milestone` - Get details of a specific group milestone
695
- 142. `create_group_milestone` - Create a new milestone in a GitLab group
696
- 143. `edit_group_milestone` - Edit an existing group milestone
697
- 144. `delete_group_milestone` - Delete a milestone from a GitLab group
698
- 145. `get_group_milestone_issue` - Get issues associated with a specific group milestone
699
- 146. `get_group_milestone_merge_requests` - Get merge requests associated with a specific group milestone
700
- 147. `get_group_milestone_burndown_events` - Get burndown events for a specific group milestone
701
- 148. `get_users` - Get GitLab user details by usernames
702
- 149. `get_user` - Get user details by ID
703
- 150. `whoami` - Get current authenticated user details
704
- 151. `list_commits` - List repository commits with filtering options
705
- 152. `get_commit` - Get details of a specific commit
706
- 153. `get_commit_diff` - Get changes/diffs of a specific commit
707
- 154. `get_file_blame` - Get git blame for a file at a given ref. Each entry maps a contiguous range of source lines to the commit that last changed them (id, author, authored_date, message). Use range_start/range_end to limit blame to specific lines.
708
- 155. `list_commit_statuses` - List statuses for a specific commit
709
- 156. `create_commit_status` - Create or update the status of a specific commit
710
- 157. `list_group_iterations` - List group iterations with filtering options
711
- 158. `upload_markdown` - Upload a file to a GitLab project for use in markdown content
712
- 159. `download_attachment` - Download an uploaded file from a GitLab project by secret and filename
713
- 160. `health_check` - Verify server status and authentication; when authenticated, reports GitLab instance version from `/api/v4/version` (`version`, `revision`, `enterprise`)
714
- 161. `list_events` - List all events for the currently authenticated user
715
- 162. `get_project_events` - List all visible events for a specified project
716
- 163. `list_releases` - List all releases for a project
717
- 164. `get_release` - Get a release by tag name
718
- 165. `create_release` - Create a new release in a GitLab project
719
- 166. `update_release` - Update an existing release in a GitLab project
720
- 167. `delete_release` - Delete a release from a GitLab project (does not delete the associated tag)
721
- 168. `create_release_evidence` - Create release evidence for an existing release (GitLab Premium/Ultimate only)
722
- 169. `download_release_asset` - Download a release asset file by direct asset path
723
- 170. `list_tags` - List repository tags with filtering and pagination support
724
- 171. `get_tag` - Get details of a specific repository tag
725
- 172. `create_tag` - Create a new tag in the repository
726
- 173. `delete_tag` - Delete a tag from the repository
727
- 174. `get_tag_signature` - Get the signature of a signed tag
728
- 175. `get_work_item` - Get a single work item with full details including status, hierarchy (parent/children), type, labels, assignees, and all widgets
729
- 176. `list_work_items` - List work items in a project with filters (type, state, search, assignees, labels). Returns items with status and hierarchy info
730
- 177. `create_work_item` - Create a new work item (issue, task, incident, test_case, epic, key_result, objective, requirement, ticket). Supports setting title, description, labels, assignees, weight, parent, health status, start/due dates, milestone, and confidentiality
731
- 178. `update_work_item` - Update a work item. Can modify title, description, labels, assignees, weight, state, status, parent hierarchy, children, health status, start/due dates, milestone, confidentiality, linked items, and custom fields
732
- 179. `convert_work_item_type` - Convert a work item to a different type (e.g. issue to task, task to incident)
733
- 180. `list_work_item_statuses` - List available statuses for a work item type in a project. Requires GitLab Premium/Ultimate with configurable statuses
734
- 181. `list_custom_field_definitions` - List available custom field definitions for a work item type in a project. Returns field names, types, and IDs needed for setting custom fields via update_work_item
735
- 182. `move_work_item` - Move a work item (issue, task, etc.) to a different project. Uses GitLab GraphQL issueMove mutation
736
- 183. `list_work_item_notes` - List notes and discussions on a work item. Returns threaded discussions with author, body, timestamps, and system/internal flags
737
- 184. `create_work_item_note` - Add a note/comment to a work item. Supports Markdown, internal notes, and threaded replies
738
- 185. `list_work_item_emoji_reactions` - List all emoji reactions on a work item
739
- 186. `list_work_item_note_emoji_reactions` - List all emoji reactions on a work item note (comment, thread, or thread reply)
740
- 187. `create_work_item_emoji_reaction` - Add an emoji reaction to a work item (e.g. thumbsup, rocket, eyes)
741
- 188. `delete_work_item_emoji_reaction` - Remove an emoji reaction from a work item
742
- 189. `create_work_item_note_emoji_reaction` - Add an emoji reaction to a work item note (comment, thread, or thread reply)
743
- 190. `delete_work_item_note_emoji_reaction` - Remove an emoji reaction from a work item note (comment, thread, or thread reply)
744
- 191. `get_timeline_events` - List timeline events for an incident. Returns chronological events with notes, timestamps, and tags
745
- 192. `create_timeline_event` - Create a timeline event on an incident. Supports tags: 'Start time', 'End time', 'Impact detected', 'Response initiated', 'Impact mitigated', 'Cause identified'
746
- 193. `list_webhooks` - List all configured webhooks for a GitLab project or group. Provide either project_id or group_id
747
- 194. `list_webhook_events` - List recent webhook events (past 7 days) for a project or group webhook. Use summary mode for overview, then get_webhook_event for full details
748
- 195. `get_webhook_event` - Get full details of a specific webhook event by ID, including request/response payloads
749
- 196. `search_code` - Search for code across all projects on the GitLab instance (requires advanced search or exact code search to be enabled)
750
- 197. `search_project_code` - Search for code within a specific GitLab project (requires advanced search or exact code search to be enabled)
751
- 198. `search_group_code` - Search for code within a specific GitLab group (requires advanced search or exact code search to be enabled)
752
- 199. `list_project_variables` - List CI/CD variables for a project with optional environment scope filter
753
- 200. `get_project_variable` - Get a single CI/CD variable from a project by key, with optional environment scope filter
754
- 201. `create_project_variable` - Create a new CI/CD variable in a project
755
- 202. `update_project_variable` - Update an existing CI/CD variable in a project, with optional filter to disambiguate by environment scope
756
- 203. `delete_project_variable` - Delete a CI/CD variable from a project, with optional filter to disambiguate by environment scope
757
- 204. `list_group_variables` - List CI/CD variables for a group with optional environment scope filter
758
- 205. `get_group_variable` - Get a single CI/CD variable from a group by key, with optional environment scope filter
759
- 206. `create_group_variable` - Create a new CI/CD variable in a group
760
- 207. `update_group_variable` - Update an existing CI/CD variable in a group, with optional filter to disambiguate by environment scope
761
- 208. `delete_group_variable` - Delete a CI/CD variable from a group, with optional filter to disambiguate by environment scope
762
- 209. `get_dependency_proxy_settings` - Get dependency proxy settings for a group (enabled status, blob count, total size, image prefix, TTL policy)
763
- 210. `update_dependency_proxy_settings` - Update dependency proxy settings for a group (enable/disable, credentials for authenticated Docker Hub pulls)
764
- 211. `list_dependency_proxy_blobs` - List cached dependency proxy blobs for a group with cursor-based pagination
765
- 212. `purge_dependency_proxy_cache` - Schedule purge of all cached dependency proxy blobs for a group
766
- 213. `list_project_vulnerabilities` - List vulnerabilities for a project with optional state, severity, and report type filters (GraphQL-backed, cursor pagination)
767
- 214. `get_vulnerability` - Get full details of a specific vulnerability
768
- 215. `dismiss_vulnerability` - Dismiss a vulnerability with a reason (acceptable_risk, false_positive, used_in_tests, mitigating_control, not_applicable) and optional comment
769
- 216. `confirm_vulnerability` - Confirm a vulnerability as a real finding requiring remediation
770
- 217. `discover_tools` - Discover and activate additional tool categories for this session. Available categories: merge_requests, issues, repositories, branches, projects, labels, ci, groups, pipelines, milestones, wiki, releases, tags, users, workitems, webhooks, search, variables, dependency_proxy, vulnerabilities. Already-active categories are listed in the response.
693
+ 124. `list_pipeline_schedules` - List pipeline schedules in a project, optionally filtered to active or inactive
694
+ 125. `get_pipeline_schedule` - Get details of a specific pipeline schedule, including its variables and last pipeline
695
+ 126. `list_pipeline_schedule_pipelines` - List the pipelines that a pipeline schedule has triggered
696
+ 127. `create_pipeline_schedule` - Create a new pipeline schedule for a branch or tag
697
+ 128. `update_pipeline_schedule` - Update an existing pipeline schedule
698
+ 129. `delete_pipeline_schedule` - Delete a pipeline schedule
699
+ 130. `play_pipeline_schedule` - Run a pipeline schedule immediately, without changing its next scheduled run
700
+ 131. `take_ownership_pipeline_schedule` - Take ownership of a pipeline schedule
701
+ 132. `get_pipeline_schedule_variable` - Get a single variable of a pipeline schedule
702
+ 133. `create_pipeline_schedule_variable` - Create a variable for a pipeline schedule
703
+ 134. `update_pipeline_schedule_variable` - Update a variable of a pipeline schedule
704
+ 135. `delete_pipeline_schedule_variable` - Delete a variable from a pipeline schedule
705
+ 136. `play_pipeline_job` - Run a manual pipeline job
706
+ 137. `retry_pipeline_job` - Retry a failed or canceled pipeline job
707
+ 138. `cancel_pipeline_job` - Cancel a running pipeline job
708
+ 139. `list_job_artifacts` - List artifact files in a job's artifacts archive. Returns file names, paths, types, and sizes
709
+ 140. `download_job_artifacts` - Download the entire artifact archive (zip) for a job to a local path. Returns the saved file path
710
+ 141. `get_job_artifact_file` - Get the content of a single file from a job's artifacts by its path within the archive
711
+ 142. `list_merge_requests` - List merge requests globally or in a specific GitLab project with filtering options (project_id is now optional)
712
+ 143. `list_group_merge_requests` - List merge requests across all projects of a group and its subgroups with filtering options
713
+ 144. `list_milestones` - List milestones in a GitLab project with filtering options
714
+ 145. `get_milestone` - Get details of a specific milestone
715
+ 146. `create_milestone` - Create a new milestone in a GitLab project
716
+ 147. `edit_milestone` - Edit an existing milestone in a GitLab project
717
+ 148. `delete_milestone` - Delete a milestone from a GitLab project
718
+ 149. `get_milestone_issue` - Get issues associated with a specific milestone
719
+ 150. `get_milestone_merge_requests` - Get merge requests associated with a specific milestone
720
+ 151. `promote_milestone` - Promote a milestone to the next stage
721
+ 152. `get_milestone_burndown_events` - Get burndown events for a specific milestone
722
+ 153. `list_group_milestones` - List milestones in a GitLab group with filtering options
723
+ 154. `get_group_milestone` - Get details of a specific group milestone
724
+ 155. `create_group_milestone` - Create a new milestone in a GitLab group
725
+ 156. `edit_group_milestone` - Edit an existing group milestone
726
+ 157. `delete_group_milestone` - Delete a milestone from a GitLab group
727
+ 158. `get_group_milestone_issue` - Get issues associated with a specific group milestone
728
+ 159. `get_group_milestone_merge_requests` - Get merge requests associated with a specific group milestone
729
+ 160. `get_group_milestone_burndown_events` - Get burndown events for a specific group milestone
730
+ 161. `get_users` - Get GitLab user details by usernames
731
+ 162. `get_user` - Get user details by ID
732
+ 163. `whoami` - Get current authenticated user details
733
+ 164. `list_commits` - List repository commits with filtering options
734
+ 165. `get_commit` - Get details of a specific commit
735
+ 166. `get_commit_diff` - Get changes/diffs of a specific commit
736
+ 167. `get_file_blame` - Get git blame for a file at a given ref. Each entry maps a contiguous range of source lines to the commit that last changed them (id, author, authored_date, message). Use range_start/range_end to limit blame to specific lines.
737
+ 168. `list_commit_statuses` - List statuses for a specific commit
738
+ 169. `create_commit_status` - Create or update the status of a specific commit
739
+ 170. `list_group_iterations` - List group iterations with filtering options
740
+ 171. `upload_markdown` - Upload a file to a GitLab project for use in markdown content
741
+ 172. `download_attachment` - Download an uploaded file from a GitLab project by secret and filename
742
+ 173. `health_check` - Verify server status and authentication; when authenticated, reports GitLab instance version from `/api/v4/version` (`version`, `revision`, `enterprise`)
743
+ 174. `list_events` - List all events for the currently authenticated user
744
+ 175. `get_project_events` - List all visible events for a specified project
745
+ 176. `list_releases` - List all releases for a project
746
+ 177. `get_release` - Get a release by tag name
747
+ 178. `create_release` - Create a new release in a GitLab project
748
+ 179. `update_release` - Update an existing release in a GitLab project
749
+ 180. `delete_release` - Delete a release from a GitLab project (does not delete the associated tag)
750
+ 181. `create_release_evidence` - Create release evidence for an existing release (GitLab Premium/Ultimate only)
751
+ 182. `download_release_asset` - Download a release asset file by direct asset path
752
+ 183. `list_tags` - List repository tags with filtering and pagination support
753
+ 184. `get_tag` - Get details of a specific repository tag
754
+ 185. `create_tag` - Create a new tag in the repository
755
+ 186. `delete_tag` - Delete a tag from the repository
756
+ 187. `get_tag_signature` - Get the signature of a signed tag
757
+ 188. `get_work_item` - Get a single work item with full details including status, hierarchy (parent/children), type, labels, assignees, and all widgets
758
+ 189. `list_work_items` - List work items in a project with filters (type, state, search, assignees, labels). Returns items with status and hierarchy info
759
+ 190. `create_work_item` - Create a new work item (issue, task, incident, test_case, epic, key_result, objective, requirement, ticket). Supports setting title, description, labels, assignees, weight, parent, health status, start/due dates, milestone, and confidentiality
760
+ 191. `update_work_item` - Update a work item. Can modify title, description, labels, assignees, weight, state, status, parent hierarchy, children, health status, start/due dates, milestone, confidentiality, linked items, and custom fields
761
+ 192. `convert_work_item_type` - Convert a work item to a different type (e.g. issue to task, task to incident)
762
+ 193. `list_work_item_statuses` - List available statuses for a work item type in a project. Requires GitLab Premium/Ultimate with configurable statuses
763
+ 194. `list_custom_field_definitions` - List available custom field definitions for a work item type in a project. Returns field names, types, and IDs needed for setting custom fields via update_work_item
764
+ 195. `move_work_item` - Move a work item (issue, task, etc.) to a different project. Uses GitLab GraphQL issueMove mutation
765
+ 196. `list_work_item_notes` - List notes and discussions on a work item. Returns threaded discussions with author, body, timestamps, and system/internal flags
766
+ 197. `create_work_item_note` - Add a note/comment to a work item. Supports Markdown, internal notes, and threaded replies
767
+ 198. `list_work_item_emoji_reactions` - List all emoji reactions on a work item
768
+ 199. `list_work_item_note_emoji_reactions` - List all emoji reactions on a work item note (comment, thread, or thread reply)
769
+ 200. `create_work_item_emoji_reaction` - Add an emoji reaction to a work item (e.g. thumbsup, rocket, eyes)
770
+ 201. `delete_work_item_emoji_reaction` - Remove an emoji reaction from a work item
771
+ 202. `create_work_item_note_emoji_reaction` - Add an emoji reaction to a work item note (comment, thread, or thread reply)
772
+ 203. `delete_work_item_note_emoji_reaction` - Remove an emoji reaction from a work item note (comment, thread, or thread reply)
773
+ 204. `get_timeline_events` - List timeline events for an incident. Returns chronological events with notes, timestamps, and tags
774
+ 205. `create_timeline_event` - Create a timeline event on an incident. Supports tags: 'Start time', 'End time', 'Impact detected', 'Response initiated', 'Impact mitigated', 'Cause identified'
775
+ 206. `list_webhooks` - List all configured webhooks for a GitLab project or group. Provide either project_id or group_id
776
+ 207. `list_webhook_events` - List recent webhook events (past 7 days) for a project or group webhook. Use summary mode for overview, then get_webhook_event for full details
777
+ 208. `get_webhook_event` - Get full details of a specific webhook event by ID, including request/response payloads
778
+ 209. `search_code` - Search for code across all projects on the GitLab instance (requires advanced search or exact code search to be enabled)
779
+ 210. `search_project_code` - Search for code within a specific GitLab project (requires advanced search or exact code search to be enabled)
780
+ 211. `search_group_code` - Search for code within a specific GitLab group (requires advanced search or exact code search to be enabled)
781
+ 212. `list_project_variables` - List CI/CD variables for a project with optional environment scope filter
782
+ 213. `get_project_variable` - Get a single CI/CD variable from a project by key, with optional environment scope filter
783
+ 214. `create_project_variable` - Create a new CI/CD variable in a project
784
+ 215. `update_project_variable` - Update an existing CI/CD variable in a project, with optional filter to disambiguate by environment scope
785
+ 216. `delete_project_variable` - Delete a CI/CD variable from a project, with optional filter to disambiguate by environment scope
786
+ 217. `list_group_variables` - List CI/CD variables for a group with optional environment scope filter
787
+ 218. `get_group_variable` - Get a single CI/CD variable from a group by key, with optional environment scope filter
788
+ 219. `create_group_variable` - Create a new CI/CD variable in a group
789
+ 220. `update_group_variable` - Update an existing CI/CD variable in a group, with optional filter to disambiguate by environment scope
790
+ 221. `delete_group_variable` - Delete a CI/CD variable from a group, with optional filter to disambiguate by environment scope
791
+ 222. `get_dependency_proxy_settings` - Get dependency proxy settings for a group (enabled status, blob count, total size, image prefix, TTL policy)
792
+ 223. `update_dependency_proxy_settings` - Update dependency proxy settings for a group (enable/disable, credentials for authenticated Docker Hub pulls)
793
+ 224. `list_dependency_proxy_blobs` - List cached dependency proxy blobs for a group with cursor-based pagination
794
+ 225. `purge_dependency_proxy_cache` - Schedule purge of all cached dependency proxy blobs for a group
795
+ 226. `list_project_vulnerabilities` - List vulnerabilities for a project with optional state, severity, and report type filters (GraphQL-backed, cursor pagination)
796
+ 227. `get_vulnerability` - Get full details of a specific vulnerability
797
+ 228. `dismiss_vulnerability` - Dismiss a vulnerability with a reason (acceptable_risk, false_positive, used_in_tests, mitigating_control, not_applicable) and optional comment
798
+ 229. `confirm_vulnerability` - Confirm a vulnerability as a real finding requiring remediation
799
+ 230. `discover_tools` - Discover and activate additional tool categories for this session. Available categories: merge_requests, issues, repositories, branches, projects, labels, ci, groups, pipelines, milestones, wiki, releases, tags, users, workitems, webhooks, search, variables, dependency_proxy, vulnerabilities. Already-active categories are listed in the response.
771
800
 
772
801
  <!-- TOOLS-END -->
773
802
 
package/README.zh-CN.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # GitLab MCP Server
2
2
 
3
+ [![npm](https://img.shields.io/npm/v/@zereight/mcp-gitlab.svg)](https://www.npmjs.com/package/@zereight/mcp-gitlab)
4
+ [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_GitLab_MCP-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](vscode:mcp/install?%7B%22name%22%3A%22zereight.gitlab-mcp%22%2C%22type%22%3A%22stdio%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40zereight%2Fmcp-gitlab%40latest%22%5D%2C%22env%22%3A%7B%22GITLAB_PERSONAL_ACCESS_TOKEN%22%3A%22%24%7Binput%3Agitlab-token%7D%22%2C%22GITLAB_API_URL%22%3A%22https%3A%2F%2Fgitlab.com%2Fapi%2Fv4%22%2C%22GITLAB_PERMISSION_MODE%22%3A%22full%22%7D%7D)
5
+
3
6
  [English](./README.md) | [한국어](./README.ko.md) | [简体中文](./README.zh-CN.md)
4
7
 
5
8
  📖 **[文档 →](https://zereight.github.io/gitlab-mcp/)** 设置指南、环境变量和完整工具参考请查看托管文档站点。
@@ -8,17 +11,31 @@
8
11
 
9
12
  ## @zereight/mcp-gitlab
10
13
 
11
- 这是面向 AI 客户端的完整 GitLab MCP 服务器。可通过 stdio、SSE 和 Streamable HTTP 管理项目、合并请求、议题、流水线、Wiki、发布、里程碑等。
14
+ **面向 AI 代理工作流优化的 GitLab MCP** — 可通过 stdio、SSE 和 Streamable HTTP 管理项目、合并请求、议题、流水线、Wiki、发布、里程碑等。
12
15
 
13
16
  支持 PAT、OAuth、只读模式、动态 API URL 和远程授权,可用于 VS Code、Claude、Cursor、Copilot 以及其他 MCP 客户端。
14
17
 
15
18
  ### 为什么使用这个 GitLab MCP?
16
19
 
17
- - 覆盖范围广:项目、仓库浏览、合并请求、议题、流水线、Wiki、发布、标签、里程碑等
18
- - 认证灵活:Personal Access Token、本地 OAuth2 浏览器流程、MCP OAuth 代理、按请求远程授权
19
- - 多种传输方式:本地客户端使用 stdio,旧客户端使用 SSE,现代远程部署使用 Streamable HTTP
20
- - 客户端设置友好:提供 Claude Code、Codex、Antigravity、OpenCode、Copilot、Cline、Roo Code、Cursor、Kilo Code 和 Amp Code 示例
21
- - 适合自托管:支持自定义 GitLab 实例、代理设置和动态 API URL 路由
20
+ - **217 个工具 + `discover_tools`** — 从小型 toolset 开始,运行时按需激活类别
21
+ - **MR 两步审查** — `list_merge_request_changed_files` → 批量 `get_merge_request_file_diff`
22
+ - **内置 Agent Skill** — `skills/gitlab-mcp/` 工作流指南
23
+ - **认证灵活** — Personal Access Token、本地 OAuth2 浏览器流程、MCP OAuth 代理、按请求远程授权
24
+ - **多种传输方式** — 本地客户端使用 stdio,旧客户端使用 SSE,现代远程部署使用 Streamable HTTP
25
+ - **客户端设置友好** — 提供 Claude Code、Codex、Antigravity、OpenCode、Copilot、Cline、Roo Code、Cursor、Kilo Code 和 Amp Code 示例
26
+ - **适合自托管** — 支持自定义 GitLab 实例、代理设置和动态 API URL 路由
27
+
28
+ ### 对比摘要
29
+
30
+ | | @zereight/mcp-gitlab | GitLab MCP A(社区 CQRS 型) |
31
+ |---|----------------------|------------------------------|
32
+ | **更适合** | AI 代理工作流 | 企业多实例 / 分组工具 |
33
+ | **工具模型** | ~217 个细粒度工具 + `discover_tools` | ~50–60 个 `browse_*` / `manage_*` 分组工具 |
34
+ | **MR 审查** | 两步批量 diff | 因服务器而异 |
35
+ | **Node.js** | >=18 | 通常 >=24 |
36
+ | **许可证** | MIT | 因服务器而异 |
37
+
38
+ [完整对比 →](./docs/comparison/community-gitlab-mcp-a.md)
22
39
 
23
40
  快速开始:在下面选择 Personal Access Token 或 OAuth2 设置,安装 `@zereight/mcp-gitlab`,并在 MCP 客户端配置中使用 `zereight-mcp-gitlab`。
24
41
 
@@ -81,7 +98,7 @@ npm install -g @zereight/mcp-gitlab
81
98
 
82
99
  示例使用 `zereight-mcp-gitlab`,这是比旧的 `mcp-gitlab` 更不容易冲突的别名。如果 MCP 客户端找不到它,请使用 `which zereight-mcp-gitlab` 输出的绝对路径。
83
100
 
84
- 如果不想全局安装,请将 `npx` 固定到上一个稳定版本(即文档推荐的版本),例如 `npx -y @zereight/mcp-gitlab@2.1.49`。如果始终想使用最新版本,请改用 `npx -y @zereight/mcp-gitlab@latest`。有新版本发布时,服务器会在启动时通过 stderr 提示(可用 `GITLAB_DISABLE_VERSION_CHECK=true` 关闭)。
101
+ 如果不想全局安装,请将 `npx` 固定到上一个稳定版本(即文档推荐的版本),例如 `npx -y @zereight/mcp-gitlab@2.1.52`。如果始终想使用最新版本,请改用 `npx -y @zereight/mcp-gitlab@latest`。有新版本发布时,服务器会在启动时通过 stderr 提示(可用 `GITLAB_DISABLE_VERSION_CHECK=true` 关闭)。
85
102
 
86
103
  #### 使用 CLI 参数(适用于环境变量有问题的客户端)
87
104