GitLab (zereight)

listing.by

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

state.local.long (state.local.title)listing.badge.runs_withstate.key.long

listing.install

listing.local.explain

npx -y @zereight/mcp-gitlab

listing.local.needs listing.local.note

  • GITLAB_PERSONAL_ACCESS_TOKEN listing.env.secret GitLab personal access token for local stdio use. Create a token with the GitLab scopes needed by the tools you plan to use, such as api…
  • GITLAB_JOB_TOKEN listing.env.secret listing.env.optional Optional GitLab CI job token to use instead of a personal access token when running inside GitLab CI.
  • GITLAB_AUTH_COOKIE_PATH listing.env.optional Optional path to a GitLab authentication cookie file for cookie-based authentication.
  • GITLAB_API_URL listing.env.optional GitLab API base URL. Use https://gitlab.com/api/v4 for GitLab.com or your self-managed GitLab API URL.
  • GITLAB_ALLOWED_PROJECT_IDS listing.env.optional Optional comma-separated list of GitLab project IDs that this server is allowed to access.
  • GITLAB_READ_ONLY_MODE listing.env.optional Set to true to expose only read-only tools and block write operations.

listing.share.h

listing.share.p_local

mcp.tc/i/gitlab-zereight

listing.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.

listing.can

  • 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

listing.tools

listing.notools.key

listing.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?

listing.setup.h

listing.setup.local

Claude Code

  1. Run this in a terminal, in your project folder:
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
  1. 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
{
  "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>"
      }
    }
  }
}
  1. 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

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

mcp.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
{
  "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
{
  "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>"
      }
    }
  }
}
  1. Refresh the MCP server list in Cascade. Replace the placeholders with your own values.

Devin Desktop is the new name for Windsurf.

Codex

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
[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

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:

{
  "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.

listing.faq

Can I paste mcp.tc/i/gitlab-zereight into my MCP client?

No. GitLab (zereight) runs on your own computer, started by your client, so it has no web address to connect to. The quick link is the page to share; the install command is npx -y @zereight/mcp-gitlab.

Does GitLab (zereight) need an API key?

Yes. It reads GITLAB_PERSONAL_ACCESS_TOKEN and GITLAB_JOB_TOKEN from its environment, and GITLAB_PERSONAL_ACCESS_TOKEN and GITLAB_JOB_TOKEN are secrets. Put the value in your client's config on your own machine, never in a shared file.

Is GitLab (zereight) a remote or a local server?

Local. Your client starts it as a process on your computer with npx -y @zereight/mcp-gitlab, which needs Node.js.

What can GitLab (zereight) do?

You can browse GitLab projects, groups and users, review merge requests with batched file diffs and create and update issues and merge requests.

Which clients can use it?

Any client that starts local servers: Claude Code, Claude Desktop, Cursor, VS Code, Devin Desktop, Codex, Gemini CLI, Zed and others. claude.ai and ChatGPT only connect to remote servers.

Who wrote this page?

mcp.tc's robot read GitLab (zereight)'s public metadata (its package and repository pages), and an AI model drafted the text from it. A person reviews anything the checks can't confirm. The text can still be wrong, so if you spot a mistake, use Report this listing on this page.

listing.em.h

listing.em.lead_local listing.em.how

listing.em.badge

em.prev_lightem.prev_dark
Markdown
[![GitLab (zereight) on mcp.tc](https://mcp.tc/i/gitlab-zereight/badge.svg)](https://mcp.tc/i/gitlab-zereight)
HTML
<a href="https://mcp.tc/i/gitlab-zereight"><img src="https://mcp.tc/i/gitlab-zereight/badge.svg" alt="GitLab (zereight) on mcp.tc" height="20"></a>

listing.em.badge_note

listing.em.widget

HTML
<script src="https://mcp.tc/w/gitlab-zereight.js" async></script>

listing.em.widget_note

iframe

HTML
<iframe src="https://mcp.tc/embed/gitlab-zereight" title="GitLab (zereight) on mcp.tc" width="420" height="200" loading="lazy" allow="clipboard-write" style="border:0;border-radius:8px;max-width:100%"></iframe>

listing.em.iframe_note

JSON

listing.em.json_local

https://mcp.tc/i/gitlab-zereight.json

listing.em.fields

listing.disclaimer_checked