# GitLab MCP Server (MCP server)

> GitLab MCP Server is an MCP server that adds developer tools to AI assistants such as Claude Desktop, Claude Code and Cursor. GitLab MCP server for projects, merge requests, issues, pipelines, wiki, releases, and more. It has 2,065 GitHub stars, is released under the MIT license and runs locally with npx -y @zereight/mcp-gitlab.

Default: 40 tools (38 core + discovertools + help). 278 tools exist in total (275 in toolsets + executegraphql + discovertools + help). Start lean; call discovertools to activate more for this session.

## Key facts

| Fact | Value |
|---|---|
| Repository | https://github.com/zereight/gitlab-mcp |
| GitHub stars | 2,065 |
| License | MIT |
| Language | TypeScript |
| Transport | stdio |
| Packages | npm: @zereight/mcp-gitlab; docker: docker.io/zereight050/gitlab-mcp:2.3.11 |
| Remote URL | none |
| Needs API key | yes |
| Official | no |
| Works with | Claude Desktop, Claude Code, Cursor, VS Code |
| Category | Developer tools |
| Latest release | v2.3.11 (Oct 25, 2026) |
| Last commit | Oct 26, 2026 |
| MCP registry name | io.github.zereight/gitlab-mcp |

## Install

### Claude Desktop (claude_desktop_config.json)

```json
{
  "mcpServers": {
    "gitlab-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@zereight/mcp-gitlab"
      ],
      "env": {
        "GITLAB_PERSONAL_ACCESS_TOKEN": "your-value",
        "GITLAB_PERSONAL_ACCESS_TOKEN_FILE": "your-value",
        "GITLAB_JOB_TOKEN": "your-value",
        "GITLAB_AUTH_COOKIE_PATH": "your-value",
        "GITLAB_OAUTH_TOKEN_SCRIPT": "your-value"
      }
    }
  }
}
```

Settings > Developer > Edit Config. macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\. Restart Claude Desktop afterwards.

### Claude Code

```sh
claude mcp add --env GITLAB_PERSONAL_ACCESS_TOKEN=your-value --env GITLAB_PERSONAL_ACCESS_TOKEN_FILE=your-value --env GITLAB_JOB_TOKEN=your-value --env GITLAB_AUTH_COOKIE_PATH=your-value --env GITLAB_OAUTH_TOKEN_SCRIPT=your-value --transport stdio gitlab-mcp-server -- npx -y @zereight/mcp-gitlab
```

### Cursor (.cursor/mcp.json)

```json
{
  "mcpServers": {
    "gitlab-mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@zereight/mcp-gitlab"
      ],
      "env": {
        "GITLAB_PERSONAL_ACCESS_TOKEN": "your-value",
        "GITLAB_PERSONAL_ACCESS_TOKEN_FILE": "your-value",
        "GITLAB_JOB_TOKEN": "your-value",
        "GITLAB_AUTH_COOKIE_PATH": "your-value",
        "GITLAB_OAUTH_TOKEN_SCRIPT": "your-value"
      }
    }
  }
}
```

Project file; use ~/.cursor/mcp.json to enable it in every project.

### VS Code (.vscode/mcp.json)

```json
{
  "inputs": [
    {
      "type": "promptString",
      "id": "gitlab_personal_access_token",
      "description": "GITLAB_PERSONAL_ACCESS_TOKEN",
      "password": true
    },
    {
      "type": "promptString",
      "id": "gitlab_personal_access_token_file",
      "description": "GITLAB_PERSONAL_ACCESS_TOKEN_FILE",
      "password": true
    },
    {
      "type": "promptString",
      "id": "gitlab_job_token",
      "description": "GITLAB_JOB_TOKEN",
      "password": true
    },
    {
      "type": "promptString",
      "id": "gitlab_auth_cookie_path",
      "description": "GITLAB_AUTH_COOKIE_PATH",
      "password": true
    },
    {
      "type": "promptString",
      "id": "gitlab_oauth_token_script",
      "description": "GITLAB_OAUTH_TOKEN_SCRIPT",
      "password": true
    }
  ],
  "servers": {
    "gitlab-mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@zereight/mcp-gitlab"
      ],
      "env": {
        "GITLAB_PERSONAL_ACCESS_TOKEN": "${input:gitlab_personal_access_token}",
        "GITLAB_PERSONAL_ACCESS_TOKEN_FILE": "${input:gitlab_personal_access_token_file}",
        "GITLAB_JOB_TOKEN": "${input:gitlab_job_token}",
        "GITLAB_AUTH_COOKIE_PATH": "${input:gitlab_auth_cookie_path}",
        "GITLAB_OAUTH_TOKEN_SCRIPT": "${input:gitlab_oauth_token_script}"
      }
    }
  }
}
```

Config formats checked against the official docs on 2026-10-07.

## Environment variables

