← Index

GitLab MCP Server

io.github.jmrplens/gitlab-mcp-serverv3.3.0Git & Code Hosting

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

The current version, v3.3.0, was published to the official MCP registry on 2026-10-20. It is distributed as @jmrp.io/gitlab-mcp-server on npm and as jmrplens-gitlab-mcp-server on PyPI and as the Docker image ghcr.io/jmrplens/gitlab-mcp-server:3.3.0@sha256:88784f176a65d934c4a181eb832a525e94f106f49189cb9c6fde907dd00cf19c and as a hosted remote over streamable-http, filed under Git & Code Hosting by this index, and declares 19 environment variables. Removals and unreachable sources are measured across every server this index tracks, contract drift across the servers that answer in consecutive snapshots; the index's current counts put this record in context.

In-path gate · all MCP tools

Using GitLab MCP Server in Claude, Cursor, Gemini CLI, Cline, or Zed?

MCP tool contracts can change remotely with no version bump. The mcpindex gate pins each contract and HOLDs the call when it drifts-before your agent acts. Zero credentials. This is not the package install for this server itself (use Install this server for that).

Install the mcpindex gate (one command)

Rewrites your MCP host config so each server launches behind the gate. Inspect first: curl -fsSL https://mcpindex.ai/install.sh | less

uv tool install mcpindex-gate && mcpindex-config-wire
Trust verdict · v1 advisory · method
REVIEWstatus: PARTIALfresh until 2026-11-19 20:14 UTC
screened 2026-10-20tier: scannedgranularity: description-levelsource: registry

Semantic screen found no manipulation pattern in the description. Conformance probe not yet run.

mcpindex.integrity.descriptionpassINFO

evidence“Tool provides GitLab MCP server actions.”via static_description

Limits of this verdict
  • - Semantic screen only - the deterministic conformance probe has not run on this server
  • - Confidence is reported but not yet calibrated (v1)
  • - Screen reads the tool description, not the live behavior
  • - advisory
  • - registry description only no input schema
  • - screen model 8b

Semantic screen: an LLM judge reads the tool description for hidden instructions (status PARTIAL). A pass means the description is not lying, not that the tool is safe: a high-capability tool with an honest description still warrants caution. The deterministic conformance probe has not been run on this server yet, so the screen here is semantic-only. Posture: advisory. Confidences are reported but not yet calibrated (calibrated=false at v1). Full verdict history is not shown on this page.

Own this server? Test a description on the public screen → It is a separate check from the verdict above, so the two can differ.

That verdict was true at screening time (snapshot 2026-10-30).

Contracts can change after screening, with no version bump. The gate pins GitLab MCP Server’s tool contracts on first sight and holds any silent change before your agent acts - the check that keeps being true on Tuesday.

See your first HOLD in 2 minutes →

Related: how to trust an MCP server · screen before install · silent contract drift

Cite this record

People vet a server before wiring it in. One line on your project site or docs answers that with an independent record: screening verdict, registry provenance, contract drift history. It stays current as new screens and drift events land.

