# tag — gitlab

> 9 actions
> This page as plain markdown. Index: https://mcp.jmrp.io/llms.txt

Canonical: https://mcp.jmrp.io/servers/gitlab/actions/tag/
Language: en
Alternate: https://mcp.jmrp.io/es/servers/gitlab/actions/tag/index.md
Updated: 2026-09-11T09:56:41+02:00
License: https://mcp.jmrp.io/license/

Counted with a Free-tier token against gitlab.com, which is the only host this endpoint talks to: to use it against a self-managed instance, run the server yourself — its documentation covers that. The catalog is scoped to the token that asks, so the count moves with both its tier and its permissions: higher tiers expose more actions, and administration domains only appear to tokens allowed to use them. That is why the figures differ elsewhere: the upstream project catalogues 1,006 actions across 162 domains, and 851 on the Free/CE surface, while this deployment publishes 747 because it is OAuth-only and acts with your token, so the administration domains a non-admin account cannot call never appear. All three describe the same catalog, counted from three vantage points.

## Actions

### `tag.create` — Tag Create

Create a new tag in a project pointing at a ref. Returns: the created tag with target, message, protection flag, and the associated commit object. See also: tag.get, tag.delete, release.create.

**Required parameters:** `project_id (string)`, `ref (string)`, `tag_name (string)`

### `tag.delete` — Tag Delete

_destructive_

Delete a tag from a project permanently. Returns: a success confirmation naming the tag and project. See also: tag.get, tag.list, tag.unprotect.

**Required parameters:** `project_id (string)`, `tag_name (string)`

### `tag.get` — Tag Get

_read-only_

Get a single tag from a project by name. Returns: the tag with target, message, protection flag, the full associated commit object, release note, and creation time. See also: tag.list, tag.get_signature, release.get.

**Required parameters:** `project_id (string)`, `tag_name (string)`

### `tag.get_protected` — Tag Get Protected

_read-only_

Get a single protected tag or wildcard rule by name. Returns: the protected tag with its create access levels (access level, user, group, and deploy key descriptions). See also: tag.list_protected, tag.protect, tag.unprotect.

**Required parameters:** `project_id (string)`, `tag_name (string)`

### `tag.get_signature` — Tag Get Signature

_read-only_

Get the X.509 signature of a tag. Returns: the signature type, verification status, and the X.509 certificate with issuer detail. See also: tag.get, tag.list.

**Required parameters:** `project_id (string)`, `tag_name (string)`

### `tag.list` — Tag List

_read-only_

List tags in one project with optional search and offset or keyset pagination. Returns: matching tags with target, message, protection flag, the associated commit object, release note, and pagination metadata. See also: tag.get, tag.create, release.list.

**Required parameters:** `project_id (string)`

### `tag.list_protected` — Tag List Protected

_read-only_

List protected tags in one project with offset or keyset pagination. Returns: protected tag patterns with their create access levels and pagination metadata. See also: tag.get_protected, tag.protect, tag.list.

**Required parameters:** `project_id (string)`

### `tag.protect` — Tag Protect

Protect a tag or wildcard pattern with create access levels. Returns: the protected tag with its resolved create access levels. See also: tag.unprotect, tag.list_protected, tag.get_protected.

**Required parameters:** `project_id (string)`, `tag_name (string)`

### `tag.unprotect` — Tag Unprotect

_destructive_

Remove protection from a tag or wildcard pattern. Returns: a success confirmation naming the tag and project. See also: tag.protect, tag.list_protected, tag.get_protected.

**Required parameters:** `project_id (string)`, `tag_name (string)`
