GitLab MCP Server

io.github.jmrplens/gitlab-mcp-server

Go MCP server for GitLab: 2 dynamic tools reach ~876 actions on Free/CE, up to ~1103 on Ultimate.

Connect this server

Add this to your MCP client config — claude_desktop_config.json (Claude Desktop) or .cursor/mcp.json (Cursor).Suits: Claude Desktop · Cursor.

{
  "mcpServers": {
    "gitlab-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/jmrplens/gitlab-mcp-server:3.4.0@sha256:a0ef01843875161060ec89225fe4091f95a7ae2a8984286a435752fc6089dcbb"
      ],
      "env": {
        "GITLAB_URL": "https://gitlab.com",
        "GITLAB_TOKEN": "<your GITLAB_TOKEN>",
        "GITLAB_MCP_SKIP_TLS_VERIFY": "false",
        "GITLAB_MCP_TOOL_SURFACE": "dynamic",
        "GITLAB_MCP_CAPABILITY_SURFACE": "full",
        "GITLAB_MCP_META_PARAM_SCHEMA": "opaque",
        "GITLAB_MCP_READ_ONLY": "false",
        "GITLAB_MCP_SAFE_MODE": "false",
        "GITLAB_MCP_EMBEDDED_RESOURCES": "true",
        "GITLAB_MCP_IGNORE_SCOPES": "false",
        "GITLAB_MCP_UPLOAD_MAX_FILE_SIZE": "2147483648",
        "GITLAB_MCP_RATE_LIMIT_RPS": "0",
        "GITLAB_MCP_RATE_LIMIT_BURST": "40",
        "GITLAB_MCP_LOG_LEVEL": "info",
        "GITLAB_MCP_LANGUAGE": "en"
      }
    }
  }
}
Environment variables
  • GITLAB_URLGitLab instance URL (default: https://gitlab.com; set for self-managed instances)
  • GITLAB_TOKENrequiredsecretGitLab Personal Access Token (glpat-...)
  • GITLAB_MCP_SKIP_TLS_VERIFYSkip TLS certificate verification for self-signed certs (default: false)
  • GITLAB_MCP_TOOL_SURFACETool catalog selector: dynamic, meta, or individual (default: dynamic)
  • GITLAB_MCP_CAPABILITY_SURFACEResource and prompt catalog selector: full or minimal (default: full); resource subscriptions require full
  • GITLAB_MCP_META_PARAM_SCHEMAMeta-tool input schema detail: opaque, compact, or full (default: opaque)
  • GITLAB_MCP_READ_ONLYRead-only mode: removes every mutating action from the served surface; reads keep working (default: false)
  • GITLAB_MCP_SAFE_MODESafe 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_EMBEDDED_RESOURCESAppend EmbeddedResource content blocks (clickable links to MCP resources) to get_* tool results (default: true)
  • GITLAB_MCP_IGNORE_SCOPESSkip the scope filter and the read_api narrowing and register all tools regardless of token permissions; a token carrying neither read_api nor api is still refused (default: false)
  • GITLAB_MCP_UPLOAD_MAX_FILE_SIZELargest local file an upload or file-reading action accepts, in bytes or with a KB, MB or GB suffix (e.g. 2GB); at most 1 TB (default: 2147483648, 2 GB)
  • GITLAB_MCP_RATE_LIMIT_RPSRate limit per credential, in requests per second, on every call that reaches GitLab, with tools/list charged to a bucket of its own; 0, the default on stdio, disables it (default: 0)
  • GITLAB_MCP_RATE_LIMIT_BURSTToken-bucket burst size when GITLAB_MCP_RATE_LIMIT_RPS is greater than 0 (default: 40)
  • GITLAB_MCP_LOG_LEVELLogging verbosity (default: info)
  • GITLAB_MCP_LANGUAGELanguage of the elicitation questions, form field titles and progress messages a client shows the user: en or es (default: en). What the model reads stays English

A starting point — check the repository for exact arguments and setup. Restart your client after editing the config.

Category
Developer Tools
Version
3.4.0
Registry
active
Published
10/31/2026

Remotes

  • streamable-httphttps://mcp.jmrp.io/gitlab
Browse all Developer Tools →

Add the badge to your site

Show visitors that GitLab MCP Server is listed here — it’s also the link we check for a free listing.

GitLab MCP Server — listed on Serverdex

HTML — for your website

<a href="https://serverdex.io/server/io-github-jmrplens-gitlab-mcp-server?utm_source=badge"><img src="https://serverdex.io/brand/badge.svg" alt="GitLab MCP Server — listed on Serverdex" width="123" height="40" loading="lazy"></a>

Recommended. A dofollow link from your own domain is the one that counts for search engines, and it's the link we check for a free listing.

Markdown — for your README

[![GitLab MCP Server — listed on Serverdex](https://serverdex.io/brand/badge.svg)](https://serverdex.io/server/io-github-jmrplens-gitlab-mcp-server?utm_source=badge)

Nice for visibility, but GitHub marks README links nofollow, so it doesn't pass authority. Use the HTML badge on your site as well.