Release
gitlab_releaseCreate, update, and manage GitLab releases with asset links. Publish releases from tags or refs, attach binaries and runbooks.
Instructions
Use {"action":"create","params":{...}}; only top-level keys are action and params. Action params schema: gitlab://schema/meta/gitlab_release/.
Manage GitLab releases and their asset links (binaries, packages, runbooks). Releases wrap a Git tag with notes, milestones and downloadable assets. Delete is destructive: it removes the release but preserves the underlying tag. When to use: publish a release for a tag, create a release and its tag from a ref, list/get/update releases, attach asset links to a release, batch-attach links after a CI build. NOT for: uploading binaries to the package registry (use gitlab_package), milestones (use gitlab_project milestone_*).
Returns:
list: array of releases with pagination.
get / get_latest / create / update: release object {name, tag_name, description, released_at, assets: {sources, links}, evidences, milestones}.
link_list: array of {id, name, url, link_type, direct_asset_path}.
link_create / link_create_batch / link_get / link_update: link object(s).
delete / link_delete: {success: bool, message: string}. Errors: 404 not found (hint: verify tag_name), 403 forbidden (hint: requires Developer+ for create, Maintainer+ for update/delete), 400 invalid params (hint: link url must be absolute https://).
Param conventions: * = required. All actions need project_id*. Release actions need tag_name*. Link actions need tag_name* + link_id* (except link_create / link_create_batch / link_list).
Releases:
create: project_id*, tag_name*, ref (branch/SHA when tag_name does not exist or the prompt says from ref), name, description (Markdown), released_at (ISO 8601), milestones ([]string), tag_message
get: project_id*, tag_name*
get_latest: project_id*
list: project_id*, order_by (released_at/created_at), sort (asc/desc), page, per_page
update: project_id*, tag_name*, name, description, released_at, milestones
delete: project_id*, tag_name*
Asset links:
link_create: project_id*, tag_name*, name*, url*, link_type (runbook/package/image/other), filepath, direct_asset_path
link_create_batch: project_id*, tag_name*, links* (array of {name, url, link_type, filepath, direct_asset_path})
link_get: project_id*, tag_name*, link_id*
link_list: project_id*, tag_name*, page, per_page
link_update: project_id*, tag_name*, link_id*, name, url, filepath, direct_asset_path, link_type
link_delete: project_id*, tag_name*, link_id*
See also: gitlab_tag (standalone tag CRUD), gitlab_package (upload binaries; link_create can point at the package URL), gitlab_project (milestones referenced by releases).
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. This envelope schema stays broad; runtime validation applies the chosen action's schema after reserved meta keys like `confirm` are stripped. 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. |