Markdown
[Independent trust record for GitLab MCP Server](https://mcpindex.ai/server/io-github-jmrplens-gitlab-mcp-server) - screening verdict, registry provenance, and contract drift monitoring.
HTML
<a href="https://mcpindex.ai/server/io-github-jmrplens-gitlab-mcp-server">Independent trust record for GitLab MCP Server</a> - screening verdict, registry provenance, and contract drift monitoring.
Embed this badge

A live verdict badge for your README or listing. It reflects the current screen, links back here, and updates when the verdict does.

Markdown
[![mcpindex](https://mcpindex.ai/api/v1/badge/io-github-jmrplens-gitlab-mcp-server)](https://mcpindex.ai/server/io-github-jmrplens-gitlab-mcp-server)
HTML
<a href="https://mcpindex.ai/server/io-github-jmrplens-gitlab-mcp-server"><img src="https://mcpindex.ai/api/v1/badge/io-github-jmrplens-gitlab-mcp-server" alt="mcpindex verdict" height="20" /></a>
Environment variables
GITLAB_URL

GitLab instance URL (default: https://gitlab.com; set for self-managed instances)

GITLAB_TOKEN
requiredsecret

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 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

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)

GITLAB_URL

GitLab instance URL (default: https://gitlab.com; set for self-managed instances)

GITLAB_TOKEN
requiredsecret

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 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

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)

GITLAB_URL

GitLab instance URL (default: https://gitlab.com; set for self-managed instances)

GITLAB_TOKEN
requiredsecret

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 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

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)

GITLAB_URL

GitLab instance URL (default: https://gitlab.com; set for self-managed instances)

GITLAB_TOKEN
requiredsecret

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_CAPABILITY_SURFACE

Resource and prompt catalog selector: full or minimal (default: full); resource subscriptions require full

GITLAB_MCP_META_PARAM_SCHEMA

Meta-tool input schema detail: opaque, compact, or full (default: opaque)

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 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

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_EMBEDDED_RESOURCES

Append EmbeddedResource content blocks (clickable links to MCP resources) to get_* tool results (default: true)

GITLAB_MCP_EXCLUDE_TOOLS

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

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

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

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

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

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

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

Token-bucket burst size when GITLAB_MCP_RATE_LIMIT_RPS is greater than 0 (default: 40)

GITLAB_MCP_LOG_LEVEL

Logging verbosity (default: info)

GITLAB_URL

GitLab instance URL (default: https://gitlab.com; set for self-managed instances)

GITLAB_TOKEN
requiredsecret

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_CAPABILITY_SURFACE

Resource and prompt catalog selector: full or minimal (default: full); resource subscriptions require full

GITLAB_MCP_META_PARAM_SCHEMA

Meta-tool input schema detail: opaque, compact, or full (default: opaque)

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 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

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_EMBEDDED_RESOURCES

Append EmbeddedResource content blocks (clickable links to MCP resources) to get_* tool results (default: true)

GITLAB_MCP_EXCLUDE_TOOLS

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

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

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

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

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

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

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

Token-bucket burst size when GITLAB_MCP_RATE_LIMIT_RPS is greater than 0 (default: 40)

GITLAB_MCP_LOG_LEVEL

Logging verbosity (default: info)

GITLAB_URL

GitLab instance URL (default: https://gitlab.com; set for self-managed instances)

GITLAB_TOKEN
requiredsecret

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_CAPABILITY_SURFACE

Resource and prompt catalog selector: full or minimal (default: full); resource subscriptions require full

GITLAB_MCP_META_PARAM_SCHEMA

Meta-tool input schema detail: opaque, compact, or full (default: opaque)

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 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

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_EMBEDDED_RESOURCES

Append EmbeddedResource content blocks (clickable links to MCP resources) to get_* tool results (default: true)

GITLAB_MCP_EXCLUDE_TOOLS

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

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

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

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

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

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

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

Token-bucket burst size when GITLAB_MCP_RATE_LIMIT_RPS is greater than 0 (default: 40)

GITLAB_MCP_LOG_LEVEL

Logging verbosity (default: info)

GITLAB_URL

GitLab instance URL (default: https://gitlab.com; set for self-managed instances)

GITLAB_TOKEN
requiredsecret

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_CAPABILITY_SURFACE

Resource and prompt catalog selector: full or minimal (default: full); resource subscriptions require full

GITLAB_MCP_META_PARAM_SCHEMA

Meta-tool input schema detail: opaque, compact, or full (default: opaque)

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 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

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_EMBEDDED_RESOURCES

Append EmbeddedResource content blocks (clickable links to MCP resources) to get_* tool results (default: true)

GITLAB_MCP_EXCLUDE_TOOLS

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

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

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

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

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

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

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

Token-bucket burst size when GITLAB_MCP_RATE_LIMIT_RPS is greater than 0 (default: 40)

GITLAB_MCP_LOG_LEVEL

Logging verbosity (default: info)

GITLAB_URL

GitLab instance URL (default: https://gitlab.com; set for self-managed instances)

GITLAB_TOKEN
requiredsecret

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_CAPABILITY_SURFACE

Resource and prompt catalog selector: full or minimal (default: full); resource subscriptions require full

GITLAB_MCP_META_PARAM_SCHEMA

Meta-tool input schema detail: opaque, compact, or full (default: opaque)

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 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

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_EMBEDDED_RESOURCES

Append EmbeddedResource content blocks (clickable links to MCP resources) to get_* tool results (default: true)

GITLAB_MCP_EXCLUDE_TOOLS

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

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

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

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

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

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

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

Token-bucket burst size when GITLAB_MCP_RATE_LIMIT_RPS is greater than 0 (default: 40)

GITLAB_MCP_LOG_LEVEL

Logging verbosity (default: info)

MCP quality score · maturity, not trust · methodology
freshness
25
completeness
25
installability
25
documentation
15
stability
10
Alternatives in Git & Code Hosting