Server data from the Official MCP Registry
MCP server exposing 1006 GitLab REST API operations as tools for AI assistants.
MCP server exposing 1006 GitLab REST API operations as tools for AI assistants.
Remote endpoints: streamable-http: https://{host}:{port}/mcp
Valid MCP server (1 strong, 1 medium validity signals). No known CVEs in dependencies. Imported from the Official MCP Registry.
Endpoint verified · Open access · 1 issue found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: GITLAB_URL
Environment variable: GITLAB_TOKEN
Environment variable: GITLAB_SKIP_TLS_VERIFY
Environment variable: META_TOOLS
Environment variable: GITLAB_ENTERPRISE
Environment variable: GITLAB_READ_ONLY
Environment variable: UPLOAD_MAX_FILE_SIZE
Environment variable: AUTO_UPDATE
Environment variable: AUTO_UPDATE_REPO
Environment variable: AUTO_UPDATE_INTERVAL
Remote Plugin
No local installation needed. Your AI client connects to the remote endpoint directly.
Add this to your MCP configuration to connect:
{
"mcpServers": {
"io-github-jmrplens-gitlab-mcp-server": {
"env": {
"GITLAB_URL": "your-gitlab-url-here",
"META_TOOLS": "your-meta-tools-here",
"AUTO_UPDATE": "your-auto-update-here",
"GITLAB_TOKEN": "your-gitlab-token-here",
"AUTO_UPDATE_REPO": "your-auto-update-repo-here",
"GITLAB_READ_ONLY": "your-gitlab-read-only-here",
"GITLAB_ENTERPRISE": "your-gitlab-enterprise-here",
"AUTO_UPDATE_INTERVAL": "your-auto-update-interval-here",
"UPLOAD_MAX_FILE_SIZE": "your-upload-max-file-size-here",
"GITLAB_SKIP_TLS_VERIFY": "your-gitlab-skip-tls-verify-here"
},
"url": "https://{host}:{port}/mcp"
}
}
}From the project's GitHub README.
A Model Context Protocol (MCP) server that exposes GitLab operations as MCP tools, resources, and prompts for AI assistants. Written in Go — single static binary per platform.
GITLAB_ENTERPRISE=true) — domain-grouped dispatchers that reduce token overhead for LLMs (optional, enabled by default). 15 additional enterprise meta-tools available for Premium/Ultimate featuresOnce connected, just talk to your AI assistant in natural language:
"List my GitLab projects" "Show me open merge requests in my-app" "Create a merge request from feature-login to main" "Review merge request !15 — is it safe to merge?" "List open issues assigned to me" "What's the pipeline status for project 42?" "Why did the last pipeline fail?" "Generate release notes from v1.0 to v2.0"
The server handles the translation from natural language to GitLab API calls. You do not need to know project IDs, API endpoints, or JSON syntax — the AI assistant figures that out for you. See Usage Examples for more scenarios.
Download the latest binary for your platform from GitHub Releases and make it executable:
chmod +x gitlab-mcp-server-* # Linux/macOS only
Recommended: Run the built-in setup wizard — it configures your GitLab connection and MCP client in one step:
./gitlab-mcp-server --setup
Tip: The wizard supports Web UI, Terminal UI, and plain CLI modes. On Windows, double-click the
.exeto launch the wizard automatically.
Or configure manually — expand your client below:
Add to .vscode/mcp.json in your workspace:
{
"servers": {
"gitlab": {
"type": "stdio",
"command": "/path/to/gitlab-mcp-server",
"env": {
"GITLAB_URL": "https://gitlab.example.com",
"GITLAB_TOKEN": "glpat-xxxxxxxxxxxxxxxxxxxx"
}
}
}
}
Add to claude_desktop_config.json:
{
"mcpServers": {
"gitlab": {
"command": "/path/to/gitlab-mcp-server",
"env": {
"GITLAB_URL": "https://gitlab.example.com",
"GITLAB_TOKEN": "glpat-xxxxxxxxxxxxxxxxxxxx"
}
}
}
}
Add to .cursor/mcp.json:
{
"mcpServers": {
"gitlab": {
"command": "/path/to/gitlab-mcp-server",
"env": {
"GITLAB_URL": "https://gitlab.example.com",
"GITLAB_TOKEN": "glpat-xxxxxxxxxxxxxxxxxxxx"
}
}
}
}
claude mcp add gitlab /path/to/gitlab-mcp-server \
-e GITLAB_URL=https://gitlab.example.com \
-e GITLAB_TOKEN=glpat-xxxxxxxxxxxxxxxxxxxx
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"gitlab": {
"command": "/path/to/gitlab-mcp-server",
"env": {
"GITLAB_URL": "https://gitlab.example.com",
"GITLAB_TOKEN": "glpat-xxxxxxxxxxxxxxxxxxxx"
}
}
}
}
Add to the MCP configuration in Settings → Tools → AI Assistant → MCP Servers:
{
"servers": {
"gitlab": {
"type": "stdio",
"command": "/path/to/gitlab-mcp-server",
"env": {
"GITLAB_URL": "https://gitlab.example.com",
"GITLAB_TOKEN": "glpat-xxxxxxxxxxxxxxxxxxxx"
}
}
}
}
Add to Zed settings (settings.json):
{
"context_servers": {
"gitlab": {
"command": "/path/to/gitlab-mcp-server",
"args": [],
"env": {
"GITLAB_URL": "https://gitlab.example.com",
"GITLAB_TOKEN": "glpat-xxxxxxxxxxxxxxxxxxxx"
}
}
}
}
Add to .kiro/settings/mcp.json:
{
"mcpServers": {
"gitlab": {
"command": "/path/to/gitlab-mcp-server",
"args": [],
"env": {
"GITLAB_URL": "https://gitlab.example.com",
"GITLAB_TOKEN": "glpat-xxxxxxxxxxxxxxxxxxxx"
}
}
}
}
Open your AI client and try:
"List my GitLab projects"
See the Getting Started guide for detailed setup instructions.
Two registration modes, controlled by the META_TOOLS environment variable:
| Mode | Tools | Description |
|---|---|---|
| Meta-Tools (default) | 42 base / 57 enterprise | Domain-grouped dispatchers with action parameter. Lower token usage. |
| Individual | 1006 | Every GitLab operation as a separate MCP tool. |
Meta-tool summary:
| Meta-Tool | Domain |
|---|---|
gitlab_project | Projects, uploads, hooks, badges, boards, import/export, pages |
gitlab_branch | Branches, protected branches |
gitlab_tag | Tags, protected tags |
gitlab_release | Releases, release links |
gitlab_merge_request | MR CRUD, approvals, context-commits |
gitlab_mr_review | MR notes, discussions, drafts, changes |
gitlab_repository | Repository tree/compare, commit discussions, files |
gitlab_group | Groups, members, labels, milestones, boards, uploads |
gitlab_issue | Issues, notes, discussions, links, statistics, emoji, events |
gitlab_pipeline | Pipelines, pipeline triggers |
gitlab_job | Jobs, job token scope |
gitlab_user | Users, events, notifications, keys, namespaces |
gitlab_wiki | Project/group wikis |
gitlab_environment | Environments, protected envs, freeze periods |
gitlab_deployment | Deployments |
gitlab_ci_variable | CI/CD variables (project, group, instance) |
gitlab_search | Global, project, group search |
Plus 11 sampling tools, 4 elicitation tools, and additional domain tools. See Meta-Tools Reference for the complete list with actions and examples.
| MCP Capability | Support |
|---|---|
| Tools | 1006 individual / 42–57 meta |
| Resources | 24 (static + templates) |
| Prompts | 38 templates |
| Completions | Project, user, group, branch, tag |
| Logging | Structured (text/JSON) + MCP notifications |
| Progress | Tool execution progress reporting |
| Sampling | 11 LLM-powered analysis tools |
| Elicitation | 4 interactive creation wizards |
| Roots | Workspace root tracking |
Tested with: VS Code + GitHub Copilot, Claude Desktop, Claude Code, Cursor, Windsurf, JetBrains IDEs, Zed, Kiro.
See the full Compatibility Matrix for detailed client support.
Full documentation is available at jmrplens.github.io/gitlab-mcp-server.
| Document | Description |
|---|---|
| Getting Started | Download, setup wizard, per-client configuration |
| Configuration | Environment variables, transport modes, TLS |
| Tools Reference | All 1006 individual tools with input/output schemas |
| Meta-Tools | 42/57 domain meta-tools with action dispatching |
| Resources | All 24 resources with URI templates |
| Prompts | All 38 prompts with arguments and output format |
| Auto-Update | Self-update mechanism, modes, and release format |
| Security | Security model, token scopes, input validation |
| Architecture | System architecture, component design, data flow |
| Development Guide | Building, testing, CI/CD, contributing |
| Component | Technology |
|---|---|
| Language | Go 1.26+ |
| MCP SDK | github.com/modelcontextprotocol/go-sdk v1.5.0 |
| GitLab Client | gitlab.com/gitlab-org/api/client-go/v2 v2.20.1 |
| Transport | stdio (default), HTTP (Streamable HTTP) |
git clone https://github.com/jmrplens/gitlab-mcp-server.git
cd gitlab-mcp-server
make build
See the Development Guide for cross-compilation and contributing guidelines.
docker pull ghcr.io/jmrplens/gitlab-mcp-server:latest
docker run -d --name gitlab-mcp-server -p 8080:8080 \
-e GITLAB_URL=https://gitlab.example.com \
-e GITLAB_SKIP_TLS_VERIFY=true \
ghcr.io/jmrplens/gitlab-mcp-server:latest
Clients authenticate via PRIVATE-TOKEN or Authorization: Bearer headers. See HTTP Server Mode and Docker documentation for Docker Compose and configuration options.
Yes. Set GITLAB_URL to your instance URL. Self-signed TLS certificates are supported via GITLAB_SKIP_TLS_VERIFY=true.
The server runs locally on your machine (stdio mode) or on your own infrastructure (HTTP mode). No data is sent to third parties — all API calls go directly to your GitLab instance. See SECURITY.md for details.
Yes. Set GITLAB_READ_ONLY=true to disable all mutating tools (create, update, delete). Only read operations will be available.
Alternatively, set GITLAB_SAFE_MODE=true for a dry-run mode: mutating tools remain visible but return a structured JSON preview instead of executing. Useful for auditing, training, or reviewing what an AI assistant would do.
Both Community Edition (CE) and Enterprise Edition (EE). Set GITLAB_ENTERPRISE=true to enable 15 additional tools for Premium/Ultimate features (DORA metrics, vulnerabilities, compliance, etc.).
The server includes retry logic with backoff for GitLab API rate limits. Errors are classified as transient (retryable) or permanent, with actionable hints in error messages.
Any MCP-compatible client: VS Code + GitHub Copilot, Claude Desktop, Cursor, Claude Code, Windsurf, JetBrains IDEs, Zed, Kiro, and others. The built-in setup wizard can auto-configure most clients.
See CONTRIBUTING.md for development guidelines, branch naming, commit conventions, and pull request process.
See SECURITY.md for the security policy and vulnerability reporting.
See CODE_OF_CONDUCT.md. This project follows the Contributor Covenant v2.1.
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.