Skip to main content
Glama

gitlab_trigger_pipeline

Creates a new GitLab CI/CD pipeline on a specified branch or tag, with optional CI variables. Use it to start a fresh run; for retries, reuse the existing pipeline ID instead.

Instructions

Create a new pipeline on the given ref, optionally with CI variables.

Not idempotent: each call creates a new pipeline. Consumes minutes on your runners — avoid calling in loops.

Examples: - "Run the pipeline on master" → default (ref='master') - "Run the pipeline on feature/x with DEBUG=1" → ref='feature/x', variables={'DEBUG': '1'} - Don't call to retry — use gitlab_retry_pipeline which keeps the same pipeline ID.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "project_path": "<project_path>"
    },
    "name": "gitlab_trigger_pipeline"
  }
}

Input Schema

NameRequiredDescriptionDefault
refNoBranch or tag to run the pipeline on.master
variablesNoOptional CI variables to pass to the pipeline (``{key: value}``).
project_pathYesGitLab project path (e.g. 'my-org/my-repo'). Required by default. For legacy deployments only, set GITLAB_ALLOW_DEFAULT_PROJECT=true to use GITLAB_PROJECT_PATH when omitted.

Output Schema

NameRequiredDescriptionDefault
refNo
statusNo
web_urlNo
created_atNo
pipeline_idNo
status_noteNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv0.5.5
    • removedInput schema / properties / project_path / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / project_path / default
      Removed value: -null
    • changedInput schema / properties / project_path / description
      Previous value: -"GitLab project path (e.g. 'my-org/my-repo'). When omitted, the default from GITLAB_PROJECT_PATH env var is used."New value: +"GitLab project path (e.g. 'my-org/my-repo'). Required by default. For legacy deployments only, set GITLAB_ALLOW_DEFAULT_PROJECT=true to use GITLAB_PROJECT_PATH when omitted."
    • addedInput schema / properties / project_path / minLength
      Added value: +1
    • addedInput schema / properties / project_path / type
      Added value: +"string"
    • addedInput schema / required
      Added value: +[
      +  "project_path"
      +]
  2. First observedv0.5.1

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare idempotentHint=false and openWorldHint=true, but the description adds real value beyond them: it explains the consequence ('each call creates a new pipeline') and the resource cost ('Consumes minutes on your runners'), which is not encoded anywhere in structured fields. It stops short of stating required token scopes or what the returned pipeline object contains, but with an output schema present that omission is minor.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The critical warning is front-loaded in bold before any examples, and the examples are short and purpose-built. Minor deductions for noisy reStructuredText-style markup (double backticks, escaped quotes) that adds visual clutter without informational value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no destructive side effects, the description covers purpose, non-idempotency, cost implications, sibling routing, and usage examples, while annotations carry the safety profile and an output schema covers return values. Nothing needed to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters (ref, variables, project_path) are already documented, including the default of 'master' and the {key: value} shape. The description's examples restate the same mapping (ref='feature/x', variables={'DEBUG': '1'}) rather than adding new constraints, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb and resource ('Create a new pipeline on the given ref, optionally with CI variables'), including the optional modifier. It is clearly distinguishable from read-side siblings like gitlab_get_pipeline or gitlab_list_pipelines, and it explicitly names gitlab_retry_pipeline as the neighboring alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-not-to-use guidance ('Don't call to retry — use gitlab_retry_pipeline which keeps the same pipeline ID') and a cost-based caution ('avoid calling in loops'). The three worked examples cover the default case, a branch-plus-variables case, and the anti-pattern, which is exactly the routing information an agent needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.