GitLab (zereight)
listing.by
Manage GitLab projects, merge requests, issues, pipelines, wikis and releases from your assistant, on GitLab.com or self-managed.
listing.install
listing.local.explain
listing.local.needs listing.local.note
GITLAB_PERSONAL_ACCESS_TOKENlisting.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_TOKENlisting.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_PATHlisting.env.optional Optional path to a GitLab authentication cookie file for cookie-based authentication.GITLAB_API_URLlisting.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_IDSlisting.env.optional Optional comma-separated list of GitLab project IDs that this server is allowed to access.GITLAB_READ_ONLY_MODElisting.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-zereightlisting.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
- 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- 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
- Open Settings → Developer → Edit Config. It opens
claude_desktop_config.json. Add:
{
"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>"
}
}
}
}- 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):
{
"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:
{
"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
- Add it to
~/.config/devin/mcp_config.json(macOS and Linux) or%APPDATA%\devin\mcp_config.json(Windows):
{
"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>"
}
}
}
}- 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-gitlabOr edit ~/.codex/config.toml directly:
[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-gitlabThis 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
[](https://mcp.tc/i/gitlab-zereight)<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
<script src="https://mcp.tc/w/gitlab-zereight.js" async></script>listing.em.widget_note
iframe
<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
listing.disclaimer_checked