Runners
Runners: list the ones the user owns, every runner of the instance (an administrator’s), a group’s or a project’s; read, update (pausing included) and remove one; list its jobs and its managers; enable or disable it for a project; register one with a registration token, verify a runner authentication token, and delete a runner by its token; and reset the registration tokens of the instance, a group or a project, or a runner’s own authentication token.
Runner controllers, the experimental control plane administrators use to manage runners, are the actions served from Ultimate: controllers, their scopes and their tokens.
Sample questions
Section titled “Sample questions”- “List the runners available to project 42”
- “Show the details of runner 5”
- “Which jobs has runner 5 run today?”
- “Pause the runner tagged gpu”
How to call it
Section titled “How to call it”- Dynamic, the default surface: call
gitlab_execute_actionwithactionset to the action’s ID, such asrunner.controller_create, and its parameters inparams.gitlab_find_actionfinds an ID from a description of the task. - Meta (
GITLAB_MCP_TOOL_SURFACE=meta): callgitlab_runnerwithactionset to the action’s name, such ascontroller_create, and its parameters inparams. - Individual (
GITLAB_MCP_TOOL_SURFACE=individual): call the action’s own tool, such asgitlab_runner_controller_create, with its parameters as the arguments.
Availability
Section titled “Availability”How many of these actions an instance serves at each tier, out of a total of 34:
- Free: 19
- Premium: 19
- Ultimate: 34
Read-only actions: 13 of 34, the ones a deployment in read-only mode keeps.
Actions
Section titled “Actions”The description of each action, and of each of its parameters, is the text the server serves for it on the default surface, quoted as served. A destructive action runs only once confirmed, unless GITLAB_MCP_YOLO_MODE (or AUTOPILOT) skips that step: the dynamic surface needs confirm: true on gitlab_execute_action, and the other two take a confirm parameter or the client’s prompt (Destructive actions).
| Action | Tier | Individual |
|---|---|---|
runner.controller_create | Ultimate | gitlab_runner_controller_create |
runner.controller_delete | Ultimate | gitlab_runner_controller_delete |
runner.controller_get | Ultimate | gitlab_runner_controller_get |
runner.controller_list | Ultimate | gitlab_runner_controller_list |
runner.controller_scope_add_instance | Ultimate | gitlab_runner_controller_scope_add_instance |
runner.controller_scope_add_runner | Ultimate | gitlab_runner_controller_scope_add_runner |
runner.controller_scope_list | Ultimate | gitlab_runner_controller_scope_list |
runner.controller_scope_remove_instance | Ultimate | gitlab_runner_controller_scope_remove_instance |
runner.controller_scope_remove_runner | Ultimate | gitlab_runner_controller_scope_remove_runner |
runner.controller_token_create | Ultimate | gitlab_runner_controller_token_create |
runner.controller_token_get | Ultimate | gitlab_runner_controller_token_get |
runner.controller_token_list | Ultimate | gitlab_runner_controller_token_list |
runner.controller_token_revoke | Ultimate | gitlab_runner_controller_token_revoke |
runner.controller_token_rotate | Ultimate | gitlab_runner_controller_token_rotate |
runner.controller_update | Ultimate | gitlab_runner_controller_update |
runner.delete_by_token | Free | gitlab_runner_delete_by_token |
runner.delete_registered | Free | gitlab_runner_delete_registered |
runner.disable_project | Free | gitlab_runner_disable_project |
runner.enable_project | Free | gitlab_runner_enable_project |
runner.get | Free | gitlab_runner_get |
runner.jobs | Free | gitlab_runner_jobs |
runner.list | Free | gitlab_runner_list |
runner.list_all | Free | gitlab_runner_list_all |
runner.list_group | Free | gitlab_runner_list_group |
runner.list_managers | Free | gitlab_runner_list_managers |
runner.list_project | Free | gitlab_runner_list_project |
runner.register | Free | gitlab_runner_register |
runner.remove | Free | gitlab_runner_remove |
runner.reset_group_reg_token | Free | gitlab_runner_reset_group_reg_token |
runner.reset_instance_reg_token | Free | gitlab_runner_reset_instance_reg_token |
runner.reset_project_reg_token | Free | gitlab_runner_reset_project_reg_token |
runner.reset_token | Free | gitlab_runner_reset_token |
runner.update | Free | gitlab_runner_update |
runner.verify | Free | gitlab_runner_verify |
runner.controller_create
Section titled “runner.controller_create”Register a new runner controller (admin-only, experimental API) with optional description and state (enabled/disabled/dry_run). Returns: the created controller with id, description, state, and timestamps. See also:
runner.controller_get,runner.controller_update,runner.controller_list.
- Meta-tool:
gitlab_runner, actioncontroller_create - Individual tool:
gitlab_runner_controller_create - Tier: Ultimate
- Behavior: writes, not idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
description | string | no | Description of the runner controller |
state | string (disabled, enabled, dry_run) | no | State: enabled, disabled, or dry_run |
runner.controller_delete
Section titled “runner.controller_delete”Delete a runner controller by controller_id (destructive, admin-only, experimental API). Returns: a success confirmation. See also:
runner.controller_list,runner.controller_get,runner.controller_update.
- Meta-tool:
gitlab_runner, actioncontroller_delete - Individual tool:
gitlab_runner_controller_delete - Tier: Ultimate
- Behavior: writes, destructive (needs confirmation), idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
controller_id | integer | yes | Runner controller ID |
runner.controller_get
Section titled “runner.controller_get”Get one runner controller by controller_id (admin-only, experimental API). Returns: the controller with id, description, state, connected flag, and created/updated timestamps. See also:
runner.controller_list,runner.controller_update,runner.controller_delete.
- Meta-tool:
gitlab_runner, actioncontroller_get - Individual tool:
gitlab_runner_controller_get - Tier: Ultimate
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
controller_id | integer | yes | Runner controller ID |
runner.controller_list
Section titled “runner.controller_list”List registered runner controllers (admin-only, experimental API) with offset or keyset pagination. Returns: controllers with id, description, state, created/updated timestamps, plus pagination metadata. See also:
runner.controller_get,runner.controller_create,runner.controller_update.
- Meta-tool:
gitlab_runner, actioncontroller_list - Individual tool:
gitlab_runner_controller_list - Tier: Ultimate
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
order_by | string | no | Column to order the result set by (e.g. id, created_at) |
page | integer | no | Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. |
page_token | string | no | Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost. |
per_page | integer | no | Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. |
sort | string (asc, desc) | no | Sort order: asc or desc |
runner.controller_scope_add_instance
Section titled “runner.controller_scope_add_instance”Grant a runner controller the instance-level scope (admin only). Returns: the created instance-level scoping with created/updated timestamps. See also:
runner.controller_scope_remove_instance,runner.controller_scope_list,runner.controller_scope_add_runner.
- Meta-tool:
gitlab_runner, actioncontroller_scope_add_instance - Individual tool:
gitlab_runner_controller_scope_add_instance - Tier: Ultimate
- Behavior: writes, not idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
controller_id | integer | yes | Runner controller ID |
runner.controller_scope_add_runner
Section titled “runner.controller_scope_add_runner”Scope a runner controller to a specific instance runner by runner ID (admin only). Returns: the created runner-level scoping with the runner ID and created/updated timestamps. See also:
runner.controller_scope_remove_runner,runner.controller_scope_list,runner.controller_scope_add_instance.
- Meta-tool:
gitlab_runner, actioncontroller_scope_add_runner - Individual tool:
gitlab_runner_controller_scope_add_runner - Tier: Ultimate
- Behavior: writes, not idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
controller_id | integer | yes | Runner controller ID |
runner_id | integer | yes | Instance-level runner ID to scope |
runner.controller_scope_list
Section titled “runner.controller_scope_list”List every scope assigned to a runner controller (admin only). Returns: instance-level scopings with timestamps and runner-level scopings with runner IDs and timestamps. See also:
runner.controller_scope_add_instance,runner.controller_scope_add_runner,runner.controller_scope_remove_runner.
- Meta-tool:
gitlab_runner, actioncontroller_scope_list - Individual tool:
gitlab_runner_controller_scope_list - Tier: Ultimate
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
controller_id | integer | yes | Runner controller ID |
runner.controller_scope_remove_instance
Section titled “runner.controller_scope_remove_instance”Revoke a runner controller’s instance-level scope (admin only, destructive). Returns: a success confirmation naming the removed instance-level scope. See also:
runner.controller_scope_add_instance,runner.controller_scope_list,runner.controller_scope_remove_runner.
- Meta-tool:
gitlab_runner, actioncontroller_scope_remove_instance - Individual tool:
gitlab_runner_controller_scope_remove_instance - Tier: Ultimate
- Behavior: writes, destructive (needs confirmation), idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
controller_id | integer | yes | Runner controller ID |
runner.controller_scope_remove_runner
Section titled “runner.controller_scope_remove_runner”Remove a specific runner from a runner controller’s scope by runner ID (admin only, destructive). Returns: a success confirmation naming the removed runner scope. See also:
runner.controller_scope_add_runner,runner.controller_scope_list,runner.controller_scope_remove_instance.
- Meta-tool:
gitlab_runner, actioncontroller_scope_remove_runner - Individual tool:
gitlab_runner_controller_scope_remove_runner - Tier: Ultimate
- Behavior: writes, destructive (needs confirmation), idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
controller_id | integer | yes | Runner controller ID |
runner_id | integer | yes | Runner ID to remove from scope |
runner.controller_token_create
Section titled “runner.controller_token_create”Create a runner controller token (admin-only). Returns: the new token including its one-time secret value, id, runner controller id, and description. See also:
runner.controller_token_list,runner.controller_token_rotate,runner.controller_token_revoke.
- Meta-tool:
gitlab_runner, actioncontroller_token_create - Individual tool:
gitlab_runner_controller_token_create - Tier: Ultimate
- Behavior: writes, not idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
controller_id | integer | yes | Runner controller ID |
description | string | no | Description of the token |
runner.controller_token_get
Section titled “runner.controller_token_get”Get one runner controller token by id (admin-only). Returns: the token’s id, runner controller id, description, last-used time, and timestamps. See also:
runner.controller_token_list,runner.controller_token_rotate,runner.controller_token_revoke.
- Meta-tool:
gitlab_runner, actioncontroller_token_get - Individual tool:
gitlab_runner_controller_token_get - Tier: Ultimate
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
controller_id | integer | yes | Runner controller ID |
token_id | integer | yes | Token ID |
runner.controller_token_list
Section titled “runner.controller_token_list”List runner controller tokens for a controller (admin-only). Returns: each token’s id, runner controller id, description, last-used time, and timestamps, with pagination metadata. See also:
runner.controller_token_get,runner.controller_token_create,runner.controller_token_revoke.
- Meta-tool:
gitlab_runner, actioncontroller_token_list - Individual tool:
gitlab_runner_controller_token_list - Tier: Ultimate
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
controller_id | integer | yes | Runner controller ID |
order_by | string | no | Column to order the result set by (e.g. id, created_at) |
page | integer | no | Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. |
page_token | string | no | Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost. |
per_page | integer | no | Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. |
sort | string (asc, desc) | no | Sort order: asc or desc |
runner.controller_token_revoke
Section titled “runner.controller_token_revoke”Revoke a runner controller token permanently (admin-only). Returns: a success confirmation that the runner controller token was deleted. See also:
runner.controller_token_list,runner.controller_token_get,runner.controller_token_rotate.
- Meta-tool:
gitlab_runner, actioncontroller_token_revoke - Individual tool:
gitlab_runner_controller_token_revoke - Tier: Ultimate
- Behavior: writes, destructive (needs confirmation), idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
controller_id | integer | yes | Runner controller ID |
token_id | integer | yes | Token ID |
runner.controller_token_rotate
Section titled “runner.controller_token_rotate”Rotate a runner controller token (admin-only). Returns: the token with its newly issued one-time secret value and unchanged id. See also:
runner.controller_token_get,runner.controller_token_list,runner.controller_token_revoke.
- Meta-tool:
gitlab_runner, actioncontroller_token_rotate - Individual tool:
gitlab_runner_controller_token_rotate - Tier: Ultimate
- Behavior: writes, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
controller_id | integer | yes | Runner controller ID |
token_id | integer | yes | Token ID |
runner.controller_update
Section titled “runner.controller_update”Update a runner controller’s description or state (enabled/disabled/dry_run) by controller_id (admin-only, experimental API). Returns: the updated controller with id, description, state, and timestamps. See also:
runner.controller_get,runner.controller_list,runner.controller_delete.
- Meta-tool:
gitlab_runner, actioncontroller_update - Individual tool:
gitlab_runner_controller_update - Tier: Ultimate
- Behavior: writes, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
controller_id | integer | yes | Runner controller ID |
description | string | no | New description |
state | string (disabled, enabled, dry_run) | no | New state: enabled, disabled, or dry_run |
runner.delete_by_token
Section titled “runner.delete_by_token”Delete a registered runner by its authentication token. Returns: a success confirmation. See also:
runner.delete_registered,runner.remove.
- Meta-tool:
gitlab_runner, actiondelete_by_token - Individual tool:
gitlab_runner_delete_by_token - Tier: Free
- Behavior: writes, destructive (needs confirmation), idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
token | string | yes | Runner authentication token |
runner.delete_registered
Section titled “runner.delete_registered”Delete a registered runner by its numeric runner_id. Returns: a success confirmation. See also:
runner.delete_by_token,runner.remove.
- Meta-tool:
gitlab_runner, actiondelete_registered - Individual tool:
gitlab_runner_delete_registered - Tier: Free
- Behavior: writes, destructive (needs confirmation), idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
runner_id | integer | yes | Runner ID to delete |
runner.disable_project
Section titled “runner.disable_project”Remove a runner assignment from a project by project_id and runner_id. Returns: a success confirmation. See also:
runner.enable_project,runner.list_project.
- Meta-tool:
gitlab_runner, actiondisable_project - Individual tool:
gitlab_runner_disable_project - Tier: Free
- Behavior: writes, destructive (needs confirmation), idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or URL-encoded path |
runner_id | integer | yes | Runner ID to remove from project |
runner.enable_project
Section titled “runner.enable_project”Assign an existing runner to a project by project_id and runner_id. Returns: the enabled runner. See also:
runner.disable_project,runner.list_project.
- Meta-tool:
gitlab_runner, actionenable_project - Individual tool:
gitlab_runner_enable_project - Tier: Free
- Behavior: writes, not idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or URL-encoded path |
runner_id | integer | yes | Runner ID to assign |
runner.get
Section titled “runner.get”Get full configuration for one runner by numeric runner_id. Returns: runner details including tags, locked, access level, maximum timeout, contact time, and associated groups/projects. See also:
runner.list,runner.update,runner.jobs.
- Meta-tool:
gitlab_runner, actionget - Individual tool:
gitlab_runner_get - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
runner_id | integer | yes | Runner ID |
runner.jobs
Section titled “runner.jobs”List jobs processed by a runner, with status/order/sort filters and pagination. Returns: jobs with id, name, status, stage, ref, and duration, plus pagination metadata. See also:
runner.get,job.get.
- Meta-tool:
gitlab_runner, actionjobs - Individual tool:
gitlab_runner_jobs - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
runner_id | integer | yes | Runner ID |
order_by | string | no | Order by field: id (default) |
page | integer | no | Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. |
page_token | string | no | Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost. |
per_page | integer | no | Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. |
sort | string (asc, desc) | no | Sort direction: asc, desc |
status | string (created, waiting_for_resource, preparing, waiting_for_callback, pending, running, success, failed, canceling, canceled, skipped, manual, scheduled) | no | Job status filter: created, waiting_for_resource, preparing, waiting_for_callback, pending, running, success, failed, canceling, canceled, skipped, manual, or scheduled |
runner.list
Section titled “runner.list”List runners owned by the authenticated user, with type/status/tag/scope filters and pagination. Returns: runners with id, name, type, status, paused/shared/online flags, plus pagination metadata. See also:
runner.get,runner.list_all,runner.list_project.
- Meta-tool:
gitlab_runner, actionlist - Individual tool:
gitlab_runner_list - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
order_by | string | no | Field to order keyset-paginated results by, e.g. id |
page | integer | no | Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. |
page_token | string | no | Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost. |
paused | boolean | no | Filter by paused state |
per_page | integer | no | Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. |
scope | string (active, paused, online, offline) | no | Deprecated runner scope filter: active, paused, online, or offline. Prefer type and status instead |
sort | string (asc, desc) | no | Sort direction: asc or desc |
status | string (online, offline, stale, never_contacted) | no | Runner status filter: online, offline, stale, or never_contacted. |
tag_list | string[] | no | List of tags to filter by |
type | string (instance_type, group_type, project_type) | no | Runner type filter: instance_type (instance-level shared runners), group_type (group runners), or project_type (project-specific runners). |
runner.list_all
Section titled “runner.list_all”List every runner on the instance (admin token required), with type/status/tag/scope filters and pagination. Returns: runners with id, name, type, status, flags, plus pagination metadata. See also:
runner.list,runner.get.
- Meta-tool:
gitlab_runner, actionlist_all - Individual tool:
gitlab_runner_list_all - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
order_by | string | no | Field to order keyset-paginated results by, e.g. id |
page | integer | no | Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. |
page_token | string | no | Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost. |
paused | boolean | no | Filter by paused state |
per_page | integer | no | Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. |
scope | string (specific, shared, active, paused, online, offline) | no | Deprecated runner scope filter: specific, shared, active, paused, online, or offline. Prefer type and status instead |
sort | string (asc, desc) | no | Sort direction: asc or desc |
status | string (online, offline, stale, never_contacted) | no | Runner status filter: online, offline, stale, or never_contacted. |
tag_list | string[] | no | List of tags to filter by |
type | string (instance_type, group_type, project_type) | no | Runner type filter: instance_type (instance-level shared runners), group_type (group runners), or project_type (project-specific runners). |
runner.list_group
Section titled “runner.list_group”List runners available in a group (specific and shared), with type/status/tag filters and pagination. Returns: runners with id, name, type, status, flags, plus pagination metadata. See also:
runner.list,runner.list_project.
- Meta-tool:
gitlab_runner, actionlist_group - Individual tool:
gitlab_runner_list_group - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
group_id | string/integer | yes | Group ID or URL-encoded path |
order_by | string | no | Field to order keyset-paginated results by, e.g. id |
page | integer | no | Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. |
page_token | string | no | Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost. |
per_page | integer | no | Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. |
sort | string (asc, desc) | no | Sort direction: asc or desc |
status | string (online, offline, stale, never_contacted) | no | Runner status filter: online, offline, stale, or never_contacted. |
tag_list | string[] | no | List of tags to filter by |
type | string (instance_type, group_type, project_type) | no | Runner type filter: instance_type (instance-level shared runners), group_type (group runners), or project_type (project-specific runners). |
runner.list_managers
Section titled “runner.list_managers”List the managers of a runner by runner_id. Returns: runner managers with system id, version, revision, platform, architecture, status, and IP. See also:
runner.get,runner.list.
- Meta-tool:
gitlab_runner, actionlist_managers - Individual tool:
gitlab_runner_list_managers - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
runner_id | integer | yes | Runner ID |
runner.list_project
Section titled “runner.list_project”List runners assigned to a project, with type/status/tag/scope filters and pagination. Returns: runners with id, name, type, status, flags, plus pagination metadata. See also:
runner.enable_project,runner.disable_project,runner.list.
- Meta-tool:
gitlab_runner, actionlist_project - Individual tool:
gitlab_runner_list_project - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or URL-encoded path |
order_by | string | no | Field to order keyset-paginated results by, e.g. id |
page | integer | no | Page number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward. |
page_token | string | no | Keyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost. |
paused | boolean | no | Filter by paused state |
per_page | integer | no | Items per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large. |
scope | string (active, paused, online, offline) | no | Deprecated runner scope filter: active, paused, online, or offline. Prefer type and status instead |
sort | string (asc, desc) | no | Sort direction: asc or desc |
status | string (online, offline, stale, never_contacted) | no | Runner status filter: online, offline, stale, or never_contacted. |
tag_list | string[] | no | List of tags to filter by |
type | string (instance_type, group_type, project_type) | no | Runner type filter: instance_type (instance-level shared runners), group_type (group runners), or project_type (project-specific runners). |
runner.register
Section titled “runner.register”Register a new runner with a registration token, optional info hashmap, tags, and configuration. Returns: the created runner including its authentication token. See also:
runner.verify,runner.list.
- Meta-tool:
gitlab_runner, actionregister - Individual tool:
gitlab_runner_register - Tier: Free
- Behavior: writes, not idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
token | string | yes | Registration token |
access_level | string | no | Access level: not_protected, ref_protected |
active | boolean | no | Deprecated: registration active state. Prefer paused instead |
description | string | no | Runner description |
info | object | no | Runner manager info hashmap (name, version, revision, platform, architecture) |
locked | boolean | no | Lock runner to current project |
maintenance_note | string | no | Maintenance note |
maximum_timeout | integer | no | Maximum job timeout in seconds |
paused | boolean | no | Register in paused state |
run_untagged | boolean | no | Whether to run untagged jobs |
tag_list | string[] | no | List of runner tags |
runner.remove
Section titled “runner.remove”Remove (unregister) a runner by numeric runner_id. Returns: a success confirmation. See also:
runner.disable_project,runner.delete_registered,runner.get.
- Meta-tool:
gitlab_runner, actionremove - Individual tool:
gitlab_runner_remove - Tier: Free
- Behavior: writes, destructive (needs confirmation), idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
runner_id | integer | yes | Runner ID to remove |
runner.reset_group_reg_token
Section titled “runner.reset_group_reg_token”Reset a group’s runner registration token by group_id (deprecated). Returns: the new registration token and its expiry. See also:
runner.reset_instance_reg_token,runner.reset_project_reg_token.
- Meta-tool:
gitlab_runner, actionreset_group_reg_token - Individual tool:
gitlab_runner_reset_group_reg_token - Tier: Free
- Behavior: writes, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
group_id | string/integer | yes | Group ID or URL-encoded path |
runner.reset_instance_reg_token
Section titled “runner.reset_instance_reg_token”Reset the instance-level runner registration token (deprecated, admin only). Returns: the new registration token and its expiry. See also:
runner.reset_group_reg_token,runner.reset_project_reg_token.
- Meta-tool:
gitlab_runner, actionreset_instance_reg_token - Individual tool:
gitlab_runner_reset_instance_reg_token - Tier: Free
- Behavior: writes, idempotent
No parameters.
runner.reset_project_reg_token
Section titled “runner.reset_project_reg_token”Reset a project’s runner registration token by project_id (deprecated). Returns: the new registration token and its expiry. See also:
runner.reset_instance_reg_token,runner.reset_group_reg_token.
- Meta-tool:
gitlab_runner, actionreset_project_reg_token - Individual tool:
gitlab_runner_reset_project_reg_token - Tier: Free
- Behavior: writes, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
project_id | string/integer | yes | Project ID or URL-encoded path |
runner.reset_token
Section titled “runner.reset_token”Reset a runner’s authentication token by runner_id. Returns: the new token and its expiry. See also:
runner.verify,runner.get.
- Meta-tool:
gitlab_runner, actionreset_token - Individual tool:
gitlab_runner_reset_token - Tier: Free
- Behavior: writes, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
runner_id | integer | yes | Runner ID |
runner.update
Section titled “runner.update”Update a runner’s configuration (description, pause state, tags, locked, access level, timeout) by runner_id. Returns: the updated runner details. See also:
runner.get,runner.remove.
- Meta-tool:
gitlab_runner, actionupdate - Individual tool:
gitlab_runner_update - Tier: Free
- Behavior: writes, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
runner_id | integer | yes | Runner ID |
access_level | string | no | Access level: not_protected, ref_protected |
active | boolean | no | Deprecated: runner active state. Prefer paused instead |
description | string | no | Runner description |
locked | boolean | no | Whether runner is locked to current project |
maintenance_note | string | no | Maintenance note for the runner |
maximum_timeout | integer | no | Maximum job timeout in seconds |
paused | boolean | no | Pause/unpause the runner |
run_untagged | boolean | no | Whether to run untagged jobs |
tag_list | string[] | no | List of runner tags |
runner.verify
Section titled “runner.verify”Verify that a runner authentication token is valid. Returns: a success confirmation when the token authenticates. See also:
runner.register,runner.reset_token.
- Meta-tool:
gitlab_runner, actionverify - Individual tool:
gitlab_runner_verify - Tier: Free
- Behavior: read-only, idempotent
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
token | string | yes | Runner authentication token to verify |