Tag
gitlab_tagCreate, list, delete, and protect Git tags in a project. Unprotect tag patterns and verify GPG signatures. Intended for tag management, not releases or branches.
Instructions
Example: {"action":"create","params":{...}} For the params schema of any action, read the MCP resource gitlab://schema/meta/gitlab_tag/.
Manage Git tags and tag protections in a project, plus GPG signature inspection. Delete is destructive and also removes any release attached to the tag. When to use: create/list/delete tags, protect or unprotect tag patterns, verify a tag's GPG/X.509 signature. NOT for: releases (use gitlab_release — a release wraps a tag with notes/assets), branches (use gitlab_branch), repository file/commit operations (use gitlab_repository).
Returns:
list / list_protected: array of {name, target, message, protected, ...} with pagination.
get / create / get_protected / protect: tag or protection object.
get_signature: {signature_type, gpg_key_id, verification_status, ...} or X.509 equivalent.
delete / unprotect: {success: bool, message: string}. Errors: 404 not found, 403 forbidden (hint: requires Maintainer+ to protect/unprotect), 400 invalid params (hint: tag name must not exist for create).
Param conventions: * = required. All actions need project_id*. Access levels: 0 = no one, 30 = Developer, 40 = Maintainer.
create: project_id*, tag_name*, ref* (branch/tag/SHA), message (annotated tag if non-empty)
get / delete: project_id*, tag_name*
list: project_id*, search, order_by (name/updated/version), sort (asc/desc)
get_signature: project_id*, tag_name*
list_protected: project_id*
get_protected / unprotect: project_id*, tag_name*
protect: project_id*, tag_name* (literal or wildcard e.g. 'v*'), create_access_level (0/30/40), allowed_to_create (array of {user_id|group_id|deploy_key_id|access_level})
See also: gitlab_release (releases use tags as anchors), gitlab_repository (commits referenced by tags), gitlab_branch (branches).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform. Pick exactly one of the values in `enum`. Each action expects its own `params` object — see the tool description for the per-action parameter list. | |
| params | No | Action-specific parameters as a JSON object. Required and optional fields differ per action; consult this tool's description for the chosen action. Send only the fields documented for that action — unknown keys are rejected with a validation error (only reserved meta keys like `confirm` are stripped before validation). For the JSON Schema of a specific action's `params`, read the MCP resource `gitlab://schema/meta/{tool}/{action}` (replace placeholders with the tool name and the chosen action). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| next_steps | No | Optional. Suggested follow-up actions or tool calls for the LLM, contextual to the result. | |
| pagination | No | Present on list actions. Use `has_more` and `next_page` to paginate through results. |