gitlab-mcp-lite
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GITLAB_URL | No | GitLab base URL, e.g. `https://gitlab.example.com` (without `/api/v4`). Defaults to the host of the git `origin` remote, over https. | |
| GITLAB_TOKEN | No | Access token alternative to `GITLAB_API_KEY`. Required if `GITLAB_API_KEY` is not set. May also be provided in a `.env` file in the git root or current directory. | |
| GITLAB_API_KEY | No | A personal or project access token with the `api` scope. Required unless `GITLAB_TOKEN` is set. May also be provided in a `.env` file in the git root or current directory. | |
| GITLAB_PROJECT | No | Project path (`group/name`) or numeric id. Defaults to the path of the git `origin` remote; can also be passed per tool call as `project`. | |
| GITLAB_TIMEOUT | No | Request timeout in seconds. | 30 |
| GITLAB_MCP_READ_ONLY | No | Set to `1` to enable read-only mode. Equivalent to the `--read-only` option. | 0 |
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| gitlab_pipeline_createA | Create a pipeline for a branch or tag. dry_run (default true) only checks that the ref exists. |
| gitlab_pipeline_getA | Fetch one pipeline by id (status, ref, sha, web_url). |
| gitlab_pipeline_jobsB | List the jobs of a pipeline (id, name, status, stage, web_url). |
| gitlab_job_playA | Play a manual job. dry_run (default true) only reads the job's status. |
| gitlab_issues_listA | List issues. state: opened (default), closed or all. labels: all must match. Paged with per_page and page. |
| gitlab_issue_getA | Fetch one issue by iid: title, description, state, labels, assignees, milestone, dates. |
| gitlab_issue_commentB | Post a comment (note) on an issue. Append-only. |
| gitlab_mr_listA | List merge requests (state opened by default; opened, closed, merged or all). Paged with per_page and page. |
| gitlab_mr_createB | Create a merge request. dry_run (default true) only checks that both branches exist. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Each tool targets a distinct GitLab resource and action: pipelines, jobs, issues, or merge requests. There is no meaningful overlap between listing jobs, playing a job, creating a pipeline, or creating an MR.
All tools use a clear gitlab_ prefix and snake_case, mostly following resource_action ordering. Minor inconsistencies exist, such as gitlab_pipeline_jobs lacking a list verb and singular/plural mixing (issue_get vs issues_list).
Nine tools is well within the appropriate range for a focused GitLab lite server. Each tool has a clear role and the set does not feel bloated.
The surface covers useful subsets of pipelines, jobs, issues, and merge requests, but has notable gaps: no issue create/update, no MR get/merge, and no pipeline cancel/retry. The 'lite' scope explains some omissions, but agents may still hit dead ends for common workflows.