Gitlab MCP Server logo

Gitlab MCP Server

by jmrplens

Access GitLab through a dynamic MCP action catalog with read-only, safe, stdio, HTTP, and OAuth options.

Install Gitlab MCP Server

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "jmrplens-gitlab-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@jmrp.io/gitlab-mcp-server"
      ],
      "env": {
        "GITLAB_TOKEN": "YOUR_VALUE_HERE",
        "GITLAB_MCP_READ_ONLY": "YOUR_VALUE_HERE"
      }
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Values are written into the snippet above so you can paste it as is. They never leave your browser.

Install not yet sandbox-tested— the server itself is confirmed live (we called its tools/list endpoint). The stdio install command is a separate, ongoing check.

Overview

jmrplens/gitlab-mcp-server MCP server exposes GitLab REST and GraphQL operations through a dynamic action catalog rather than requiring every action as a separate tool. Its primary MCP tools search the local catalog and execute actions by canonical ID or alias, with schemas, hints, and confirmation handling for destructive operations. It runs as a cross-platform Go binary over stdio or HTTP and supports GitLab.com and self-managed instances. Use it for agent-driven issue, merge request, pipeline, project, and other GitLab workflows when broad API coverage and execution controls matter.

Use cases

  • List issues for a GitLab project
  • Review a merge request before merging
  • Investigate a failed pipeline
  • Generate release notes from GitLab history

Key features

  • Dynamic GitLab action catalog
  • REST and GraphQL API coverage
  • Read-only and safe-preview modes
  • Destructive-action confirmation
  • Stdio and HTTP transports
  • OAuth support for HTTP deployments

Tools2

What Gitlab MCP Server lets your agent do. Expand a tool for its parameters.

Verified live~473 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

7/7 checks healthy over the last 90d

What it can do

From the 2 tools this server returned when we ran it; 2 declare their own safety hints.

Runs commands · 2Can delete or modify data · 1Makes network requests · 2
Network at startup4 connections
Files written at startupNone
Install scriptsNone
npm provenanceSigned build
Package age48 days
Maintainers1

Observed 2026-10-15 in an isolated sandbox. A description of reach, not a security audit.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 2d ago via OSV.dev · @jmrp.io/gitlab-mcp-server (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars47Stargazers on the source repository.
npm downloads1.2kPackage downloads in the last 30 days.
Last commitTodayMost recent push to the default branch.
Tools exposed2Callable tools this server registers over MCP.
Directory activity3 viewsConfig copies, upvotes, and views on AllMCPs.

How Gitlab MCP Server works

What jmrplens/gitlab-mcp-server does

GitLab API operations are presented through a catalog of more than 1,000 actions spanning GitLab REST and GraphQL capabilities. The catalog covers GitLab tiers from Free or Community Edition through Premium and Ultimate, including GitLab.com and self-managed deployments. The server detects the available GitLab tier and adjusts the action surface accordingly.

Rather than registering every catalog entry as an individual MCP tool, the default interface uses discovery and execution tools. This keeps the startup tool surface smaller while still allowing an agent to reach actions such as listing issues, reviewing merge requests, investigating pipelines, or generating release information.

How it works

gitlab_find_action searches a local action catalog without making a GitLab API request. It can return matching action IDs, aliases, parameter schemas, usage hints, destructive-operation indicators, and example calls. This is useful when the agent knows the intended task but not the exact catalog identifier or required parameters.

gitlab_execute_action runs one catalog action. The action is selected by canonical ID or alias, and parameters must be supplied as an object. For example, an issue listing can target a project using an action such as issue.list with a project_id parameter. Destructive actions require a top-level confirm=true value before execution.

The binary supports stdio for local desktop and editor integrations and HTTP for shared deployments. HTTP mode includes OAuth support and keeps credentials separated between users. The server can also expose one tool per domain or per action instead of the default dynamic surface.

Setup and configuration

Install the server through a native release artifact, package distribution, Docker image, or the Claude Desktop extension. Builds target Windows, Linux, and macOS on amd64 and arm64. Docker-based client registrations require Docker.

Set GITLAB_TOKEN to a GitLab personal, project, group, fine-grained, or other supported access token. A token with the api scope provides the broadest access; read_api can be used for actions that GitLab permits with read-only access. Fine-grained token permissions are evaluated per action.

Set GITLAB_MCP_READ_ONLY=true when the server must not write to GitLab. Safe mode can preview writes instead of applying them, and tools can be excluded by name. HTTP deployments can use OAuth rather than passing a token directly.

Tools and capabilities

  • Search the local GitLab action catalog with gitlab_find_action.
  • Execute catalog actions by canonical ID or alias with gitlab_execute_action.
  • Inspect action schemas, parameter guidance, examples, and destructive flags before execution.
  • Work across GitLab projects, groups, issues, merge requests, pipelines, and other API domains.
  • Choose dynamic, domain-level, or action-level MCP tool surfaces.
  • Connect through stdio or HTTP transports.
  • Use read-only, safe-preview, confirmation, and tool-exclusion controls.
  • Use GitLab OAuth in HTTP mode.

Limitations and notes

The breadth of the catalog means the agent may need to search before executing an action when the action name or parameters are unclear. Discovery is local and does not query GitLab, while execution does make the corresponding GitLab API request.

Destructive operations are guarded by confirmation, and read-only or safe modes change how write-capable actions behave. The token still needs the permissions required by the selected GitLab action. Dynamic mode is intended to reduce startup context compared with exposing every catalog action as an individual MCP tool.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Gitlab MCP Server

jmrplens/gitlab-mcp-server is an MCP server that connects AI clients to GitLab's REST and GraphQL APIs through a dynamic action catalog. Its main tools, gitlab_find_action and gitlab_execute_action, help agents discover action schemas and run GitLab operations with confirmation controls for destructive actions.

Install it from a native release, package distribution, Docker image, or the Claude Desktop extension. Docker-based configurations require Docker. Set GITLAB_TOKEN in the client environment, or configure OAuth when using HTTP mode.

Set GITLAB_TOKEN to a GitLab access token. The api scope supports the broadest set of operations, while read_api works for actions GitLab allows with read access. HTTP mode also supports OAuth.

Set GITLAB_MCP_READ_ONLY=true to prevent writes. Safe mode can preview writes instead of applying them, and destructive actions also require a top-level confirm=true value when executed.

Yes, Cursor is listed as a supported client. Its configuration runs the Docker image and passes GITLAB_TOKEN to the container.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewGitlab MCP Server AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/jmrplens-gitlab-mcp-server?style=directory)](https://allmcps.com/mcp/jmrplens-gitlab-mcp-server)
HTML Embed
<a href="https://allmcps.com/mcp/jmrplens-gitlab-mcp-server"><img src="https://allmcps.com/api/badge/jmrplens-gitlab-mcp-server?style=directory" alt="Gitlab MCP Server on AllMCPs" /></a>