Tags
Gestión de tags de un proyecto: listar, leer, crear y borrar tags, leer la firma GPG o X.509 de un tag, y proteger patrones de tag con el nivel de acceso que puede crearlos, para después leer o quitar esa protección. Borrar un tag borra también la release asociada a él.
Preguntas de ejemplo
Sección titulada «Preguntas de ejemplo»- “Lista los tags del proyecto 42”
- “Crea el tag v2.0.0 en main”
- “¿Está firmado el tag v1.9.0?”
Cómo llamarlo
Sección titulada «Cómo llamarlo»- Dinámica, la superficie predeterminada: llama a
gitlab_execute_actionconactionigual al ID de la acción, comotag.create, y sus parámetros enparams.gitlab_find_actionencuentra un ID a partir de una descripción de la tarea. - Meta (
GITLAB_MCP_TOOL_SURFACE=meta): llama agitlab_tagconactionigual al nombre de la acción, comocreate, y sus parámetros enparams. - Individual (
GITLAB_MCP_TOOL_SURFACE=individual): llama a la herramienta propia de la acción, comogitlab_tag_create, pasándole directamente sus parámetros.
Disponibilidad
Sección titulada «Disponibilidad»Todos los niveles sirven el grupo completo, tanto en instancias autogestionadas como en GitLab.com.
Acciones de solo lectura: 5 de 9, las que conserva un despliegue en modo de solo lectura. A un token con read_api y sin api se le sirven 5 de las 9.
Acciones
Sección titulada «Acciones»La descripción de cada acción, y la de cada uno de sus parámetros, es el texto que sirve el servidor para ella en la superficie predeterminada, citado tal cual; por eso está en inglés. Las líneas de token dicen lo que exige GitLab 19.4.1 a un token para las peticiones que envía cada acción; en una instancia con Admin Mode activado, una acción que solo puede ejecutar un administrador necesita además admin_mode. Una acción destructiva solo se ejecuta una vez confirmada, salvo que GITLAB_MCP_YOLO_MODE (o AUTOPILOT) se salte ese paso: la superficie dinámica necesita confirm: true en gitlab_execute_action, y las otras dos aceptan un parámetro confirm o la pregunta del cliente (Acciones destructivas).
| Acción | Individual |
|---|---|
tag.create | gitlab_tag_create |
tag.delete | gitlab_tag_delete |
tag.get | gitlab_tag_get |
tag.get_protected | gitlab_tag_get_protected |
tag.get_signature | gitlab_tag_get_signature |
tag.list | gitlab_tag_list |
tag.list_protected | gitlab_tag_list_protected |
tag.protect | gitlab_tag_protect |
tag.unprotect | gitlab_tag_unprotect |
tag.create
Sección titulada «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.
- Meta-herramienta:
gitlab_tag, accióncreate - Herramienta individual:
gitlab_tag_create - Nivel: Free
- Token clásico u OAuth:
api - Token de grano fino: Repository Tag: Create en proyecto (página de permisos)
- Comportamiento: escribe, no idempotente
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
project_id | string/integer | sí | Project ID or URL-encoded path |
ref | string | sí | Commit SHA, branch name, or another tag to create the tag from |
tag_name | string | sí | Name of the tag |
message | string | no | Creates an annotated tag with this message |
tag.delete
Sección titulada «tag.delete»Delete a tag from a project permanently. Returns: a success confirmation naming the tag and project. See also:
tag.get,tag.list,tag.unprotect.
- Meta-herramienta:
gitlab_tag, accióndelete - Herramienta individual:
gitlab_tag_delete - Nivel: Free
- Token clásico u OAuth:
api - Token de grano fino: Repository Tag: Delete en proyecto (página de permisos)
- Comportamiento: escribe, destructiva (necesita confirmación), idempotente
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
project_id | string/integer | sí | Project ID or URL-encoded path |
tag_name | string | sí | Name of the tag to delete |
tag.get
Sección titulada «tag.get»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.
- Meta-herramienta:
gitlab_tag, acciónget - Herramienta individual:
gitlab_tag_get - Nivel: Free
- Token clásico u OAuth:
read_api(oapi) - Token de grano fino: Repository Tag: Read en proyecto (página de permisos)
- Comportamiento: solo lectura, idempotente
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
project_id | string/integer | sí | Project ID or URL-encoded path |
tag_name | string | sí | Tag name to retrieve |
tag.get_protected
Sección titulada «tag.get_protected»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.
- Meta-herramienta:
gitlab_tag, acciónget_protected - Herramienta individual:
gitlab_tag_get_protected - Nivel: Free
- Token clásico u OAuth:
read_api(oapi) - Token de grano fino: Protected Tag: Read en proyecto (página de permisos)
- Comportamiento: solo lectura, idempotente
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
project_id | string/integer | sí | Project ID or URL-encoded path |
tag_name | string | sí | Name of the protected tag |
tag.get_signature
Sección titulada «tag.get_signature»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.
- Meta-herramienta:
gitlab_tag, acciónget_signature - Herramienta individual:
gitlab_tag_get_signature - Nivel: Free
- Token clásico u OAuth:
read_api(oapi) - Token de grano fino: Repository Tag: Read en proyecto (página de permisos)
- Comportamiento: solo lectura, idempotente
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
project_id | string/integer | sí | Project ID or URL-encoded path |
tag_name | string | sí | Tag name to retrieve signature for |
tag.list
Sección titulada «tag.list»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.
- Meta-herramienta:
gitlab_tag, acciónlist - Herramienta individual:
gitlab_tag_list - Nivel: Free
- Token clásico u OAuth:
read_api(oapi) - Token de grano fino: Repository Tag: Read en proyecto (página de permisos)
- Comportamiento: solo lectura, idempotente
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
project_id | string/integer | sí | Project ID or URL-encoded path |
order_by | string (name, updated, version) | no | Order tags by name, updated (default), or version, which sorts by semantic version number |
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 | Next page of a keyset listing: the next_page_token of the previous response of this action, passed back unchanged. It carries the position and every filter of the listing as GitLab read them, and those are what the next page is asked with, whatever filters are sent beside it. Leave it empty for the first page. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost, and a keyset page names the next one in next_page_token rather than next_page. |
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. |
search | string | no | Search query to filter tags by name |
sort | string (asc, desc) | no | Sort direction (asc, desc) |
tag.list_protected
Sección titulada «tag.list_protected»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.
- Meta-herramienta:
gitlab_tag, acciónlist_protected - Herramienta individual:
gitlab_tag_list_protected - Nivel: Free
- Token clásico u OAuth:
read_api(oapi) - Token de grano fino: Protected Tag: Read en proyecto (página de permisos)
- Comportamiento: solo lectura, idempotente
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
project_id | string/integer | sí | Project ID or URL-encoded path |
order_by | string | no | Column to order keyset-paginated results by |
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 | Next page of a keyset listing: the next_page_token of the previous response of this action, passed back unchanged. It carries the position and every filter of the listing as GitLab read them, and those are what the next page is asked with, whatever filters are sent beside it. Leave it empty for the first page. |
pagination | string | no | Pagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost, and a keyset page names the next one in next_page_token rather than next_page. |
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) |
tag.protect
Sección titulada «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.
- Meta-herramienta:
gitlab_tag, acciónprotect - Herramienta individual:
gitlab_tag_protect - Nivel: Free
- Token clásico u OAuth:
api - Token de grano fino: Tag: Protect en proyecto (página de permisos)
- Comportamiento: escribe, no idempotente
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
project_id | string/integer | sí | Project ID or URL-encoded path |
tag_name | string | sí | Tag name or wildcard pattern (e.g. ‘v*’) |
allowed_to_create | object[] | no | Granular create permissions (user_id, group_id, deploy_key_id, access_level) |
create_access_level | integer | no | Access level allowed to create (0=No access, 30=Developer, 40=Maintainer) |
tag.unprotect
Sección titulada «tag.unprotect»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.
- Meta-herramienta:
gitlab_tag, acciónunprotect - Herramienta individual:
gitlab_tag_unprotect - Nivel: Free
- Token clásico u OAuth:
api - Token de grano fino: Tag: Protect en proyecto (página de permisos)
- Comportamiento: escribe, destructiva (necesita confirmación), idempotente
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
project_id | string/integer | sí | Project ID or URL-encoded path |
tag_name | string | sí | Name of the protected tag to unprotect |