Skip to main content
Glama

GitLab MCP Server

GitHub Release CI Coverage Quality Gate OpenSSF Scorecard OpenSSF Baseline

All of GitLab for your AI assistant. Up to 1,106 actions over GitLab's REST and GraphQL APIs, from Free to Ultimate and on GitLab.com, in one self-contained binary that works with Claude, Cursor, VS Code, Codex and any other MCP client. You ask in plain language; it does the GitLab work.

11,396 tokens of startup context by default, the same on every GitLab tier (1,994 with GITLAB_MCP_CAPABILITY_SURFACE=minimal). Two tools reach the whole catalog, where listing every tool as its own costs from 565,889 to 723,949 tokens. Measured with the cl100k_base tokenizer and checked in CI. How it is measured

"Review merge request !15: is it safe to merge?" · "Why did the last pipeline fail?" · "List open issues assigned to me" · "Generate release notes from v1.0 to v2.0"

Why this server

  • Every tier and every instance. Free/CE, Premium and Ultimate, self-managed or GitLab.com with its Orbit knowledge graph. The tier is detected and the catalog follows it.

  • The token you already have. A personal, project or group access token with api, or read_api for the actions GitLab accepts from it; a fine-grained token, judged action by action from its grant; OAuth in HTTP mode. Each action's tool reference entry says which scope and which fine-grained permissions it needs.

  • Guard rails. Read-only mode, safe mode (a preview of each write instead of the write), tools excluded by name, and a confirmation before anything destructive.

  • Three surfaces, two transports. Two discovery tools by default, one tool per domain or one per action; stdio for a desktop client, or HTTP for a shared deployment that keeps each credential apart. 45 resources and 37 prompts besides.

  • Releases you can verify. Signed checksums, an SBOM per binary and build provenance for every artifact.

Related MCP server: mcp-gitlab-jira

Install

The buttons register the Docker image, so they need Docker; the Claude Desktop row downloads a native extension instead. Create a personal access token with the api scope (or read_api for the actions GitLab accepts from it; add GITLAB_MCP_READ_ONLY=true when nothing may be written).

Claude Code. The registration command never carries the token: -e GITLAB_TOKEN forwards it from the environment Claude Code hands docker.

export GITLAB_TOKEN=glpat-xxxx
claude mcp add gitlab --transport stdio \
  -- docker run -i --rm -e GITLAB_TOKEN ghcr.io/jmrplens/gitlab-mcp-server:latest

Any other client runs one of these as the server's command, with GITLAB_TOKEN in the environment it passes:

npx -y @jmrp.io/gitlab-mcp-server                   # npm, nothing installed first
uvx jmrplens-gitlab-mcp-server                      # PyPI, nothing installed first
dnx gitlab-mcp-server                               # NuGet (.NET 10 SDK), nothing installed first
brew install jmrplens/tap/gitlab-mcp-server         # Homebrew, macOS and Linux
winget install --id jmrplens.gitlab-mcp-server -e   # winget, Windows
docker run -i --rm -e GITLAB_TOKEN ghcr.io/jmrplens/gitlab-mcp-server:latest

For a self-managed instance, set GITLAB_URL=https://gitlab.example.com beside the token; with the Docker image, also forward it by adding -e GITLAB_URL to the docker arguments, since the container receives only the variables named there (Docker install). Every channel, per-client configuration and verification step is in the installation guide, and an assistant installing it for you will find the same in llms.txt.

To try it first, a public instance runs at https://mcp.jmrp.io/gitlab, and the browser inspector calls it read-only after an OAuth sign-in. Your token and every request pass through that machine, so run it yourself to keep using it; the hosted endpoint page says what it is and is not.

Documentation

Everything else is at docs.jmrp.io/gitlab-mcp-server, in English and Spanish: getting started, configuration, tool surfaces, HTTP server mode, security, privacy and troubleshooting.

Packages and listings

Packages npm npm downloads PyPI PyPI downloads NuGet GitHub Container Registry Docker Hub Docker pulls Go Reference Hosted endpoint License: MIT

Directories Glama MCP Score MCP Badge MCP Toplist

Contributing, security and licence

Contributions are welcome here on GitHub; CONTRIBUTING.md describes the workflow and how a change is reviewed, and CODE_OF_CONDUCT.md applies. GOVERNANCE.md says how decisions are made and who holds which role, and the roadmap says where the project is going. Report a vulnerability privately, as SECURITY.md describes. The server is MIT licensed (LICENSE).


Maintained by José M. Requena Plens · Project page · Hosted instance: mcp.jmrp.io/gitlab

Available Tools

2 tools
gitlab_execute_actionGitLab Execute ActionA
Destructive
Inspect

Execute one GitLab catalog action by canonical ID or alias. Always pass params as an object. Destructive actions require top-level confirm=true. Use find first only when action or params are unclear. Example: {"action":"issue.list","params":{"project_id":"group/project"}}

Inputs: action (required), params (required), confirm. Returns: Result envelope. Top-level shape varies per action and matches the chosen actio…

gitlab_find_actionGitLab Find ActionA
Read-onlyIdempotent
Inspect

Search the local GitLab action catalog. Read-only and no GitLab API call. Use when the action ID or params are unclear. Returns schemas, hints, destructive flags, and execute examples. Example: {"query":"issue list"}

Inputs: query (required), limit, explain. Returns: count, query, results

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.2/5.0

    Scored across 2 tools

    Disambiguation5/5

    The two tools have clearly distinct roles: one searches the local action catalog and the other executes a chosen action. There is no overlap in purpose, and the descriptions explicitly guide when to use each.

    Naming Consistency5/5

    Both tools follow the same predictable pattern: gitlab_ + verb + noun, using snake_case consistently. The names are parallel and easy to distinguish.

    Tool Count3/5

    A two-tool gateway design is intentional and can cover many GitLab operations through the action catalog, but the surface itself feels thin for such a broad domain. It relies entirely on the catalog being comprehensive and discoverable.

    Completeness4/5

    The find-and-execute pair provides a complete generic lifecycle for GitLab actions, including destructive-operation confirmation. Minor gaps remain around directly enumerating the full catalog or offering batch workflows, but core discovery and execution are covered.

    Maintenance

    ActivityActive
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      A Model Context Protocol (MCP) server for GitLab and Jira integration. This server allows AI agents like gemini-cli to interact with your GitLab and Jira instances.
      32
      21 npm
      11
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Full-coverage GitLab MCP server with 44 tools across 18 resource types. Agent-optimized CQRS design — one tool call handles complete multi-step operations. Supports OAuth 2.1, read-only mode, stdio/SSE/StreamableHTTP transports, and GraphQL-native work items with full hierarchy (epics,issues,etc)
      1,922 npm
      8
      Apache 2.0
    • A
      license
      B
      quality
      C
      maintenance
      A Model Context Protocol server that enables AI assistants to interact with self-hosted GitLab instances through 30 specialized tools. It supports managing projects, merge requests, CI/CD pipelines, and repository operations via the GitLab REST API v4.
      30
      MIT