# package — gitlab

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

Canonical: https://mcp.jmrp.io/servers/gitlab/actions/package/
Language: en
Alternate: https://mcp.jmrp.io/es/servers/gitlab/actions/package/index.md
Updated: 2026-09-22T17:10:10+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

### `package.delete` — Package Delete

_destructive_

Delete a package permanently. Returns: a success confirmation naming the deleted package and project. See also: package.list, package.file_delete.

**Required parameters:** `package_id (string|integer)`, `project_id (string|integer)`

### `package.download` — Package Download

Download a single file from the Generic Package Registry to a local path. Returns: the local output path, byte size, and SHA256 checksum. See also: package.file_list, package.list.

**Required parameters:** `file_name (string)`, `output_path (string)`, `package_name (string)`, `package_version (string)`, `project_id (string|integer)`

### `package.file_delete` — Package File Delete

_destructive_

Delete a single file from a package permanently. Returns: a success confirmation naming the deleted file, package, and project. See also: package.file_list, package.delete.

**Required parameters:** `package_file_id (string|integer)`, `package_id (string|integer)`, `project_id (string|integer)`

### `package.file_list` — Package File List

_read-only_

List the files within a single package. Returns: package files with name, size, checksums, creation time, and pagination metadata. See also: package.download, package.file_delete, package.list.

**Required parameters:** `package_id (string|integer)`, `project_id (string|integer)`

### `package.group_list` — List Group Packages

_read-only_

List packages across a group and its descendant projects with optional filters and ordering. Returns: matching packages with type, status, owning project id/path, pipeline metadata, tags, _links, and pagination metadata. See also: package.list, package.file_list, package.delete.

**Required parameters:** `group_id (string|integer)`

### `package.list` — Package List

_read-only_

List packages in a project with optional filters and ordering. Returns: matching packages with type, status, pipeline metadata, tags, _links, and pagination metadata. See also: package.file_list, package.publish, package.delete.

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

### `package.protection_rule_create` — Create Package Protection Rule

Create a package protection rule for a project. Returns: the new rule's id, project id, package name pattern, package type, and minimum push/delete access levels. See also: package.protection_rule_list, package.protection_rule_update, package.protection_rule_delete.

**Required parameters:** `package_name_pattern (string)`, `package_type (string)`, `project_id (string|integer)`

### `package.protection_rule_delete` — Delete Package Protection Rule

_destructive_

Delete a package protection rule from a project by its id (cannot be undone). Returns: a success confirmation. See also: package.protection_rule_list, package.protection_rule_create.

**Required parameters:** `project_id (string|integer)`, `rule_id (integer)`

### `package.protection_rule_list` — List Package Protection Rules

_read-only_

List package protection rules for a project. Returns: each rule's id, project id, package name pattern, package type, and minimum push/delete access levels, with pagination metadata. For container image protection use gitlab_registry_protection_list. See also: package.protection_rule_create, package.protection_rule_update.

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

### `package.protection_rule_update` — Update Package Protection Rule

Update an existing package protection rule by its id. Returns: the updated rule's id, project id, package name pattern, package type, and minimum push/delete access levels. See also: package.protection_rule_list, package.protection_rule_create, package.protection_rule_delete.

**Required parameters:** `project_id (string|integer)`, `rule_id (integer)`

### `package.publish` — Package Publish

Publish a single file to the Generic Package Registry. Returns: the published file's id, package id, name, size, checksums (md5/sha1/sha256), and download URL. See also: package.publish_and_link, package.publish_directory, package.list.

**Required parameters:** `file_name (string)`, `package_name (string)`, `package_version (string)`, `project_id (string|integer)`

### `package.publish_and_link` — Package Publish And Link

Publish a file to the Generic Package Registry and link it to a release in one call. Returns: the published file metadata and the created release asset link. See also: package.publish, package.publish_directory, release.get.

**Required parameters:** `file_name (string)`, `package_name (string)`, `package_version (string)`, `project_id (string|integer)`, `tag_name (string)`

### `package.publish_directory` — Package Publish Directory

Publish every regular file from a local directory to the Generic Package Registry. Returns: total files, total bytes, per-file results, and any per-file errors. See also: package.publish, package.publish_and_link, package.list.

**Required parameters:** `directory_path (string)`, `package_name (string)`, `package_version (string)`, `project_id (string|integer)`

### `package.registry_delete` — Registry Delete Repository

_destructive_

Delete one container registry repository (cannot be undone). Returns: a success confirmation. See also: package.registry_list_project, package.registry_get, package.registry_tag_delete.

