Go MCP server for GitLab: 2 dynamic tools reach ~876 actions on Free/CE, up to ~1103 on Ultimate.
registry version 3.4.0
mcpb
https://github.com/jmrplens/gitlab-mcp-server/releases/download/v3.4.0/gitlab-mcp-server-darwin.mcpbmcpb
https://github.com/jmrplens/gitlab-mcp-server/releases/download/v3.4.0/gitlab-mcp-server-windows.mcpbmcpb
https://github.com/jmrplens/gitlab-mcp-server/releases/download/v3.4.0/gitlab-mcp-server-linux.mcpbDocker
docker run -i --rm ghcr.io/jmrplens/gitlab-mcp-server:3.4.0@sha256:a0ef01843875161060ec89225fe4091f95a7ae2a8984286a435752fc6089dcbbDocker
docker run -i --rm docker.io/jmrplens/gitlab-mcp-server:3.4.0@sha256:a0ef01843875161060ec89225fe4091f95a7ae2a8984286a435752fc6089dcbbnpm
npx -y @jmrp.io/gitlab-mcp-servernpm
npx -y @jmrp.io/gitlab-mcp-server@3.4.0Python
uvx jmrplens-gitlab-mcp-serverPython
uvx jmrplens-gitlab-mcp-server@3.4.0nuget
gitlab-mcp-serverStreamable HTTP
https://mcp.jmrp.io/gitlab
Pick your client — the config below is generated for this server (both local and hosted-endpoint forms). Copy respects the “Pin version” switch above.
claude_desktop_config.json
{
"mcpServers": {
"gitlab-mcp-server-2": {
"command": "npx",
"args": [
"-y",
"@jmrp.io/gitlab-mcp-server"
],
"env": {
"GITLAB_TOKEN": "<YOUR_GITLAB_TOKEN>"
}
}
}
}{
"mcpServers": {
"gitlab-mcp-server-2": {
"command": "npx",
"args": [
"-y",
"@jmrp.io/gitlab-mcp-server@3.4.0"
],
"env": {
"GITLAB_TOKEN": "<YOUR_GITLAB_TOKEN>"
}
}
}
}Remote (hosted) endpoint
https://mcp.jmrp.io/gitlab
Claude Desktop: Settings → Connectors → Add custom connector, paste this URL.
Format verified against the official Claude Desktop docs ↗.
terminal
claude mcp add --env GITLAB_TOKEN=<YOUR_GITLAB_TOKEN> gitlab-mcp-server-2 -- npx -y @jmrp.io/gitlab-mcp-server
claude mcp add --env GITLAB_TOKEN=<YOUR_GITLAB_TOKEN> gitlab-mcp-server-2 -- npx -y @jmrp.io/gitlab-mcp-server@3.4.0
terminal
claude mcp add --transport http gitlab-mcp-server-2 https://mcp.jmrp.io/gitlab
Format verified against the official Claude Code docs ↗.
.cursor/mcp.json
{
"mcpServers": {
"gitlab-mcp-server-2": {
"command": "npx",
"args": [
"-y",
"@jmrp.io/gitlab-mcp-server"
],
"env": {
"GITLAB_TOKEN": "<YOUR_GITLAB_TOKEN>"
}
}
}
}{
"mcpServers": {
"gitlab-mcp-server-2": {
"command": "npx",
"args": [
"-y",
"@jmrp.io/gitlab-mcp-server@3.4.0"
],
"env": {
"GITLAB_TOKEN": "<YOUR_GITLAB_TOKEN>"
}
}
}
}.cursor/mcp.json (hosted endpoint)
{
"mcpServers": {
"gitlab-mcp-server-2": {
"url": "https://mcp.jmrp.io/gitlab"
}
}
}Format verified against the official Cursor docs ↗.
.vscode/mcp.json
{
"servers": {
"gitlab-mcp-server-2": {
"command": "npx",
"args": [
"-y",
"@jmrp.io/gitlab-mcp-server"
],
"env": {
"GITLAB_TOKEN": "<YOUR_GITLAB_TOKEN>"
}
}
}
}{
"servers": {
"gitlab-mcp-server-2": {
"command": "npx",
"args": [
"-y",
"@jmrp.io/gitlab-mcp-server@3.4.0"
],
"env": {
"GITLAB_TOKEN": "<YOUR_GITLAB_TOKEN>"
}
}
}
}.vscode/mcp.json (hosted endpoint)
{
"servers": {
"gitlab-mcp-server-2": {
"type": "http",
"url": "https://mcp.jmrp.io/gitlab"
}
}
}Format verified against the official VS Code docs ↗.
mcp_config.json
{
"mcpServers": {
"gitlab-mcp-server-2": {
"command": "npx",
"args": [
"-y",
"@jmrp.io/gitlab-mcp-server"
],
"env": {
"GITLAB_TOKEN": "<YOUR_GITLAB_TOKEN>"
}
}
}
}{
"mcpServers": {
"gitlab-mcp-server-2": {
"command": "npx",
"args": [
"-y",
"@jmrp.io/gitlab-mcp-server@3.4.0"
],
"env": {
"GITLAB_TOKEN": "<YOUR_GITLAB_TOKEN>"
}
}
}
}mcp_config.json (hosted endpoint)
{
"mcpServers": {
"gitlab-mcp-server-2": {
"serverUrl": "https://mcp.jmrp.io/gitlab"
}
}
}Format verified against the official Windsurf docs ↗.
Defined in the server's official registry manifest. Required secrets are shown as <YOUR_…> placeholders in the configs above.
GITLAB_URL — GitLab instance URL (default: https://gitlab.com; set for self-managed instances)GITLAB_TOKEN required secret — GitLab Personal Access Token (glpat-...)GITLAB_MCP_SKIP_TLS_VERIFY — Skip TLS certificate verification for self-signed certs (default: false)GITLAB_MCP_TOOL_SURFACE — Tool catalog selector: dynamic, meta, or individual (default: dynamic)GITLAB_MCP_TIER — GitLab tier: free/ce, premium or ultimate, used as given. When unset, detected from the instance license, then from the plans of the namespaces the token administers, then, on GitLab.com, from the top-level groups the toGITLAB_MCP_READ_ONLY — Read-only mode: removes every mutating action from the served surface; reads keep working (default: false)GITLAB_MCP_SAFE_MODE — Safe mode: a mutating action returns a preview card naming the action and echoing its arguments instead of running; reads keep working (default: false)GITLAB_MCP_LOG_LEVEL — Logging verbosity (default: info)⭐ 45 stars · 最近更新于 29 天前 · MIT license
Distributed as mcpb, Docker, npm, Python, nuget, Streamable HTTP, listed under Developer Tools. Review our MCP security guide before granting access to real data.
Run the install command shown above, then paste the config for your client (Claude Desktop, Claude Code, Cursor, VS Code or Windsurf) into its MCP settings and restart the client.
The MCP server itself is free to install. The source is public on https://github.com/jmrplens/gitlab-mcp-server. Any third-party service it calls may require its own API key and account.
Any MCP-compatible client can use it, including Claude Desktop, Claude Code, Cursor, VS Code, Windsurf and custom agents.
Publish this server? Link back with a badge on your README or site — copy either snippet.
Markdown
[](https://mcpnav.net/server/gitlab-mcp-server-2/)
HTML
<a href="https://mcpnav.net/server/gitlab-mcp-server-2/"><img src="https://mcpnav.net/badge/gitlab-mcp-server-2.svg" alt="Listed on MCPNav" height="20"></a>