@zereight/mcp-gitlab 2.2.0 → 2.2.2
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 +24 -15
- package/README.md +86 -73
- package/README.pt-BR.md +25 -14
- package/README.zh-CN.md +23 -14
- package/build/auth-cli.js +15 -5
- package/build/cli-boolean-flags.js +34 -0
- package/build/config.js +12 -30
- package/build/deprecated-env.js +166 -20
- package/build/index.js +387 -56
- package/build/oauth-proxy.js +2 -1
- package/build/oauth.js +5 -4
- package/build/schemas.js +97 -0
- package/build/tools/registry.js +60 -9
- package/build/tools/tool-descriptions.js +7 -3
- package/build/utils/health-check-transport-error.js +115 -0
- package/build/utils/logger.js +92 -16
- package/build/utils/redact-sensitive.js +18 -8
- package/build/utils/redact-url.js +141 -0
- package/package.json +1 -1
package/README.ko.md
CHANGED
|
@@ -17,7 +17,7 @@ PAT, OAuth, 읽기 전용 모드, 동적 API URL, 원격 인증을 지원하며
|
|
|
17
17
|
|
|
18
18
|
### 왜 이 GitLab MCP를 사용하나요?
|
|
19
19
|
|
|
20
|
-
- **
|
|
20
|
+
- **274개 도구: toolset 272개 + `execute_graphql` + `discover_tools`** — 작은 toolset으로 시작하고, 런타임에 카테고리 활성화
|
|
21
21
|
- **MR 2단계 리뷰** — `list_merge_request_changed_files` → 배치 `get_merge_request_file_diff`
|
|
22
22
|
- **Agent Skill 내장** — `skills/gitlab-mcp/` 워크플로우 가이드
|
|
23
23
|
- **유연한 인증** — Personal Access Token, 로컬 OAuth2 브라우저 플로우, MCP OAuth 프록시, 요청별 원격 인증
|
|
@@ -31,7 +31,7 @@ PAT, OAuth, 읽기 전용 모드, 동적 API URL, 원격 인증을 지원하며
|
|
|
31
31
|
| | @zereight/mcp-gitlab | GitLab MCP A (커뮤니티 CQRS형) |
|
|
32
32
|
|---|----------------------|--------------------------------|
|
|
33
33
|
| **적합한 경우** | AI 에이전트 워크플로우 | 엔터프라이즈 멀티 인스턴스 / 그룹형 도구 |
|
|
34
|
-
| **도구 모델** |
|
|
34
|
+
| **도구 모델** | 274개 도구: toolset 272개 + `execute_graphql` + `discover_tools` | ~50–60개 `browse_*` / `manage_*` 그룹 도구 |
|
|
35
35
|
| **MR 리뷰** | 2단계 배치 diff | 서버마다 다름 |
|
|
36
36
|
| **Node.js** | >=18.17 | 보통 >=24 |
|
|
37
37
|
| **라이선스** | MIT | 서버마다 다름 |
|
|
@@ -111,7 +111,7 @@ command = lib.getExe inputs.gitlab-mcp.packages.${system}.default;
|
|
|
111
111
|
|
|
112
112
|
예시는 기존 `mcp-gitlab`보다 충돌 가능성이 낮은 `zereight-mcp-gitlab` 별칭을 사용합니다. MCP 클라이언트가 찾지 못하면 `which zereight-mcp-gitlab`의 절대 경로를 사용하세요.
|
|
113
113
|
|
|
114
|
-
전역 설치를 쓰지 않으려면 `npx -y @zereight/mcp-gitlab@2.1
|
|
114
|
+
전역 설치를 쓰지 않으려면 `npx -y @zereight/mcp-gitlab@2.2.1`처럼 직전 안정 버전(문서가 권장하는 버전)으로 고정하세요. 항상 최신 버전을 원하면 `npx -y @zereight/mcp-gitlab@latest`를 사용하세요. 새 버전이 나오면 서버가 시작 시 stderr로 알려줍니다(`GITLAB_DISABLE_VERSION_CHECK=true`로 비활성화 가능).
|
|
115
115
|
|
|
116
116
|
#### CLI 인자 사용하기(환경 변수 문제가 있는 클라이언트용)
|
|
117
117
|
|
|
@@ -133,13 +133,13 @@ command = lib.getExe inputs.gitlab-mcp.packages.${system}.default;
|
|
|
133
133
|
|
|
134
134
|
- `--token` - GitLab Personal Access Token (`GITLAB_PERSONAL_ACCESS_TOKEN` 대체)
|
|
135
135
|
- `--api-url` - GitLab API URL (`GITLAB_API_URL` 대체)
|
|
136
|
-
- `--read-only=true` -
|
|
136
|
+
- `--read-only=true` - Deprecated (removed in next major (v3.0.0)); `--permission-mode=readonly`를 사용 (`GITLAB_READ_ONLY_MODE` 대체)
|
|
137
137
|
- `--permission-mode` - 권한 수준: `readonly`, `modify`(삭제/중단 도구 비활성), `full` (`GITLAB_PERMISSION_MODE` 대체, 기본값 `full`)
|
|
138
138
|
- `--toolsets=all` - 지정한 툴셋 활성화 (`GITLAB_TOOLSETS` 대체, 미설정 시 lean `core` 기본값 사용)
|
|
139
139
|
- `--tools=list_issues` - 개별 도구 추가 (`GITLAB_TOOLS` 대체)
|
|
140
|
-
- `--use-wiki=true` -
|
|
141
|
-
- `--use-milestone=true` -
|
|
142
|
-
- `--use-pipeline=true` -
|
|
140
|
+
- `--use-wiki=true` - Deprecated (removed in next major (v3.0.0)); `--toolsets=core,wiki`를 사용 (`USE_GITLAB_WIKI` 대체)
|
|
141
|
+
- `--use-milestone=true` - Deprecated (removed in next major (v3.0.0)); `--toolsets=core,milestones`를 사용 (`USE_MILESTONE` 대체)
|
|
142
|
+
- `--use-pipeline=true` - Deprecated (removed in next major (v3.0.0)); `--toolsets=core,pipelines`를 사용하고, 기존 `--tools` 목록에 `validate_ci_lint,validate_project_ci_lint`를 추가하세요. 목록이 없으면 `--tools=validate_ci_lint,validate_project_ci_lint`를 설정하세요 (`USE_PIPELINE` 대체)
|
|
143
143
|
- `--disable-version-check=true` - 시작 시 신규 버전 알림 비활성화 (`GITLAB_DISABLE_VERSION_CHECK` 대체)
|
|
144
144
|
- `--masking-enabled=true` - 텍스트 응답 마스킹 활성화 (`GITLAB_MASKING_ENABLED` 대체)
|
|
145
145
|
- `--masking-config` - 마스킹 설정 파일 경로 (`GITLAB_MASKING_CONFIG` 대체)
|
|
@@ -147,6 +147,10 @@ command = lib.getExe inputs.gitlab-mcp.packages.${system}.default;
|
|
|
147
147
|
- `--masking-workspace-dir` - 마스킹 파일 경로를 해석하는 기준 디렉터리 (`GITLAB_MASKING_WORKSPACE_DIR` 대체)
|
|
148
148
|
- `--compact-results=true` - 큰 MCP 도구 응답을 미리보기와 CLI 명령으로 바꿈 (`GITLAB_MCP_COMPACT_RESULTS` 대체, 기본 꺼짐)
|
|
149
149
|
- `--compact-result-chars` - compact 임계값 문자 수 (`GITLAB_MCP_COMPACT_RESULT_CHARS` 대체, 기본 `4000`)
|
|
150
|
+
- `--compact-tools` - 전역 compact를 켜지 않고, 응답이 클 때 compact할 도구 이름을 쉼표로 지정 (`GITLAB_MCP_COMPACT_TOOLS` 대체)
|
|
151
|
+
- `--tool-profile` - `full`(기본값) 또는 `slim`. `slim`은 draft note, 이모지 반응, 라벨, CI 카탈로그 도구와 `create_group`을 초기 목록에서 뺌. `GITLAB_TOOLSETS`에 공백이 아닌 값이 설정된 경우에만 무시됨 (`GITLAB_TOOL_PROFILE` 대체)
|
|
152
|
+
|
|
153
|
+
이미 `GITLAB_TOOLSETS` 또는 `--toolsets`를 설정했다면 목록을 바꾸지 말고 `wiki`, `milestones`, `pipelines`를 기존 목록에 추가하세요. 이미 `GITLAB_TOOLS` 또는 `--tools`를 설정했다면 `validate_ci_lint`와 `validate_project_ci_lint`를 그 목록에 추가하세요. 명시적 목록은 기본 `core` toolset을 대체하며, 합쳐지지 않습니다.
|
|
150
154
|
|
|
151
155
|
CLI 인자는 환경 변수보다 우선합니다.
|
|
152
156
|
|
|
@@ -156,17 +160,22 @@ CLI 인자는 환경 변수보다 우선합니다.
|
|
|
156
160
|
|
|
157
161
|
> **세밀한 도구 필터링:** `GITLAB_PERMISSION_MODE=modify`로 생성/수정은 허용하고 모든 삭제 도구와
|
|
158
162
|
> 파괴적인 중단(teardown) 도구(`cancel_pipeline`, `cancel_pipeline_job`, `stop_environment`,
|
|
159
|
-
> `stop_stale_environments`, `unprotect_branch`)를 차단하거나(`execute_graphql`을 통한 파괴적
|
|
163
|
+
> `stop_stale_environments`, `unprotect_branch`, `unprotect_tag`)를 차단하거나(`execute_graphql`을 통한 파괴적
|
|
160
164
|
> mutation — 삭제·중단 동사 — 과 `push_files`의 `delete`/`move` 포함),
|
|
161
165
|
> `GITLAB_PERMISSION_MODE=readonly`로 읽기 전용으로 운영할 수
|
|
162
166
|
> 있습니다. 또한
|
|
163
167
|
> `GITLAB_TOOLSETS=<group,…>`로 도구 그룹을 활성화하고, `GITLAB_TOOLS=<tool,…>`로 개별 도구만
|
|
164
168
|
> 허용하며(예: 읽기 도구 + 특정 쓰기 도구 몇 개), `GITLAB_DENIED_TOOLS_REGEX`로 패턴 차단할 수
|
|
165
|
-
> 있습니다. 레거시 `USE_GITLAB_WIKI` / `USE_MILESTONE` / `USE_PIPELINE` 플래그는
|
|
166
|
-
>
|
|
169
|
+
> 있습니다. 레거시 `USE_GITLAB_WIKI` / `USE_MILESTONE` / `USE_PIPELINE` 플래그는
|
|
170
|
+
> deprecated (removed in next major (v3.0.0))입니다.
|
|
171
|
+
> `GITLAB_TOOLSETS=core,wiki`, `core,milestones`, `core,pipelines`를 사용하세요
|
|
172
|
+
> (`USE_PIPELINE`은 기존 `GITLAB_TOOLS` 목록에 `validate_ci_lint,validate_project_ci_lint`를 추가해야 하며, 그 목록을 통째로 바꾸면 안 됩니다).
|
|
173
|
+
> 이미 `GITLAB_TOOLSETS`를 설정했다면 toolset을 기존 목록에 추가하고, 목록 전체를 바꾸지 마세요.
|
|
174
|
+
> `GITLAB_TOOLS`가 없으면 `GITLAB_TOOLS=validate_ci_lint,validate_project_ci_lint`로 설정하세요. 이미 있으면 `validate_ci_lint,validate_project_ci_lint`를 기존 목록에 추가하고, 목록 전체를 바꾸지 마세요.
|
|
175
|
+
> [Tools Reference](./docs/tools/index.md#feature-toggles)와
|
|
167
176
|
> [Environment Variables](./docs/configuration/environment-variables.md)를 참고하세요.
|
|
168
177
|
|
|
169
|
-
|
|
178
|
+
- sse
|
|
170
179
|
|
|
171
180
|
```shell
|
|
172
181
|
docker run -i --rm \
|
|
@@ -174,7 +183,7 @@ docker run -i --rm \
|
|
|
174
183
|
-e GITLAB_PERSONAL_ACCESS_TOKEN=your_gitlab_token \
|
|
175
184
|
-e GITLAB_API_URL="https://gitlab.com/api/v4" \
|
|
176
185
|
-e GITLAB_PERMISSION_MODE=readonly \
|
|
177
|
-
-e GITLAB_TOOLSETS=wiki,milestones,pipelines \
|
|
186
|
+
-e GITLAB_TOOLSETS=core,wiki,milestones,pipelines \
|
|
178
187
|
-e SSE=true \
|
|
179
188
|
-e SSE_AUTH_TOKEN=your_mcp_sse_token \
|
|
180
189
|
-p 3333:3002 \
|
|
@@ -195,7 +204,7 @@ docker run -i --rm \
|
|
|
195
204
|
}
|
|
196
205
|
```
|
|
197
206
|
|
|
198
|
-
|
|
207
|
+
- streamable-http
|
|
199
208
|
|
|
200
209
|
```shell
|
|
201
210
|
docker run -i --rm \
|
|
@@ -203,7 +212,7 @@ docker run -i --rm \
|
|
|
203
212
|
-e REMOTE_AUTHORIZATION=true \
|
|
204
213
|
-e GITLAB_API_URL="https://gitlab.com/api/v4" \
|
|
205
214
|
-e GITLAB_PERMISSION_MODE=readonly \
|
|
206
|
-
-e GITLAB_TOOLSETS=wiki,milestones,pipelines \
|
|
215
|
+
-e GITLAB_TOOLSETS=core,wiki,milestones,pipelines \
|
|
207
216
|
-e STREAMABLE_HTTP=true \
|
|
208
217
|
-p 3333:3002 \
|
|
209
218
|
zereight050/gitlab-mcp
|
|
@@ -523,7 +532,7 @@ node build/index.js
|
|
|
523
532
|
| `MCP_SERVER_URL` | 예 | MCP 서버의 공개 HTTPS URL |
|
|
524
533
|
| `GITLAB_API_URL` | 예 | GitLab 인스턴스 API URL(예: `https://gitlab.com/api/v4`) |
|
|
525
534
|
| `STREAMABLE_HTTP` | 예 | 반드시 `true`(SSE 미지원) |
|
|
526
|
-
| `GITLAB_OAUTH_SCOPES` | 아니오 | 요청할 GitLab scope 목록(쉼표 구분). 기본값은 `api
|
|
535
|
+
| `GITLAB_OAUTH_SCOPES` | 아니오 | 요청할 GitLab scope 목록(쉼표 구분). 기본값은 `api`이며, 유효 permission mode가 `readonly`일 때 `read_api`입니다. 사전 등록 애플리케이션에 해당 scope가 설정되어 있어야 합니다. |
|
|
527
536
|
| `OAUTH_REGISTER_RATE_LIMIT_PER_HOUR` | 아니오 | Dynamic Client Registration(`POST /register`)의 클라이언트 IP당 rolling 한도. 기본 `20`/시간, 범위 `1`–`1000`. IDE 창 여러 개 등으로 등록이 막히면 올리세요. GitLab API 한도와 무관합니다. |
|
|
528
537
|
| `MCP_DANGEROUSLY_ALLOW_INSECURE_ISSUER_URL` | 아니오 | 로컬 HTTP 개발에서만 `true` |
|
|
529
538
|
|
package/README.md
CHANGED
|
@@ -22,7 +22,7 @@ Supports PAT, OAuth, read-only mode, dynamic API URLs, and remote authorization
|
|
|
22
22
|
|
|
23
23
|
### Why use this GitLab MCP?
|
|
24
24
|
|
|
25
|
-
- **
|
|
25
|
+
- **274 tools: 272 in toolsets + `execute_graphql` + `discover_tools`** — start with a small toolset; activate more at runtime without CQRS-style grouping
|
|
26
26
|
- **MR 2-step review** — `list_merge_request_changed_files` → batched `get_merge_request_file_diff`
|
|
27
27
|
- **Agent Skill built in** — workflow guidance in `skills/gitlab-mcp/`
|
|
28
28
|
- **Flexible auth** — Personal Access Token, local OAuth2 browser flow, MCP OAuth proxy, and per-request remote authorization
|
|
@@ -36,7 +36,7 @@ Supports PAT, OAuth, read-only mode, dynamic API URLs, and remote authorization
|
|
|
36
36
|
| | @zereight/mcp-gitlab | GitLab MCP A (community CQRS-style) |
|
|
37
37
|
|---|----------------------|-------------------------------------|
|
|
38
38
|
| **Best for** | AI agent workflows | Enterprise multi-instance / grouped tools |
|
|
39
|
-
| **Tool model** |
|
|
39
|
+
| **Tool model** | 274 tools: 272 in toolsets + `execute_graphql` + `discover_tools` | ~50–60 grouped `browse_*` / `manage_*` tools |
|
|
40
40
|
| **MR review** | 2-step batched diff | Varies |
|
|
41
41
|
| **Node.js** | >=18.17 | Often >=24 |
|
|
42
42
|
| **License** | MIT | Varies |
|
|
@@ -116,7 +116,7 @@ The store path is pinned by your lock file; update it with `nix flake update git
|
|
|
116
116
|
|
|
117
117
|
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`.
|
|
118
118
|
|
|
119
|
-
No global install? Pin `npx` to the previous stable release (the version these docs recommend), for example `npx -y @zereight/mcp-gitlab@2.1
|
|
119
|
+
No global install? Pin `npx` to the previous stable release (the version these docs recommend), for example `npx -y @zereight/mcp-gitlab@2.2.1`. 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`).
|
|
120
120
|
|
|
121
121
|
#### Using CLI Arguments (for clients with env var issues)
|
|
122
122
|
|
|
@@ -138,13 +138,13 @@ Some MCP clients (like GitHub Copilot CLI) have issues with environment variable
|
|
|
138
138
|
|
|
139
139
|
- `--token` - GitLab Personal Access Token (replaces `GITLAB_PERSONAL_ACCESS_TOKEN`)
|
|
140
140
|
- `--api-url` - GitLab API URL (replaces `GITLAB_API_URL`)
|
|
141
|
-
- `--read-only=true` -
|
|
141
|
+
- `--read-only=true` - Deprecated (removed in next major (v3.0.0)); use `--permission-mode=readonly` instead (replaces `GITLAB_READ_ONLY_MODE`)
|
|
142
142
|
- `--permission-mode` - Permission level: `readonly`, `modify` (no delete or teardown tools), or `full` (replaces `GITLAB_PERMISSION_MODE`, default `full`)
|
|
143
143
|
- `--toolsets=all` - Enable named toolsets (replaces `GITLAB_TOOLSETS`; unset uses the lean `core` default)
|
|
144
144
|
- `--tools=list_issues` - Add individual tools (replaces `GITLAB_TOOLS`)
|
|
145
|
-
- `--use-wiki=true` -
|
|
146
|
-
- `--use-milestone=true` -
|
|
147
|
-
- `--use-pipeline=true` -
|
|
145
|
+
- `--use-wiki=true` - Deprecated (removed in next major (v3.0.0)); use `--toolsets=core,wiki` instead (replaces `USE_GITLAB_WIKI`)
|
|
146
|
+
- `--use-milestone=true` - Deprecated (removed in next major (v3.0.0)); use `--toolsets=core,milestones` instead (replaces `USE_MILESTONE`)
|
|
147
|
+
- `--use-pipeline=true` - Deprecated (removed in next major (v3.0.0)); use `--toolsets=core,pipelines` and append `validate_ci_lint,validate_project_ci_lint` to the existing `--tools` list (or set `--tools=validate_ci_lint,validate_project_ci_lint` when that list is unset) (replaces `USE_PIPELINE`)
|
|
148
148
|
- `--disable-version-check=true` - Disable the startup new-version notice (replaces `GITLAB_DISABLE_VERSION_CHECK`)
|
|
149
149
|
- `--masking-enabled=true` - Enable text-response masking (replaces `GITLAB_MASKING_ENABLED`)
|
|
150
150
|
- `--masking-config` - Path to a masking configuration file (replaces `GITLAB_MASKING_CONFIG`)
|
|
@@ -155,6 +155,8 @@ Some MCP clients (like GitHub Copilot CLI) have issues with environment variable
|
|
|
155
155
|
- `--compact-tools` - Comma-separated tool names to compact when oversized, without turning global compact on (replaces `GITLAB_MCP_COMPACT_TOOLS`)
|
|
156
156
|
- `--tool-profile` - `full` (default) or `slim`. `slim` drops draft notes, emoji reactions, labels, CI catalog tools, and `create_group` from the initial list. Ignored when `GITLAB_TOOLSETS` is set (replaces `GITLAB_TOOL_PROFILE`)
|
|
157
157
|
|
|
158
|
+
If you already set `GITLAB_TOOLSETS` or `--toolsets`, append `wiki`, `milestones`, or `pipelines` to that list instead of replacing it. If you already set `GITLAB_TOOLS` or `--tools`, append `validate_ci_lint` and `validate_project_ci_lint` to that list instead of replacing it. An explicit list replaces the default `core` toolset; it does not merge.
|
|
159
|
+
|
|
158
160
|
CLI arguments take precedence over environment variables.
|
|
159
161
|
|
|
160
162
|
`zereight-mcp-gitlab auth` is a subcommand (not an MCP server flag). It runs GitLab device flow and exits. See [CLI Arguments](./docs/getting-started/cli-arguments.md#auth).
|
|
@@ -163,14 +165,19 @@ The same binary is also a `gh`-style GitLab CLI (`tool <name>` or curated forms
|
|
|
163
165
|
|
|
164
166
|
> **Fine-grained tool filtering:** use `GITLAB_PERMISSION_MODE=modify` to allow create/update while
|
|
165
167
|
> blocking every delete tool and the destructive teardown tools (`cancel_pipeline`,
|
|
166
|
-
> `cancel_pipeline_job`, `stop_environment`, `stop_stale_environments`, `unprotect_branch
|
|
168
|
+
> `cancel_pipeline_job`, `stop_environment`, `stop_stale_environments`, `unprotect_branch`,
|
|
169
|
+
> `unprotect_tag`) —
|
|
167
170
|
> including destructive mutations (deletion and teardown verbs) through `execute_graphql` and
|
|
168
171
|
> `push_files` `delete`/`move` actions — or `GITLAB_PERMISSION_MODE=readonly` for read-only
|
|
169
172
|
> access. You can also
|
|
170
173
|
> enable toolset groups with `GITLAB_TOOLSETS=<group,…>`, allow-list individual tools with
|
|
171
174
|
> `GITLAB_TOOLS=<tool,…>` (e.g. read-only groups plus a few specific write tools), and
|
|
172
175
|
> deny-list by pattern with `GITLAB_DENIED_TOOLS_REGEX`. The legacy `USE_GITLAB_WIKI` /
|
|
173
|
-
> `USE_MILESTONE` / `USE_PIPELINE` flags are
|
|
176
|
+
> `USE_MILESTONE` / `USE_PIPELINE` flags are deprecated (removed in next major (v3.0.0)).
|
|
177
|
+
> Use `GITLAB_TOOLSETS=core,wiki`, `core,milestones`, or `core,pipelines`
|
|
178
|
+
> (`USE_PIPELINE` also needs `validate_ci_lint,validate_project_ci_lint` appended to an existing `GITLAB_TOOLS` list instead of replacing it).
|
|
179
|
+
> If you already set `GITLAB_TOOLSETS`, append the toolset to your existing list instead of replacing it.
|
|
180
|
+
> If `GITLAB_TOOLS` is unset, set `GITLAB_TOOLS=validate_ci_lint,validate_project_ci_lint`. If it is already set, append `validate_ci_lint,validate_project_ci_lint` instead of replacing that list.
|
|
174
181
|
> See [Tools Reference](./docs/tools/index.md#feature-toggles) and
|
|
175
182
|
> [Environment Variables](./docs/configuration/environment-variables.md).
|
|
176
183
|
|
|
@@ -182,7 +189,7 @@ docker run -i --rm \
|
|
|
182
189
|
-e GITLAB_PERSONAL_ACCESS_TOKEN=your_gitlab_token \
|
|
183
190
|
-e GITLAB_API_URL="https://gitlab.com/api/v4" \
|
|
184
191
|
-e GITLAB_PERMISSION_MODE=readonly \
|
|
185
|
-
-e GITLAB_TOOLSETS=wiki,milestones,pipelines \
|
|
192
|
+
-e GITLAB_TOOLSETS=core,wiki,milestones,pipelines \
|
|
186
193
|
-e SSE=true \
|
|
187
194
|
-e SSE_AUTH_TOKEN=your_mcp_sse_token \
|
|
188
195
|
-p 3333:3002 \
|
|
@@ -211,7 +218,7 @@ docker run -i --rm \
|
|
|
211
218
|
-e REMOTE_AUTHORIZATION=true \
|
|
212
219
|
-e GITLAB_API_URL="https://gitlab.com/api/v4" \
|
|
213
220
|
-e GITLAB_PERMISSION_MODE=readonly \
|
|
214
|
-
-e GITLAB_TOOLSETS=wiki,milestones,pipelines \
|
|
221
|
+
-e GITLAB_TOOLSETS=core,wiki,milestones,pipelines \
|
|
215
222
|
-e STREAMABLE_HTTP=true \
|
|
216
223
|
-p 3333:3002 \
|
|
217
224
|
zereight050/gitlab-mcp
|
|
@@ -567,7 +574,7 @@ No `headers` field is needed — Claude.ai obtains the token via OAuth automatic
|
|
|
567
574
|
| `MCP_SERVER_URL` | Yes | Public HTTPS URL of your MCP server; also allowed for `/mcp` Host/Origin checks |
|
|
568
575
|
| `GITLAB_API_URL` | Yes | Your GitLab instance API URL (e.g. `https://gitlab.com/api/v4`) |
|
|
569
576
|
| `STREAMABLE_HTTP` | Yes | Must be `true` (SSE is not supported) |
|
|
570
|
-
| `GITLAB_OAUTH_SCOPES` | No | Comma-separated GitLab scopes to request (e.g. `api,read_user`). Defaults to `api` (or `read_api` when `
|
|
577
|
+
| `GITLAB_OAUTH_SCOPES` | No | Comma-separated GitLab scopes to request (e.g. `api,read_user`). Defaults to `api` (or `read_api` when the effective permission mode is `readonly`). The pre-registered application must be configured with at least these scopes. |
|
|
571
578
|
| `OAUTH_REGISTER_RATE_LIMIT_PER_HOUR` | No | Per-IP rolling limit for Dynamic Client Registration (`POST /register`). Default `20`/hour; range `1`–`1000`. Raise when clients (e.g. multiple IDE windows) hit registration throttling. Not a GitLab API limit. |
|
|
572
579
|
| `MCP_DANGEROUSLY_ALLOW_INSECURE_ISSUER_URL` | No | Set `true` for local HTTP dev only |
|
|
573
580
|
|
|
@@ -634,15 +641,15 @@ Register the skill directory in your AI client to get optimal tool usage guidanc
|
|
|
634
641
|
23. `protect_branch` - Protect a repository branch (set push/merge/unprotect access levels)
|
|
635
642
|
24. `unprotect_branch` - Remove protection from a previously protected branch
|
|
636
643
|
25. `update_default_branch` - Change the default branch of a project
|
|
637
|
-
26. `get_merge_request` - Get details of a merge request (
|
|
638
|
-
27. `get_merge_request_diffs` - Get the changes/diffs of a merge request (
|
|
639
|
-
28. `list_merge_request_changed_files` - List changed file paths in a merge request without diff content (
|
|
640
|
-
29. `list_merge_request_diffs` - List merge request diffs with pagination (
|
|
641
|
-
30. `get_merge_request_file_diff` - Get diffs for specific files from a merge request (
|
|
644
|
+
26. `get_merge_request` - Get details of a merge request (merge_request_iid or source_branch required). Set include_summaries=true for deployment/commit/approval summaries
|
|
645
|
+
27. `get_merge_request_diffs` - Get the changes/diffs of a merge request (merge_request_iid or source_branch required)
|
|
646
|
+
28. `list_merge_request_changed_files` - List changed file paths in a merge request without diff content (merge_request_iid or source_branch required)
|
|
647
|
+
29. `list_merge_request_diffs` - List merge request diffs with pagination (merge_request_iid or source_branch required)
|
|
648
|
+
30. `get_merge_request_file_diff` - Get diffs for specific files from a merge request (merge_request_iid or source_branch required)
|
|
642
649
|
31. `list_merge_request_versions` - List all versions of a merge request
|
|
643
650
|
32. `get_merge_request_version` - Get a specific version of a merge request
|
|
644
651
|
33. `get_branch_diffs` - Get diffs between two branches or commits
|
|
645
|
-
34. `update_merge_request` - Update a merge request (
|
|
652
|
+
34. `update_merge_request` - Update a merge request (merge_request_iid or source_branch required)
|
|
646
653
|
35. `create_note` - Create a new note (comment) to an issue or merge request
|
|
647
654
|
36. `create_merge_request_thread` - Create a new thread on a merge request
|
|
648
655
|
37. `resolve_merge_request_thread` - Resolve a thread on a merge request
|
|
@@ -822,61 +829,67 @@ Register the skill directory in your AI client to get optimal tool usage guidanc
|
|
|
822
829
|
211. `create_tag` - Create a new repository tag
|
|
823
830
|
212. `delete_tag` - Delete a repository tag
|
|
824
831
|
213. `get_tag_signature` - Get the X.509 signature of a signed tag (404 if unsigned)
|
|
825
|
-
214. `
|
|
826
|
-
215. `
|
|
827
|
-
216. `
|
|
828
|
-
217. `
|
|
829
|
-
218. `
|
|
830
|
-
219. `
|
|
831
|
-
220. `
|
|
832
|
-
221. `
|
|
833
|
-
222. `
|
|
834
|
-
223. `
|
|
835
|
-
224. `
|
|
836
|
-
225. `
|
|
837
|
-
226. `
|
|
838
|
-
227. `
|
|
839
|
-
228. `
|
|
840
|
-
229. `
|
|
841
|
-
230. `
|
|
842
|
-
231. `
|
|
843
|
-
232. `
|
|
844
|
-
233. `
|
|
845
|
-
234. `
|
|
846
|
-
235. `
|
|
847
|
-
236. `
|
|
848
|
-
237. `
|
|
849
|
-
238. `
|
|
850
|
-
239. `
|
|
851
|
-
240. `
|
|
852
|
-
241. `
|
|
853
|
-
242. `
|
|
854
|
-
243. `
|
|
855
|
-
244. `
|
|
856
|
-
245. `
|
|
857
|
-
246. `
|
|
858
|
-
247. `
|
|
859
|
-
248. `
|
|
860
|
-
249. `
|
|
861
|
-
250. `
|
|
862
|
-
251. `
|
|
863
|
-
252. `
|
|
864
|
-
253. `
|
|
865
|
-
254. `
|
|
866
|
-
255. `
|
|
867
|
-
256. `
|
|
868
|
-
257. `
|
|
869
|
-
258. `
|
|
870
|
-
259. `
|
|
871
|
-
260. `
|
|
872
|
-
261. `
|
|
873
|
-
262. `
|
|
874
|
-
263. `
|
|
875
|
-
264. `
|
|
876
|
-
265. `
|
|
877
|
-
266. `
|
|
878
|
-
267. `
|
|
879
|
-
268. `
|
|
832
|
+
214. `list_protected_tags` - List protected tags in a project
|
|
833
|
+
215. `get_protected_tag` - Get details of a single protected tag or wildcard (create access levels)
|
|
834
|
+
216. `protect_tag` - Protect a repository tag or wildcard (set who can create it)
|
|
835
|
+
217. `unprotect_tag` - Remove protection from a previously protected tag or wildcard
|
|
836
|
+
218. `get_work_item` - Get a work item with full details including status, hierarchy, type, and widgets
|
|
837
|
+
219. `list_work_items` - List work items with filters (type, state, search, assignees, labels)
|
|
838
|
+
220. `create_work_item` - Create a work item (issue, task, incident, epic, etc.) with full field support
|
|
839
|
+
221. `update_work_item` - Update a work item (title, description, labels, assignees, state, parent, custom fields, etc.)
|
|
840
|
+
222. `convert_work_item_type` - Convert a work item to a different type
|
|
841
|
+
223. `list_work_item_statuses` - List available statuses for a work item type (Premium/Ultimate)
|
|
842
|
+
224. `list_custom_field_definitions` - List custom field definitions for a work item type
|
|
843
|
+
225. `move_work_item` - Move a work item to a different project
|
|
844
|
+
226. `list_work_item_notes` - List notes and discussions on a work item
|
|
845
|
+
227. `create_work_item_note` - Add a note to a work item (supports Markdown, internal notes, threads)
|
|
846
|
+
228. `list_work_item_emoji_reactions` - List all emoji reactions on a work item
|
|
847
|
+
229. `list_work_item_note_emoji_reactions` - List all emoji reactions on a work item note (comment, thread, or thread reply)
|
|
848
|
+
230. `create_work_item_emoji_reaction` - Add an emoji reaction to a work item (e.g. thumbsup, rocket, eyes)
|
|
849
|
+
231. `delete_work_item_emoji_reaction` - Remove an emoji reaction from a work item
|
|
850
|
+
232. `create_work_item_note_emoji_reaction` - Add an emoji reaction to a work item note (comment, thread, or thread reply)
|
|
851
|
+
233. `delete_work_item_note_emoji_reaction` - Remove an emoji reaction from a work item note (comment, thread, or thread reply)
|
|
852
|
+
234. `get_timeline_events` - List timeline events for an incident
|
|
853
|
+
235. `create_timeline_event` - Create a timeline event on an incident
|
|
854
|
+
236. `list_webhooks` - List webhooks for a project or group
|
|
855
|
+
237. `create_webhook` - Create a webhook on a project or group
|
|
856
|
+
238. `update_webhook` - Update an existing project or group webhook
|
|
857
|
+
239. `delete_webhook` - Delete a project or group webhook
|
|
858
|
+
240. `list_webhook_events` - List recent webhook events (past 7 days)
|
|
859
|
+
241. `get_webhook_event` - Get full details of a specific webhook event
|
|
860
|
+
242. `search_code` - Search for code across all projects (requires advanced search or Zoekt)
|
|
861
|
+
243. `search_project_code` - Search for code within a specific project (requires advanced search or Zoekt)
|
|
862
|
+
244. `search_group_code` - Search for code within a specific group (requires advanced search or Zoekt)
|
|
863
|
+
245. `list_project_variables` - List CI/CD variables for a project
|
|
864
|
+
246. `get_project_variable` - Get a single CI/CD variable from a project
|
|
865
|
+
247. `create_project_variable` - Create a CI/CD variable for a project
|
|
866
|
+
248. `update_project_variable` - Update an existing CI/CD variable in a project
|
|
867
|
+
249. `delete_project_variable` - Delete a CI/CD variable from a project
|
|
868
|
+
250. `list_group_variables` - List CI/CD variables for a group
|
|
869
|
+
251. `get_group_variable` - Get a single CI/CD variable from a group
|
|
870
|
+
252. `create_group_variable` - Create a CI/CD variable for a group
|
|
871
|
+
253. `update_group_variable` - Update an existing CI/CD variable in a group
|
|
872
|
+
254. `delete_group_variable` - Delete a CI/CD variable from a group
|
|
873
|
+
255. `get_dependency_proxy_settings` - Get dependency proxy settings for a group
|
|
874
|
+
256. `update_dependency_proxy_settings` - Update dependency proxy settings for a group (enable/disable, credentials for authenticated Docker Hub pulls)
|
|
875
|
+
257. `list_dependency_proxy_blobs` - List cached dependency proxy blobs for a group
|
|
876
|
+
258. `purge_dependency_proxy_cache` - Schedule purge of all cached dependency proxy blobs for a group
|
|
877
|
+
259. `list_project_vulnerabilities` - List vulnerabilities for a project with optional state, severity, and report type filters (GraphQL-backed, cursor pagination)
|
|
878
|
+
260. `get_vulnerability` - Get full details of a specific vulnerability
|
|
879
|
+
261. `dismiss_vulnerability` - Dismiss a vulnerability with a reason (acceptable_risk, false_positive, used_in_tests, mitigating_control, not_applicable) and optional comment
|
|
880
|
+
262. `confirm_vulnerability` - Confirm a vulnerability as a real finding requiring remediation
|
|
881
|
+
263. `orbit_query` - Execute a GitLab Orbit graph query over the indexed SDLC knowledge graph
|
|
882
|
+
264. `orbit_get_schema` - Fetch the current GitLab Orbit graph schema (node and edge types)
|
|
883
|
+
265. `orbit_get_status` - Check GitLab Orbit indexing status for the enabled scope
|
|
884
|
+
266. `orbit_list_tools` - List the MCP tool definitions exposed by GitLab Orbit
|
|
885
|
+
267. `list_snippets` - List snippets — project snippets when project_id is given, otherwise personal snippets
|
|
886
|
+
268. `get_snippet` - Get a snippet's metadata. Set include_content=true to also fetch the raw file content.
|
|
887
|
+
269. `create_snippet` - Create a snippet — project-scoped when project_id is given, otherwise a personal snippet. Requires title plus either file_name + content (single file) or files[] (multi-file); the two shapes cannot be mixed.
|
|
888
|
+
270. `update_snippet` - Update an existing snippet (provide at least one field to change). For multi-file edits — renames, deletions, additions — pass files[] with action (create/update/delete/move) and previous_path. The file_name + content shortcut still works for single-file content replacement.
|
|
889
|
+
271. `delete_snippet` - Delete a snippet
|
|
890
|
+
272. `list_project_runners` - List runners available to a project (type, status, paused, tag_list). Omits registration and authentication tokens.
|
|
891
|
+
273. `get_runner` - Get a runner's tag_list, run_untagged, locked, and access_level. When a project allowlist is active, the runner must be available to an allowed project. Omits registration and authentication tokens.
|
|
892
|
+
274. `discover_tools` - Discover and activate additional tool categories for this session. Available categories: core, merge_requests, issues, repositories, branches, projects, labels, ci, groups, pipelines, milestones, wiki, releases, tags, snippets, users, workitems, webhooks, search, variables, dependency_proxy, vulnerabilities, orbit. Already-active categories are listed in the response.
|
|
880
893
|
|
|
881
894
|
<!-- TOOLS-END -->
|
|
882
895
|
|
package/README.pt-BR.md
CHANGED
|
@@ -17,7 +17,7 @@ Suporta PAT, OAuth, modo somente leitura, URLs de API dinâmicas e autorização
|
|
|
17
17
|
|
|
18
18
|
### Por que usar este GitLab MCP?
|
|
19
19
|
|
|
20
|
-
- **
|
|
20
|
+
- **274 ferramentas: 272 em toolsets + `execute_graphql` + `discover_tools`** — comece com um toolset pequeno e ative mais categorias em tempo de execução
|
|
21
21
|
- **Revisão de MR em 2 etapas** — `list_merge_request_changed_files` → `get_merge_request_file_diff` em lote
|
|
22
22
|
- **Agent Skill integrado** — orientação de workflows em `skills/gitlab-mcp/`
|
|
23
23
|
- **Autenticação flexível** — Personal Access Token, fluxo OAuth2 local no navegador, proxy MCP OAuth e autorização remota por requisição
|
|
@@ -31,7 +31,7 @@ Suporta PAT, OAuth, modo somente leitura, URLs de API dinâmicas e autorização
|
|
|
31
31
|
| | @zereight/mcp-gitlab | GitLab MCP A (comunidade, estilo CQRS) |
|
|
32
32
|
| ------------------------- | ---------------------------------------------- | --------------------------------------------------------- |
|
|
33
33
|
| **Mais indicado para** | Workflows de agentes de IA | Múltiplas instâncias corporativas / ferramentas agrupadas |
|
|
34
|
-
| **Modelo de ferramentas** |
|
|
34
|
+
| **Modelo de ferramentas** | 274 ferramentas: 272 em toolsets + `execute_graphql` + `discover_tools` | ~50–60 ferramentas agrupadas `browse_*` / `manage_*` |
|
|
35
35
|
| **Revisão de MR** | Diff em lote em 2 etapas | Varia |
|
|
36
36
|
| **Node.js** | >=18.17 | Frequentemente >=24 |
|
|
37
37
|
| **Licença** | MIT | Varia |
|
|
@@ -111,7 +111,7 @@ O caminho no store é fixado pelo seu lock file; atualize-o com `nix flake updat
|
|
|
111
111
|
|
|
112
112
|
Os exemplos usam `zereight-mcp-gitlab`, um alias com menor chance de conflito que o binário legado `mcp-gitlab`. Se o seu cliente MCP não o encontrar, use o caminho absoluto retornado por `which zereight-mcp-gitlab`.
|
|
113
113
|
|
|
114
|
-
Não quer instalar globalmente? Fixe o `npx` na versão estável anterior (a versão recomendada por esta documentação), por exemplo `npx -y @zereight/mcp-gitlab@2.1
|
|
114
|
+
Não quer instalar globalmente? Fixe o `npx` na versão estável anterior (a versão recomendada por esta documentação), por exemplo `npx -y @zereight/mcp-gitlab@2.2.1`. Se quiser sempre a versão mais recente, use `npx -y @zereight/mcp-gitlab@latest`. O servidor exibe um aviso no stderr durante a inicialização quando existe uma versão mais nova disponível (desative com `GITLAB_DISABLE_VERSION_CHECK=true`).
|
|
115
115
|
|
|
116
116
|
#### Usando argumentos de CLI (para clientes com problemas com variáveis de ambiente)
|
|
117
117
|
|
|
@@ -133,11 +133,13 @@ Alguns clientes MCP, como o GitHub Copilot CLI, têm problemas com variáveis de
|
|
|
133
133
|
|
|
134
134
|
- `--token` - GitLab Personal Access Token (substitui `GITLAB_PERSONAL_ACCESS_TOKEN`)
|
|
135
135
|
- `--api-url` - URL da API do GitLab (substitui `GITLAB_API_URL`)
|
|
136
|
-
- `--read-only=true` -
|
|
136
|
+
- `--read-only=true` - Deprecated (removed in next major (v3.0.0)); use `--permission-mode=readonly` (substitui `GITLAB_READ_ONLY_MODE`)
|
|
137
137
|
- `--permission-mode` - nível de permissão: `readonly`, `modify` (sem ferramentas de exclusão ou teardown) ou `full` (substitui `GITLAB_PERMISSION_MODE`, padrão `full`)
|
|
138
|
-
- `--
|
|
139
|
-
- `--
|
|
140
|
-
- `--use-
|
|
138
|
+
- `--toolsets=all` - ativa toolsets nomeados (substitui `GITLAB_TOOLSETS`; sem valor usa o padrão enxuto `core`)
|
|
139
|
+
- `--tools=list_issues` - adiciona ferramentas individuais (substitui `GITLAB_TOOLS`)
|
|
140
|
+
- `--use-wiki=true` - Deprecated (removed in next major (v3.0.0)); use `--toolsets=core,wiki` (substitui `USE_GITLAB_WIKI`)
|
|
141
|
+
- `--use-milestone=true` - Deprecated (removed in next major (v3.0.0)); use `--toolsets=core,milestones` (substitui `USE_MILESTONE`)
|
|
142
|
+
- `--use-pipeline=true` - Deprecated (removed in next major (v3.0.0)); use `--toolsets=core,pipelines` e acrescente `validate_ci_lint,validate_project_ci_lint` à lista `--tools` existente (ou defina `--tools=validate_ci_lint,validate_project_ci_lint` se ela não existir) (substitui `USE_PIPELINE`)
|
|
141
143
|
- `--disable-version-check=true` - desativa o aviso de nova versão na inicialização (substitui `GITLAB_DISABLE_VERSION_CHECK`)
|
|
142
144
|
- `--masking-enabled=true` - ativa o mascaramento de respostas de texto (substitui `GITLAB_MASKING_ENABLED`)
|
|
143
145
|
- `--masking-config` - caminho para um arquivo de configuração de mascaramento (substitui `GITLAB_MASKING_CONFIG`)
|
|
@@ -145,6 +147,10 @@ Alguns clientes MCP, como o GitHub Copilot CLI, têm problemas com variáveis de
|
|
|
145
147
|
- `--masking-workspace-dir` - diretório usado para resolver arquivos de mascaramento (substitui `GITLAB_MASKING_WORKSPACE_DIR`)
|
|
146
148
|
- `--compact-results=true` - trunca respostas muito grandes de ferramentas MCP e anexa um comando CLI para a carga completa (substitui `GITLAB_MCP_COMPACT_RESULTS`; desativado por padrão)
|
|
147
149
|
- `--compact-result-chars` - limite de caracteres para compactação (substitui `GITLAB_MCP_COMPACT_RESULT_CHARS`; padrão `4000`)
|
|
150
|
+
- `--compact-tools` - nomes de ferramentas separados por vírgula para compactar quando a resposta for grande, sem ativar o compact global (substitui `GITLAB_MCP_COMPACT_TOOLS`)
|
|
151
|
+
- `--tool-profile` - `full` (padrão) ou `slim`. `slim` remove draft notes, reações com emoji, labels, ferramentas do catálogo de CI e `create_group` da lista inicial. Ignorado apenas quando `GITLAB_TOOLSETS` tem um valor não em branco (substitui `GITLAB_TOOL_PROFILE`)
|
|
152
|
+
|
|
153
|
+
Se você já definiu `GITLAB_TOOLSETS` ou `--toolsets`, acrescente `wiki`, `milestones` ou `pipelines` a essa lista em vez de substituí-la. Se você já definiu `GITLAB_TOOLS` ou `--tools`, acrescente `validate_ci_lint` e `validate_project_ci_lint` a essa lista em vez de substituí-la. Uma lista explícita substitui o toolset padrão `core`; ela não é mesclada.
|
|
148
154
|
|
|
149
155
|
Os argumentos de CLI têm precedência sobre as variáveis de ambiente.
|
|
150
156
|
|
|
@@ -154,17 +160,22 @@ O mesmo binário também é uma CLI do GitLab no estilo `gh` (`tool <name>` ou f
|
|
|
154
160
|
|
|
155
161
|
> **Filtragem granular de ferramentas:** use `GITLAB_PERMISSION_MODE=modify` para permitir criação/atualização enquanto
|
|
156
162
|
> bloqueia todas as ferramentas de exclusão e as ferramentas destrutivas de teardown (`cancel_pipeline`,
|
|
157
|
-
> `cancel_pipeline_job`, `stop_environment`, `stop_stale_environments`, `unprotect_branch
|
|
163
|
+
> `cancel_pipeline_job`, `stop_environment`, `stop_stale_environments`, `unprotect_branch`,
|
|
164
|
+
> `unprotect_tag`) —
|
|
158
165
|
> incluindo mutations destrutivas (verbos de exclusão e teardown) por meio de `execute_graphql` e
|
|
159
166
|
> ações `delete`/`move` do `push_files` — ou use `GITLAB_PERMISSION_MODE=readonly` para acesso somente leitura.
|
|
160
167
|
> Também é possível habilitar grupos de ferramentas com `GITLAB_TOOLSETS=<group,…>`, permitir ferramentas individuais com
|
|
161
168
|
> `GITLAB_TOOLS=<tool,…>` (por exemplo, grupos somente leitura mais algumas ferramentas específicas de escrita) e
|
|
162
169
|
> bloquear por padrão usando `GITLAB_DENIED_TOOLS_REGEX`. As flags legadas `USE_GITLAB_WIKI` /
|
|
163
|
-
> `USE_MILESTONE` / `USE_PIPELINE`
|
|
170
|
+
> `USE_MILESTONE` / `USE_PIPELINE` estão deprecated (removed in next major (v3.0.0)).
|
|
171
|
+
> Use `GITLAB_TOOLSETS=core,wiki`, `core,milestones` ou `core,pipelines`
|
|
172
|
+
> (`USE_PIPELINE` também precisa acrescentar `validate_ci_lint,validate_project_ci_lint` à lista `GITLAB_TOOLS` existente em vez de substituí-la).
|
|
173
|
+
> Se você já definiu `GITLAB_TOOLSETS`, acrescente o toolset à lista existente em vez de substituí-la.
|
|
174
|
+
> Se `GITLAB_TOOLS` não estiver definido, defina `GITLAB_TOOLS=validate_ci_lint,validate_project_ci_lint`. Se já estiver definido, acrescente `validate_ci_lint,validate_project_ci_lint` à lista existente em vez de substituí-la.
|
|
164
175
|
> Consulte a [Referência de ferramentas](./docs/tools/index.md#feature-toggles) e
|
|
165
176
|
> [Variáveis de ambiente](./docs/configuration/environment-variables.md).
|
|
166
177
|
|
|
167
|
-
|
|
178
|
+
- sse
|
|
168
179
|
|
|
169
180
|
```shell
|
|
170
181
|
docker run -i --rm \
|
|
@@ -172,7 +183,7 @@ docker run -i --rm \
|
|
|
172
183
|
-e GITLAB_PERSONAL_ACCESS_TOKEN=your_gitlab_token \
|
|
173
184
|
-e GITLAB_API_URL="https://gitlab.com/api/v4" \
|
|
174
185
|
-e GITLAB_PERMISSION_MODE=readonly \
|
|
175
|
-
-e GITLAB_TOOLSETS=wiki,milestones,pipelines \
|
|
186
|
+
-e GITLAB_TOOLSETS=core,wiki,milestones,pipelines \
|
|
176
187
|
-e SSE=true \
|
|
177
188
|
-e SSE_AUTH_TOKEN=your_mcp_sse_token \
|
|
178
189
|
-p 3333:3002 \
|
|
@@ -193,7 +204,7 @@ docker run -i --rm \
|
|
|
193
204
|
}
|
|
194
205
|
```
|
|
195
206
|
|
|
196
|
-
|
|
207
|
+
- streamable-http
|
|
197
208
|
|
|
198
209
|
```shell
|
|
199
210
|
docker run -i --rm \
|
|
@@ -201,7 +212,7 @@ docker run -i --rm \
|
|
|
201
212
|
-e REMOTE_AUTHORIZATION=true \
|
|
202
213
|
-e GITLAB_API_URL="https://gitlab.com/api/v4" \
|
|
203
214
|
-e GITLAB_PERMISSION_MODE=readonly \
|
|
204
|
-
-e GITLAB_TOOLSETS=wiki,milestones,pipelines \
|
|
215
|
+
-e GITLAB_TOOLSETS=core,wiki,milestones,pipelines \
|
|
205
216
|
-e STREAMABLE_HTTP=true \
|
|
206
217
|
-p 3333:3002 \
|
|
207
218
|
zereight050/gitlab-mcp
|
|
@@ -521,7 +532,7 @@ Não é necessário definir `headers`. O Claude.ai obtém o token via OAuth.
|
|
|
521
532
|
| `MCP_SERVER_URL` | sim | URL HTTPS pública do servidor MCP |
|
|
522
533
|
| `GITLAB_API_URL` | sim | URL da API da instância GitLab (por exemplo, `https://gitlab.com/api/v4`) |
|
|
523
534
|
| `STREAMABLE_HTTP` | sim | Deve ser `true` (SSE não é suportado) |
|
|
524
|
-
| `GITLAB_OAUTH_SCOPES` | não | Scopes do GitLab a solicitar, separados por vírgula. O padrão é `api`, ou `read_api` quando `
|
|
535
|
+
| `GITLAB_OAUTH_SCOPES` | não | Scopes do GitLab a solicitar, separados por vírgula. O padrão é `api`, ou `read_api` quando o permission mode efetivo é `readonly`. O aplicativo previamente registrado deve ter pelo menos esses scopes configurados. |
|
|
525
536
|
| `OAUTH_REGISTER_RATE_LIMIT_PER_HOUR` | não | Limite rolling de Dynamic Client Registration (`POST /register`) por IP do cliente. Padrão `20`/hora, intervalo `1`–`1000`. Aumente se múltiplas janelas de IDE estiverem atingindo o limite. Não está relacionado aos limites da API do GitLab. |
|
|
526
537
|
| `MCP_DANGEROUSLY_ALLOW_INSECURE_ISSUER_URL` | não | Apenas para desenvolvimento local via HTTP |
|
|
527
538
|
|