Pipeline
gitlab_pipelineCreate, retry, cancel, or delete GitLab CI/CD pipelines; manage trigger tokens, resource groups, and schedules; retrieve variables and JUnit test reports.
Instructions
Example: {"action":"cancel","params":{...}} For the params schema of any action, read the MCP resource gitlab://schema/meta/gitlab_pipeline/.
Manage GitLab CI/CD pipelines plus trigger tokens, resource groups (mutual-exclusion locks), JUnit test reports, and pipeline schedules. Delete permanently removes a pipeline and all its jobs. When to use: pipeline CRUD on a project, retry/cancel a run, fetch CI variables and JUnit test reports, manage trigger tokens, resource groups (mutual-exclusion locks), scheduled pipelines and their variables. NOT for: jobs, logs, artifacts, manual play actions (use gitlab_job), MR-specific pipelines (use gitlab_merge_request 'pipelines' / 'create_pipeline'), CI lint or includes (use gitlab_template).
Behavior:
Idempotent reads: list / latest / get / variables / test_report / test_report_summary / trigger_list / trigger_get / resource_group_list / resource_group_get / resource_group_upcoming_jobs / schedule_list / schedule_get / schedule_list_triggered_pipelines.
create / schedule_run / trigger_run start a NEW run on every call (NON-idempotent — produce a fresh pipeline_id). retry re-queues failed/canceled jobs on the existing pipeline (same pipeline_id; continue using it for subsequent get/wait calls). cancel is idempotent (no-op once final). update_metadata / trigger_update / resource_group_edit / schedule_update / schedule_edit_variable / schedule_take_ownership are idempotent (same input → same state).
Side effects: create / retry / schedule_run / trigger_run queue runners, consume CI minutes, may trigger downstream pipelines, deployments and webhooks. trigger_create returns a secret token visible only ONCE — store it immediately. wait blocks server-side until terminal state or timeout.
Destructive: delete permanently removes the pipeline and all its jobs, artifacts, logs and traces (irreversible). trigger_delete / schedule_delete / schedule_delete_variable are irreversible.
Returns:
list / latest / variables / test_report / test_report_summary / trigger_list / resource_group_list / resource_group_upcoming_jobs / schedule_list / schedule_list_triggered_pipelines: array(s) or aggregated payloads with pagination where applicable.
get / create / cancel / retry / update_metadata / wait / trigger_get / trigger_create / trigger_update / trigger_run / resource_group_get / resource_group_edit / schedule_get / schedule_create / schedule_update / schedule_run / schedule_take_ownership / schedule_create_variable / schedule_edit_variable: pipeline / trigger / resource group / schedule object.
delete / trigger_delete / schedule_delete / schedule_delete_variable: {success, message}. Errors: 404 (hint: pipeline_id and trigger/schedule IDs are project-scoped), 403 (hint: requires Maintainer+ to delete pipelines or manage triggers/schedules), 400 (hint: cron expressions must use 5 fields; cron_timezone must be a valid TZ name; create requires 'ref').
Param conventions: * = required. All pipeline actions need project_id*. List actions accept page, per_page.
Pipelines:
list: project_id*, status (success/failed/running/pending/canceled), scope, source, ref, sha, username
get / cancel / retry / variables / test_report / test_report_summary: project_id*, pipeline_id*
delete: project_id*, pipeline_id*. PERMANENTLY removes pipeline and jobs.
latest: project_id*, ref
create: project_id*, ref*, variables (array of {key, value, variable_type})
update_metadata: project_id*, pipeline_id*, name*
wait: project_id*, pipeline_id*, interval_seconds (5-60, default 10), timeout_seconds (1-3600, default 300), fail_on_error (default true)
Triggers:
trigger_list: project_id*
trigger_get / trigger_delete: project_id*, trigger_id*
trigger_create: project_id*, description*
trigger_update: project_id*, trigger_id*, description
trigger_run: project_id*, ref*, token*, variables (map)
Resource groups:
resource_group_list: project_id*
resource_group_get / resource_group_edit: project_id*, key*. Edit params: process_mode.
resource_group_upcoming_jobs: project_id*, key*
Schedules:
schedule_list: project_id*, scope (active/inactive)
schedule_get / schedule_delete / schedule_run / schedule_take_ownership: project_id*, schedule_id*
schedule_create: project_id*, description*, ref*, cron*, cron_timezone, active
schedule_update: project_id*, schedule_id*, description, ref, cron, cron_timezone, active
schedule_create_variable: project_id*, schedule_id*, key*, value*, variable_type (env_var/file)
schedule_edit_variable: project_id*, schedule_id*, key*, value*, variable_type
schedule_delete_variable: project_id*, schedule_id*, key*
schedule_list_triggered_pipelines: project_id*, schedule_id*
See also: gitlab_job (job details/logs/artifacts), gitlab_merge_request, gitlab_ci_variable
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform. Pick exactly one of the values in `enum`. Each action expects its own `params` object — see the tool description for the per-action parameter list. | |
| params | No | Action-specific parameters as a JSON object. Required and optional fields differ per action; consult this tool's description for the chosen action. Send only the fields documented for that action — unknown keys are rejected with a validation error (only reserved meta keys like `confirm` are stripped before validation). For the JSON Schema of a specific action's `params`, read the MCP resource `gitlab://schema/meta/{tool}/{action}` (replace placeholders with the tool name and the chosen action). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| next_steps | No | Optional. Suggested follow-up actions or tool calls for the LLM, contextual to the result. | |
| pagination | No | Present on list actions. Use `has_more` and `next_page` to paginate through results. |