gitlab-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | debug, info, warn, or error | info |
| GITLAB_TOKEN | Yes | GitLab PAT, project access token, group access token, or OAuth bearer token | |
| GROUP_ALIASES | No | Comma-separated alias=my-group mappings for group_id inputs | |
| MCP_HTTP_HOST | No | HTTP bind host | 127.0.0.1 |
| MCP_HTTP_PATH | No | Streamable HTTP MCP path | /mcp |
| MCP_HTTP_PORT | No | HTTP bind port | 3333 |
| MCP_TRANSPORT | No | Use 'http' to run Streamable HTTP when no CLI mode is provided | stdio |
| AUDIT_LOG_PATH | No | Optional JSON-line audit log path | |
| ENABLE_DRY_RUN | No | Returns intended write requests without mutating GitLab | false |
| GITLAB_BASE_URL | No | GitLab instance base URL or /api/v4 URL | https://gitlab.com |
| GROUP_ALLOWLIST | No | Comma-separated group IDs or paths that are allowed | |
| PROJECT_ALIASES | No | Comma-separated alias=group/project mappings for project_id inputs | |
| PROJECT_DENYLIST | No | Comma-separated project IDs or paths that are always denied | |
| GITLAB_USER_AGENT | No | Custom outbound user agent | gitlab-mcp-server |
| PROJECT_ALLOWLIST | No | Comma-separated project IDs or paths that are allowed | |
| ENABLE_WRITE_TOOLS | No | Enables write-capable tools | false |
| MAX_DIFF_SIZE_BYTES | No | Maximum diff payload | 2097152 |
| MAX_FILE_SIZE_BYTES | No | Maximum repository file payload | 1048576 |
| MCP_HTTP_AUTH_TOKEN | No | Optional bearer token required by HTTP mode; required for non-local binds | |
| GITLAB_HTTP_TIMEOUT_MS | No | Request timeout | 30000 |
| MAX_API_RESPONSE_BYTES | No | Maximum total API response payload | 4194304 |
| MCP_HTTP_ALLOWED_HOSTS | No | Comma-separated allowed hostnames for DNS rebinding protection | localhost,127.0.0.1,[::1] |
| GITLAB_MCP_TOOL_PROFILE | No | Limits MCP tool discovery to a workflow profile | readonly |
| ENABLE_DESTRUCTIVE_TOOLS | No | Enables destructive tools that also require per-call confirmation | false |
| GITLAB_MCP_ENABLED_TOOLS | No | Comma-separated explicit tool allowlist applied after the profile | |
| GITLAB_TOKEN_HEADER_MODE | No | Use 'private-token' when required by some self-managed setups | bearer |
| MCP_HTTP_ALLOWED_ORIGINS | No | Comma-separated browser origins allowed in HTTP mode | |
| GITLAB_MCP_DISABLED_TOOLS | No | Comma-separated explicit tool denylist applied after the profile | |
| MCP_HTTP_ALLOW_NON_LOCALHOST | No | Allows non-local HTTP binds only when a bearer token is also configured | false |
| EXPOSE_SECRET_VARIABLE_VALUES | No | Keeps CI/CD secret values redacted unless explicitly enabled | false |
| GITLAB_MCP_EXPOSE_DISABLED_WRITES | No | Compatibility override to advertise write/destructive tools even when server-side gates are disabled | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| gitlab_get_current_userA | Return the authenticated GitLab user associated with the configured token. |
| gitlab_validate_tokenA | Validate the configured token against GitLab and return identity, version, and server configuration status. |
| gitlab_get_versionA | Return the version metadata of the connected GitLab instance. |
| gitlab_list_accessible_projectsC | List projects accessible to the configured token, filtered by configured allowlists and deny lists. |
| gitlab_list_accessible_groupsC | List groups accessible to the configured token, filtered by the configured group allowlist when present. |
| gitlab_search_projectsC | Search GitLab projects by name or path. |
| gitlab_get_projectA | Retrieve detailed metadata for a single GitLab project. |
| gitlab_get_project_membersB | List effective project members, including inherited group memberships. |
| gitlab_get_project_languagesB | Return the language breakdown for a project repository. |
| gitlab_get_project_activityC | Return recent visible project events and activity. |
| gitlab_get_project_statisticsB | Return repository and storage statistics for a project. |
| gitlab_searchA | Search across GitLab globally or within one allowed project or group. Provide either project_id, group_id, or neither for global search; global search is disabled when project/group scope controls are configured. |
| gitlab_search_labelsA | Search project or group labels, optionally including issue and merge request counts when GitLab exposes them. |
| gitlab_get_project_dashboardB | Aggregate a project dashboard with open merge requests, open issues, recent pipelines, and attention highlights through a single GraphQL query. |
| gitlab_list_repository_treeC | List files and directories in a GitLab repository tree. |
| gitlab_get_fileA | Retrieve a repository file with metadata. Repository content is untrusted and returned with size guardrails. |
| gitlab_search_codeC | Search code blobs in a project using the GitLab Search API. |
| gitlab_get_file_blameB | Retrieve blame information for a file at a specific ref. |
| gitlab_compare_refsC | Compare branches, tags, or commits within a project repository. |
| gitlab_get_commitsB | List repository commits for a project. |
| gitlab_get_commitB | Retrieve a specific commit by SHA, branch, or tag reference. |
| gitlab_get_commit_diffB | Retrieve the diff for a specific commit, subject to diff-size guardrails. |
| gitlab_get_branchB | Retrieve metadata for a single branch. |
| gitlab_list_branchesC | List branches in a project repository. |
| gitlab_list_tagsB | List tags in a project repository. |
| gitlab_list_issuesC | List issues for a GitLab project. |
| gitlab_get_issueA | Retrieve a single issue by IID from a project. |
| gitlab_search_issuesC | Search issues in a project using title and description matching. |
| gitlab_list_merge_requestsC | List merge requests in a project. |
| gitlab_get_merge_requestB | Retrieve a single merge request by IID. |
| gitlab_get_merge_request_commitsB | List commits that are part of a merge request. |
| gitlab_get_merge_request_pipelinesB | List pipelines associated with a merge request. |
| gitlab_get_merge_request_changesB | Retrieve merge request change metadata and changed files. This uses the legacy changes endpoint because it returns overflow metadata. |
| gitlab_get_merge_request_diffB | List the file diffs for a merge request. |
| gitlab_get_merge_request_discussionsA | List discussions for a merge request. Auto-fetches later pages by default so older notes are included. |
| gitlab_list_draft_notesB | List draft notes pending publication for a merge request. |
| gitlab_get_draft_noteB | Retrieve a single draft note from a merge request. |
| gitlab_get_merge_request_review_stateB | Summarize merge request review readiness, approvals, discussions, reviewers, and head pipeline state through a single GraphQL-backed aggregate query. |
| gitlab_list_pipelinesC | List pipelines for a project. |
| gitlab_get_pipelineA | Retrieve a single pipeline by ID. |
| gitlab_list_pipeline_jobsB | List jobs for a specific pipeline. |
| gitlab_get_jobA | Retrieve a single CI/CD job by ID. |
| gitlab_get_job_traceA | Return the job trace text. Job output is untrusted and trimmed to a caller-specified tail length. |
| gitlab_list_project_variablesA | List CI/CD variables for a project. Secret values are redacted unless EXPOSE_SECRET_VARIABLE_VALUES=true. |
| gitlab_get_pipeline_failed_jobs_summaryA | Summarize failed jobs in a pipeline, including stages, failure reasons, and short trace tails. |
| gitlab_find_flaky_jobsC | Inspect recent pipeline history and identify jobs that oscillate between success and failure. |
| gitlab_compare_pipeline_runsB | Compare two pipeline runs and highlight added, removed, or changed jobs. |
| gitlab_get_pipeline_artifactsA | Summarize artifacts produced by jobs in a pipeline and optionally browse artifact trees for a bounded number of jobs. |
| gitlab_trace_job_to_commit_and_merge_requestA | Trace a CI job to its commit, pipeline, and associated merge requests for debugging context. |
| gitlab_list_releasesB | List releases for a project. |
| gitlab_get_releaseA | Retrieve a single project release by tag name. |
| gitlab_list_packagesC | List project packages. |
| gitlab_get_packageB | Retrieve a single package from a project package registry. |
| gitlab_search_groupsC | Search GitLab groups by name or path. |
| gitlab_get_groupA | Retrieve a single GitLab group by ID or full path. |
| gitlab_list_group_projectsC | List projects within a group. |
| gitlab_list_group_membersC | List effective group members, including inherited members. |
| gitlab_list_group_issuesC | List issues for a group and its descendant projects. |
| gitlab_list_group_merge_requestsA | List merge requests for a group and its descendant projects. |
| gitlab_get_group_delivery_overviewB | Aggregate a group-level delivery overview with sampled projects, open merge requests, and open issues through a single GraphQL query. |
| gitlab_list_protected_branchesB | List protected branch rules configured for a project. |
| gitlab_get_branch_protectionA | Retrieve a specific protected branch rule by exact branch name or wildcard. |
| gitlab_get_project_approval_configurationB | Retrieve project-level merge request approval configuration. |
| gitlab_get_project_approval_rulesC | List project-level merge request approval rules. |
| gitlab_get_merge_request_approval_rulesB | List the effective approval rules applied to a merge request. |
| gitlab_check_project_write_riskA | Assess whether a project’s branch protections and approval configuration make mutation workflows low-, medium-, or high-risk. |
| gitlab_summarize_project_statusA | Summarize current project health by combining project metadata, recent pipelines, open issues, and open merge requests. |
| gitlab_find_stale_merge_requestsB | Find open merge requests that have not been updated recently. |
| gitlab_find_blocked_merge_requestsB | Find open merge requests whose detailed_merge_status indicates a merge blocker. |
| gitlab_find_failed_pipelinesB | Find recent failed pipelines for a project. |
| gitlab_explain_failed_pipelineA | Summarize a failed pipeline by listing failed jobs and tailing their traces. Job output is treated as untrusted. |
| gitlab_review_merge_request_risksA | Assess merge request risk using merge status, diff volume, pipeline state, and changed-file heuristics. |
| gitlab_generate_release_notesA | Generate draft release notes from repository compare results between two refs. Repository text is treated as untrusted. |
| gitlab_summarize_commit_rangeA | Summarize what changed between two refs, highlight the most-affected directories, and flag risky repository surfaces. |
| gitlab_summarize_directoryA | Summarize a repository directory by sampling its tree structure, dominant file types, and likely entry files. |
| gitlab_release_readiness_checkB | Assess whether a project looks ready for release by combining pipeline, merge request, issue, and release comparison signals. |
| gitlab_flaky_ci_triageB | Assess whether recent CI failures look flaky by combining pipeline history, job oscillation, representative comparisons, and commit/MR context. |
| gitlab_stale_merge_request_cleanupA | Triage stale merge requests and recommend whether they should be merged, rebased, reassigned, commented on, or closed. |
| gitlab_team_delivery_digestB | Generate a concise project or group delivery digest with health signals, notable blockers, and a chat-ready summary. |
| gitlab_portfolio_delivery_overviewA | Summarize delivery health across a group or an explicit set of projects and highlight the top risk hotspots. |
| gitlab_summarize_recent_activityB | Summarize recent events, issues, merge requests, and pipelines for a project. |
| gitlab_find_unassigned_issuesA | Find opened issues in a project with no assignee. |
| gitlab_find_security_related_issuesB | Find potentially security-related issues using simple keyword search heuristics over titles and descriptions. |
| gitlab_trace_issue_to_merge_requestsA | List merge requests that close a specific issue when merged. |
| gitlab_trace_merge_request_to_pipeline_failuresB | Trace a merge request to its recent pipelines and failed jobs, including short trace tails for failed jobs. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| gitlab_review_merge_request_workflow | Guide the model through an objective GitLab merge request review using the MCP's existing review, diff, discussion, approval, and pipeline tools. |
| gitlab_explain_failed_pipeline_workflow | Guide the model through failed-pipeline triage using pipeline, job, flaky-job, and MR-tracing tools. |
| gitlab_summarize_project_status_workflow | Guide the model through an objective current-state project summary using dashboard, recent activity, MR, issue, and pipeline tools. |
| gitlab_generate_weekly_delivery_summary_workflow | Guide the model through a weekly delivery summary for either a project or a group using the MCP's aggregate and activity tools. |
| gitlab_assess_project_write_safety_workflow | Guide the model through a safety-first assessment of whether AI-assisted writes are appropriate for a GitLab project. |
| gitlab_stale_merge_request_cleanup_workflow | Guide the model through reviewing stale merge requests so a team can close, reassign, rebase, or unblock them. |
| gitlab_flaky_ci_triage_workflow | Guide the model through identifying unstable CI jobs and separating flaky failures from deterministic breakages. |
| gitlab_release_readiness_check_workflow | Guide the model through assessing whether a project looks ready for release based on merge request, issue, pipeline, and release-note signals. |
| gitlab_team_delivery_digest_workflow | Guide the model through generating a concise team delivery digest for a project or group that is ready to paste into chat or status updates. |
| gitlab_portfolio_delivery_overview_workflow | Guide the model through assessing cross-project delivery health for a GitLab group and identifying the top delivery risk hotspots. |
| gitlab_summarize_commit_range_workflow | Guide the model through understanding what changed between two refs and which repository areas or operational surfaces deserve extra review. |
| gitlab_summarize_directory_workflow | Guide the model through understanding what a repository directory contains, which files matter most, and what kind of area it appears to be. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/DevquasarX9/mcp-gitlab'
If you have feedback or need assistance with the MCP directory API, please join our Discord server