gitlab-pipelines
Manages GitLab pipelines. Use for listing, running pipelines. Triggers: CI triggers.
SKILL.mdgitlab_api/skills/gitlab-pipelines/SKILL.md
GitHubGitLab Pipelines
Domain-typed review of GitLab CI/CD Pipelines — pipeline results at project, group, or instance scope, the jobs within a pipeline, and per-job logs. Also triggers a pipeline on a ref.
When to use
- Review pipeline results for a project / ref (is
maingreen?). - Review CI results across a group / organization (enumerate projects, then their pipelines).
- Fetch a single pipeline by
pipeline_id, list its jobs, and read a job log. - Trigger (
run) a new pipeline on a branch or tag.
When NOT to use
- Gating one MR's merge on its pipeline →
gitlab-merge-request-review(it reads the MR's pipeline/jobs/logs directly). - Issues, epics, milestones →
gitlab-issues. - Branch/commit/tag/project reads →
gitlab-repositories.
Prerequisites & environment
Connect via the mcp-client skill against the gitlab-api MCP server.
| Variable | Required | Notes |
|---|---|---|
GITLAB_URL |
✅ | GitLab instance base URL |
GITLAB_TOKEN |
✅ | Access token with api scope (needed to run) |
GITLAB_SSL_VERIFY |
optional | TLS verification toggle |
Full env/tag matrix: the mcp-client reference agent-tools/mcp-client/references/gitlab-api.md.
MCP_TOOL_MODE (condensed|verbose|both) selects the condensed vs. one-to-one verbose tools.
Tools & actions
| Condensed tool | Actions |
|---|---|
gitlab_groups |
get_projects (enumerate a group's projects) |
gitlab_pipelines |
get, run |
gitlab_jobs |
get_pipeline_jobs, get_project_jobs, get_log, retry, cancel |
Key parameters
- Scope — project:
gitlab_pipelines getwithproject_id. group/org:gitlab_groups get_projects(group_id) thengitlab_pipelines getper project. instance: iterate the projects you care about. gitlab_pipelines get:project_id(required);pipeline_idfor a single pipeline; filtersref,status,order_by,sort,per_page.gitlab_jobs get_pipeline_jobs:project_id+pipeline_id— the jobs of one pipeline.gitlab_jobs get_log:project_id+job_id— the job trace/log.gitlab_pipelines run:project_id+ref; optionalvariablesobject.
Recipes (params_json)
Review recent pipelines for a ref, newest first:
{"project_id":"platform/agent-connector-sdk","ref":"main","order_by":"id","sort":"desc","per_page":10}
Enumerate a group's projects to sweep CI across the org:
{"group_id":"platform","per_page":100}
Failed pipelines for a project:
{"project_id":"platform/agent-connector-sdk","status":"failed","per_page":20}
Jobs of a pipeline:
{"project_id":"platform/agent-connector-sdk","pipeline_id":123456}
Read a job's log:
{"project_id":"platform/agent-connector-sdk","job_id":554433}
Trigger a pipeline on a branch with a variable:
{"project_id":"platform/agent-connector-sdk","ref":"main","variables":{"DEPLOY":"true"}}
Gotchas
params_jsonis a string of JSON, not an object.- A group/instance sweep fans out one
gitlab_pipelines getper project — there is no single group-wide pipelines endpoint; capper_pageand filter bystatus=failed. - A pipeline
status=successdoesn't imply all jobs ran — check the jobs formanual/skippedstages when gating a release. runneeds a token withapiscope and pipeline-trigger permission on the project.get_logreturns the full job trace — pull one failing job at a time.
Related
- Per-MR CI gating:
gitlab-merge-request-review. - KG mapping: pipelines relate to
:Projectnodes viagitlab_api.kg_ingest.