- `GITLAB_PERSONAL_ACCESS_TOKEN` (secret): GitLab personal access token for local stdio use. A non-empty value overrides GITLABPERSONALACCESSTOKENFILE. One of this token, GITLABPERSONALACCESSTOKENFILE…
- `GITLAB_PERSONAL_ACCESS_TOKEN_FILE` (secret): Path to a file that contains the personal access token. Read once at startup and trimmed. Ignored when GITLABPERSONALACCESS_TOKEN or --token is non-empty. A…
- `GITLAB_JOB_TOKEN` (secret): Optional GitLab CI job token to use instead of a personal access token when running inside GitLab CI.
- `GITLAB_AUTH_COOKIE_PATH` (secret): Optional path to a GitLab authentication cookie file for cookie-based authentication.
- `GITLAB_USE_OAUTH`: Set to true to start with GitLab OAuth instead of a personal access token, job token, or cookie file.
- `GITLAB_OAUTH_CLIENT_ID`: GitLab OAuth application ID. When GITLABUSEOAUTH=true, set this or GITLABOAUTHTOKEN_SCRIPT.
- `GITLAB_OAUTH_TOKEN_SCRIPT` (secret): Command that prints an OAuth access token. When GITLABUSEOAUTH=true, set this or GITLABOAUTHCLIENT_ID.
- `GITLAB_API_URL`: GitLab API base URL. Use https://gitlab.com/api/v4 for GitLab.com or your self-managed GitLab API URL.
- `GITLAB_ALLOWED_PROJECT_IDS`: Optional comma-separated list of GitLab project IDs that this server is allowed to access.
- `GITLAB_PERMISSION_MODE`: Tool exposure. Allowed values are readonly, modify, and full. Unset uses full. readonly keeps read-only tools. modify blocks delete and teardown tools.
- `GITLAB_TOOLSETS`: Optional comma-separated list of toolsets to enable, such as projects, issues, merge_requests, pipelines, releases, users, groups, wiki, or search.
- `GITLAB_TOOLS`: Optional comma-separated list of individual tool names to add on top of enabled toolsets.
- `GITLAB_DENIED_TOOLS_REGEX`: Optional regular expression used to hide matching tools from the server.
- `GITLAB_TOOL_POLICY_APPROVE`: Optional comma-separated list of tool names that require explicit approval before execution.
- `GITLAB_TOOL_POLICY_HIDDEN`: Optional comma-separated list of tool names to hide from tools/list.
- `NODE_TLS_REJECT_UNAUTHORIZED`: Set to 0 only when you intentionally need to connect to a GitLab instance with invalid or self-signed TLS certificates.
- `GITLAB_CA_CERT_PATH`: Optional path to a custom CA certificate file for self-managed GitLab instances.
- `GITLAB_MASKING_ENABLED`: Set to true to mask text tool results and returned errors using built-in or configured rules.
- `GITLAB_MASKING_CONFIG`: Optional path to a response-masking JSON configuration file.
- `GITLAB_MASKING_POLICY_FILE`: Optional protected server-owned JSON file containing managed masking policies.

## Similar MCP servers

- [Unla](https://appsgit.com/mcp-servers/unla): 🧩 MCP Gateway - A lightweight gateway service that instantly transforms existing MCP Servers and APIs into MCP servers with zero code changes. (2,245 stars, MIT)
- [OpenOSINT](https://appsgit.com/mcp-servers/openosint): AI-powered OSINT agent & MCP server. 21 tools: email, breach, IP, WHOIS, DNS, Shodan, GitHub & more. (1,813 stars, MIT, needs API key)
- [kordoc](https://appsgit.com/mcp-servers/kordoc): Parse Korean documents (HWP, HWPX, PDF, XLSX, DOCX, PPTX) to Markdown; fill forms, diff, render. (2,771 stars, MIT)
- [New-Term Radar](https://appsgit.com/mcp-servers/new-term-radar): New AI model, product and repo names as they surface, and the search terms behind them, sized. (1,795 stars, MIT, needs API key)
- [Ffmpeg Skill](https://appsgit.com/mcp-servers/ffmpeg-skill): Local video editor for coding agents: 42 FFmpeg tools with a machine-readable contract and an MCP server, for Claude Code, Cursor and Codex. (2,928 stars, MIT)
- [Mex](https://appsgit.com/mcp-servers/mex): Team memory for engineers and their AI agents. (1,779 stars, MIT)

---

Canonical page: https://appsgit.com/mcp-servers/gitlab-mcp-server
Source: appsgit (https://appsgit.com), the app store for github. Data from the GitHub API, refreshed daily.
Machine access: JSON API https://appsgit.com/api/v1/apps (OpenAPI: https://appsgit.com/openapi.json), MCP server https://mcp.appsgit.com/mcp, full index https://appsgit.com/llms-full.txt.
