Skip to main content
Glama

Register new runner

gitlab_register_new_runner

Register a new GitLab runner using a registration token, with options to set tags, runner type, access level, and project or group scope.

Instructions

Register a new runner.

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

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

Raises: MissingParameterError: If the token 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_register_new_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.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds real value beyond that by naming the failure modes (MissingParameterError on missing token, ParameterError on invalid params) and the return type (Response wrapping a Runner model). However, it omits the most consequential behavior: how scope selection works and whether registration is privileged.

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

Conciseness3/5

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

It is short and front-loads the purpose in the first sentence, which is good. But the Args/Returns/Raises docstring scaffolding is boilerplate that spends its only detail budget on a generic **kwargs line rather than on the parameters that actually exist.

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?

For a 19-parameter, non-idempotent creation tool with no output schema and no schema descriptions, this definition is far too thin. An agent could not determine which parameter combinations yield a project runner versus a group runner versus an instance runner, nor which fields are appropriate for a newly registered runner.

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 mostly fails it. Only `token` is touched on (indirectly via the MissingParameterError note), while access_level, runner_type, locked, paused, run_untagged, tag_list, maximum_timeout, and the group_id/project_id scoping pairs are all unexplained. The "**kwargs" framing actively misrepresents the schema, which has 19 named optional parameters.

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

Purpose3/5

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

The description states a verb and resource ("Register a new runner"), but it is essentially a restatement of the tool name and title "Register new runner". It does not distinguish this from nearby siblings such as gitlab_enable_project_runner, gitlab_update_runner_details, or gitlab_verify_runner_authentication.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus alternatives, and no mention of the critical scoping decision (instance-level, group-level, or project-level registration) that the project_id/group_id/runner_type parameters imply. The agent must infer usage entirely from the schema.

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