# GitLab (zereight) MCP server

> Manage GitLab projects, merge requests, issues, pipelines, wikis and releases from your assistant, on GitLab.com or self-managed.

- Listing: https://mcp.tc/i/gitlab-zereight
- Connect: this is a local (stdio) server; install it on your machine (see Install). The listing link is a page, not an MCP endpoint.
- Type: local (stdio)
- Auth: API key
- Category: [Developer Tools](https://mcp.tc/c/developer-tools)
- Vendor: zereight
- Homepage: <https://zereight.github.io/gitlab-mcp/>
- Repository: <https://github.com/zereight/gitlab-mcp>
- Package: npm `@zereight/mcp-gitlab`

## About

Community GitLab server that exposes the GitLab API as MCP tools. It covers projects, merge requests, issues, pipelines, wiki, releases, tags and milestones. The README lists about 267 tools and a discover\_tools helper, so you can start with a small toolset and enable more at runtime. Merge request review uses a two-step flow: list changed files, then fetch batched file diffs.

It runs locally through npx as the npm package @zereight/mcp-gitlab, over stdio, SSE or Streamable HTTP. It needs a GitLab personal access token in GITLAB\_PERSONAL\_ACCESS\_TOKEN, or OAuth2 sign-in. Options include read-only mode, project allow lists, toolset selection and a custom GITLAB\_API\_URL for self-managed instances.

## What it can do

- Browse GitLab projects, groups and users
- Review merge requests with batched file diffs
- Create and update issues and merge requests
- Inspect and manage CI/CD pipelines
- Read and edit wiki pages when the wiki is enabled
- Manage releases, tags and milestones
- Restrict access with read-only mode, project allow lists or toolsets

## Example prompts

- "List open merge requests assigned to me in my main project"
- "Show the changed files in merge request 142 and summarize the diff"
- "Create an issue for the failing login test and label it bug"
- "Which pipelines failed on main this week?"

## Install

### Claude Code

1. Run this in a terminal, in your project folder:

```bash
claude mcp add --transport stdio gitlab-zereight --env "GITLAB_PERSONAL_ACCESS_TOKEN=<YOUR_GITLAB_PERSONAL_ACCESS_TOKEN>" --env "GITLAB_JOB_TOKEN=<YOUR_GITLAB_JOB_TOKEN>" -- npx -y @zereight/mcp-gitlab
```

2. Start Claude Code and type `/mcp`. **gitlab-zereight** should show as connected.

Add `--scope user` to make it available in every project. Replace the placeholders with your own values.

### Claude Desktop

1. Open **Settings → Developer → Edit Config**. It opens `claude_desktop_config.json`. Add:

`claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "gitlab-zereight": {
      "command": "npx",
      "args": [
        "-y",
        "@zereight/mcp-gitlab"
      ],
      "env": {
        "GITLAB_PERSONAL_ACCESS_TOKEN": "<YOUR_GITLAB_PERSONAL_ACCESS_TOKEN>",
        "GITLAB_JOB_TOKEN": "<YOUR_GITLAB_JOB_TOKEN>"
      }
    }
  }
}
```

2. Save the file and restart Claude Desktop. Replace the placeholders with your own values.

Needs Node.js on your computer. The file lives in `~/Library/Application Support/Claude/` on macOS and `%APPDATA%\Claude\` on Windows.

### Cursor

[Add to Cursor](<https://cursor.com/install-mcp?name=gitlab-zereight&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkB6ZXJlaWdodC9tY3AtZ2l0bGFiIl0sImVudiI6eyJHSVRMQUJfUEVSU09OQUxfQUNDRVNTX1RPS0VOIjoiPFlPVVJfR0lUTEFCX1BFUlNPTkFMX0FDQ0VTU19UT0tFTj4iLCJHSVRMQUJfSk9CX1RPS0VOIjoiPFlPVVJfR0lUTEFCX0pPQl9UT0tFTj4ifX0%3D>) (opens Cursor)

Or add it by hand to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (this project):

`mcp.json`:

```json
{
  "mcpServers": {
    "gitlab-zereight": {
      "command": "npx",
      "args": [
        "-y",
        "@zereight/mcp-gitlab"
      ],
      "env": {
        "GITLAB_PERSONAL_ACCESS_TOKEN": "<YOUR_GITLAB_PERSONAL_ACCESS_TOKEN>",
        "GITLAB_JOB_TOKEN": "<YOUR_GITLAB_JOB_TOKEN>"
      }
    }
  }
}
```

Needs Node.js on your computer. Replace the placeholders with your own values.

### VS Code

Add it to `.vscode/mcp.json`. VS Code asks for the secret the first time and stores it securely:

`.vscode/mcp.json`:

```json
{
  "servers": {
    "gitlab-zereight": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@zereight/mcp-gitlab"
      ],
      "env": {
        "GITLAB_PERSONAL_ACCESS_TOKEN": "${input:gitlab-personal-access-token}",
        "GITLAB_JOB_TOKEN": "${input:gitlab-job-token}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "gitlab-personal-access-token",
      "description": "GITLAB_PERSONAL_ACCESS_TOKEN",
      "password": true
    },
    {
      "type": "promptString",
      "id": "gitlab-job-token",
      "description": "GITLAB_JOB_TOKEN",
      "password": true
    }
  ]
}
```

Needs Node.js on your computer.

### Devin Desktop

1. Add it to `~/.config/devin/mcp_config.json` (macOS and Linux) or `%APPDATA%\devin\mcp_config.json` (Windows):

`mcp_config.json`:

```json
{
  "mcpServers": {
    "gitlab-zereight": {
      "command": "npx",
      "args": [
        "-y",
        "@zereight/mcp-gitlab"
      ],
      "env": {
        "GITLAB_PERSONAL_ACCESS_TOKEN": "<YOUR_GITLAB_PERSONAL_ACCESS_TOKEN>",
        "GITLAB_JOB_TOKEN": "<YOUR_GITLAB_JOB_TOKEN>"
      }
    }
  }
}
```

2. Refresh the MCP server list in Cascade. Replace the placeholders with your own values.

Devin Desktop is the new name for Windsurf.

### Codex

```bash
codex mcp add gitlab-zereight --env "GITLAB_PERSONAL_ACCESS_TOKEN=<YOUR_GITLAB_PERSONAL_ACCESS_TOKEN>" --env "GITLAB_JOB_TOKEN=<YOUR_GITLAB_JOB_TOKEN>" -- npx -y @zereight/mcp-gitlab
```

Or edit `~/.codex/config.toml` directly:

`config.toml`:

```toml
[mcp_servers.gitlab-zereight]
command = "npx"
args = ["-y", "@zereight/mcp-gitlab"]
env = { GITLAB_PERSONAL_ACCESS_TOKEN = "<YOUR_GITLAB_PERSONAL_ACCESS_TOKEN>", GITLAB_JOB_TOKEN = "<YOUR_GITLAB_JOB_TOKEN>" }
```

Needs Node.js on your computer. Replace the placeholders with your own values.

### Gemini CLI

```bash
gemini mcp add -e "GITLAB_PERSONAL_ACCESS_TOKEN=<YOUR_GITLAB_PERSONAL_ACCESS_TOKEN>" -e "GITLAB_JOB_TOKEN=<YOUR_GITLAB_JOB_TOKEN>" gitlab-zereight npx -- -y @zereight/mcp-gitlab
```

This adds it to the current project. Add `-s user` to use it everywhere.

### Any client

Most clients that start local servers accept this shape:

```json
{
  "mcpServers": {
    "gitlab-zereight": {
      "command": "npx",
      "args": [
        "-y",
        "@zereight/mcp-gitlab"
      ],
      "env": {
        "GITLAB_PERSONAL_ACCESS_TOKEN": "<YOUR_GITLAB_PERSONAL_ACCESS_TOKEN>",
        "GITLAB_JOB_TOKEN": "<YOUR_GITLAB_JOB_TOKEN>"
      }
    }
  }
}
```

Zed puts servers under `context_servers` in its settings, with the same `command`, `args` and `env` fields.

Needs Node.js on your computer. Replace the placeholders with your own values.

## Details

- Server version: 2.1.69
- Last checked: 2026-10-04
- Listed: 2026-10-04
- Updated: 2026-10-04

---
Source: https://mcp.tc/i/gitlab-zereight (mcp.tc is an independent directory, not affiliated with this server's publisher). Corrections: https://mcp.tc/report
