Action domain

interactive

Every action this domain exposes through gitlab_execute_action, from the gitlab://tools manifest. Each entry folds out to its full upstream description and required parameters.

4 · actions0 · destructive0 · read-only

Counted with a Free-tier GitLab token. 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.

Back to the server card

  1. interactive.issue_createInteractive Issue Create

    Create a GitLab issue through step-by-step prompts, with explicit confirmation before calling the GitLab API. Cancellation at any prompt aborts without creating the issue.

    Input: project_id (numeric ID or URL-encoded path) selects the target project. Prompted fields are title, description, labels, confidential, and confirm. Requires permission to create issues in that project.

    After invocation, the tool elicits in order:
    - title (string, required): issue title.
    - description (string, optional, multi-line, Markdown): leave empty to skip.
    - labels (string, optional): comma-separated. Trimmed and deduped server-side.
    - confidential (boolean, optional): yes/no confirmation. Defaults to public when declined.
    - confirm (boolean, required): final yes/no review of the assembled summary.

    Behavior: cancellation/decline at any prompt aborts with no GitLab API call and no side effects. Each confirmed invocation creates ONE new issue. NON-idempotent: re-running with the same title/fields creates another issue. Side effects on success: GitLab fires issue-created webhooks and may notify issue subscribers.

    When to use: human-in-the-loop issue creation. NOT for: scripted/programmatic creation. Use gitlab_issue (action='create') with all fields pre-supplied.

    Requires the MCP client to support the elicitation capability. If unsupported, returns a structured error naming gitlab_issue (action='create') as the alternative.

    Returns: JSON with the created issue (id, issue_iid, web_url, title, state). issue_iid corresponds to GitLab's iid field.

    See also: issue.create, issue.get.

    Required parameters: No required parameters

  2. interactive.mr_createInteractive MR Create

    Create a GitLab merge request through step-by-step prompts, with explicit confirmation before calling the GitLab API. Cancellation at any prompt aborts without creating the MR.

    Input: project_id (numeric ID or URL-encoded path) selects the target project. Prompted fields are source_branch, target_branch, title, description, labels, remove_source_branch, squash, and confirm. Requires permission to create merge requests in that project.

    After invocation, the tool elicits in order:
    - source_branch (string, required): branch with the changes to merge.
    - target_branch (string, required): branch to merge into (e.g. main, develop).
    - title (string, required): MR title.
    - description (string, optional, multi-line, Markdown): leave empty to skip.
    - labels (string, optional): comma-separated. Trimmed and deduped server-side.
    - remove_source_branch (boolean, optional): yes/no confirmation, default unset.
    - squash (boolean, optional): yes/no confirmation, default unset.
    - confirm (boolean, required): final yes/no review of the assembled summary.

    Behavior: cancellation/decline at any prompt aborts with no GitLab API call and no side effects. Each confirmed invocation creates ONE new merge request. NON-idempotent: GitLab rejects an already-open MR for the same source_branch to target_branch in the same project as a validation failure (HTTP 422). Retries may fail with 422 instead of returning the existing MR. Confirm branch/MR state before re-running. For scripted idempotent workflows, use gitlab_merge_request (action='create') with all fields pre-supplied and handle 422 as the expected duplicate case.

    When to use: human-in-the-loop MR creation. NOT for: scripted/programmatic creation. Use gitlab_merge_request (action='create') with all fields pre-supplied.

    Requires the MCP client to support the elicitation capability. If unsupported, returns a structured error naming gitlab_merge_request (action='create') as the alternative.

    Returns: JSON with the created MR (id, merge_request_iid, web_url, title, source_branch, target_branch, state). merge_request_iid corresponds to GitLab's iid field.

    See also: merge_request.create, branch.create.

    Required parameters: No required parameters

  3. interactive.project_createInteractive Project Create

    Create a GitLab project through step-by-step prompts, with explicit confirmation before calling the GitLab API. Cancellation at any prompt aborts without creating the project except initialize_with_readme, where decline/cancel continues with false.

    Input: no fields. Every project detail is elicited. Requires permission to create projects for the authenticated user.

    After invocation, the tool elicits in order:
    - name (string, required): project display name and (when path is omitted) URL slug.
    - description (string, optional): leave empty to skip.
    - visibility (enum, required): one of private, internal, public.
    - initialize_with_readme (boolean, optional): yes/no confirmation. Explicit no, decline, or cancel continues with false.
    - default_branch (string, optional): leave empty to use the GitLab default ('main').
    - confirm (boolean, required): final yes/no review of the assembled summary.

    When to use: human-in-the-loop project creation. NOT for: scripted/programmatic creation. Use gitlab_project (action='create') with all fields pre-supplied.

    Behavior: each successful invocation creates ONE new project after explicit user confirmation. NON-idempotent: re-running with the same project path/name can fail with 400/409. Cancellation/decline at any prompt aborts with no GitLab API call and no side effects, except initialize_with_readme where no/decline/cancel is accepted as initialize_with_readme=false. Side effects on success: GitLab may initialize a repository and notify project members.

    Requires the MCP client to support the elicitation capability. If unsupported, returns a structured error naming gitlab_project (action='create') as the alternative.

    Returns: JSON with the created project (id, path_with_namespace, web_url, visibility, default_branch).

    See also: project.get, group.get.

    Required parameters: No required parameters

  4. interactive.release_createInteractive Release Create

    Create a GitLab release through step-by-step prompts, with explicit confirmation before calling the GitLab API. Cancellation at any prompt aborts without creating the release.

    Input: project_id (numeric ID or URL-encoded path) selects the target project. Prompted fields are tag_name, name, description, and confirm. Requires permission to create releases in that project.

    After invocation, the tool elicits in order:
    - tag_name (string, required): must reference an existing tag in the project. Create it first via gitlab_tag (action='create').
    - name (string, optional): release title. Defaults to tag_name when left empty.
    - description (string, optional, multi-line, Markdown): release notes. Leave empty to skip.
    - confirm (boolean, required): final yes/no review of the assembled summary.

    When to use: human-in-the-loop release publishing. NOT for: CI/automated release creation. Use gitlab_release (action='create') with all fields pre-supplied.

    Requires the MCP client to support the elicitation capability. If unsupported, returns a structured error naming gitlab_release (action='create') as the alternative.

    Behavior: each successful invocation publishes ONE new release after explicit user confirmation. NON-idempotent: re-running with the same tag returns 409 (release already exists). Cancellation/decline at any prompt aborts with no GitLab API call and no side effects. Side effects on success: GitLab fires release-created webhooks and may notify release subscribers.

    Returns: JSON with the created release (tag_name, name, description, web_url).

    See also: release.create, tag.create.

    Required parameters: No required parameters