MCP Hub βΊ Developer Tools βΊ GitLab MCP Server
GitLab MCP Server MCP server
by zereight Β· io.github.zereight/gitlab-mcp
GitLab MCP server for projects, merge requests, issues, pipelines, wiki, releases, and more.
How to install GitLab MCP Server
npm
claude mcp add gitlab-mcp -- npx -y @zereight/[email protected]
Or add it to your MCP config (Claude Desktop, Cursor, VS Code):
{
"mcpServers": {
"gitlab-mcp": {
"command": "npx",
"args": [
"-y",
"@zereight/[email protected]"
]
}
}
}Environment variables:GITLAB_PERSONAL_ACCESS_TOKEN β GitLab personal access token for local stdio use. A non-empty value overrides GITLAB_PERSONAL_ACCESS_TOKEN_FILE. One of this token, GITLAB_PERSONAL_ACCESS_TOKEN_FILE, GITLAB_JOB_TOKEN, GITLAB_AUTH_COOKIE_PATH, or GITLAB_USE_OAUTH=true must be set. Create a token with the GitLab scopes the tools need, such as api or read_api.GITLAB_PERSONAL_ACCESS_TOKEN_FILE β Path to a file that contains the personal access token. Read once at startup and trimmed. Ignored when GITLAB_PERSONAL_ACCESS_TOKEN or --token is non-empty. A missing, unreadable, or empty file stops startup. Does not replace job token, OAuth, cookie, or remote authorization.GITLAB_JOB_TOKEN β Optional GitLab CI job token to use instead of a personal access token when running inside GitLab CI.GITLAB_AUTH_COOKIE_PATH β Optional path to a GitLab authentication cookie file for cookie-based authentication.GITLAB_USE_OAUTH β Set to true to start with GitLab OAuth instead of a personal access token, job token, or cookie file.GITLAB_OAUTH_CLIENT_ID β GitLab OAuth application ID. When GITLAB_USE_OAUTH=true, set this or GITLAB_OAUTH_TOKEN_SCRIPT.GITLAB_OAUTH_TOKEN_SCRIPT β Command that prints an OAuth access token. When GITLAB_USE_OAUTH=true, set this or GITLAB_OAUTH_CLIENT_ID.GITLAB_API_URL β GitLab API base URL. Use https://gitlab.com/api/v4 for GitLab.com or your self-managed GitLab API URL.GITLAB_ALLOWED_PROJECT_IDS β Optional comma-separated list of GitLab project IDs that this server is allowed to access.GITLAB_PERMISSION_MODE β Tool exposure. Allowed values are readonly, modify, and full. Unset uses full. readonly keeps read-only tools. modify blocks delete and teardown tools.GITLAB_TOOLSETS β Optional comma-separated toolset ids (projects, issues, merge_requests, β¦). Unset keeps the lean core default plus discover_tools. Do not set all unless you accept loading ~all schemas (~73k tokens).GITLAB_TOOLS β Optional comma-separated list of individual tool names to add on top of enabled toolsets.GITLAB_DENIED_TOOLS_REGEX β Optional regular expression used to hide matching tools from the server.GITLAB_TOOL_POLICY_APPROVE β Optional comma-separated list of tool names that require explicit approval before execution.GITLAB_TOOL_POLICY_HIDDEN β Optional comma-separated list of tool names to hide from tools/list.NODE_TLS_REJECT_UNAUTHORIZED β Set to 0 only when you intentionally need to connect to a GitLab instance with invalid or self-signed TLS certificates.GITLAB_CA_CERT_PATH β Optional path to a custom CA certificate file for self-managed GitLab instances.GITLAB_MASKING_ENABLED β Set to true to mask text tool results and returned errors using built-in or configured rules.GITLAB_MASKING_CONFIG β Optional path to a response-masking JSON configuration file.GITLAB_MASKING_POLICY_FILE β Optional protected server-owned JSON file containing managed masking policies.GITLAB_MASKING_WORKSPACE_DIR β Directory used to resolve response-masking configuration paths.
Docker
claude mcp add gitlab-mcp -- docker run -i --rm docker.io/zereight050/gitlab-mcp:2.3.22
Or add it to your MCP config (Claude Desktop, Cursor, VS Code):
{
"mcpServers": {
"gitlab-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"docker.io/zereight050/gitlab-mcp:2.3.22"
]
}
}
}Environment variables:GITLAB_PERSONAL_ACCESS_TOKEN β GitLab personal access token for local stdio use. A non-empty value overrides GITLAB_PERSONAL_ACCESS_TOKEN_FILE. One of this token, GITLAB_PERSONAL_ACCESS_TOKEN_FILE, GITLAB_JOB_TOKEN, GITLAB_AUTH_COOKIE_PATH, or GITLAB_USE_OAUTH=true must be set. Create a token with the GitLab scopes the tools need, such as api or read_api.GITLAB_PERSONAL_ACCESS_TOKEN_FILE β Path to a file that contains the personal access token. Read once at startup and trimmed. Ignored when GITLAB_PERSONAL_ACCESS_TOKEN or --token is non-empty. A missing, unreadable, or empty file stops startup. Does not replace job token, OAuth, cookie, or remote authorization.GITLAB_JOB_TOKEN β Optional GitLab CI job token to use instead of a personal access token when running inside GitLab CI.GITLAB_AUTH_COOKIE_PATH β Optional path to a GitLab authentication cookie file for cookie-based authentication.GITLAB_USE_OAUTH β Set to true to start with GitLab OAuth instead of a personal access token, job token, or cookie file.GITLAB_OAUTH_CLIENT_ID β GitLab OAuth application ID. When GITLAB_USE_OAUTH=true, set this or GITLAB_OAUTH_TOKEN_SCRIPT.GITLAB_OAUTH_TOKEN_SCRIPT β Command that prints an OAuth access token. When GITLAB_USE_OAUTH=true, set this or GITLAB_OAUTH_CLIENT_ID.GITLAB_API_URL β GitLab API base URL. Use https://gitlab.com/api/v4 for GitLab.com or your self-managed GitLab API URL.GITLAB_ALLOWED_PROJECT_IDS β Optional comma-separated list of GitLab project IDs that this server is allowed to access.GITLAB_PERMISSION_MODE β Tool exposure. Allowed values are readonly, modify, and full. Unset uses full. readonly keeps read-only tools. modify blocks delete and teardown tools.GITLAB_TOOLSETS β Optional comma-separated toolset ids (projects, issues, merge_requests, β¦). Unset keeps the lean core default plus discover_tools. Do not set all unless you accept loading ~all schemas (~73k tokens).GITLAB_TOOLS β Optional comma-separated list of individual tool names to add on top of enabled toolsets.GITLAB_DENIED_TOOLS_REGEX β Optional regular expression used to hide matching tools from the server.GITLAB_TOOL_POLICY_APPROVE β Optional comma-separated list of tool names that require explicit approval before execution.GITLAB_TOOL_POLICY_HIDDEN β Optional comma-separated list of tool names to hide from tools/list.NODE_TLS_REJECT_UNAUTHORIZED β Set to 0 only when you intentionally need to connect to a GitLab instance with invalid or self-signed TLS certificates.GITLAB_CA_CERT_PATH β Optional path to a custom CA certificate file for self-managed GitLab instances.GITLAB_MASKING_ENABLED β Set to true to mask text tool results and returned errors using built-in or configured rules.GITLAB_MASKING_CONFIG β Optional path to a response-masking JSON configuration file.GITLAB_MASKING_POLICY_FILE β Optional protected server-owned JSON file containing managed masking policies.GITLAB_MASKING_WORKSPACE_DIR β Directory used to resolve response-masking configuration paths.
Replace placeholders in <angle brackets> with your own values. Review what a server can access before you enable it.
Details
- Version
- 2.3.22
- Published
- 2026-11-05
- Updated
- 2026-11-05
- Namespace
- io.github.zereight
- Source
- zereight/gitlab-mcp
Similar developer tools servers
- Zero to Hundred marketplaceSearch live software, compare listings, and prepare owned drafts.β¦
- inboxmcpConnect inboxes to your AI, with built-in progress and optionalβ¦
- ZiggsAILets your assistant work with the people and agents in your Ziggsβ¦
- dochostPublish, list, update and delete shareable Markdown/HTML pages fromβ¦
- WorldRoleFree remote and overseas job search with sources and eligibilityβ¦
- PathrulePath-scoped project memories, rules and skills for coding agents, onβ¦
- Qase Test ManagementOfficial MCP server for Qase β manage test cases, runs, suites,β¦
- SpeedOf.MeOfficial SpeedOf.Me server - Accurate speed tests via over 200β¦