What is the GitLab MCP Server MCP server?
Manage GitLab projects, issues, merge requests, pipelines, repositories, and admin workflows.
How to install GitLab MCP Server
Copy-paste configuration for popular MCP clients.
GITLAB_URLGitLab instance URL (default: https://gitlab.com; set for self-managed instances)
GITLAB_TOKENrequiredsecretGitLab Personal Access Token (glpat-...)
GITLAB_SKIP_TLS_VERIFYSkip TLS certificate verification for self-signed certs (default: false)
TOOL_SURFACETool catalog selector: dynamic, meta, or individual (default: dynamic)
CAPABILITY_SURFACEResource and prompt catalog selector: full or minimal (default: full)
META_PARAM_SCHEMAMeta-tool input schema detail: opaque, compact, or full (default: opaque)
GITLAB_TIERGitLab edition tier: free/ce, premium, or ultimate. When unset, detected from GET /license (fallback free). Gates Premium/Ultimate tools; GitLab.com Ultimate also exposes Orbit Knowledge Graph tools. Replaces the deprecated GITLAB_ENTERPRISE boolean
GITLAB_READ_ONLYRead-only mode: disables all mutating tools (default: false)
GITLAB_SAFE_MODESafe mode: intercepts mutating tools and returns a JSON preview instead of executing (default: false)
EMBEDDED_RESOURCESAppend EmbeddedResource content blocks (clickable links to MCP resources) to get_* tool results (default: true)
EXCLUDE_TOOLSComma-separated tool names to exclude from registration (e.g. gitlab_admin,gitlab_runner)
GITLAB_IGNORE_SCOPESSkip Personal Access Token scope detection and register all tools regardless of token permissions (default: false)
UPLOAD_MAX_FILE_SIZEMaximum attachment upload size in bytes or human-readable (e.g. 2GB). Default: 2147483648 (2 GB)
GITLAB_MCP_ALLOWED_IMPORT_DIRSExtra OS path-list-separated directories allowed for local GitLab import archives
RATE_LIMIT_RPSPer-server tools/call rate limit in requests per second; 0 disables it (default: 0)
RATE_LIMIT_BURSTToken-bucket burst size when RATE_LIMIT_RPS is greater than 0 (default: 40)
LOG_LEVELLogging verbosity (default: info)
AUTO_UPDATEAuto-update mode: true (auto-apply), check (log-only), false (disabled). Default: true
AUTO_UPDATE_REPOGitHub repository slug for release assets (default: jmrplens/gitlab-mcp-server)
AUTO_UPDATE_INTERVALPeriodic update check interval in HTTP mode (default: 1h)
AUTO_UPDATE_TIMEOUTStartup/background update timeout, range 5s-10m (default: 60s)
PRIVATE-TOKENrequiredsecretGitLab Personal Access Token (glpat-...). Alternatively, send Authorization: Bearer <token>.
GITLAB-URLrequiredTarget GitLab instance URL (e.g. https://gitlab.com). Required in the public hosted multi-tenant instance.
{
"mcpServers": {
"gitlab-mcp-server": {
"command": "https://github.com/jmrplens/gitlab-mcp-server/releases/download/v2.3.0/gitlab-mcp-server-linux-amd64",
"args": [],
"env": {
"GITLAB_URL": "<YOUR_GITLAB_URL>",
"GITLAB_TOKEN": "<YOUR_GITLAB_TOKEN>",
"GITLAB_SKIP_TLS_VERIFY": "<YOUR_GITLAB_SKIP_TLS_VERIFY>",
"TOOL_SURFACE": "<YOUR_TOOL_SURFACE>",
"CAPABILITY_SURFACE": "<YOUR_CAPABILITY_SURFACE>",
"META_PARAM_SCHEMA": "<YOUR_META_PARAM_SCHEMA>",
"GITLAB_TIER": "<YOUR_GITLAB_TIER>",
"GITLAB_READ_ONLY": "<YOUR_GITLAB_READ_ONLY>",
"GITLAB_SAFE_MODE": "<YOUR_GITLAB_SAFE_MODE>",
"EMBEDDED_RESOURCES": "<YOUR_EMBEDDED_RESOURCES>",
"EXCLUDE_TOOLS": "<YOUR_EXCLUDE_TOOLS>",
"GITLAB_IGNORE_SCOPES": "<YOUR_GITLAB_IGNORE_SCOPES>",
"UPLOAD_MAX_FILE_SIZE": "<YOUR_UPLOAD_MAX_FILE_SIZE>",
"GITLAB_MCP_ALLOWED_IMPORT_DIRS": "<YOUR_GITLAB_MCP_ALLOWED_IMPORT_DIRS>",
"RATE_LIMIT_RPS": "<YOUR_RATE_LIMIT_RPS>",
"RATE_LIMIT_BURST": "<YOUR_RATE_LIMIT_BURST>",
"LOG_LEVEL": "<YOUR_LOG_LEVEL>",
"AUTO_UPDATE": "<YOUR_AUTO_UPDATE>",
"AUTO_UPDATE_REPO": "<YOUR_AUTO_UPDATE_REPO>",
"AUTO_UPDATE_INTERVAL": "<YOUR_AUTO_UPDATE_INTERVAL>",
"AUTO_UPDATE_TIMEOUT": "<YOUR_AUTO_UPDATE_TIMEOUT>",
"PRIVATE-TOKEN": "<YOUR_PRIVATE_TOKEN>",
"GITLAB-URL": "<YOUR_GITLAB_URL>"
}
}
}
}{
"mcpServers": {
"gitlab-mcp-server": {
"command": "https://github.com/jmrplens/gitlab-mcp-server/releases/download/v2.3.0/gitlab-mcp-server-linux-amd64",
"args": [],
"env": {
"GITLAB_URL": "<YOUR_GITLAB_URL>",
"GITLAB_TOKEN": "<YOUR_GITLAB_TOKEN>",
"GITLAB_SKIP_TLS_VERIFY": "<YOUR_GITLAB_SKIP_TLS_VERIFY>",
"TOOL_SURFACE": "<YOUR_TOOL_SURFACE>",
"CAPABILITY_SURFACE": "<YOUR_CAPABILITY_SURFACE>",
"META_PARAM_SCHEMA": "<YOUR_META_PARAM_SCHEMA>",
"GITLAB_TIER": "<YOUR_GITLAB_TIER>",
"GITLAB_READ_ONLY": "<YOUR_GITLAB_READ_ONLY>",
"GITLAB_SAFE_MODE": "<YOUR_GITLAB_SAFE_MODE>",
"EMBEDDED_RESOURCES": "<YOUR_EMBEDDED_RESOURCES>",
"EXCLUDE_TOOLS": "<YOUR_EXCLUDE_TOOLS>",
"GITLAB_IGNORE_SCOPES": "<YOUR_GITLAB_IGNORE_SCOPES>",
"UPLOAD_MAX_FILE_SIZE": "<YOUR_UPLOAD_MAX_FILE_SIZE>",
"GITLAB_MCP_ALLOWED_IMPORT_DIRS": "<YOUR_GITLAB_MCP_ALLOWED_IMPORT_DIRS>",
"RATE_LIMIT_RPS": "<YOUR_RATE_LIMIT_RPS>",
"RATE_LIMIT_BURST": "<YOUR_RATE_LIMIT_BURST>",
"LOG_LEVEL": "<YOUR_LOG_LEVEL>",
"AUTO_UPDATE": "<YOUR_AUTO_UPDATE>",
"AUTO_UPDATE_REPO": "<YOUR_AUTO_UPDATE_REPO>",
"AUTO_UPDATE_INTERVAL": "<YOUR_AUTO_UPDATE_INTERVAL>",
"AUTO_UPDATE_TIMEOUT": "<YOUR_AUTO_UPDATE_TIMEOUT>",
"PRIVATE-TOKEN": "<YOUR_PRIVATE_TOKEN>",
"GITLAB-URL": "<YOUR_GITLAB_URL>"
}
}
}
}{
"mcpServers": {
"gitlab-mcp-server": {
"command": "https://github.com/jmrplens/gitlab-mcp-server/releases/download/v2.3.0/gitlab-mcp-server-linux-amd64",
"args": [],
"env": {
"GITLAB_URL": "<YOUR_GITLAB_URL>",
"GITLAB_TOKEN": "<YOUR_GITLAB_TOKEN>",
"GITLAB_SKIP_TLS_VERIFY": "<YOUR_GITLAB_SKIP_TLS_VERIFY>",
"TOOL_SURFACE": "<YOUR_TOOL_SURFACE>",
"CAPABILITY_SURFACE": "<YOUR_CAPABILITY_SURFACE>",
"META_PARAM_SCHEMA": "<YOUR_META_PARAM_SCHEMA>",
"GITLAB_TIER": "<YOUR_GITLAB_TIER>",
"GITLAB_READ_ONLY": "<YOUR_GITLAB_READ_ONLY>",
"GITLAB_SAFE_MODE": "<YOUR_GITLAB_SAFE_MODE>",
"EMBEDDED_RESOURCES": "<YOUR_EMBEDDED_RESOURCES>",
"EXCLUDE_TOOLS": "<YOUR_EXCLUDE_TOOLS>",
"GITLAB_IGNORE_SCOPES": "<YOUR_GITLAB_IGNORE_SCOPES>",
"UPLOAD_MAX_FILE_SIZE": "<YOUR_UPLOAD_MAX_FILE_SIZE>",
"GITLAB_MCP_ALLOWED_IMPORT_DIRS": "<YOUR_GITLAB_MCP_ALLOWED_IMPORT_DIRS>",
"RATE_LIMIT_RPS": "<YOUR_RATE_LIMIT_RPS>",
"RATE_LIMIT_BURST": "<YOUR_RATE_LIMIT_BURST>",
"LOG_LEVEL": "<YOUR_LOG_LEVEL>",
"AUTO_UPDATE": "<YOUR_AUTO_UPDATE>",
"AUTO_UPDATE_REPO": "<YOUR_AUTO_UPDATE_REPO>",
"AUTO_UPDATE_INTERVAL": "<YOUR_AUTO_UPDATE_INTERVAL>",
"AUTO_UPDATE_TIMEOUT": "<YOUR_AUTO_UPDATE_TIMEOUT>",
"PRIVATE-TOKEN": "<YOUR_PRIVATE_TOKEN>",
"GITLAB-URL": "<YOUR_GITLAB_URL>"
}
}
}
}{
"servers": {
"gitlab-mcp-server": {
"type": "stdio",
"command": "https://github.com/jmrplens/gitlab-mcp-server/releases/download/v2.3.0/gitlab-mcp-server-linux-amd64",
"args": [],
"env": {
"GITLAB_URL": "<YOUR_GITLAB_URL>",
"GITLAB_TOKEN": "<YOUR_GITLAB_TOKEN>",
"GITLAB_SKIP_TLS_VERIFY": "<YOUR_GITLAB_SKIP_TLS_VERIFY>",
"TOOL_SURFACE": "<YOUR_TOOL_SURFACE>",
"CAPABILITY_SURFACE": "<YOUR_CAPABILITY_SURFACE>",
"META_PARAM_SCHEMA": "<YOUR_META_PARAM_SCHEMA>",
"GITLAB_TIER": "<YOUR_GITLAB_TIER>",
"GITLAB_READ_ONLY": "<YOUR_GITLAB_READ_ONLY>",
"GITLAB_SAFE_MODE": "<YOUR_GITLAB_SAFE_MODE>",
"EMBEDDED_RESOURCES": "<YOUR_EMBEDDED_RESOURCES>",
"EXCLUDE_TOOLS": "<YOUR_EXCLUDE_TOOLS>",
"GITLAB_IGNORE_SCOPES": "<YOUR_GITLAB_IGNORE_SCOPES>",
"UPLOAD_MAX_FILE_SIZE": "<YOUR_UPLOAD_MAX_FILE_SIZE>",
"GITLAB_MCP_ALLOWED_IMPORT_DIRS": "<YOUR_GITLAB_MCP_ALLOWED_IMPORT_DIRS>",
"RATE_LIMIT_RPS": "<YOUR_RATE_LIMIT_RPS>",
"RATE_LIMIT_BURST": "<YOUR_RATE_LIMIT_BURST>",
"LOG_LEVEL": "<YOUR_LOG_LEVEL>",
"AUTO_UPDATE": "<YOUR_AUTO_UPDATE>",
"AUTO_UPDATE_REPO": "<YOUR_AUTO_UPDATE_REPO>",
"AUTO_UPDATE_INTERVAL": "<YOUR_AUTO_UPDATE_INTERVAL>",
"AUTO_UPDATE_TIMEOUT": "<YOUR_AUTO_UPDATE_TIMEOUT>",
"PRIVATE-TOKEN": "<YOUR_PRIVATE_TOKEN>",
"GITLAB-URL": "<YOUR_GITLAB_URL>"
}
}
}
}claude mcp add gitlab-mcp-server --env GITLAB_URL=<YOUR_GITLAB_URL> --env GITLAB_TOKEN=<YOUR_GITLAB_TOKEN> --env GITLAB_SKIP_TLS_VERIFY=<YOUR_GITLAB_SKIP_TLS_VERIFY> --env TOOL_SURFACE=<YOUR_TOOL_SURFACE> --env CAPABILITY_SURFACE=<YOUR_CAPABILITY_SURFACE> --env META_PARAM_SCHEMA=<YOUR_META_PARAM_SCHEMA> --env GITLAB_TIER=<YOUR_GITLAB_TIER> --env GITLAB_READ_ONLY=<YOUR_GITLAB_READ_ONLY> --env GITLAB_SAFE_MODE=<YOUR_GITLAB_SAFE_MODE> --env EMBEDDED_RESOURCES=<YOUR_EMBEDDED_RESOURCES> --env EXCLUDE_TOOLS=<YOUR_EXCLUDE_TOOLS> --env GITLAB_IGNORE_SCOPES=<YOUR_GITLAB_IGNORE_SCOPES> --env UPLOAD_MAX_FILE_SIZE=<YOUR_UPLOAD_MAX_FILE_SIZE> --env GITLAB_MCP_ALLOWED_IMPORT_DIRS=<YOUR_GITLAB_MCP_ALLOWED_IMPORT_DIRS> --env RATE_LIMIT_RPS=<YOUR_RATE_LIMIT_RPS> --env RATE_LIMIT_BURST=<YOUR_RATE_LIMIT_BURST> --env LOG_LEVEL=<YOUR_LOG_LEVEL> --env AUTO_UPDATE=<YOUR_AUTO_UPDATE> --env AUTO_UPDATE_REPO=<YOUR_AUTO_UPDATE_REPO> --env AUTO_UPDATE_INTERVAL=<YOUR_AUTO_UPDATE_INTERVAL> --env AUTO_UPDATE_TIMEOUT=<YOUR_AUTO_UPDATE_TIMEOUT> --env PRIVATE-TOKEN=<YOUR_PRIVATE_TOKEN> --env GITLAB-URL=<YOUR_GITLAB_URL> -- https://github.com/jmrplens/gitlab-mcp-server/releases/download/v2.3.0/gitlab-mcp-server-linux-amd64Related MCP servers
Scrapling MCP Server
Give your AI agent stealth web scraping with Cloudflare bypass and CSS selection, powered by Scrapling.
Chrome DevTools MCP
Give your AI coding agent full control of a live Chrome browser for automation, debugging, and performance analysis.
com.puter/mcp-server
Let AI agents manage your Puter files, websites, and serverless workers over MCP.
Browser automation for AI agents via MCP, powering ByteDance's Agent TARS hybrid GUI/DOM browser control.
Run arbitrary shell commands from an MCP-connected AI agent.
Filesystem access MCP server from ByteDance's UI-TARS/Agent TARS ecosystem.