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?

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)

More MCP options

Compare MCP servers by category, or browse hosted MCP servers if you prefer an endpoint over a local process.

Maintainer setup documentation.

Configuration

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