@zereight/mcp-gitlab 2.1.30 → 2.1.39
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 +3 -1
- package/README.md +78 -68
- package/README.zh-CN.md +3 -1
- package/build/index.js +366 -67
- package/build/schemas.js +88 -19
- package/build/scripts/generate-tool-docs.js +1 -1
- package/build/test/group-milestone-schema.test.js +45 -0
- package/build/test/mcp-oauth-tests.js +12 -0
- package/build/test/mcp-server-name.test.js +87 -0
- package/build/test/nullable-gitlab-response-fields.test.js +22 -0
- package/build/test/nullish-tool-arguments-schema.test.js +20 -1
- package/build/test/path-segment-encoding.test.js +11 -0
- package/build/test/streamable-http-concurrent-session.test.js +63 -0
- package/build/test/test-geteffectiveprojectid.js +214 -1
- package/build/test/test-permission-mode.js +1 -0
- package/build/test/test-protected-branches.js +22 -3
- package/build/test/test-toolset-filtering.js +2 -2
- package/build/tools/registry.js +64 -1
- package/package.json +1 -1
package/README.ko.md
CHANGED
|
@@ -68,6 +68,7 @@ PAT, OAuth, 읽기 전용 모드, 동적 API URL, 원격 인증을 지원하며
|
|
|
68
68
|
서버를 한 번 설치하세요.
|
|
69
69
|
|
|
70
70
|
```shell
|
|
71
|
+
brew tap zereight/gitlab-mcp https://github.com/zereight/gitlab-mcp
|
|
71
72
|
brew install zereight/gitlab-mcp/zereight-mcp-gitlab
|
|
72
73
|
```
|
|
73
74
|
|
|
@@ -79,7 +80,7 @@ npm install -g @zereight/mcp-gitlab
|
|
|
79
80
|
|
|
80
81
|
예시는 기존 `mcp-gitlab`보다 충돌 가능성이 낮은 `zereight-mcp-gitlab` 별칭을 사용합니다. MCP 클라이언트가 찾지 못하면 `which zereight-mcp-gitlab`의 절대 경로를 사용하세요.
|
|
81
82
|
|
|
82
|
-
전역 설치를 쓰지 않으려면 `npx -y @zereight/mcp-gitlab@2.1.
|
|
83
|
+
전역 설치를 쓰지 않으려면 `npx -y @zereight/mcp-gitlab@2.1.38`처럼 직전 안정 버전(문서가 권장하는 버전)으로 고정하세요. 항상 최신 버전을 원하면 `npx -y @zereight/mcp-gitlab@latest`를 사용하세요. 새 버전이 나오면 서버가 시작 시 stderr로 알려줍니다(`GITLAB_DISABLE_VERSION_CHECK=true`로 비활성화 가능).
|
|
83
84
|
|
|
84
85
|
#### CLI 인자 사용하기(환경 변수 문제가 있는 클라이언트용)
|
|
85
86
|
|
|
@@ -300,6 +301,7 @@ Authorization: Bearer glpat-xxxxxxxxxxxxxxxxxxxx
|
|
|
300
301
|
- **로컬 PAT**: `GITLAB_PERSONAL_ACCESS_TOKEN`, `GITLAB_API_URL`
|
|
301
302
|
- **로컬 OAuth**: `GITLAB_USE_OAUTH=true`, `GITLAB_OAUTH_CLIENT_ID`, `GITLAB_OAUTH_REDIRECT_URI`, `GITLAB_API_URL`
|
|
302
303
|
- **원격 멀티 유저 HTTP**: `STREAMABLE_HTTP=true`, `REMOTE_AUTHORIZATION=true`(또는 `GITLAB_MCP_OAUTH=true`), `MCP_TRUST_PROXY=true`(리버스 프록시 뒤), `MAX_REQUESTS_PER_MINUTE=300`, `MCP_SERVER_URL` 또는 `MCP_ALLOWED_HOSTS`, `HOST`, `PORT`
|
|
304
|
+
- **여러 배포를 동시에 운영**: 배포마다 `MCP_SERVER_NAME`을 다르게 설정(예: `gitlab-selfhosted-readonly`)하면 클라이언트, 로그, 텔레메트리에서 서로 구분할 수 있습니다
|
|
303
305
|
- **멀티 Pod HPA (stateless)**: 위 설정 + `OAUTH_STATELESS_MODE=true`, `OAUTH_STATELESS_SECRET`(모든 Pod에서 동일). [Stateless Mode](./docs/configuration/stateless-mode.md) 참고.
|
|
304
306
|
|
|
305
307
|
자주 참조하는 변수:
|
package/README.md
CHANGED
|
@@ -68,6 +68,7 @@ For the simplest local setup, start with a Personal Access Token. For browser-ba
|
|
|
68
68
|
Install the server once:
|
|
69
69
|
|
|
70
70
|
```shell
|
|
71
|
+
brew tap zereight/gitlab-mcp https://github.com/zereight/gitlab-mcp
|
|
71
72
|
brew install zereight/gitlab-mcp/zereight-mcp-gitlab
|
|
72
73
|
```
|
|
73
74
|
|
|
@@ -79,7 +80,7 @@ npm install -g @zereight/mcp-gitlab
|
|
|
79
80
|
|
|
80
81
|
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`.
|
|
81
82
|
|
|
82
|
-
No global install? Pin `npx` to the previous stable release (the version these docs recommend), for example `npx -y @zereight/mcp-gitlab@2.1.
|
|
83
|
+
No global install? Pin `npx` to the previous stable release (the version these docs recommend), for example `npx -y @zereight/mcp-gitlab@2.1.38`. 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`).
|
|
83
84
|
|
|
84
85
|
#### Using CLI Arguments (for clients with env var issues)
|
|
85
86
|
|
|
@@ -332,6 +333,7 @@ Most users only need one of these starting sets:
|
|
|
332
333
|
- **Local PAT**: `GITLAB_PERSONAL_ACCESS_TOKEN`, `GITLAB_API_URL`
|
|
333
334
|
- **Local OAuth**: `GITLAB_USE_OAUTH=true`, `GITLAB_OAUTH_CLIENT_ID`, `GITLAB_OAUTH_REDIRECT_URI`, `GITLAB_API_URL`
|
|
334
335
|
- **Remote multi-user HTTP**: `STREAMABLE_HTTP=true`, `REMOTE_AUTHORIZATION=true` (or `GITLAB_MCP_OAUTH=true`), `MCP_TRUST_PROXY=true` (behind a reverse proxy), `MAX_REQUESTS_PER_MINUTE=300`, `MCP_SERVER_URL` or `MCP_ALLOWED_HOSTS`, `HOST`, `PORT`
|
|
336
|
+
- **Multiple side-by-side deployments**: set a distinct `MCP_SERVER_NAME` per instance (e.g. `gitlab-selfhosted-readonly`) so clients, logs, and telemetry can tell them apart
|
|
335
337
|
- **Multi-pod HPA (stateless)**: above + `OAUTH_STATELESS_MODE=true`, `OAUTH_STATELESS_SECRET` (same across all pods). See [Stateless Mode](./docs/configuration/stateless-mode.md).
|
|
336
338
|
|
|
337
339
|
Commonly referenced variables:
|
|
@@ -641,73 +643,81 @@ Register the skill directory in your AI client to get optimal tool usage guidanc
|
|
|
641
643
|
101. `get_milestone_merge_requests` - Get merge requests associated with a specific milestone
|
|
642
644
|
102. `promote_milestone` - Promote a milestone to the next stage
|
|
643
645
|
103. `get_milestone_burndown_events` - Get burndown events for a specific milestone
|
|
644
|
-
104. `
|
|
645
|
-
105. `
|
|
646
|
-
106. `
|
|
647
|
-
107. `
|
|
648
|
-
108. `
|
|
649
|
-
109. `
|
|
650
|
-
110. `
|
|
651
|
-
111. `
|
|
652
|
-
112. `
|
|
653
|
-
113. `
|
|
654
|
-
114. `
|
|
655
|
-
115. `
|
|
656
|
-
116. `
|
|
657
|
-
117. `
|
|
658
|
-
118. `
|
|
659
|
-
119. `
|
|
660
|
-
120. `
|
|
661
|
-
121. `
|
|
662
|
-
122. `
|
|
663
|
-
123. `
|
|
664
|
-
124. `
|
|
665
|
-
125. `
|
|
666
|
-
126. `
|
|
667
|
-
127. `
|
|
668
|
-
128. `
|
|
669
|
-
129. `
|
|
670
|
-
130. `
|
|
671
|
-
131. `
|
|
672
|
-
132. `
|
|
673
|
-
133. `
|
|
674
|
-
134. `
|
|
675
|
-
135. `
|
|
676
|
-
136. `
|
|
677
|
-
137. `
|
|
678
|
-
138. `
|
|
679
|
-
139. `
|
|
680
|
-
140. `
|
|
681
|
-
141. `
|
|
682
|
-
142. `
|
|
683
|
-
143. `
|
|
684
|
-
144. `
|
|
685
|
-
145. `
|
|
686
|
-
146. `
|
|
687
|
-
147. `
|
|
688
|
-
148. `
|
|
689
|
-
149. `
|
|
690
|
-
150. `
|
|
691
|
-
151. `
|
|
692
|
-
152. `
|
|
693
|
-
153. `
|
|
694
|
-
154. `
|
|
695
|
-
155. `
|
|
696
|
-
156. `
|
|
697
|
-
157. `
|
|
698
|
-
158. `
|
|
699
|
-
159. `
|
|
700
|
-
160. `
|
|
701
|
-
161. `
|
|
702
|
-
162. `
|
|
703
|
-
163. `
|
|
704
|
-
164. `
|
|
705
|
-
165. `
|
|
706
|
-
166. `
|
|
707
|
-
167. `
|
|
708
|
-
168. `
|
|
709
|
-
169. `
|
|
710
|
-
170. `
|
|
646
|
+
104. `list_group_milestones` - List milestones in a GitLab group with filtering options
|
|
647
|
+
105. `get_group_milestone` - Get details of a specific group milestone
|
|
648
|
+
106. `create_group_milestone` - Create a new milestone in a GitLab group
|
|
649
|
+
107. `edit_group_milestone` - Edit an existing group milestone
|
|
650
|
+
108. `delete_group_milestone` - Delete a milestone from a GitLab group
|
|
651
|
+
109. `get_group_milestone_issue` - Get issues associated with a specific group milestone
|
|
652
|
+
110. `get_group_milestone_merge_requests` - Get merge requests associated with a specific group milestone
|
|
653
|
+
111. `get_group_milestone_burndown_events` - Get burndown events for a specific group milestone
|
|
654
|
+
112. `list_wiki_pages` - List wiki pages in a GitLab project
|
|
655
|
+
113. `get_wiki_page` - Get details of a specific wiki page
|
|
656
|
+
114. `create_wiki_page` - Create a new wiki page in a GitLab project
|
|
657
|
+
115. `update_wiki_page` - Update an existing wiki page in a GitLab project
|
|
658
|
+
116. `delete_wiki_page` - Delete a wiki page from a GitLab project
|
|
659
|
+
117. `list_group_wiki_pages` - List wiki pages in a GitLab group
|
|
660
|
+
118. `get_group_wiki_page` - Get details of a specific group wiki page
|
|
661
|
+
119. `create_group_wiki_page` - Create a new wiki page in a GitLab group
|
|
662
|
+
120. `update_group_wiki_page` - Update an existing wiki page in a GitLab group
|
|
663
|
+
121. `delete_group_wiki_page` - Delete a wiki page from a GitLab group
|
|
664
|
+
122. `get_repository_tree` - Get the repository tree for a GitLab project (list files and directories)
|
|
665
|
+
123. `list_commits` - List repository commits with filtering options
|
|
666
|
+
124. `get_commit` - Get details of a specific commit
|
|
667
|
+
125. `get_commit_diff` - Get changes/diffs of a specific commit
|
|
668
|
+
126. `list_commit_statuses` - List statuses for a specific commit
|
|
669
|
+
127. `create_commit_status` - Create or update the status of a specific commit
|
|
670
|
+
128. `list_releases` - List all releases for a project
|
|
671
|
+
129. `get_release` - Get a release by tag name
|
|
672
|
+
130. `create_release` - Create a new release in a GitLab project
|
|
673
|
+
131. `update_release` - Update an existing release in a GitLab project
|
|
674
|
+
132. `delete_release` - Delete a release from a GitLab project (does not delete the associated tag)
|
|
675
|
+
133. `create_release_evidence` - Create release evidence for an existing release (GitLab Premium/Ultimate only)
|
|
676
|
+
134. `download_release_asset` - Download a release asset file by direct asset path
|
|
677
|
+
135. `list_tags` - List repository tags with filtering and pagination support
|
|
678
|
+
136. `get_tag` - Get details of a specific repository tag
|
|
679
|
+
137. `create_tag` - Create a new tag in the repository
|
|
680
|
+
138. `delete_tag` - Delete a tag from the repository
|
|
681
|
+
139. `get_tag_signature` - Get the signature of a signed tag
|
|
682
|
+
140. `get_users` - Get GitLab user details by usernames
|
|
683
|
+
141. `list_events` - List all events for the currently authenticated user
|
|
684
|
+
142. `get_project_events` - List all visible events for a specified project
|
|
685
|
+
143. `upload_markdown` - Upload a file to a GitLab project for use in markdown content
|
|
686
|
+
144. `download_attachment` - Download an uploaded file from a GitLab project by secret and filename
|
|
687
|
+
145. `get_work_item` - Get a single work item with full details including status, hierarchy (parent/children), type, labels, assignees, and all widgets
|
|
688
|
+
146. `list_work_items` - List work items in a project with filters (type, state, search, assignees, labels). Returns items with status and hierarchy info
|
|
689
|
+
147. `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
|
|
690
|
+
148. `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
|
|
691
|
+
149. `convert_work_item_type` - Convert a work item to a different type (e.g. issue to task, task to incident)
|
|
692
|
+
150. `list_work_item_statuses` - List available statuses for a work item type in a project. Requires GitLab Premium/Ultimate with configurable statuses
|
|
693
|
+
151. `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
|
|
694
|
+
152. `move_work_item` - Move a work item (issue, task, etc.) to a different project. Uses GitLab GraphQL issueMove mutation
|
|
695
|
+
153. `list_work_item_notes` - List notes and discussions on a work item. Returns threaded discussions with author, body, timestamps, and system/internal flags
|
|
696
|
+
154. `create_work_item_note` - Add a note/comment to a work item. Supports Markdown, internal notes, and threaded replies
|
|
697
|
+
155. `get_timeline_events` - List timeline events for an incident. Returns chronological events with notes, timestamps, and tags
|
|
698
|
+
156. `create_timeline_event` - Create a timeline event on an incident. Supports tags: 'Start time', 'End time', 'Impact detected', 'Response initiated', 'Impact mitigated', 'Cause identified'
|
|
699
|
+
157. `list_webhooks` - List all configured webhooks for a GitLab project or group. Provide either project_id or group_id
|
|
700
|
+
158. `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
|
|
701
|
+
159. `get_webhook_event` - Get full details of a specific webhook event by ID, including request/response payloads
|
|
702
|
+
160. `search_code` - Search for code across all projects on the GitLab instance (requires advanced search or exact code search to be enabled)
|
|
703
|
+
161. `search_project_code` - Search for code within a specific GitLab project (requires advanced search or exact code search to be enabled)
|
|
704
|
+
162. `search_group_code` - Search for code within a specific GitLab group (requires advanced search or exact code search to be enabled)
|
|
705
|
+
163. `execute_graphql` - Execute a GitLab GraphQL query
|
|
706
|
+
164. `list_merge_request_pipelines` - List pipelines for a merge request with pagination support
|
|
707
|
+
165. `list_project_variables` - List CI/CD variables for a project with optional environment scope filter
|
|
708
|
+
166. `get_project_variable` - Get a single CI/CD variable from a project by key, with optional environment scope filter
|
|
709
|
+
167. `create_project_variable` - Create a new CI/CD variable in a project
|
|
710
|
+
168. `update_project_variable` - Update an existing CI/CD variable in a project, with optional filter to disambiguate by environment scope
|
|
711
|
+
169. `delete_project_variable` - Delete a CI/CD variable from a project, with optional filter to disambiguate by environment scope
|
|
712
|
+
170. `list_group_variables` - List CI/CD variables for a group with optional environment scope filter
|
|
713
|
+
171. `get_group_variable` - Get a single CI/CD variable from a group by key, with optional environment scope filter
|
|
714
|
+
172. `create_group_variable` - Create a new CI/CD variable in a group
|
|
715
|
+
173. `update_group_variable` - Update an existing CI/CD variable in a group, with optional filter to disambiguate by environment scope
|
|
716
|
+
174. `delete_group_variable` - Delete a CI/CD variable from a group, with optional filter to disambiguate by environment scope
|
|
717
|
+
175. `get_dependency_proxy_settings` - Get dependency proxy settings for a group (enabled status, blob count, total size, image prefix, TTL policy)
|
|
718
|
+
176. `update_dependency_proxy_settings` - Update dependency proxy settings for a group (enable/disable, credentials for authenticated Docker Hub pulls)
|
|
719
|
+
177. `list_dependency_proxy_blobs` - List cached dependency proxy blobs for a group with cursor-based pagination
|
|
720
|
+
178. `purge_dependency_proxy_cache` - Schedule purge of all cached dependency proxy blobs for a group
|
|
711
721
|
|
|
712
722
|
<!-- TOOLS-END -->
|
|
713
723
|
|
package/README.zh-CN.md
CHANGED
|
@@ -68,6 +68,7 @@
|
|
|
68
68
|
安装服务器:
|
|
69
69
|
|
|
70
70
|
```shell
|
|
71
|
+
brew tap zereight/gitlab-mcp https://github.com/zereight/gitlab-mcp
|
|
71
72
|
brew install zereight/gitlab-mcp/zereight-mcp-gitlab
|
|
72
73
|
```
|
|
73
74
|
|
|
@@ -79,7 +80,7 @@ npm install -g @zereight/mcp-gitlab
|
|
|
79
80
|
|
|
80
81
|
示例使用 `zereight-mcp-gitlab`,这是比旧的 `mcp-gitlab` 更不容易冲突的别名。如果 MCP 客户端找不到它,请使用 `which zereight-mcp-gitlab` 输出的绝对路径。
|
|
81
82
|
|
|
82
|
-
如果不想全局安装,请将 `npx` 固定到上一个稳定版本(即文档推荐的版本),例如 `npx -y @zereight/mcp-gitlab@2.1.
|
|
83
|
+
如果不想全局安装,请将 `npx` 固定到上一个稳定版本(即文档推荐的版本),例如 `npx -y @zereight/mcp-gitlab@2.1.38`。如果始终想使用最新版本,请改用 `npx -y @zereight/mcp-gitlab@latest`。有新版本发布时,服务器会在启动时通过 stderr 提示(可用 `GITLAB_DISABLE_VERSION_CHECK=true` 关闭)。
|
|
83
84
|
|
|
84
85
|
#### 使用 CLI 参数(适用于环境变量有问题的客户端)
|
|
85
86
|
|
|
@@ -300,6 +301,7 @@ Authorization: Bearer glpat-xxxxxxxxxxxxxxxxxxxx
|
|
|
300
301
|
- **本地 PAT**:`GITLAB_PERSONAL_ACCESS_TOKEN`, `GITLAB_API_URL`
|
|
301
302
|
- **本地 OAuth**:`GITLAB_USE_OAUTH=true`, `GITLAB_OAUTH_CLIENT_ID`, `GITLAB_OAUTH_REDIRECT_URI`, `GITLAB_API_URL`
|
|
302
303
|
- **远程多用户 HTTP**:`STREAMABLE_HTTP=true`, `REMOTE_AUTHORIZATION=true`(或 `GITLAB_MCP_OAUTH=true`), `MCP_TRUST_PROXY=true`(反向代理后), `MAX_REQUESTS_PER_MINUTE=300`, `MCP_SERVER_URL` 或 `MCP_ALLOWED_HOSTS`, `HOST`, `PORT`
|
|
304
|
+
- **并行运行多个部署**:为每个实例设置不同的 `MCP_SERVER_NAME`(例如 `gitlab-selfhosted-readonly`),以便在客户端、日志和遥测数据中区分它们
|
|
303
305
|
- **多 Pod HPA(stateless)**:上述配置 + `OAUTH_STATELESS_MODE=true`, `OAUTH_STATELESS_SECRET`(所有 Pod 相同)。参见 [Stateless Mode](./docs/configuration/stateless-mode.md)。
|
|
304
306
|
|
|
305
307
|
常用变量:
|