Skip to main content
Glama

gitlab_get_pipeline_jobs

Read-onlyIdempotent

List the jobs in a GitLab pipeline with stage, status, duration and web URL. Use it after a failed pipeline to find which job broke, then fetch its log.

Instructions

List jobs of a pipeline with stage, status, duration and web URL.

Use after noticing a failed pipeline to drill down into which specific job broke and fetch its log via gitlab_get_job_log.

Examples: - "What jobs are in pipeline 123" → pipeline_id=123 - "Which job failed in pipeline 456" → filter result by status='failed' client-side - Don't use for overall pipeline status — use gitlab_get_pipeline instead.

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": {
      "pipeline_id": "<pipeline_id>",
      "project_path": "<project_path>"
    },
    "name": "gitlab_get_pipeline_jobs"
  }
}

Input Schema

NameRequiredDescriptionDefault
pipeline_idYesNumeric pipeline ID.
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
jobsYes
jobs_countYes
pipeline_idYes

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"
    • changedInput schema / required
      Previous value: -[
      -  "pipeline_id"
      -]New value: +[
      +  "pipeline_id",
      +  "project_path"
      +]
  2. First observedv0.5.1

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so the description's added value is the workflow disclosure: drill down here, then call gitlab_get_job_log. It also reveals an important behavioral fact not in the schema — there is no status parameter, so failed jobs must be filtered client-side. It stops short of describing pagination or result-size limits, which is the remaining gap.

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?

Purpose is front-loaded in one sentence, followed by workflow guidance, concrete examples, and an exclusion. Slightly verbose in the example list, where the third bullet largely repeats the exclusion line, but nothing is seriously wasteful.

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

Completeness4/5

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

With only two fully documented parameters, rich annotations, and an output schema covering return values, the description covers everything an agent needs to select and call the tool. The only omissions are pagination behavior and result-size limits, which are minor for a listing tool.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description goes further by mapping a natural-language request to pipeline_id=123 and by making explicit that status filtering is a client-side operation rather than an input parameter. That prevents a plausible misuse (trying to pass a status argument).

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 gives a specific verb (list), a specific resource (jobs of a pipeline), and the exact fields returned (stage, status, duration, web URL). It is immediately distinguishable from gitlab_get_pipeline (overall status) and gitlab_get_job_log (log retrieval), both of which are named.

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 states the triggering context ('use after noticing a failed pipeline'), the follow-on action ('fetch its log via gitlab_get_job_log'), and an explicit exclusion ('Don't use for overall pipeline status — use gitlab_get_pipeline instead'). The three examples further anchor when to reach for it.

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