GitLab MCP Server
io.github.jmrplens/gitlab-mcp-server
About GitLab MCP Server
GitLab MCP Server is an MCP server published by the GitHub account jmrplens. Go MCP server for GitLab: 2 dynamic tools reach ~876 actions on Free/CE, up to ~1103 on Ultimate.
It runs on your own machine: your AI client starts it from the MCP bundle package gitlab-mcp-server-darwin.mcpb at version 3.3.0, or you can connect to the hosted version instead.
It asks for one secret: GITLAB_TOKEN. Give it a key with the least access that still works.
Version 3.3.0 was published on 20 October 2026, and the source code is public, so you can read it before installing.
Written from the registry entry. 8 automated checks on registry metadata: 5 pass, 0 warn, 0 fail, 3 info. How we check.
What it asks for
| Variable | Required | Secret | Description |
|---|---|---|---|
GITLAB_URL | No | No | GitLab instance URL (default: https://gitlab.com; set for self-managed instances) |
GITLAB_TOKEN | Yes | Yes | GitLab Personal Access Token (glpat-...) |
GITLAB_MCP_SKIP_TLS_VERIFY | No | No | Skip TLS certificate verification for self-signed certs (default: false) |
GITLAB_MCP_TOOL_SURFACE | No | No | Tool catalog selector: dynamic, meta, or individual (default: dynamic) |
GITLAB_MCP_TIER | No | No | 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 token is a member of, falling back to free. Gates Premium and Ultimate actions; GitLab.com Ultimate also serves the Orbit Knowledge Graph tools |
GITLAB_MCP_READ_ONLY | No | No | Read-only mode: removes every mutating action from the served surface; reads keep working (default: false) |
GITLAB_MCP_SAFE_MODE | No | No | 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 | No | No | Logging verbosity (default: info) |
GITLAB_MCP_CAPABILITY_SURFACE | No | No | Resource and prompt catalog selector: full or minimal (default: full); resource subscriptions require full |
GITLAB_MCP_META_PARAM_SCHEMA | No | No | Meta-tool input schema detail: opaque, compact, or full (default: opaque) |
GITLAB_MCP_EMBEDDED_RESOURCES | No | No | Append EmbeddedResource content blocks (clickable links to MCP resources) to get_* tool results (default: true) |
GITLAB_MCP_EXCLUDE_TOOLS | No | No | Comma-separated tool names, group names or canonical action IDs to exclude, on every surface (e.g. gitlab_admin,gitlab_runner) |
GITLAB_MCP_IGNORE_SCOPES | No | No | Skip 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_SIZE | No | No | Largest 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_ALLOWED_UPLOAD_DIRS | No | No | Extra OS path-list-separated directories an action may read a local file from; the working directory (unless it is the filesystem root or your home directory) and the OS temp directory are always allowed. Unused in HTTP mode, which refuses local paths |
GITLAB_MCP_ALLOWED_DOWNLOAD_DIRS | No | No | Extra OS path-list-separated directories an action may write a downloaded file into; the working directory (unless it is the filesystem root or your home directory) and the OS temp directory are always allowed. Unused in HTTP mode, which refuses local paths |
GITLAB_MCP_ALLOWED_IMPORT_DIRS | No | No | Extra OS path-list-separated directories a project or group import archive may be read from; the working directory (unless it is the filesystem root or your home directory) and the OS temp directory are always allowed. Unused in HTTP mode, which refuses local paths |
GITLAB_MCP_RATE_LIMIT_RPS | No | No | Rate 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_BURST | No | No | Token-bucket burst size when GITLAB_MCP_RATE_LIMIT_RPS is greater than 0 (default: 40) |
Checks
| Check | Result | Detail |
|---|---|---|
| Source repository linked | Pass | https://github.com/jmrplens/gitlab-mcp-server |
| Version pinned | Pass | Every package has an explicit version |
| Remote uses HTTPS | Pass | All remote endpoints use https:// |
| Secrets requested | Info | Asks for 1 secret: GITLAB_TOKEN |
| Known package registry | Pass | All packages come from npm, PyPI, OCI, NuGet or MCPB |
| Namespace ownership | Info | Name verified via GitHub account jmrplens |
| Registry text aimed at the AI | Pass | Description and settings contain no hidden characters or instructions to the AI |
| Code red flags | Info | Package could not be read (too large) |
Popularity & health: 75 / 100
Worked out from public numbers and our own checks, not from user reviews or ratings. It says how used and how looked-after a server is, not whether it is safe.
8 forks, 980 merged pull requests. Sources: GitHub, npm, PyPI (pypistats.org) and Hacker News (Algolia), fetched 2026-10-31.
What people say
No Hacker News threads link to its source code.
Look further: search Reddit, search Hacker News, read its GitHub issues. These are not reviews we checked.
Facts
| Registry name | io.github.jmrplens/gitlab-mcp-server |
|---|---|
| Publisher | GitHub account jmrplens |
| How the name is verified | Name verified via GitHub account jmrplens. The registry ties the name prefix to that account or domain; it does not check the code. |
| Type | Local package and a hosted remote |
| Packages | mcpb https://github.com/jmrplens/gitlab-mcp-server/releases/download/v3.3.0/gitlab-mcp-server-darwin.mcpb 3.3.0 (stdio)mcpb https://github.com/jmrplens/gitlab-mcp-server/releases/download/v3.3.0/gitlab-mcp-server-windows.mcpb 3.3.0 (stdio)mcpb https://github.com/jmrplens/gitlab-mcp-server/releases/download/v3.3.0/gitlab-mcp-server-linux.mcpb 3.3.0 (stdio)oci ghcr.io/jmrplens/gitlab-mcp-server:3.3.0@sha256:88784f176a65d934c4a181eb832a525e94f106f49189cb9c6fde907dd00cf19c no version given (stdio)oci docker.io/jmrplens/gitlab-mcp-server:3.3.0@sha256:88784f176a65d934c4a181eb832a525e94f106f49189cb9c6fde907dd00cf19c no version given (stdio)npm @jmrp.io/gitlab-mcp-server 3.3.0 (stdio)pypi jmrplens-gitlab-mcp-server 3.3.0 (stdio)nuget gitlab-mcp-server 3.3.0 (stdio) |
| Remote endpoints | streamable-http https://mcp.jmrp.io/gitlab |
| Version | 3.3.0 |
| Published | |
| Last updated | |
| Source repository | https://github.com/jmrplens/gitlab-mcp-server |
| Website | https://docs.jmrp.io/gitlab-mcp-server |
| Category | Coding & design (assigned by keyword rule, not by hand) |
Related servers in Coding & design
- C64 Bridge7/7MCP server for Commodore 64 Ultimate hardware and VICE emulator…
- Advanced GitLab MCP server6/764 CQRS tools exposing 234 GitLab operations across 26 entity types
- gitlab-mcp4/4GitLab over MCP from your own account: issues, merge requests,…
- mcp-gitlab7/8GitLab MCP server (MCP 2026-07-28): projects, MRs, pipelines,…
- GitLab MCP Server7/7Developer-ready GitLab MCP server for CE and EE instances.
- CICD AIops7/7Governed self-managed GitLab + Gitea CI/CD ops: pipelines, runners,…