GitLab MCP Server
A Model Context Protocol server that connects AI agents to the GitLab API — 44 tools across 18 entity types with CQRS architecture, OAuth 2.1, and multiple transport modes.
Quick Start
{
"mcpServers": {
"gitlab": {
"command": "npx",
"args": ["-y", "@structured-world/gitlab-mcp"],
"env": {
"GITLAB_TOKEN": "your_gitlab_token",
"GITLAB_API_URL": "https://gitlab.com"
}
}
}
}
Requirements: Node.js >= 24
Highlights
- 44 tools across 18 entity types — projects, merge requests, pipelines, work items, wiki, and more
- CQRS architecture —
browse_*for queries,manage_*for commands - Multiple transports — stdio, SSE, StreamableHTTP
- OAuth 2.1 — Per-user authentication via Claude Custom Connector
- Read-only mode — Safe operation for production environments
- Auto-discovery — Detects GitLab config from git remotes
- Fine-grained control — Enable/disable tool groups, filter actions, customize descriptions
- Docker support —
ghcr.io/structured-world/gitlab-mcp:latest
Documentation
Full documentation is available at gitlab-mcp.sw.foundation
| Section | Description |
|---|---|
| Installation | npm, Docker, VS Code, Codex |
| Configuration | Environment variables, feature flags |
| Tool Reference | All 44 tools with parameters |
| OAuth Setup | Team authentication with Claude |
| TLS/HTTPS | Production deployment with SSL |
| Customization | Tool descriptions, action filtering |
| CLI Tools | Browse and export tool documentation |
Auto-generated Tool Reference
For the complete tool reference with parameters:
# View locally
yarn list-tools --detail
# Generate documentation
yarn list-tools --export --toc > docs/TOOLS.md
See docs/TOOLS.md for the auto-generated reference.
Docker
# HTTP mode
docker run -e PORT=3002 -e GITLAB_TOKEN=your_token -p 3333:3002 \
ghcr.io/structured-world/gitlab-mcp:latest
# stdio mode
docker run -i --rm -e GITLAB_TOKEN=your_token \
ghcr.io/structured-world/gitlab-mcp:latest
Feature Flags
| Flag | Default | Tools Enabled |
|---|---|---|
USE_LABELS | true | Label management |
USE_MRS | true | Merge requests |
USE_FILES | true | File operations |
USE_VARIABLES | true | CI/CD variables |
USE_WORKITEMS | true | Issues, epics, tasks |
USE_WEBHOOKS | true | Webhook management |
USE_SNIPPETS | true | Code snippets |
USE_INTEGRATIONS | true | 50+ integrations |
USE_GITLAB_WIKI | true | Wiki pages |
USE_MILESTONE | true | Milestones |
USE_PIPELINE | true | Pipelines & CI/CD |
USE_RELEASES | true | Release management |
USE_REFS | true | Branch & tag management |
USE_MEMBERS | true | Team members |
USE_SEARCH | true | Cross-project search |
USE_ITERATIONS | true | Iteration planning (sprints) |
Contributing
See CONTRIBUTING.md for development setup, testing, and PR guidelines.
Support the Project
USDT (TRC-20): TFDsezHa1cBkoeZT5q2T49Wp66K8t2DmdA
License
Apache License 2.0 — see LICENSE for details.
Based on zereight/gitlab-mcp (MIT). See LICENSE.MIT.