NestDaddy

GitLab

io.github.vish288/mcp-gitlab ยท v0.24.0

GitLab MCP server (MCP 2026-07-28): projects, MRs, pipelines, CI/CD, issues; writes or read-only

Connect Runs on your machine

Terminal
claude mcp add mcp-gitlab -e GITLAB_TOKEN=<GITLAB_TOKEN> -e GITLAB_URL=<GITLAB_URL> -e GITLAB_READ_ONLY=<GITLAB_READ_ONLY> -e MCP_READ_ONLY=<MCP_READ_ONLY> -e MCP_TOOLSETS=<MCP_TOOLSETS> -e GITLAB_AUTH=<GITLAB_AUTH> -e GITLAB_OAUTH_CLIENT_ID=<GITLAB_OAUTH_CLIENT_ID> -e GITLAB_OAUTH_CLIENT_SECRET=<GITLAB_OAUTH_CLIENT_SECRET> -e GITLAB_OAUTH_BASE_URL=<GITLAB_OAUTH_BASE_URL> -e GITLAB_OAUTH_SCOPES=<GITLAB_OAUTH_SCOPES> -e GITLAB_OAUTH_JWT_KEY=<GITLAB_OAUTH_JWT_KEY> -e GITLAB_HTTP_BEARER_TOKEN=<GITLAB_HTTP_BEARER_TOKEN> -- uvx mcp-gitlab==0.24.0
claude_desktop_config.json
{
  "mcpServers": {
    "mcp-gitlab": {
      "command": "uvx",
      "args": [
        "mcp-gitlab==0.24.0"
      ],
      "env": {
        "GITLAB_TOKEN": "<GITLAB_TOKEN>",
        "GITLAB_URL": "<GITLAB_URL>",
        "GITLAB_READ_ONLY": "<GITLAB_READ_ONLY>",
        "MCP_READ_ONLY": "<MCP_READ_ONLY>",
        "MCP_TOOLSETS": "<MCP_TOOLSETS>",
        "GITLAB_AUTH": "<GITLAB_AUTH>",
        "GITLAB_OAUTH_CLIENT_ID": "<GITLAB_OAUTH_CLIENT_ID>",
        "GITLAB_OAUTH_CLIENT_SECRET": "<GITLAB_OAUTH_CLIENT_SECRET>",
        "GITLAB_OAUTH_BASE_URL": "<GITLAB_OAUTH_BASE_URL>",
        "GITLAB_OAUTH_SCOPES": "<GITLAB_OAUTH_SCOPES>",
        "GITLAB_OAUTH_JWT_KEY": "<GITLAB_OAUTH_JWT_KEY>",
        "GITLAB_HTTP_BEARER_TOKEN": "<GITLAB_HTTP_BEARER_TOKEN>"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "mcpServers": {
    "mcp-gitlab": {
      "command": "uvx",
      "args": [
        "mcp-gitlab==0.24.0"
      ],
      "env": {
        "GITLAB_TOKEN": "<GITLAB_TOKEN>",
        "GITLAB_URL": "<GITLAB_URL>",
        "GITLAB_READ_ONLY": "<GITLAB_READ_ONLY>",
        "MCP_READ_ONLY": "<MCP_READ_ONLY>",
        "MCP_TOOLSETS": "<MCP_TOOLSETS>",
        "GITLAB_AUTH": "<GITLAB_AUTH>",
        "GITLAB_OAUTH_CLIENT_ID": "<GITLAB_OAUTH_CLIENT_ID>",
        "GITLAB_OAUTH_CLIENT_SECRET": "<GITLAB_OAUTH_CLIENT_SECRET>",
        "GITLAB_OAUTH_BASE_URL": "<GITLAB_OAUTH_BASE_URL>",
        "GITLAB_OAUTH_SCOPES": "<GITLAB_OAUTH_SCOPES>",
        "GITLAB_OAUTH_JWT_KEY": "<GITLAB_OAUTH_JWT_KEY>",
        "GITLAB_HTTP_BEARER_TOKEN": "<GITLAB_HTTP_BEARER_TOKEN>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "mcp-gitlab": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "mcp-gitlab==0.24.0"
      ],
      "env": {
        "GITLAB_TOKEN": "<GITLAB_TOKEN>",
        "GITLAB_URL": "<GITLAB_URL>",
        "GITLAB_READ_ONLY": "<GITLAB_READ_ONLY>",
        "MCP_READ_ONLY": "<MCP_READ_ONLY>",
        "MCP_TOOLSETS": "<MCP_TOOLSETS>",
        "GITLAB_AUTH": "<GITLAB_AUTH>",
        "GITLAB_OAUTH_CLIENT_ID": "<GITLAB_OAUTH_CLIENT_ID>",
        "GITLAB_OAUTH_CLIENT_SECRET": "<GITLAB_OAUTH_CLIENT_SECRET>",
        "GITLAB_OAUTH_BASE_URL": "<GITLAB_OAUTH_BASE_URL>",
        "GITLAB_OAUTH_SCOPES": "<GITLAB_OAUTH_SCOPES>",
        "GITLAB_OAUTH_JWT_KEY": "<GITLAB_OAUTH_JWT_KEY>",
        "GITLAB_HTTP_BEARER_TOKEN": "<GITLAB_HTTP_BEARER_TOKEN>"
      }
    }
  }
}

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools

This server runs locally, so its tools are listed by your MCP client once it starts.

Environment variables

NameDescription
GITLAB_TOKEN
Optional, secret
GitLab personal access token (token mode). Optional after `mcp-gitlab auth login`; also accepts GITLAB_PAT, GITLAB_PERSONAL_ACCESS_TOKEN, GITLAB_API_TOKEN
GITLAB_URL
Required
GitLab instance URL (e.g. https://gitlab.com)
GITLAB_READ_ONLY
Optional
Alias for MCP_READ_ONLY. Any value other than false/0/no/off/empty locks the server read-only; --read-only can only raise the lock
MCP_READ_ONLY
Optional
Locks the server read-only: write tools and write-workflow prompts are not listed and nothing lifts the lock at runtime. Shared name across the mcp-* servers; set it in the deployer's env
MCP_TOOLSETS
Optional
Comma list of tool groups to expose (code, review, ci, issues, release, admin); unset or 'all' lists every tool. Shrinks tools/list for clients with a tool budget; MCP_READ_ONLY still applies after the selection
GITLAB_AUTH
Optional
Authentication mode: token (default) or oauth (OAuth 2.1 proxy; streamable-http only)
GITLAB_OAUTH_CLIENT_ID
Optional
Application ID of the GitLab OAuth app (oauth mode, or local sign-in on a self-managed instance)
GITLAB_OAUTH_CLIENT_SECRET
Optional, secret
Secret of the GitLab OAuth app (oauth mode)
GITLAB_OAUTH_BASE_URL
Optional
Public URL of this server, no trailing slash (oauth mode); redirect URI is <base>/auth/callback
GITLAB_OAUTH_SCOPES
Optional
Space-separated GitLab scopes required on every request (oauth mode; default api)
GITLAB_OAUTH_JWT_KEY
Optional, secret
FastMCP JWT signing key, >=32 random chars (oauth mode; defaults to one derived from the client secret)
GITLAB_HTTP_BEARER_TOKEN
Optional, secret
Bearer token (min 16 chars) required to bind an HTTP transport to a non-loopback host; clients send it as 'Authorization: Bearer <token>' (token mode; --auth oauth has its own sign-in)

Details

Package[email protected] (PYPI, stdio)
First published10 Nov 2026
Last updated10 Nov 2026
Registry nameio.github.vish288/mcp-gitlab

More developer tools servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.