Gitlab MCP Server

Open source GitLab MCP server for AI assistants: 2-tool dynamic find/execute over 860+ GitLab actions (1,000+ Enterprise), stdio/HTTP/OAuth

Remote serverstreamable-httpGo

What is the Gitlab MCP server?

If you already use Gitlab, the gitlab mcp server is the piece that lets your assistant work with it directly. Open source GitLab MCP server for AI assistants: 2-tool dynamic find/execute over 860+ GitLab actions (1,000+ Enterprise), stdio/HTTP/OAuth, safe/read-only modes.

What the server does

You talk to your AI assistant; it does the GitLab work. No project IDs, API endpoints, or JSON to remember.

  • 🗣️ Plain-language GitLab. The AI translates "is MR !15 safe to merge?" into the right API calls. You don't touch endpoints, IDs, or JSON
  • 🪶 Low-token by default. The default dynamic surface exposes just 2 tools (find + execute) while reaching the full catalog — so it fits any client's context window. (Token footprint →)
  • Proven with real models. An automated evaluator runs Anthropic, Google, OpenAI, and Qwen against live GitLab instances: 99.5% aggregate success across thousands of operations. (Results →)
  • 🔒 Safe by design. Read-only mode, safe mode (dry-run preview of every mutation), TLS options for self-hosted GitLab, and continuous SonarCloud quality/security gates
  • 🖥️ Runs anywhere. One static binary or container; Windows, Linux & macOS; amd64 & arm64; stdio (desktop) and HTTP (remote)
  • 45 MCP resources — (read-only data: projects, issues, pipelines, MRs, branches, members, the surface-aware gitlab://tools manifest, and workflow best-practice guides)

Available tools

The toolset is worth reading before you wire it up, because it tells you what the integration is really for:

  • macOS — ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
  • Linux — ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
  • Windows — %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
  • Surface — Visible tools
  • Tools — Up to 1071 individual / 32–50 meta
  • Resources — 45 (static + templates)
  • Prompts — 37 templates
  • Completions — Project, user, group, branch, tag
  • Logging — Structured (text/JSON) to stderr
  • Progress — Tool execution progress reporting
  • Elicitation — 4 interactive creation wizards
  • Provider — Model

Credentials and setup notes

Configuration is passed through the environment: GITLAB_TOKEN, YOUR_GITLAB_TOKEN, GITLAB_URL. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.

Installation

Because this one is hosted, setup is mostly authentication — you point your client at the endpoint and approve access. Nothing runs on your machine, so there is no runtime to keep patched.

Where it fits

This sits in the developer tooling group, where several servers overlap in what they claim to do but differ sharply once you actually set them up. Gitlab's toolset — macOS, Linux, Windows and 11 more — is a fair guide to whether it matches your workflow. It is maintained by jmrplens; worth a glance at recent repository activity before you build anything load-bearing on it.

This entry was verified against Gitlab's own documentation before publication; SyncDev keeps the directory reviewed rather than auto-generated.

Worth knowing first

  • Your data travels to the provider's service, so the usual questions apply about what you send and what they retain.
  • With 14 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch Gitlab.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

Available tools

ToolWhat it does
macOS~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
Linux~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
Windows%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
SurfaceVisible tools
ToolsUp to 1071 individual / 32–50 meta
Resources45 (static + templates)
Prompts37 templates
CompletionsProject, user, group, branch, tag
LoggingStructured (text/JSON) to stderr
ProgressTool execution progress reporting
Elicitation4 interactive creation wizards
ProviderModel
Anthropicclaude-haiku-4-5-20251001
Googlegemini-flash-latest

How to install the Gitlab MCP server

{
  "mcpServers": {
    "gitlab-mcp-server-jmrplens": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "ghcr.io/jmrplens/gitlab-mcp-server"],
      "env": {
        "GITLAB_TOKEN": "your-value",
        "YOUR_GITLAB_TOKEN": "your-value",
        "GITLAB_URL": "your-value"
      }
    }
  }
}

Add to claude_desktop_config.json, then restart Claude Desktop.

Configuration

VariableDescriptionRequired
GITLAB_TOKENCredential the server authenticates with.Yes
YOUR_GITLAB_TOKENCredential the server authenticates with.Yes
GITLAB_URLEndpoint or connection string the server talks to.Yes

Example prompts to try

  • Use Gitlab to macOS.
  • Use Gitlab to Linux.
  • Use Gitlab to Windows.

Frequently asked questions

A GitLab Personal Access Token with the **api** scope is needed. The token is passed via the `GITLAB_TOKEN` environment variable.