Skip to main content
Glama

Pause runner

gitlab_pause_runner
Idempotent

Pauses or unpauses a specific GitLab runner by runner ID to temporarily stop or resume job processing for maintenance or controlled availability.

Instructions

Pause or unpause a specific runner.

Args: **kwargs: Additional parameters for the request (e.g., runner_id, active).

Returns: Response: A wrapper containing the original response and a Runner model.

Raises: MissingParameterError: If the runner_id or active status is missing. ParameterError: If invalid parameters are provided.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "gitlab_pause_runner"
  }
}

Input Schema

NameRequiredDescriptionDefault
dataNo
infoNo
tokenNo
activeNo
lockedNo
pausedNo
statusNo
group_idNo
tag_listNo
max_pagesNo
runner_idNo
project_idNo
all_runnersNo
descriptionNo
runner_typeNo
access_levelNo
run_untaggedNo
maximum_timeoutNo
maintenance_noteNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv27.3.20
    • changedInput schema / properties / all_runners / default
      Previous value: -falseNew value: +null
    • removedInput schema / properties / api_parameters
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "additionalProperties": true,
      -      "type": "object"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null
      -}
    • addedInput schema / properties / max_pages
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
  2. First observedv27.3.13

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=true and openWorldHint=true, so the safety profile is covered. The description adds real value beyond that by naming the failure modes (MissingParameterError, ParameterError) and the return wrapper containing a Runner model. It does not say what pausing actually does to in-flight jobs or whether it needs maintainer rights, so it is only moderately richer than the structured fields.

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

Conciseness2/5

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

The useful content is a single opening sentence; the rest is auto-generated docstring boilerplate (Args/Returns/Raises) that spends lines on '**kwargs: Additional parameters for the request' without enumerating anything. It is not front-loaded toward the operational facts an agent needs, and the boilerplate displaces real parameter documentation.

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

Completeness2/5

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

A 19-parameter, zero-coverage mutation tool with no output schema demands the description explain the parameter surface and the effect of the toggle; instead it documents two arguments generically and notes no prerequisites. The Raises section is a partial offset, but the definition leaves an agent unable to determine which of the 19 fields to send.

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

Parameters2/5

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

Schema description coverage is 0% across 19 parameters, so the description carries the full burden and largely fails it. It mentions only runner_id and active (via '**kwargs'), leaving 17 parameters such as group_id, tag_list, max_pages, access_level and maintenance_note entirely unexplained, even though several look irrelevant to a pause operation. The '**kwargs' framing is also misleading given additionalProperties=false.

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

Purpose4/5

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

States a specific verb and resource: 'Pause or unpause a specific runner.' This usefully resolves the ambiguity in the tool name (which suggests pause-only) by disclosing the two-way toggle. It does not name any sibling (e.g. gitlab_update_runner_details, gitlab_reset_gitlab_runner_token) to distinguish the boundary, so it falls short of a 5.

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

Usage Guidelines3/5

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

Usage is only implied by the purpose statement; there is no explicit when-to-use / when-not-to-use guidance and no mention of the neighbouring runner tools. The pause-vs-unpause framing is the one piece of genuine routing help, controlled by the 'active' flag, but the agent must infer that itself.

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

Deploy Server

Other Tools