gitlab-mcp
llms.txt2.1k starsChanged 20 days agoMITView on GitHub
Agent-workflow-optimized GitLab MCP server for projects, merge requests, issues, pipelines, wiki, releases, tags, and milestones. Transports: stdio, SSE, Streamable HTTP. Auth: PAT, local OAuth, MCP OAuth proxy, per-request remote authorization. The default core toolset lists 38 tools. discover_tools and help are always re-added after every toolset filter, so a default tools/list has 40 tools. 278 tools exist in total: 275 in 24 toolsets + executegraphql + discovertools + help. GITLAB_TOOLSETS=all enables every discoverable toolset and still does not enable the…
- Reads credentials
We split this llms-full.txt into the rules it gives an agent
7 rules. About 0 are common, 0 are distinctive, and 7 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Very specific: line 19
Call discover_tools with no arguments to list categories, then pass a category (pipelines, wiki, merge_requests, …) to activate it for the …
- Very specific: line 85
Use MCP when the agent needs structured tools in chat and jmespath / compact results are enough.
- Very specific: line 87
Use the CLI when you need the full payload (diffs, job logs, artifacts), or when GITLAB_MCP_COMPACT_RESULTS=true has replaced an oversized …
- Very specific: line 91
Do not dump a full merge request with get_merge_request_diffs when file-by-file review is the goal.
- Very specific: line 92
Prefer jmespath on tool calls.
- Very specific: line 94
Prefer typed REST tools over execute_graphql.
- Very specific: line 95
Do not enable gitlab_api_request (api toolset) unless you accept that it bypasses group/project allowlists, other tool filters, and …
≈ “Common” is an estimate: at least 1 in 5 of the 3,225 llms.txt files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
# GitLab MCP Server
> Agent-workflow-optimized GitLab MCP server for projects, merge requests, issues, pipelines, wiki, releases, tags, and milestones. Transports: stdio, SSE, Streamable HTTP. Auth: PAT, local OAuth, MCP OAuth proxy, per-request remote authorization.
- Package: `@zereight/mcp-gitlab`
- Binary: `zereight-mcp-gitlab` (legacy alias: `mcp-gitlab`)
- Node.js: >=18.17
- License: MIT
- Source: https://github.com/zereight/gitlab-mcp
- Docs: https://zereight.github.io/gitlab-mcp/
- Registry name: `io.github.zereight/gitlab-mcp`
## Default exposure
The default `core` toolset lists 38 tools. `discover_tools` and `help` are always re-added after every toolset filter, so a default `tools/list` has **40 tools**.
278 tools exist in total: 275 in 24 toolsets + `execute_graphql` + `discover_tools` + `help`. `GITLAB_TOOLSETS=all` enables every discoverable toolset and still does **not** enable the explicit-only `api` toolset. `execute_graphql` is not in a toolset; enable it with `GITLAB_TOOLS=execute_graphql`.
Call `discover_tools` with no arguments to list categories, then pass a category (`pipelines`, `wiki`, `merge_requests`, …) to activate it for the current session.
Measured default `tools/list` size (2026-10-24): 40 tools, 50,682 bytes of JSON. `GITLAB_TOOLSETS=all`: 276 tools, 285,677 bytes.
## Without → With
Without this MCP, agents paste MR URLs and diffs into chat, hunt job logs in the GitLab UI, and re-explain `group/project` every turn.
With this MCP:
1. `list_merge_request_changed_files` for paths only
2. `get_merge_request_file_diff` for 3–5 files per call
3. `create_merge_request_thread` or draft notes for review comments
`project_id` accepts a numeric ID or a URL-encoded path. Example: merge request `!123` in `group/project` → `project_id=group%2Fproject`, `merge_request_iid=123`. Nested groups use `%2F` between every segment.
## Three install paths
### Local IDE
stdio + PAT or local OAuth (`GITLAB_USE_OAUTH=true`).
```bash
read -rs GITLAB_PERSONAL_ACCESS_TOKEN && export GITLAB_PERSONAL_ACCESS_TOKEN
claude mcp add gitlab --transport stdio --scope local --env GITLAB_PERSONAL_ACCESS_TOKEN="$GITLAB_PERSONAL_ACCESS_TOKEN" --env GITLAB_API_URL=https://gitlab.com/api/v4 -- zereight-mcp-gitlab
codex mcp add gitlab --env GITLAB_PERSONAL_ACCESS_TOKEN="$GITLAB_PERSONAL_ACCESS_TOKEN" --env GITLAB_API_URL=https://gitlab.com/api/v4 -- zereight-mcp-gitlab
```
Cursor: use the deeplink in the repository README or [Cursor setup](clients/cursor.md).
Other clients: [VS Code](clients/vscode.md), [Copilot](clients/copilot.md), [JSON clients](clients/json-clients.md).
### Shared HTTP
Hosted or self-hosted Streamable HTTP:
```json
{
"mcpServers": {
"gitlab": {
"type": "http",
"url": "https://mcp.example.com/mcp"
}
}
}
```
Per-user PAT: `REMOTE_AUTHORIZATION=true` and `Authorization: Bearer` / `Private-Token`.
Claude.ai / remote OAuth: `GITLAB_MCP_OAUTH=true` on a public HTTPS URL.
### Claude.ai
Public HTTPS MCP server + pre-registered GitLab OAuth app + `GITLAB_MCP_OAUTH=true` + `STREAMABLE_HTTP=true`. No PAT in the client config.
## Skill + CLI (equal path, no MCP)
```bash
npx skills add zereight/gitlab-mcp --skill gitlab-mcp-skill
zereight-mcp-gitlab user whoami
zereight-mcp-gitlab mr list
```
Human CLI is never compacted. Destructive tools and `GITLAB_TOOL_POLICY_APPROVE` tools need `--yes`. See [CLI without MCP](getting-started/cli-without-mcp.md).
## MCP vs Human CLI
Use MCP when the agent needs structured tools in chat and `jmespath` / compact results are enough.
Use the CLI when you need the full payload (diffs, job logs, artifacts), or when `GITLAB_MCP_COMPACT_RESULTS=true` has replaced an oversized MCP reply with a preview plus a CLI command.
## Token-saving rules
- Do not dump a full merge request with `get_merge_request_diffs` when file-by-file review is the goal.
- Prefer `jmespath` on tool calls. Enable `GITLAB_MCP_COMPACT_RESULTS` to cap oversized MCP replies.
- Paginate pipeline / job logs (`get_pipeline_job_output`).
- Prefer typed REST tools over `execute_graphql`.
- Do not enable `gitlab_api_request` (`api` toolset) unless you accept that it bypasses group/project allowlists, other tool filters, and per-tool safety checks. Prompt injection can drive it.
## Auth FAQ
- Local PAT: `GITLAB_PERSONAL_ACCESS_TOKEN` or `GITLAB_PERSONAL_ACCESS_TOKEN_FILE`
- Local OAuth: `GITLAB_USE_OAUTH=true` (browser on the same machine as the server)
- MCP OAuth: public HTTPS server, clients such as Claude.ai
- Remote authorization: caller sends PAT or job token; no OAuth dance
- Permission: `GITLAB_PERMISSION_MODE=readonly|modify|full` (default `full`)
## Cursor / CLAUDE.md snippet
```
GitLab merge requests, issues, and pipelines go through this MCP (@zereight/mcp-gitlab).
Start with the default core tools. Call discover_tools to expand.
Prefer list_merge_request_changed_files, then batched get_merge_request_file_diff.
Use jmespath or compact results; use the CLI for full diffs and job logs.
```
## Links
- [Home](index.md)
- [Environment variables](configuration/environment-variables.md)
- [Tools](tools/index.md)
- [Skill](https://github.com/zereight/gitlab-mcp/blob/main/skills/gitlab-mcp/SKILL.md)
Trending
Steady: 0 new projects took it in the last 4 weeks, none the 4 weeks before.thin data
Who's talking about zereight/gitlab-mcp
- kirodotdev/Kiro“Kiro Prompts input_schema does not support oneOf, allOf, or anyOf at the top level until pinned to old …”GitHub · Jun 22, 2026 · 3 reactions
- anthropics/claude-code“Unhelpful error message when MCP server configuration was invalid”GitHub · Jul 21, 2025 · 3 reactions
- @githubfeed.bsky.social“🚀 GitHub Intelligence Drop gitlab-mcp (TypeScript • 🟢) ⭐ 2K → https://github.com/zereight/gitlab-mcp …”Bluesky · Oct 16, 2026 · 1 likes
- GerritCodeReview/gerrit-mcp-server“[Feature Request] Any plans for read-only mode?”GitHub · Sep 19, 2026 · 1 reactions
- structured-world/gitlab-mcp“chore: Change license from MIT to Apache 2.0”GitHub · Jan 19, 2026 · 1 reactions
The biggest 5 of 48 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 48
Talked about on GitHub and Bluesky (48 times).
On GitHub · 47
- Jun 22, 2026Kiro Prompts input_schema does not support oneOf, allOf, or anyOf at the top level until pinned to old version of gitlab MCP — kirodotdev/Kiro3 reactions · 3 comments
- Jul 21, 2025Unhelpful error message when MCP server configuration was invalid — anthropics/claude-code3 reactions · 6 comments
- Sep 19, 2026[Feature Request] Any plans for read-only mode? — GerritCodeReview/gerrit-mcp-server1 reaction
- Jan 19, 2026chore: Change license from MIT to Apache 2.0 — structured-world/gitlab-mcp1 reaction
- Oct 29, 2026agent-skills.github.zereight.gitlab-mcp: 2.3.14 → 2.3.15 — sudosubin/agents.nix0 reactions
42 more on GitHub
- Oct 28, 2026agent-skills.github.zereight.gitlab-mcp: 2.3.13 → 2.3.14 — sudosubin/agents.nix0 reactions
- Oct 28, 2026agent-skills.github.zereight.gitlab-mcp: 2.3.12 → 2.3.13 — sudosubin/agents.nix0 reactions
- Oct 27, 2026agent-skills.github.zereight.gitlab-mcp: 2.3.11 → 2.3.12 — sudosubin/agents.nix0 reactions
- Oct 25, 2026Move MCP packages off archived upstreams and refresh stale pins — ken-jo/agent-marketplace0 reactions
- Oct 25, 2026agent-skills.github.zereight.gitlab-mcp: 2.3.8 → 2.3.11 — sudosubin/agents.nix0 reactions
- Oct 24, 2026agent-skills.github.zereight.gitlab-mcp: 2.3.7 → 2.3.8 — sudosubin/agents.nix0 reactions
- Oct 23, 2026agent-skills.github.zereight.gitlab-mcp: 2.3.6 → 2.3.7 — sudosubin/agents.nix0 reactions
- Oct 21, 2026agent-skills.github.zereight.gitlab-mcp: 2.3.5 → 2.3.6 — sudosubin/agents.nix0 reactions
- Oct 20, 2026agent-skills.github.zereight.gitlab-mcp: 2.3.4 → 2.3.5 — sudosubin/agents.nix0 reactions
- Oct 19, 2026agent-skills.github.zereight.gitlab-mcp: 2.3.3 → 2.3.4 — sudosubin/agents.nix0 reactions
- Oct 17, 2026agent-skills.github.zereight.gitlab-mcp: 2.3.2 → 2.3.3 — sudosubin/agents.nix0 reactions
- Oct 16, 2026agent-skills.github.zereight.gitlab-mcp: 2.3.1 → 2.3.2 — sudosubin/agents.nix0 reactions
- Oct 16, 2026agent-skills.github.zereight.gitlab-mcp: 2.3.0 → 2.3.1 — sudosubin/agents.nix0 reactions
- Oct 15, 2026agent-skills.github.zereight.gitlab-mcp: 2.2.6 → 2.3.0 — sudosubin/agents.nix0 reactions
- Oct 14, 2026agent-skills.github.zereight.gitlab-mcp: 2.2.5 → 2.2.6 — sudosubin/agents.nix0 reactions
- Oct 14, 2026agent-skills.github.zereight.gitlab-mcp: 2.1.69 → 2.2.5 — sudosubin/agents.nix0 reactions
- Oct 12, 2026Upstream MCP: доступна новая минорная/мажорная версия — ShDA009/mcp0 reactions · 2 comments
- Oct 4, 2026agent-skills.github.zereight.gitlab-mcp: 2.1.65 → 2.1.69 — sudosubin/agents.nix0 reactions
- Oct 3, 2026agent-skills.github.zereight.gitlab-mcp: init at 2.1.65 — sudosubin/agents.nix0 reactions
- Sep 19, 2026Add CVE-2026-61560 - GitLab MCP Server Unauthenticated SSE Transport Access — projectdiscovery/nuclei-templates0 reactions
- Aug 28, 2026Add support for custom CA certificates — akbxr/gitlab-mcp-zed0 reactions · 1 comment
- Aug 17, 2026[Submit] zereight/gitlab-mcp — GitLab MCP server for MRs, issues, pipelines, wiki, and more — chatmcp/mcpso0 reactions
- Jul 21, 2026[Argus] CVE-2026-61462: mcp-gitlab Path Traversal via job_id Parameter — LEEKIYOON-SEC/Argus-DEV0 reactions
- Jun 23, 2026Gitlab MCP Mock should define all tools from `zereight/gitlab-mcp` — ayrtonvwf/skills0 reactions
- May 26, 2026V1.5-A: GitLab MCP catalog entry (community fork with vendor disclosure) — olafkfreund/AIFactory0 reactions
- Mar 11, 2026Ability to disable certain modules — acalder-techpm/bamboohr-mcp0 reactions
- Feb 26, 2026Security: Default HOST binding 0.0.0.0 exposes MCP server to the network — structured-world/gitlab-mcp0 reactions
- Feb 3, 2026Implement user token passthrough for Remote Authorization (multi-tenant MCP) — caipe-io/ai-platform-engineering0 reactions
- Jan 19, 2026chore: Migrate license from MIT to Apache 2.0 — structured-world/gitlab-mcp0 reactions · 2 comments
- Dec 9, 2025feat: add CLI arguments support for better MCP client compatibility — MiniMax-AI/MiniMax-MCP0 reactions
- Dec 7, 2025bug: unsupported protocol version: "2025-11-25" — mark3labs/mcp-go0 reactions
- Dec 7, 2025[Bug]: initializing MCP client: unsupported protocol version: "2025-11-25 — GoogleCloudPlatform/kubectl-ai0 reactions · 4 comments
- Oct 16, 2025[feat] Change gitlab mcp server — aipcc-cicd/claudio0 reactions
- Sep 9, 2025feat: Gitlab MCP Server — obot-platform/mcp-catalog0 reactions
- Sep 8, 2025GitLab MCP Entry — obot-platform/obot0 reactions · 3 comments
- Aug 5, 2025Implement Gitlab integration tool with mcp — allenday/mantis0 reactions · 2 comments
- Jul 22, 2025Remove custom GitLab MCP server in favor of external solution — atxtechbro/dotfiles0 reactions
- Jun 24, 2025Replace GitLab MCP in registry with zereight/gitlab-mcp — stacklok/toolhive0 reactions
- Jun 13, 2025[FEA]: Add MCP support for handling union types in lists — NVIDIA/NeMo-Agent-Toolkit0 reactions
- Jun 3, 2025Serialization issue running with Gitlab MCP server — JetBrains/koog0 reactions · 7 comments
- May 26, 2025Generated functions.json file is not always compatible with aichat — sigoden/aichat0 reactions · 2 comments
- Feb 21, 2025[Server Submission]: Better Gitlab MCP — cline/mcp-marketplace0 reactions
On Bluesky · 1
- Oct 16, 2026🚀 GitHub Intelligence Drop gitlab-mcp (TypeScript • 🟢) ⭐ 2K → https://github.com/zereight/gitlab-mcp kornia (Python • 🟢) ⭐ 11.4K →… — @githubfeed.bsky.social1 likes and repost
In this repository28 other files it gives its agents.
- .github/copilot-instructions.mdCopilot instructions
- docs/llms.txtllms.txt
- llms-full.txtllms.txt
- llms.txtllms.txt
- ai-slop-cleanerSkill
- cancelSkill
- ccgSkill
- coding-standardsSkill
- deep-diveSkill
- deep-interviewSkill
- omg-autopilotSkill
- planSkill
- ralphSkill
- ralplanSkill
- rememberSkill
- reviewSkill
- security-scanSkill
- self-improveSkill
- skill-stocktakeSkill
- statusSkill
- tddSkill
- teamSkill
- traceSkill
- ultraqaSkill
- ultraworkSkill
- verifySkill
- gitlab-mcp-skillSkill
- gl-cliSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