**Required parameters:** `project_id (string|integer)`, `repository_id (integer)`

### `package.registry_get` — Registry Get Repository

_read-only_

Get details of one container registry repository by its id. Returns: the repository's name, path, location, status, tag count, and optional tags. See also: package.registry_list_project, package.registry_tag_list, package.registry_delete.

**Required parameters:** `repository_id (integer)`

### `package.registry_list_group` — Registry List Group

_read-only_

List container registry image repositories across a group. Returns: each repository's id, name, path, location, status, tag count, and pagination metadata. See also: package.registry_list_project, package.registry_get.

**Required parameters:** `group_id (string|integer)`

### `package.registry_list_project` — Registry List Project

_read-only_

List container registry image repositories in a project. Returns: each repository's id, name, path, location, status, tag count, optional tags, and pagination metadata. See also: package.registry_get, package.registry_tag_list, package.registry_list_group.

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

### `package.registry_rule_create` — Registry Protection Create

Create a container registry protection rule for a project.

**Required parameters:** `project_id (string|integer)`, `repository_path_pattern (string)`

### `package.registry_rule_delete` — Registry Protection Delete

_destructive_

Delete a container registry repository-path protection rule (cannot be undone). Returns: a success confirmation. See also: package.registry_rule_list, package.registry_rule_create.

**Required parameters:** `project_id (string|integer)`, `rule_id (integer)`

### `package.registry_rule_list` — Registry Protection List

_read-only_

List container registry repository-path protection rules for a project. Returns: each rule's path pattern and minimum push/delete access levels. For tag-level protection use gitlab_registry_tag_protection_list. See also: package.registry_rule_create, package.registry_tag_rule_list.

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

### `package.registry_rule_update` — Registry Protection Update

Update a container registry repository-path protection rule. Returns: the updated rule with its path pattern and minimum push/delete access levels. See also: package.registry_rule_list, package.registry_rule_delete, package.registry_rule_create.

**Required parameters:** `project_id (string|integer)`, `rule_id (integer)`

### `package.registry_tag_delete` — Registry Delete Tag

_destructive_

Delete one container registry tag (cannot be undone). Returns: a success confirmation. See also: package.registry_tag_list, package.registry_tag_delete_bulk, package.registry_tag_get.

**Required parameters:** `project_id (string|integer)`, `repository_id (integer)`, `tag_name (string)`

### `package.registry_tag_delete_bulk` — Registry Delete Tags Bulk

_destructive_

Delete container registry tags in bulk by name patterns and age (cannot be undone). Returns: a success confirmation. Deletion runs asynchronously. See also: package.registry_tag_list, package.registry_tag_delete.

**Required parameters:** `project_id (string|integer)`, `repository_id (integer)`

### `package.registry_tag_get` — Registry Get Tag

_read-only_

Get metadata of one container registry tag. Returns: the tag's name, path, location, revision, digest, total size, and creation time. See also: package.registry_tag_list, package.registry_tag_delete.

**Required parameters:** `project_id (string|integer)`, `repository_id (integer)`, `tag_name (string)`

### `package.registry_tag_list` — Registry List Tags

_read-only_

List tags in one container registry repository.

**Required parameters:** `project_id (string|integer)`, `repository_id (integer)`

### `package.registry_tag_rule_create` — Registry Tag Protection Create

Create a container registry tag protection rule. Returns: the created rule. Omit both minimum access levels to make matching tags immutable. See also: package.registry_tag_rule_list, package.registry_tag_rule_update, package.registry_rule_create.

**Required parameters:** `project_id (string|integer)`, `tag_name_pattern (string)`

### `package.registry_tag_rule_delete` — Registry Tag Protection Delete

_destructive_

Delete a container registry tag protection rule (cannot be undone). Returns: a success confirmation. See also: package.registry_tag_rule_list, package.registry_tag_rule_create.

**Required parameters:** `project_id (string|integer)`, `rule_id (integer)`

### `package.registry_tag_rule_list` — Registry Tag Protection List

_read-only_

List container registry tag protection rules for a project. Returns: each rule's tag name pattern and minimum push/delete access levels (empty = immutable). For repository-path protection use gitlab_registry_protection_list. See also: package.registry_tag_rule_create, package.registry_tag_list.

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

### `package.registry_tag_rule_update` — Registry Tag Protection Update

Update a container registry tag protection rule. Returns: the updated rule. See also: package.registry_tag_rule_list, package.registry_tag_rule_delete.

**Required parameters:** `project_id (string|integer)`, `rule_id (integer)`
