gitlab-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HOST | No | SSE listen address | |
| MCP_PORT | No | SSE listen port | |
| GITLAB_URL | Yes | GitLab instance base URL | |
| GITLAB_TOKEN | Yes | Personal or project access token | |
| MCP_TRANSPORT | No | Transport type: stdio (default) or sse | stdio |
| GITLAB_DEFAULT_PROJECT | No | Default project path (e.g. group/project) |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| gitlab_get_jobA | Get the current status of a GitLab CI job by ID. Args: job_id: The numeric job ID (visible in the GitLab UI URL). project_path: GitLab project path, e.g. 'group/project'. Defaults to GITLAB_DEFAULT_PROJECT env var if not provided. |
| gitlab_poll_jobA | Poll a GitLab CI job until it reaches a terminal state. Checks every interval_seconds and gives up after timeout_minutes. Returns the final job status summary. Args: job_id: The numeric job ID. project_path: GitLab project path, e.g. 'group/project'. interval_seconds: How often to poll (default 30s). timeout_minutes: Stop polling after this many minutes (default 30). |
| gitlab_get_pipelineA | Get the status and summary of a GitLab CI pipeline. Args: pipeline_id: The numeric pipeline ID. project_path: GitLab project path, e.g. 'group/project'. |
| gitlab_list_pipelinesA | List the most recent pipelines for a project. Args: project_path: GitLab project path, e.g. 'group/project'. limit: Number of pipelines to return (default 10, max 100). |
| gitlab_list_jobsB | List all jobs in a specific pipeline with their statuses. Args: pipeline_id: The numeric pipeline ID. project_path: GitLab project path, e.g. 'group/project'. |
| gitlab_get_job_logA | Fetch the raw log output of a CI job. Args: job_id: The numeric job ID. project_path: GitLab project path, e.g. 'group/project'. tail: Return only the last N lines (default 100, 0 = all lines). |
| gitlab_retry_jobA | Retry a failed or cancelled CI job. Args: job_id: The numeric job ID to retry. project_path: GitLab project path, e.g. 'group/project'. |
| gitlab_cancel_jobA | Cancel a running CI job. Args: job_id: The numeric job ID to cancel. project_path: GitLab project path, e.g. 'group/project'. |
| gitlab_retry_pipelineC | Retry all failed jobs in a pipeline. Args: pipeline_id: The numeric pipeline ID. project_path: GitLab project path, e.g. 'group/project'. |
| gitlab_trigger_pipelineA | Trigger a new CI pipeline on the given branch or tag. Args: ref: Branch name, tag, or SHA to run the pipeline on. project_path: GitLab project path, e.g. 'group/project'. variables: Optional dict of CI variable key/value pairs to inject. |
| gitlab_list_projectsA | List GitLab projects accessible to the authenticated user. Args: search: Optional keyword to filter projects by name. limit: Max projects to return (default 20, max 100). |
| gitlab_get_projectB | Get metadata for a GitLab project. Args: project_path: GitLab project path, e.g. 'group/project'. |
| gitlab_list_branchesA | List branches in a project. Args: project_path: GitLab project path, e.g. 'group/project'. search: Optional keyword to filter branch names. limit: Max branches to return (default 20, max 100). |
| gitlab_get_fileA | Retrieve the contents of a file from the repository. Args: file_path: Path to the file within the repo, e.g. 'src/main.py'. ref: Branch, tag, or commit SHA (default 'HEAD'). project_path: GitLab project path, e.g. 'group/project'. |
| gitlab_list_merge_requestsA | List merge requests for a project. Args: project_path: GitLab project path, e.g. 'group/project'. state: Filter by state: 'opened', 'closed', 'merged', or 'all' (default 'opened'). limit: Max MRs to return (default 20, max 100). |
| gitlab_get_merge_requestA | Get details of a merge request by its project-level IID. Args: mr_iid: The merge request IID (shown in the GitLab UI as !123). project_path: GitLab project path, e.g. 'group/project'. |
| gitlab_create_merge_requestB | Create a new merge request. Args: title: MR title. source_branch: Branch to merge from. target_branch: Branch to merge into. project_path: GitLab project path, e.g. 'group/project'. description: Optional MR description / body text. remove_source_branch: Delete source branch after merge (default False). squash: Squash commits on merge (default False). |
| gitlab_add_mr_noteB | Add a comment to a merge request. Args: mr_iid: The merge request IID (e.g. 42 for !42). body: Comment text (markdown supported). project_path: GitLab project path, e.g. 'group/project'. |
| gitlab_list_commitsA | List commits on a branch or ref. Args: project_path: GitLab project path, e.g. 'group/project'. ref: Branch, tag, or commit SHA (default 'HEAD'). limit: Max commits to return (default 20, max 100). |
| gitlab_get_commitB | Get details and diff stats for a specific commit. Args: sha: Full or short commit SHA. project_path: GitLab project path, e.g. 'group/project'. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
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/LeonRLewis/gitlab-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server