Skip to main content
Glama

Gitlab Api

CLI or API | MCP

PyPI - Version MCP Server PyPI - Downloads GitHub Repo stars GitHub forks GitHub contributors PyPI - License GitHub GitHub last commit (by committer) GitHub pull requests GitHub closed pull requests GitHub issues GitHub top language GitHub language count GitHub repo size GitHub repo file count (file type) PyPI - Wheel PyPI - Implementation

Documentation — Installation, deployment, usage across the API, CLI, and MCP backing GitLab instance are maintained in the official documentation.


Related MCP server: Kepler MCP GitLab Server

Overview

Gitlab Api is a production-grade Agent and Model Context Protocol (MCP) server designed to interface directly with GitLab API + MCP Server.


Key Features

  • Consolidated Action-Routed MCP Tools: Minimizes token overhead and eliminates tool bloat in LLM contexts by grouping methods into optimized, togglable tool modules.

  • Enterprise-Grade Security: Complete support for Eunomia policies, OIDC token delegation, and granular execution context tracking.

  • Native Telemetry & Tracing: Out-of-the-box OpenTelemetry exports and native Langfuse tracing.


CLI or API

This agent wraps the GitLab API + MCP Server API. The operator can interact with it programmatically or via its integrated execution entrypoints.

Detailed instructions on how to use the underlying API wrappers, extended schema bindings, and developer SDK references are maintained in docs/index.md.


MCP

This server use dynamic Action-Routed tools to optimize token overhead and maximize IDE compatibility.

Tool surface

Every GitLab operation is one typed tool (gitlab_get_branches, gitlab_create_merge_request, ...) with explicit parameters. There are no action-routed tools. Destructive tools take confirm=true.

Available MCP Tools

Auto-generated from the live MCP server — do not edit by hand.

Typed per-operation tools

MCP Tool

Toggle Env Var

Description

gitlab_accept_merge_request

MERGE_REQUESTSTOOL

Accept (merge) a merge request.

gitlab_api_request

SYSTEMTOOL

Make a custom API request to the GitLab server.

gitlab_approve_merge_request

MERGE_REQUESTSTOOL

Approve a specific merge request.

gitlab_archive_project

PROJECTSTOOL

Archive a specific project.

gitlab_cancel_merge_when_pipeline_succeeds

MERGE_REQUESTSTOOL

Cancel a merge request's queued "merge when pipeline succeeds" (auto-merge).

gitlab_cancel_project_job

PROJECTSTOOL

Cancel a specific job within a project.

gitlab_cherry_pick_commit

REPOSITORIESTOOL

Cherry-pick a commit into a new branch.

gitlab_create_branch

REPOSITORIESTOOL

Create a new branch in a project.

gitlab_create_commit

REPOSITORIESTOOL

Create a new commit.

gitlab_create_commit_comment

REPOSITORIESTOOL

Create a comment on a commit.

gitlab_create_environment

ENVIRONMENTSTOOL

Create a new environment for a project.

gitlab_create_epic

ISSUESTOOL

Create a new group epic.

gitlab_create_group_deploy_token

USERS_GROUPSTOOL

Create a deploy token for a group.

gitlab_create_issue

ISSUESTOOL

Create a new issue.

gitlab_create_label

ISSUESTOOL

Create a new label.

gitlab_create_merge_request

MERGE_REQUESTSTOOL

Create a new merge request.

gitlab_create_milestone

ISSUESTOOL

Create a project milestone.

gitlab_create_note

OTHERTOOL

Create a new note/comment on an issue.

gitlab_create_pipeline_schedule

PIPELINESTOOL

Create a pipeline schedule for a specific project.

gitlab_create_pipeline_schedule_variable

PIPELINESTOOL

Create a variable for a pipeline schedule.

gitlab_create_project

PROJECTSTOOL

Create a new project.

gitlab_create_project_deploy_token

PROJECTSTOOL

Create a deploy token for a project.

gitlab_create_project_level_rule

PROJECTSTOOL

Create a new project-level merge request approval rule.

gitlab_create_release

ENVIRONMENTSTOOL

Create a new release in a project.

gitlab_create_release_evidence

ENVIRONMENTSTOOL

Create evidence for a release in a project.

gitlab_create_snippet

OTHERTOOL

Create a project snippet or personal snippet.

gitlab_create_tag

REPOSITORIESTOOL

Create a tag in a project.

gitlab_create_user

USERS_GROUPSTOOL

Create a new user.

gitlab_create_wiki_page

OTHERTOOL

Create a new wiki page for a project.

gitlab_delete_branch

REPOSITORIESTOOL

Delete a branch in a project.

gitlab_delete_environment

ENVIRONMENTSTOOL

Delete an environment for a project.

gitlab_delete_epic

ISSUESTOOL

Delete a group epic.

gitlab_delete_group_deploy_token

USERS_GROUPSTOOL

Delete a deploy token for a group.

gitlab_delete_issue

ISSUESTOOL

Delete an issue.

gitlab_delete_label

ISSUESTOOL

Delete a label.

gitlab_delete_merged_branches

REPOSITORIESTOOL

Delete all merged branches in a project.

gitlab_delete_milestone

ISSUESTOOL

Delete a project milestone.

gitlab_delete_note

OTHERTOOL

Delete a note.

gitlab_delete_pipeline_schedule

PIPELINESTOOL

Delete a pipeline schedule for a specific project.

gitlab_delete_pipeline_schedule_variable

PIPELINESTOOL

Delete a variable from a pipeline schedule.

gitlab_delete_project

PROJECTSTOOL

Delete a specific project.

gitlab_delete_project_deploy_token

PROJECTSTOOL

Delete a deploy token for a project.

gitlab_delete_project_level_rule

PROJECTSTOOL

Delete a project-level merge request approval rule.

gitlab_delete_project_runner

PROJECTSTOOL

Delete a runner from a project.

gitlab_delete_release

ENVIRONMENTSTOOL

Delete a release in a project.

gitlab_delete_runner

PIPELINESTOOL

Delete a runner.

gitlab_delete_shared_project_link

PROJECTSTOOL

Unshare a specific project from a group.

gitlab_delete_snippet

OTHERTOOL

Delete a snippet.

gitlab_delete_stopped_environments

ENVIRONMENTSTOOL

Delete stopped environments (review apps) for a project.

gitlab_delete_tag

REPOSITORIESTOOL

Delete a tag in a project.

gitlab_delete_user

USERS_GROUPSTOOL

Delete a user.

gitlab_delete_wiki_page

OTHERTOOL

Delete a wiki page for a project.

gitlab_download_release_asset

ENVIRONMENTSTOOL

Download a release asset from a group's release.

gitlab_download_repository_package

OTHERTOOL

Download a repository package for a specific project.

gitlab_edit_group

USERS_GROUPSTOOL

Edit a specific group.

gitlab_edit_group_level_rule

USERS_GROUPSTOOL

Edit a group-level merge request approval setting.

gitlab_edit_pipeline_schedule

PIPELINESTOOL

Edit a pipeline schedule for a specific project.

gitlab_edit_project

PROJECTSTOOL

Edit a specific project.

gitlab_edit_project_level_rule

PROJECTSTOOL

Edit a project-level merge request approval setting.

gitlab_enable_project_runner

PROJECTSTOOL

Enable a runner in a project.

gitlab_erase_project_job

PROJECTSTOOL

Erase a specific job within a project.

gitlab_get_approval_state_merge_requests

MERGE_REQUESTSTOOL

Get the approval state of merge requests for a specific project.

gitlab_get_branch

REPOSITORIESTOOL

Retrieve information about a specific branch in a project.

gitlab_get_branches

REPOSITORIESTOOL

Retrieve information about branches in a project.

gitlab_get_commit

REPOSITORIESTOOL

Get a specific commit.

gitlab_get_commit_comments

REPOSITORIESTOOL

Get comments on a commit.

gitlab_get_commit_diff

REPOSITORIESTOOL

Get the diff of a commit.

gitlab_get_commit_discussions

REPOSITORIESTOOL

Get discussions on a commit.

gitlab_get_commit_gpg_signature

REPOSITORIESTOOL

Get GPG signature of a commit.

gitlab_get_commit_merge_requests

REPOSITORIESTOOL

Get merge requests associated with a commit.

gitlab_get_commit_references

REPOSITORIESTOOL

Get references of a commit.

gitlab_get_commit_statuses

REPOSITORIESTOOL

Get statuses of a commit.

gitlab_get_commits

REPOSITORIESTOOL

Get commits.

gitlab_get_deploy_tokens

ENVIRONMENTSTOOL

Get all deploy tokens.

gitlab_get_environment

ENVIRONMENTSTOOL

Get details of a specific environment.

gitlab_get_environments

ENVIRONMENTSTOOL

Get a list of environments for a project.

gitlab_get_epic

ISSUESTOOL

Get a specific group epic.

gitlab_get_epics

ISSUESTOOL

Get all epics for a group.

gitlab_get_group

USERS_GROUPSTOOL

Get details of a specific group.

gitlab_get_group_deploy_token

USERS_GROUPSTOOL

Get a specific deploy token for a group.

gitlab_get_group_deploy_tokens

USERS_GROUPSTOOL

Get deploy tokens for a specific group.

gitlab_get_group_descendant_groups

USERS_GROUPSTOOL

Get descendant groups of a specific group.

gitlab_get_group_issues

ISSUESTOOL

Get the list of issues for a group (and, by default, its subgroups).

gitlab_get_group_level_rule

USERS_GROUPSTOOL

Get details of a group-level merge request approval setting.

gitlab_get_group_members

USERS_GROUPSTOOL

Get members of a specific group.

gitlab_get_group_merge_requests

MERGE_REQUESTSTOOL

Get merge requests associated with a specific group.

gitlab_get_group_projects

PROJECTSTOOL

Get projects associated with a specific group.

gitlab_get_group_releases

USERS_GROUPSTOOL

Get information about releases in a group.

gitlab_get_group_runners

PIPELINESTOOL

Get information about runners in a group.

gitlab_get_group_subgroups

USERS_GROUPSTOOL

Get subgroups of a specific group.

gitlab_get_group_vulnerabilities

VULNERABILITIESTOOL

Get a group's security vulnerability findings (Ultimate).

gitlab_get_groups

USERS_GROUPSTOOL

Get a list of groups.

gitlab_get_issue

ISSUESTOOL

Get a single issue.

gitlab_get_issues

ISSUESTOOL

Get list of issues. Can filter by project_id.

gitlab_get_label

ISSUESTOOL

Get a specific label by name.

gitlab_get_labels

ISSUESTOOL

Get all labels for a project.

gitlab_get_latest_release

ENVIRONMENTSTOOL

Get information about the latest release in a project.

gitlab_get_latest_release_asset

ENVIRONMENTSTOOL

Get the asset for the latest release in a project.

gitlab_get_latest_release_evidence

ENVIRONMENTSTOOL

Get evidence for the latest release in a project.

gitlab_get_merge_request_level_rules

MERGE_REQUESTSTOOL

Get merge request-level approval rules for a specific project and merge request.

gitlab_get_merge_requests

MERGE_REQUESTSTOOL

Get a list of merge requests.

gitlab_get_milestone

ISSUESTOOL

Get a specific project milestone.

gitlab_get_milestones

ISSUESTOOL

Get all milestones for a project.

gitlab_get_namespace

USERS_GROUPSTOOL

Get information about a specific namespace.

gitlab_get_namespaces

USERS_GROUPSTOOL

Get information about namespaces.

gitlab_get_nested_projects_by_group

PROJECTSTOOL

Get information about nested projects within a group.

gitlab_get_note

OTHERTOOL

Get a specific note.

gitlab_get_notes

OTHERTOOL

Get all notes for a specific issue.

gitlab_get_pipeline

PIPELINESTOOL

Get information about a specific pipeline in a project.

gitlab_get_pipeline_jobs

PIPELINESTOOL

Get jobs associated with a specific pipeline within a project.

gitlab_get_pipeline_schedule

PIPELINESTOOL

Get information about a specific pipeline schedule in a project.

gitlab_get_pipeline_schedules

PIPELINESTOOL

Get pipeline schedules for a specific project.

gitlab_get_pipelines

PIPELINESTOOL

Get information about pipelines for a specific project.

gitlab_get_pipelines_triggered_from_schedule

PIPELINESTOOL

Get pipelines triggered from a specific pipeline schedule.

gitlab_get_project

PROJECTSTOOL

Get information about a specific project.

gitlab_get_project_contributors

PROJECTSTOOL

Get information about contributors to a project.

gitlab_get_project_dependencies

VULNERABILITIESTOOL

Get a project's Dependency List (all detected dependencies).

gitlab_get_project_deploy_token

PROJECTSTOOL

Get a specific deploy token for a project.

gitlab_get_project_deploy_tokens

PROJECTSTOOL

Get deploy tokens for a specific project.

gitlab_get_project_groups

PROJECTSTOOL

Get groups associated with a specific project.

gitlab_get_project_job

PROJECTSTOOL

Get details of a specific job within a project.

gitlab_get_project_job_log

PROJECTSTOOL

Get the log of a specific job within a project.

gitlab_get_project_jobs

PROJECTSTOOL

Get jobs associated with a specific project.

gitlab_get_project_level_merge_request_rule

PROJECTSTOOL

Get details of a specific project-level merge request approval rule.

gitlab_get_project_level_merge_request_rules

PROJECTSTOOL

Get project-level merge request approval rules.

gitlab_get_project_level_rule

PROJECTSTOOL

Get details of a project-level merge request approval setting.

gitlab_get_project_members

PROJECTSTOOL

Get members of a specific project.

gitlab_get_project_merge_request

PROJECTSTOOL

Get details of a specific merge request in a project.

gitlab_get_project_merge_requests

PROJECTSTOOL

Get merge requests for a specific project.

gitlab_get_project_runners

PROJECTSTOOL

Get information about runners in a project.

gitlab_get_project_statistics

PROJECTSTOOL

Get statistics for a specific project.

gitlab_get_project_vulnerabilities

VULNERABILITIESTOOL

Get a project's security vulnerabilities (Ultimate).

gitlab_get_projects

PROJECTSTOOL

Get information about projects.

gitlab_get_protected_branch

REPOSITORIESTOOL

Get information about a specific protected branch in a project.

gitlab_get_protected_branches

REPOSITORIESTOOL

Get information about protected branches in a project.

gitlab_get_protected_environment

ENVIRONMENTSTOOL

Get details of a specific protected environment.

gitlab_get_protected_environments

ENVIRONMENTSTOOL

Get a list of protected environments for a project.

gitlab_get_protected_tag

REPOSITORIESTOOL

Get information about a specific protected tag in a project.

gitlab_get_protected_tags

REPOSITORIESTOOL

Get information about protected tags in a project.

gitlab_get_release_by_tag

REPOSITORIESTOOL

Get information about a release by its tag in a project.

gitlab_get_releases

ENVIRONMENTSTOOL

Get information about releases in a project.

gitlab_get_repository_packages

OTHERTOOL

Get information about repository packages for a specific project.

gitlab_get_runner

PIPELINESTOOL

Get information about a specific runner.

gitlab_get_runner_jobs

PIPELINESTOOL

Get jobs for a specific runner.

gitlab_get_runners

PIPELINESTOOL

Get information about runners.

gitlab_get_snippet

OTHERTOOL

Get a specific snippet.

gitlab_get_snippets

OTHERTOOL

Get list of snippets. Can filter by project_id.

gitlab_get_tag

REPOSITORIESTOOL

Get information about a specific tag in a project.

gitlab_get_tags

REPOSITORIESTOOL

Get information about tags in a project.

gitlab_get_user

USERS_GROUPSTOOL

Get information about a specific user.

gitlab_get_users

USERS_GROUPSTOOL

Get information about users.

gitlab_get_vulnerability

VULNERABILITIESTOOL

Get a single vulnerability by its global ID (Ultimate).

gitlab_get_wiki_list

OTHERTOOL

Get a list of wiki pages for a project.

gitlab_get_wiki_page

OTHERTOOL

Get information about a specific wiki page.

gitlab_merge_request_level_approvals

MERGE_REQUESTSTOOL

Get approvals for a specific merge request.

gitlab_pause_runner

PIPELINESTOOL

Pause or unpause a specific runner.

gitlab_post_build_status_to_commit

REPOSITORIESTOOL

Post build status to a commit.

gitlab_protect_branch

REPOSITORIESTOOL

Protect a specific branch in a project.

gitlab_protect_environment

ENVIRONMENTSTOOL

Protect an environment for a project.

gitlab_protect_tag

REPOSITORIESTOOL

Protect a tag in a project.

gitlab_publish_repository_package

OTHERTOOL

Publish a repository package for a specific project.

gitlab_register_new_runner

PIPELINESTOOL

Register a new runner.

gitlab_require_code_owner_approvals_single_branch

REPOSITORIESTOOL

Require code owner approvals for a specific branch in a project.

gitlab_reset_gitlab_runner_token

PIPELINESTOOL

Reset GitLab runner registration token.

gitlab_reset_group_runner_token

PIPELINESTOOL

Reset registration token for a group's runner.

gitlab_reset_project_runner_token

PROJECTSTOOL

Reset registration token for a project's runner.

gitlab_reset_token

OTHERTOOL

Reset authentication token for a runner.

gitlab_retry_project_job

PROJECTSTOOL

Retry a specific job within a project.

gitlab_revert_commit

REPOSITORIESTOOL

Revert a commit.

gitlab_run_pipeline

PIPELINESTOOL

Run a pipeline for a specific project.

gitlab_run_pipeline_schedule

PIPELINESTOOL

Run a pipeline schedule for a specific project.

gitlab_run_project_job

PROJECTSTOOL

Run a specific job within a project.

gitlab_share_project

PROJECTSTOOL

Share a specific project with a group.

gitlab_stop_environment

ENVIRONMENTSTOOL

Stop an environment for a project.

gitlab_stop_stale_environments

ENVIRONMENTSTOOL

Stop stale environments for a project.

gitlab_take_pipeline_schedule_ownership

PIPELINESTOOL

Take ownership of a pipeline schedule for a specific project.

gitlab_unapprove_merge_request

MERGE_REQUESTSTOOL

Unapprove a specific merge request.

gitlab_unarchive_project

PROJECTSTOOL

Unarchive a specific project.

gitlab_unprotect_branch

REPOSITORIESTOOL

Unprotect a specific branch in a project.

gitlab_unprotect_environment

ENVIRONMENTSTOOL

Unprotect an environment for a project.

gitlab_unprotect_tag

REPOSITORIESTOOL

Unprotect a tag in a project.

gitlab_update_environment

ENVIRONMENTSTOOL

Update an existing environment for a project.

gitlab_update_epic

ISSUESTOOL

Update a group epic.

gitlab_update_issue

ISSUESTOOL

Update an issue.

gitlab_update_label

ISSUESTOOL

Update an existing label.

gitlab_update_milestone

ISSUESTOOL

Update a project milestone.

gitlab_update_note

OTHERTOOL

Update a note.

gitlab_update_project_level_rule

PROJECTSTOOL

Update an existing project-level merge request approval rule.

gitlab_update_protected_environment

ENVIRONMENTSTOOL

Update a protected environment for a project.

gitlab_update_release

ENVIRONMENTSTOOL

Update information about a release in a project.

gitlab_update_runner_details

PIPELINESTOOL

Update details for a specific runner.

gitlab_update_snippet

OTHERTOOL

Update a snippet.

gitlab_update_user

USERS_GROUPSTOOL

Update an existing user.

gitlab_update_wiki_page

OTHERTOOL

Update an existing wiki page for a project.

gitlab_upload_wiki_page_attachment

OTHERTOOL

Upload an attachment to a wiki page for a project.

gitlab_verify_runner_authentication

PIPELINESTOOL

Verify runner authentication.

Typed per-operation tools. Auto-generated — do not edit.

Detailed tool schemas, parameter shapes, and validation constraints are preserved in docs/usage.md.

Dynamic Tool Selection & Visibility

This MCP server supports dynamic toolset selection and visibility filtering at runtime. This allows the operator to restrict the set of exposed tools to prevent blowing up the LLM's context window.

The operator can configure tool filtering via multiple input channels:

  • CLI Arguments: Pass --tools or --toolsets (or their disabled counterparts --disabled-tools and --disabled-toolsets) during startup.

  • Environment Variables: Define standard environment variables:

    • MCP_ENABLED_TOOLS / MCP_DISABLED_TOOLS

    • MCP_ENABLED_TAGS / MCP_DISABLED_TAGS

  • HTTP SSE Request Headers: Pass custom headers during transport initialization:

    • x-mcp-enabled-tools / x-mcp-disabled-tools

    • x-mcp-enabled-tags / x-mcp-disabled-tags

  • HTTP SSE Request Query Parameters: Append query parameters directly to the operator's transport connection URL:

    • ?tools=tool1,tool2

    • ?tags=tag1

When query strings or parameters are supplied, an LLM-free Knowledge Graph resolution layer (using DynamicToolOrchestrator) matches query intents against known tool tags, names, or descriptions, with safe fallback and automated 24-hour background cache refreshing.


MCP Configuration Examples

Install the connector-focused [mcp] extra. Examples use gitlab-api[mcp] to add FastMCP / FastAPI through scion-sdk; the required Scion SDK core still carries medulla. The [agent-runtime] extra additionally enables model orchestration.

stdio Transport (local IDEs — Cursor, Claude Desktop, VS Code)

{
  "mcpServers": {
    "gitlab-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "gitlab-api[mcp]",
        "gitlab-mcp"
      ],
      "env": {
        "MCP_TOOL_MODE": "intent",
        "BRANCHESTOOL": "True",
        "COMMITSTOOL": "True",
        "CUSTOM_APITOOL": "True",
        "DEPLOY_TOKENSTOOL": "True",
        "ENVIRONMENTSTOOL": "True",
        "EPICSTOOL": "True",
        "GITLAB_TOKEN": "your_gitlab_token_here",
        "GITLAB_URL": "https://gitlab.example.com",
        "GRAPHQLTOOL": "True",
        "GRAPHQL_OPSTOOL": "True",
        "GROUPSTOOL": "True",
        "ISSUESTOOL": "True",
        "JOBSTOOL": "True",
        "LABELSTOOL": "True",
        "MEMBERSTOOL": "True",
        "MERGE_REQUESTSTOOL": "True",
        "MERGE_RULESTOOL": "True",
        "MILESTONESTOOL": "True",
        "MISCTOOL": "True",
        "NAMESPACESTOOL": "True",
        "NOTESTOOL": "True",
        "PACKAGESTOOL": "True",
        "PIPELINESTOOL": "True",
        "PIPELINE_SCHEDULESTOOL": "True",
        "PROJECTSTOOL": "True",
        "PROTECTED_BRANCHESTOOL": "True",
        "RELEASESTOOL": "True",
        "RUNNERSTOOL": "True",
        "SNIPPETSTOOL": "True",
        "TAGSTOOL": "True",
        "USERSTOOL": "True",
        "VULNERABILITIESTOOL": "True",
        "WIKITOOL": "True"
      }
    }
  }
}

Runtime references require an alias-aware launcher such as Arbora. Other launchers must omit those entries and inject the resolved values through their own runtime secret boundary.

Streamable-HTTP Transport (networked / production)

{
  "mcpServers": {
    "gitlab-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "gitlab-api[mcp]",
        "gitlab-mcp",
        "--transport",
        "streamable-http",
        "--port",
        "8000"
      ],
      "env": {
        "TRANSPORT": "streamable-http",
        "HOST": "127.0.0.1",
        "PORT": "8000",
        "MCP_TOOL_MODE": "intent",
        "BRANCHESTOOL": "True",
        "COMMITSTOOL": "True",
        "CUSTOM_APITOOL": "True",
        "DEPLOY_TOKENSTOOL": "True",
        "ENVIRONMENTSTOOL": "True",
        "EPICSTOOL": "True",
        "GITLAB_TOKEN": "your_gitlab_token_here",
        "GITLAB_URL": "https://gitlab.example.com",
        "GRAPHQLTOOL": "True",
        "GRAPHQL_OPSTOOL": "True",
        "GROUPSTOOL": "True",
        "ISSUESTOOL": "True",
        "JOBSTOOL": "True",
        "LABELSTOOL": "True",
        "MEMBERSTOOL": "True",
        "MERGE_REQUESTSTOOL": "True",
        "MERGE_RULESTOOL": "True",
        "MILESTONESTOOL": "True",
        "MISCTOOL": "True",
        "NAMESPACESTOOL": "True",
        "NOTESTOOL": "True",
        "PACKAGESTOOL": "True",
        "PIPELINESTOOL": "True",
        "PIPELINE_SCHEDULESTOOL": "True",
        "PROJECTSTOOL": "True",
        "PROTECTED_BRANCHESTOOL": "True",
        "RELEASESTOOL": "True",
        "RUNNERSTOOL": "True",
        "SNIPPETSTOOL": "True",
        "TAGSTOOL": "True",
        "USERSTOOL": "True",
        "VULNERABILITIESTOOL": "True",
        "WIKITOOL": "True"
      }
    }
  }
}

Alternatively, connect to a pre-deployed Streamable-HTTP instance by url:

{
  "mcpServers": {
    "gitlab-mcp": {
      "url": "http://localhost:8000/gitlab-mcp/mcp"
    }
  }
}

Run a reviewed container image as a least-privilege stdio child (no listener or published port):

docker run -i --rm \
  --read-only \
  --cap-drop=ALL \
  --security-opt=no-new-privileges \
  --pids-limit=256 \
  --tmpfs /tmp:rw,noexec,nosuid,nodev,size=64m \
  -e TRANSPORT=stdio \
  -e MCP_TOOL_MODE=intent \
  -e BRANCHESTOOL=True \
  -e COMMITSTOOL=True \
  -e CUSTOM_APITOOL=True \
  -e DEPLOY_TOKENSTOOL=True \
  -e ENVIRONMENTSTOOL=True \
  -e EPICSTOOL=True \
  -e GITLAB_TOKEN=your_gitlab_token_here \
  -e GITLAB_URL=https://gitlab.example.com \
  -e GRAPHQLTOOL=True \
  -e GRAPHQL_OPSTOOL=True \
  -e GROUPSTOOL=True \
  -e ISSUESTOOL=True \
  -e JOBSTOOL=True \
  -e LABELSTOOL=True \
  -e MEMBERSTOOL=True \
  -e MERGE_REQUESTSTOOL=True \
  -e MERGE_RULESTOOL=True \
  -e MILESTONESTOOL=True \
  -e MISCTOOL=True \
  -e NAMESPACESTOOL=True \
  -e NOTESTOOL=True \
  -e PACKAGESTOOL=True \
  -e PIPELINESTOOL=True \
  -e PIPELINE_SCHEDULESTOOL=True \
  -e PROJECTSTOOL=True \
  -e PROTECTED_BRANCHESTOOL=True \
  -e RELEASESTOOL=True \
  -e RUNNERSTOOL=True \
  -e SNIPPETSTOOL=True \
  -e TAGSTOOL=True \
  -e USERSTOOL=True \
  -e VULNERABILITIESTOOL=True \
  -e WIKITOOL=True \
  registry.example.invalid/gitlab-api@sha256:<digest> gitlab-mcp

For containerized network HTTP, supply an authenticated TLS ingress (or direct server TLS), exact MCP_ALLOWED_HOSTS, and an exact trusted-proxy CIDR policy through the operator-owned deployment profile. The generator does not emit an unauthenticated non-loopback listener.

Auto-generated from the code-read env surface (MCP_TOOL_MODE + package vars) — do not edit.

Additional Deployment Options

gitlab-api can run as a local stdio process or container, or behind a remote network boundary. The Deployment guide carries the detailed transport contract.

  • Local container — launch a reviewed immutable image as a least-privilege stdio child with no listener or published port.

  • Remote URL — connect through an operator-supplied authenticated HTTPS ingress. Keep its URL, outbound identity references, trust profile, and exact MCP_ALLOWED_HOSTS in AgentConfig.


Environment Variables

Package environment variables

Variable

Example

Description

HOST

0.0.0.0

PORT

8000

TRANSPORT

stdio

options: stdio, streamable-http, sse

ENABLE_OTEL

True

OTEL_EXPORTER_OTLP_ENDPOINT

http://localhost:8080/api/public/otel

OTEL_EXPORTER_OTLP_PUBLIC_KEY

secret-injected

OTEL_EXPORTER_OTLP_SECRET_KEY

secret-injected

OTEL_EXPORTER_OTLP_PROTOCOL

http/protobuf

EUNOMIA_TYPE

none

options: none, embedded, remote

EUNOMIA_POLICY_FILE

mcp_policies.json

EUNOMIA_REMOTE_URL

http://eunomia-server:8000

GITLAB_URL

https://gitlab.example.com

GITLAB_TOKEN

secret-injected

GITLAB_TLS_PROFILE

—

named AgentConfig TLS profile; blank uses the configured default

MISCTOOL

True

BRANCHESTOOL

True

PROTECTED_BRANCHESTOOL

True

COMMITSTOOL

True

DEPLOY_TOKENSTOOL

True

ENVIRONMENTSTOOL

True

EPICSTOOL

True

GROUPSTOOL

True

ISSUESTOOL

True

JOBSTOOL

True

LABELSTOOL

True

MEMBERSTOOL

True

MERGE_REQUESTSTOOL

True

MERGE_RULESTOOL

True

MILESTONESTOOL

True

NAMESPACESTOOL

True

NOTESTOOL

True

PACKAGESTOOL

True

PIPELINESTOOL

True

PIPELINE_SCHEDULESTOOL

True

PROJECTSTOOL

True

RELEASESTOOL

True

RUNNERSTOOL

True

SNIPPETSTOOL

True

TAGSTOOL

True

USERSTOOL

True

VULNERABILITIESTOOL

True

WIKITOOL

True

CUSTOM_APITOOL

True

GRAPHQLTOOL

True

GRAPHQL_OPSTOOL

True

Inherited scion-sdk variables (apply to every connector)

Variable

Example

Description

MCP_TOOL_MODE

intent

Tool surface: intent | condensed | verbose | both

MCP_ENABLED_TOOLS

—

Comma-separated tool allow-list

MCP_DISABLED_TOOLS

—

Comma-separated tool deny-list

MCP_ENABLED_TAGS

—

Comma-separated tag allow-list

MCP_DISABLED_TAGS

—

Comma-separated tag deny-list

MCP_CLIENT_AUTH

—

Outbound MCP child auth: oidc-client-credentials | basic | none

OIDC_CLIENT_ID

—

OIDC client id (service-account auth)

OIDC_CLIENT_SECRET_REF

secret://identity/oidc-client-secret

Runtime secret reference for the OIDC service account

MCP_BASIC_AUTH_USERNAME

—

HTTP Basic username (MCP_CLIENT_AUTH=basic)

MCP_BASIC_AUTH_PASSWORD_REF

secret://identity/mcp-basic-password

Runtime secret reference for HTTP Basic auth (MCP_CLIENT_AUTH=basic)

DEBUG

False

Verbose logging

PYTHONUNBUFFERED

1

Unbuffered stdout (recommended in containers)

MCP_URL

http://localhost:8000/mcp

URL of the MCP server the agent connects to

PROVIDER

openai

LLM provider for the agent

MODEL_ID

gpt-4o

Model id for the agent

45 package + 16 inherited variable(s). Auto-generated from .env.example + the shared scion-sdk set — do not edit.

Every variable the server reads.

Connection & Credentials

The connector is single-host by default and multi-tenant when gitlab_instances is configured (see Multi-Tenancy). When no instances are configured, it falls back to the single-host GITLAB_* values below.

Variable

Description

Default

GITLAB_URL

Base GitLab instance URL

https://gitlab.example.com

GITLAB_TOKEN

GitLab personal/project access token (glpat-…)

—

GITLAB_TLS_PROFILE

Optional runtime TLS profile selector

(unset)

Multiple instances are declared once under gitlab_instances in the shared scion-sdk XDG config (~/.config/scion-sdk/config.json) — each entry has name, url, token, and optional tls_profile. Target a tenant by name from the client factory; an unset instance resolves to the first configured one (else GITLAB_URL / GITLAB_TOKEN).

MCP server / transport

Variable

Description

Default

TRANSPORT

stdio, streamable-http, or sse

stdio

HOST

Bind host (HTTP transports)

0.0.0.0

PORT

Bind port (HTTP transports)

8000

MCP_TOOL_MODE

Tool surface: condensed, verbose, or both

condensed

MCP_ENABLED_TOOLS / MCP_DISABLED_TOOLS

Comma-separated tool allow/deny list

—

MCP_ENABLED_TAGS / MCP_DISABLED_TAGS

Comma-separated tag allow/deny list

—

DEBUG

Verbose logging

False

PYTHONUNBUFFERED

Unbuffered stdout (recommended in containers)

1

Tool toggles

Each action-routed tool can be disabled individually via its toggle env var (set to false). The full list is in the Available MCP Tools table above (e.g. PROJECTSTOOL, MERGE_REQUESTSTOOL, PIPELINESTOOL, GRAPHQLTOOL, CUSTOM_APITOOL).

Telemetry & governance

Variable

Description

Default

ENABLE_OTEL

Enable OpenTelemetry export

True

OTEL_EXPORTER_OTLP_ENDPOINT

OTLP collector endpoint

—

OTEL_EXPORTER_OTLP_PUBLIC_KEY / OTEL_EXPORTER_OTLP_SECRET_KEY

OTLP auth keys

—

OTEL_EXPORTER_OTLP_PROTOCOL

OTLP protocol (e.g. http/protobuf)

—

EUNOMIA_TYPE

Authorization mode: none, embedded, remote

none

EUNOMIA_POLICY_FILE

Embedded policy file

mcp_policies.json

EUNOMIA_REMOTE_URL

Remote Eunomia server URL

—

Agent

Set credentials

export GITLAB_URL="your_value" export GITLAB_TOKEN="your_value"

Connector-focused MCP server (includes the shared graph engine)

uv pip install "gitlab-api[mcp]"

Everything (development)

uv pip install "gitlab-api[all]" # or: python -m pip install "gitlab-api[all]"


### Container images (`:mcp`)

One multi-stage `docker/Dockerfile` builds the MCP-only image (`--target mcp`):

| Image tag | Build target | Contents | Entrypoint |
|-----------|--------------|----------|------------|
| `example/gitlab-api:mcp` | `--target mcp` | `gitlab-api[mcp]` — **connector-focused**, includes `medulla`; no model-orchestration stack | `gitlab-mcp` |

```bash
docker build --target mcp   -t example/gitlab-api:mcp    docker/   # connector-focused MCP server

Available Tools

208 tools
gitlab_accept_merge_requestAccept merge requestA
Idempotent

Accept (merge) a merge request.

Pass merge_when_pipeline_succeeds=True to set auto-merge (merge once the pipeline succeeds) rather than merging immediately. Optional body params: merge_commit_message, squash_commit_message, squash, should_remove_source_branch, sha.

Args: **kwargs: project_id and merge_request_iid (required) plus optional merge parameters listed above.

Returns: Response: A wrapper containing the original response and a MergeRequest model.

Raises: MissingParameterError: If the project_id or merge_request_iid is missing. ParameterError: If invalid parameters are provided.

Inputs: data, name, group_id, user_ids, +9 more.

gitlab_api_requestApi requestB

Make a custom API request to the GitLab server.

Args: method: The HTTP method to use (GET, POST, PUT, DELETE). endpoint: The API endpoint to call. data: The data to send in the request body (for form data). json: The JSON data to send in the request body.

Returns: Response: A wrapper containing the original response and the response data (if applicable).

Raises: ValueError: If an unsupported HTTP method is provided. ParameterError: If invalid parameters are provided. HTTPError: If the API request fails.

Inputs: method (required), endpoint (required), data, json.

gitlab_approve_merge_requestApprove merge requestC

Approve a specific merge request.

Args: **kwargs: Additional parameters for the request (e.g., project_id, merge_request_iid).

Returns: Response: A wrapper containing the original response and a MergeRequest model.

Raises: MissingParameterError: If the project_id or merge_request_iid is missing. ParameterError: If invalid parameters are provided.

Inputs: data, name, group_id, user_ids, +9 more.

gitlab_archive_projectArchive projectC

Archive a specific project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a Project model.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: page, per_page, max_pages, project_id.

gitlab_cancel_merge_when_pipeline_succeedsCancel merge when pipeline succeedsA

Cancel a merge request's queued "merge when pipeline succeeds" (auto-merge).

Args: **kwargs: project_id and merge_request_iid (required).

Returns: Response: A wrapper containing the original response and a MergeRequest model.

Raises: MissingParameterError: If the project_id or merge_request_iid is missing. ParameterError: If invalid parameters are provided.

Inputs: data, name, group_id, user_ids, +9 more.

gitlab_cancel_project_jobCancel project jobC

Cancel a specific job within a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, job_id).

Returns: Response: A wrapper containing the original response and a Job model.

Raises: MissingParameterError: If the project_id or job_id is missing. ParameterError: If invalid parameters are provided.

Inputs: page, scope, job_id, per_page, +6 more.

gitlab_cherry_pick_commitCherry pick commitC

Cherry-pick a commit into a new branch.

Args: **kwargs: Additional parameters for the request.

Returns: Response: A wrapper containing the original response and a Commit model.

Raises: ParameterError: If invalid parameters are provided.

Inputs: all, ref, data, line, +35 more.

gitlab_create_branchCreate branchC

Create a new branch in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, branch, ref).

Returns: Response: The response object containing a Branch model.

Raises: MissingParameterError: If required parameters are missing. ParameterError: If invalid parameters are provided.

Inputs: ref, page, branch, per_page, +2 more.

gitlab_create_commitCreate commitC

Create a new commit.

Args: **kwargs: Additional parameters for the request.

Returns: Response: A wrapper containing the original response and a Commit model.

Raises: ParameterError: If invalid parameters are provided.

Inputs: all, ref, data, line, +35 more.

gitlab_create_commit_commentCreate commit commentC

Create a comment on a commit.

Args: **kwargs: Additional parameters for the request.

Returns: Response: A wrapper containing the original response and a Comment model.

Raises: ParameterError: If invalid parameters are provided.

Inputs: all, ref, data, line, +35 more.

gitlab_create_environmentCreate environmentC

Create a new environment for a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, name).

Returns: Response: A wrapper containing the original response and an Environment model.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: id, key, ref, cron, +121 more.

gitlab_create_epicCreate epicC

Create a new group epic.

Inputs: data, title, epic_iid, group_id, +2 more.

gitlab_create_group_deploy_tokenCreate group deploy tokenB

Create a deploy token for a group.

Returns a secret: the new token string is returned once, at creation, and never by any read call. Store it now.

Args: **kwargs: Additional parameters for the request (e.g., group_id, name, scopes).

Returns: Response: A wrapper containing the original response and a DeployToken model.

Raises: ParameterError: If invalid parameters are provided. MissingParameterError: If required parameters are missing.

Inputs: name, page, token, scopes, +6 more.

gitlab_create_issueCreate issueD

Create a new issue.

Inputs: data, page, state, title, +10 more.

gitlab_create_labelCreate labelD

Create a new label.

Inputs: data, name, color, new_name, +2 more.

gitlab_create_merge_requestCreate merge requestC

Create a new merge request.

Args: **kwargs: Additional parameters for the request (e.g., project_id, source_branch, target_branch, title).

Returns: Response: A wrapper containing the original response and a MergeRequest model.

Raises: MissingParameterError: If the project_id, source_branch, target_branch, or title is missing. ParameterError: If invalid parameters are provided.

Inputs: wip, data, page, sort, +42 more.

gitlab_create_milestoneCreate milestoneC

Create a project milestone.

Inputs: data, title, project_id, description, +2 more.

gitlab_create_noteCreate noteC

Create a new note/comment on an issue.

Inputs: body, data, note_id, issue_iid, +1 more.

gitlab_create_pipeline_scheduleCreate pipeline scheduleC

Create a pipeline schedule for a specific project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a PipelineSchedule model.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: id, key, ref, cron, +121 more.

gitlab_create_pipeline_schedule_variableCreate pipeline schedule variableC

Create a variable for a pipeline schedule.

Args: **kwargs: Additional parameters for the request (e.g., project_id, pipeline_schedule_id, key).

Returns: Response: A wrapper containing the original response and a PipelineVariable model.

Raises: MissingParameterError: If the project_id or pipeline_schedule_id is missing. ParameterError: If invalid parameters are provided.

Inputs: id, key, ref, cron, +121 more.

gitlab_create_projectCreate projectB

Create a new project.

Args: name: Project name (required unless path is given). path: Repository path. namespace_id: Group or user namespace id. visibility: 'private', 'internal' or 'public'. description: Project description. initialize_with_readme: Create an initial README. default_branch: Default branch name. topics: Project topics. issues_enabled: Enable issues. merge_requests_enabled: Enable merge requests. wiki_enabled: Enable the wiki. snippets_enabled: Enable snippets. container_registry_enabled: Enable the container registry. shared_runners_enabled: Enable shared runners. lfs_enabled: Enable Git LFS. only_allow_merge_if_pipeline_succeeds: Require a green pipeline to merge. squash_option: 'never', 'always', 'default_on' or 'default_off'. template_name: Instance template to start from. import_url: URL to import the repository from.

Returns: Response: A wrapper containing the original response and a Project model.

Raises: MissingParameterError: If neither name nor path is provided. ParameterError: If invalid parameters are provided.

Inputs: name, path, topics, import_url, +15 more.

gitlab_create_project_deploy_tokenCreate project deploy tokenB

Create a deploy token for a project.

Returns a secret: the new token string is returned once, at creation, and never by any read call. Store it now.

Args: **kwargs: Additional parameters for the request (e.g., project_id, name, scopes).

Returns: Response: A wrapper containing the original response and a DeployToken model.

Raises: ParameterError: If invalid parameters are provided. MissingParameterError: If required parameters are missing.

Inputs: name, page, token, scopes, +6 more.

gitlab_create_project_level_ruleCreate project level ruleB

Create a new project-level merge request approval rule.

Args: **kwargs: Additional parameters for the request (e.g., project_id, name, approvals_required).

Returns: Response: A wrapper containing the original response and an ApprovalRule model.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, name, group_id, user_ids, +9 more.

gitlab_create_releaseCreate releaseC

Create a new release in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, tag_name).

Returns: Response: A wrapper containing the original response and a Release model.

Raises: MissingParameterError: If the project_id or tag_name is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, data, name, page, +15 more.

gitlab_create_release_evidenceCreate release evidenceC

Create evidence for a release in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, tag_name).

Returns: Response: A wrapper containing the original response (no data for successful operation).

Raises: MissingParameterError: If the project_id or tag_name is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, data, name, page, +15 more.

gitlab_create_snippetCreate snippetC

Create a project snippet or personal snippet.

Inputs: data, title, content, file_name, +3 more.

gitlab_create_tagCreate tagC

Create a tag in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, name).

Returns: Response: A wrapper containing the original response and a Tag model.

Raises: MissingParameterError: If the project_id or name is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, tag, page, message, +3 more.

gitlab_create_userCreate userD

Create a new user.

Inputs: data, name, page, sort, +27 more.

gitlab_create_wiki_pageCreate wiki pageC

Create a new wiki page for a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a WikiPage model.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, file, slug, title, +7 more.

gitlab_delete_branchDelete branchC
DestructiveIdempotent

Delete a branch in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, branch).

Returns: Response: The response object (no data for successful deletion).

Raises: MissingParameterError: If required parameters are missing. ParameterError: If invalid parameters are provided.

Inputs: ref, page, branch, confirm, +3 more.

gitlab_delete_environmentDelete environmentB
DestructiveIdempotent

Delete an environment for a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, environment_id).

Returns: Response: A wrapper containing the original response (no data for successful deletion).

Raises: MissingParameterError: If the project_id or environment_id is missing. ParameterError: If invalid parameters are provided.

Inputs: page, confirm, per_page, max_pages, +2 more.

gitlab_delete_epicDelete epicC
DestructiveIdempotent

Delete a group epic.

Inputs: data, title, confirm, epic_iid, +3 more.

gitlab_delete_group_deploy_tokenDelete group deploy tokenC
DestructiveIdempotent

Delete a deploy token for a group.

Args: **kwargs: Additional parameters for the request (e.g., group_id, deploy_token_id).

Returns: Response: A wrapper containing the original response (no data for successful deletion).

Raises: ParameterError: If invalid parameters are provided. MissingParameterError: If required parameters are missing.

Inputs: name, page, token, scopes, +7 more.

gitlab_delete_issueDelete issueD
DestructiveIdempotent

Delete an issue.

Inputs: data, page, state, title, +11 more.

gitlab_delete_labelDelete labelD
DestructiveIdempotent

Delete a label.

Inputs: data, name, color, confirm, +3 more.

gitlab_delete_merged_branchesDelete merged branchesC
DestructiveIdempotent

Delete all merged branches in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: The response object (no data for successful deletion).

Raises: MissingParameterError: If required parameters are missing. ParameterError: If invalid parameters are provided.

Inputs: ref, page, branch, confirm, +3 more.

gitlab_delete_milestoneDelete milestoneC
DestructiveIdempotent

Delete a project milestone.

Inputs: data, title, confirm, project_id, +3 more.

gitlab_delete_noteDelete noteD
DestructiveIdempotent

Delete a note.

Inputs: body, data, confirm, note_id, +2 more.

gitlab_delete_pipeline_scheduleDelete pipeline scheduleC
DestructiveIdempotent

Delete a pipeline schedule for a specific project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, pipeline_schedule_id).

Returns: Response: A wrapper containing the original response (no data for successful deletion).

Raises: MissingParameterError: If the project_id or pipeline_schedule_id is missing. ParameterError: If invalid parameters are provided.

Inputs: page, confirm, per_page, max_pages, +2 more.

gitlab_delete_pipeline_schedule_variableDelete pipeline schedule variableB
DestructiveIdempotent

Delete a variable from a pipeline schedule.

Args: **kwargs: Additional parameters for the request (e.g., project_id, pipeline_schedule_id, key).

Returns: Response: A wrapper containing the original response (no data for successful deletion).

Raises: MissingParameterError: If the project_id, pipeline_schedule_id, or key is missing. ParameterError: If invalid parameters are provided.

Inputs: key, page, confirm, per_page, +3 more.

gitlab_delete_projectDelete projectC
DestructiveIdempotent

Delete a specific project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response (no data for successful deletion).

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: page, confirm, per_page, max_pages, +1 more.

gitlab_delete_project_deploy_tokenDelete project deploy tokenC
DestructiveIdempotent

Delete a deploy token for a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, deploy_token_id).

Returns: Response: A wrapper containing the original response (no data for successful deletion).

Raises: ParameterError: If invalid parameters are provided. MissingParameterError: If required parameters are missing.

Inputs: name, page, token, scopes, +7 more.

gitlab_delete_project_level_ruleDelete project level ruleB
DestructiveIdempotent

Delete a project-level merge request approval rule.

Args: **kwargs: Additional parameters for the request (e.g., project_id, approval_rule_id).

Returns: Response: A wrapper containing the original response (no data for successful deletion).

Raises: MissingParameterError: If the project_id or approval_rule_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, name, confirm, group_id, +10 more.

gitlab_delete_project_runnerDelete project runnerC
DestructiveIdempotent

Delete a runner from a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, runner_id).

Returns: Response: A wrapper containing the original response (no data for successful deletion).

Raises: MissingParameterError: If the project_id or runner_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, info, token, active, +16 more.

gitlab_delete_releaseDelete releaseC
DestructiveIdempotent

Delete a release in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, tag_name).

Returns: Response: A wrapper containing the original response (no data for successful deletion).

Raises: MissingParameterError: If the project_id or tag_name is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, data, name, page, +16 more.

gitlab_delete_runnerDelete runnerC
DestructiveIdempotent

Delete a runner.

Args: **kwargs: Additional parameters for the request (e.g., runner_id, token).

Returns: Response: A wrapper containing the original response (no data for successful deletion).

Raises: MissingParameterError: If the runner_id or token is missing. ParameterError: If invalid parameters are provided.

Inputs: data, info, token, active, +16 more.

gitlab_delete_snippetDelete snippetD
DestructiveIdempotent

Delete a snippet.

Inputs: data, title, confirm, content, +4 more.

gitlab_delete_stopped_environmentsDelete stopped environmentsB
DestructiveIdempotent

Delete stopped environments (review apps) for a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response (no data for successful deletion).

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: id, key, ref, cron, +122 more.

gitlab_delete_tagDelete tagC
DestructiveIdempotent

Delete a tag in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, name).

Returns: Response: A wrapper containing the original response (no data for successful deletion).

Raises: MissingParameterError: If the project_id or name is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, tag, page, confirm, +4 more.

gitlab_delete_userDelete userD
DestructiveIdempotent

Delete a user.

Inputs: data, name, page, sort, +28 more.

gitlab_delete_wiki_pageDelete wiki pageC
DestructiveIdempotent

Delete a wiki page for a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, slug).

Returns: Response: A wrapper containing the original response (no data for successful deletion).

Raises: MissingParameterError: If the project_id or slug is missing. ParameterError: If invalid parameters are provided.

Inputs: data, file, slug, title, +8 more.

gitlab_discover_graphql_schemaGitlab Discover Graphql SchemaB

Discover the dynamic GitLab GraphQL schema including types, fields, and custom attributes in real-time.

Inputs: type_name. Returns: object

gitlab_download_release_assetDownload release assetC
Read-onlyIdempotent

Download a release asset from a group's release.

Args: **kwargs: Additional parameters for the request (e.g., group_id, tag_name, direct_asset_path).

Returns: Response: A wrapper containing the original response and the raw asset data.

Raises: MissingParameterError: If the group_id, tag_name, or direct_asset_path is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, data, name, page, +15 more.

gitlab_download_repository_packageDownload repository packageC
Read-onlyIdempotent

Download a repository package for a specific project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, package_name, package_version, file_name).

Returns: Response: A wrapper containing the original response and the raw package file data.

Raises: MissingParameterError: If the project_id, package_name, package_version, or file_name is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, page, sort, select, +11 more.

gitlab_edit_groupEdit groupC
Idempotent

Edit a specific group.

Args: **kwargs: Additional parameters for the request (e.g., group_id).

Returns: Response: A wrapper containing the original response and a Group model.

Raises: MissingParameterError: If the group_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, name, page, path, +41 more.

gitlab_edit_group_level_ruleEdit group level ruleC
Idempotent

Edit a group-level merge request approval setting.

Args: **kwargs: Additional parameters for the request (e.g., group_id).

Returns: Response: A wrapper containing the original response and a MergeRequestRuleSettings model.

Raises: MissingParameterError: If the group_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, group_id, project_id, allow_author_approval, +5 more.

gitlab_edit_pipeline_scheduleEdit pipeline scheduleC
Idempotent

Edit a pipeline schedule for a specific project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, pipeline_schedule_id).

Returns: Response: A wrapper containing the original response and a PipelineSchedule model.

Raises: MissingParameterError: If the project_id or pipeline_schedule_id is missing. ParameterError: If invalid parameters are provided.

Inputs: id, key, ref, cron, +121 more.

gitlab_edit_projectEdit projectC
Idempotent

Edit a specific project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a Project model.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: id, key, ref, cron, +121 more.

gitlab_edit_project_level_ruleEdit project level ruleC
Idempotent

Edit a project-level merge request approval setting.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a MergeRequestRuleSettings model.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, group_id, project_id, allow_author_approval, +5 more.

gitlab_enable_project_runnerEnable project runnerC

Enable a runner in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, runner_id).

Returns: Response: A wrapper containing the original response and a Runner model.

Raises: MissingParameterError: If the project_id or runner_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, info, token, active, +15 more.

gitlab_erase_project_jobErase project jobC

Erase a specific job within a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, job_id).

Returns: Response: A wrapper containing the original response and a Job model.

Raises: MissingParameterError: If the project_id or job_id is missing. ParameterError: If invalid parameters are provided.

Inputs: page, scope, job_id, per_page, +6 more.

gitlab_get_approval_state_merge_requestsGet approval state merge requestsC
Read-onlyIdempotent

Get the approval state of merge requests for a specific project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, merge_request_iid).

Returns: Response: A wrapper containing the original response and the raw approval state data.

Raises: MissingParameterError: If the project_id or merge_request_iid is missing. ParameterError: If invalid parameters are provided.

Inputs: data, name, group_id, user_ids, +9 more.

gitlab_get_branchGet branchC
Read-onlyIdempotent

Retrieve information about a specific branch in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, branch).

Returns: Response: The response object containing a Branch model.

Raises: MissingParameterError: If the project ID or branch is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, page, branch, per_page, +2 more.

gitlab_get_branchesGet branchesC
Read-onlyIdempotent

Retrieve information about branches in a project.

Args: **kwargs: Additional keyword arguments to initialize the BranchModel.

Returns: Response: The response object containing a list of Branch models.

Raises: ParameterError: If the provided parameters are invalid based on the BranchModel.

Inputs: ref, page, branch, per_page, +2 more.

gitlab_get_commitGet commitC
Read-onlyIdempotent

Get a specific commit.

Args: **kwargs: Additional parameters for the request.

Returns: Response: A wrapper containing the original response and a Commit model.

Raises: ParameterError: If invalid parameters are provided.

Inputs: all, ref, data, line, +35 more.

gitlab_get_commit_commentsGet commit commentsC
Read-onlyIdempotent

Get comments on a commit.

Args: **kwargs: Additional parameters for the request.

Returns: Response: A wrapper containing the original response and a list of Comment models.

Raises: ParameterError: If invalid parameters are provided.

Inputs: all, ref, data, line, +35 more.

gitlab_get_commit_diffGet commit diffC
Read-onlyIdempotent

Get the diff of a commit.

Args: **kwargs: Additional parameters for the request.

Returns: Response: A wrapper containing the original response and a list of Diff models.

Raises: ParameterError: If invalid parameters are provided.

Inputs: all, ref, data, line, +35 more.

gitlab_get_commit_discussionsGet commit discussionsC
Read-onlyIdempotent

Get discussions on a commit.

Args: **kwargs: Additional parameters for the request.

Returns: Response: A wrapper containing the original response and a list of Discussion models.

Raises: ParameterError: If invalid parameters are provided.

Inputs: all, ref, data, line, +35 more.

gitlab_get_commit_gpg_signatureGet commit gpg signatureC
Read-onlyIdempotent

Get GPG signature of a commit.

Args: **kwargs: Additional parameters for the request.

Returns: Response: A wrapper containing the original response and a CommitSignature model.

Raises: ParameterError: If invalid parameters are provided.

Inputs: all, ref, data, line, +35 more.

gitlab_get_commit_merge_requestsGet commit merge requestsC
Read-onlyIdempotent

Get merge requests associated with a commit.

Args: **kwargs: Additional parameters for the request.

Returns: Response: A wrapper containing the original response and a list of MergeRequest models.

Raises: ParameterError: If invalid parameters are provided.

Inputs: all, ref, data, line, +35 more.

gitlab_get_commit_referencesGet commit referencesC
Read-onlyIdempotent

Get references of a commit.

Args: **kwargs: Additional parameters for the request.

Returns: Response: A wrapper containing the original response and a list of reference dictionaries.

Raises: ParameterError: If invalid parameters are provided.

Inputs: all, ref, data, line, +35 more.

gitlab_get_commitsGet commitsD
Read-onlyIdempotent

Get commits.

Args: **kwargs: Additional parameters for the request.

Returns: Response: A wrapper containing the original response and a list of Commit models.

Raises: ParameterError: If invalid parameters are provided.

Inputs: all, ref, data, line, +35 more.

gitlab_get_commit_statusesGet commit statusesC
Read-onlyIdempotent

Get statuses of a commit.

Args: **kwargs: Additional parameters for the request.

Returns: Response: A wrapper containing the original response and a list of Status models.

Raises: ParameterError: If invalid parameters are provided.

Inputs: all, ref, data, line, +35 more.

gitlab_get_deploy_tokensGet deploy tokensC
Read-onlyIdempotent

Get all deploy tokens.

Args: **kwargs: Additional parameters for the request.

Returns: Response: A wrapper containing the original response and a list of DeployToken models.

Raises: ParameterError: If the request fails or returns invalid data.

Inputs: name, page, token, scopes, +6 more.

gitlab_get_environmentGet environmentC
Read-onlyIdempotent

Get details of a specific environment.

Args: **kwargs: Additional parameters for the request (e.g., project_id, environment_id).

Returns: Response: A wrapper containing the original response and an Environment model.

Raises: MissingParameterError: If the project_id or environment_id is missing. ParameterError: If invalid parameters are provided.

Inputs: id, key, ref, cron, +121 more.

gitlab_get_environmentsGet environmentsC
Read-onlyIdempotent

Get a list of environments for a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a list of Environment models.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: id, key, ref, cron, +121 more.

gitlab_get_epicGet epicC
Read-onlyIdempotent

Get a specific group epic.

Inputs: data, title, epic_iid, group_id, +2 more.

gitlab_get_epicsGet epicsC
Read-onlyIdempotent

Get all epics for a group.

Inputs: data, title, epic_iid, group_id, +2 more.

gitlab_get_groupGet groupC
Read-onlyIdempotent

Get details of a specific group.

Args: **kwargs: Additional parameters for the request (e.g., group_id).

Returns: Response: A wrapper containing the original response and a Group model.

Raises: MissingParameterError: If the group_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, name, page, path, +41 more.

gitlab_get_group_deploy_tokenGet group deploy tokenC
Read-onlyIdempotent

Get a specific deploy token for a group.

Args: **kwargs: Additional parameters for the request (e.g., group_id, deploy_token_id).

Returns: Response: A wrapper containing the original response and a DeployToken model.

Raises: ParameterError: If invalid parameters are provided. MissingParameterError: If required parameters are missing.

Inputs: name, page, token, scopes, +6 more.

gitlab_get_group_deploy_tokensGet group deploy tokensB
Read-onlyIdempotent

Get deploy tokens for a specific group.

Args: **kwargs: Additional parameters for the request (e.g., group_id).

Returns: Response: A wrapper containing the original response and a list of DeployToken models.

Raises: ParameterError: If invalid parameters are provided. MissingParameterError: If required parameters are missing.

Inputs: name, page, token, scopes, +6 more.

gitlab_get_group_descendant_groupsGet group descendant groupsC
Read-onlyIdempotent

Get descendant groups of a specific group.

Args: **kwargs: Additional parameters for the request (e.g., group_id).

Returns: Response: A wrapper containing the original response and a list of Group models.

Raises: MissingParameterError: If the group_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, name, page, path, +41 more.

gitlab_get_group_issuesGet group issuesB
Read-onlyIdempotent

Get the list of issues for a group (and, by default, its subgroups).

Args: **kwargs: group_id (required) plus optional filters (state, labels, assignee_username, milestone, search, order_by, ...).

Returns: Response: A wrapper containing the original response and a list of Issue models.

Raises: MissingParameterError: If the group_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, page, state, title, +10 more.

gitlab_get_group_level_ruleGet group level ruleC
Read-onlyIdempotent

Get details of a group-level merge request approval setting.

Args: **kwargs: Additional parameters for the request (e.g., group_id).

Returns: Response: A wrapper containing the original response and a MergeRequestRuleSettings model.

Raises: MissingParameterError: If the group_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, group_id, project_id, allow_author_approval, +5 more.

gitlab_get_group_membersGet group membersB
Read-onlyIdempotent

Get members of a specific group.

Args: **kwargs: Additional parameters for the request (e.g., group_id).

Returns: Response: A wrapper containing the original response and a list of Membership models.

Raises: MissingParameterError: If the group_id is missing. ParameterError: If invalid parameters are provided.

Inputs: page, group_id, per_page, project_id.

gitlab_get_group_merge_requestsGet group merge requestsC
Read-onlyIdempotent

Get merge requests associated with a specific group.

Args: **kwargs: Additional parameters for the request (e.g., group_id).

Returns: Response: A wrapper containing the original response and a list of MergeRequest models.

Raises: MissingParameterError: If the group_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, name, page, path, +41 more.

gitlab_get_group_projectsGet group projectsC
Read-onlyIdempotent

Get projects associated with a specific group.

Args: **kwargs: Additional parameters for the request (e.g., group_id).

Returns: Response: A wrapper containing the original response and a list of Project models.

Raises: MissingParameterError: If the group_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, name, page, path, +41 more.

gitlab_get_group_releasesGet group releasesC
Read-onlyIdempotent

Get information about releases in a group.

Args: **kwargs: Additional parameters for the request (e.g., group_id).

Returns: Response: A wrapper containing the original response and a list of Release models.

Raises: MissingParameterError: If the group_id is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, data, name, page, +15 more.

gitlab_get_group_runnersGet group runnersC
Read-onlyIdempotent

Get information about runners in a group.

Args: **kwargs: Additional parameters for the request (e.g., group_id).

Returns: Response: A wrapper containing the original response and a list of Runner models.

Raises: MissingParameterError: If the group_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, info, token, active, +15 more.

gitlab_get_groupsGet groupsC
Read-onlyIdempotent

Get a list of groups.

Args: **kwargs: Additional parameters for the request (e.g., group_id).

Returns: Response: A wrapper containing the original response and a list of Group models.

Raises: ParameterError: If invalid parameters are provided.

Inputs: data, name, page, path, +41 more.

gitlab_get_group_subgroupsGet group subgroupsC
Read-onlyIdempotent

Get subgroups of a specific group.

Args: **kwargs: Additional parameters for the request (e.g., group_id).

Returns: Response: A wrapper containing the original response and a list of Group models.

Raises: MissingParameterError: If the group_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, name, page, path, +41 more.

gitlab_get_group_vulnerabilitiesGet group vulnerabilitiesB
Read-onlyIdempotent

Get a group's security vulnerability findings (Ultimate).

GET /groups/{group_id}/vulnerability_findings

Args: **kwargs: group_id (required); optional pagination.

Returns: Response: wrapper containing the original response and the parsed vulnerability findings (list of dicts).

Raises: MissingParameterError: If group_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, page, group_id, per_page, +4 more.

gitlab_get_issueGet issueC
Read-onlyIdempotent

Get a single issue.

Inputs: data, page, state, title, +10 more.

gitlab_get_issuesGet issuesC
Read-onlyIdempotent

Get list of issues. Can filter by project_id.

Inputs: data, page, state, title, +10 more.

gitlab_get_labelGet labelC
Read-onlyIdempotent

Get a specific label by name.

Inputs: data, name, color, new_name, +2 more.

gitlab_get_labelsGet labelsC
Read-onlyIdempotent

Get all labels for a project.

Inputs: data, name, color, new_name, +2 more.

gitlab_get_latest_releaseGet latest releaseC
Read-onlyIdempotent

Get information about the latest release in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a Release model.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, data, name, page, +15 more.

gitlab_get_latest_release_assetGet latest release assetB
Read-onlyIdempotent

Get the asset for the latest release in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, direct_asset_path).

Returns: Response: A wrapper containing the original response and the raw asset data.

Raises: MissingParameterError: If the project_id or direct_asset_path is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, data, name, page, +15 more.

gitlab_get_latest_release_evidenceGet latest release evidenceC
Read-onlyIdempotent

Get evidence for the latest release in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and the raw evidence data.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, data, name, page, +15 more.

gitlab_get_merge_request_level_rulesGet merge request level rulesB
Read-onlyIdempotent

Get merge request-level approval rules for a specific project and merge request.

Args: **kwargs: Additional parameters for the request (e.g., project_id, merge_request_iid).

Returns: Response: A wrapper containing the original response and a list of ApprovalRule models.

Raises: MissingParameterError: If the project_id or merge_request_iid is missing. ParameterError: If invalid parameters are provided.

Inputs: data, name, group_id, user_ids, +9 more.

gitlab_get_merge_requestsGet merge requestsB
Read-onlyIdempotent

Get a list of merge requests.

Args: **kwargs: Additional parameters for the request (e.g., state, scope).

Returns: Response: A wrapper containing the original response and a list of MergeRequest models.

Raises: ParameterError: If invalid parameters are provided.

Inputs: wip, data, page, sort, +42 more.

gitlab_get_milestoneGet milestoneC
Read-onlyIdempotent

Get a specific project milestone.

Inputs: data, title, project_id, description, +2 more.

gitlab_get_milestonesGet milestonesC
Read-onlyIdempotent

Get all milestones for a project.

Inputs: data, title, project_id, description, +2 more.

gitlab_get_namespaceGet namespaceB
Read-onlyIdempotent

Get information about a specific namespace.

Args: **kwargs: Additional parameters for the request (e.g., namespace_id).

Returns: Response: A wrapper containing the original response and a Namespace model.

Raises: MissingParameterError: If the namespace_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, search, max_pages, owned_only, +2 more.

gitlab_get_namespacesGet namespacesC
Read-onlyIdempotent

Get information about namespaces.

Args: **kwargs: Additional parameters for the request (e.g., per_page).

Returns: Response: A wrapper containing the original response and a list of Namespace models.

Raises: ParameterError: If invalid parameters are provided.

Inputs: data, search, max_pages, owned_only, +2 more.

gitlab_get_nested_projects_by_groupGet nested projects by groupC
Read-onlyIdempotent

Get information about nested projects within a group.

Args: **kwargs: Additional parameters for the request (e.g., group_id, per_page).

Returns: Response: A wrapper containing the original response and a list of Project models.

Raises: MissingParameterError: If the group_id is missing. ParameterError: If invalid parameters are provided.

Inputs: id, key, ref, cron, +121 more.

gitlab_get_noteGet noteD
Read-onlyIdempotent

Get a specific note.

Inputs: body, data, note_id, issue_iid, +1 more.

gitlab_get_notesGet notesB
Read-onlyIdempotent

Get all notes for a specific issue.

Inputs: body, data, note_id, issue_iid, +1 more.

gitlab_get_pipelineGet pipelineB
Read-onlyIdempotent

Get information about a specific pipeline in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, pipeline_id).

Returns: Response: A wrapper containing the original response and a Pipeline model.

Raises: MissingParameterError: If the project_id or pipeline_id is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, data, page, status, +6 more.

gitlab_get_pipeline_jobsGet pipeline jobsB
Read-onlyIdempotent

Get jobs associated with a specific pipeline within a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, pipeline_id).

Returns: Response: A wrapper containing the original response and a list of Job models.

Raises: MissingParameterError: If the project_id or pipeline_id is missing. ParameterError: If invalid parameters are provided.

Inputs: page, scope, job_id, per_page, +6 more.

gitlab_get_pipelinesGet pipelinesB
Read-onlyIdempotent

Get information about pipelines for a specific project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a list of Pipeline models.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, data, page, status, +6 more.

gitlab_get_pipeline_scheduleGet pipeline scheduleA
Read-onlyIdempotent

Get information about a specific pipeline schedule in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, pipeline_schedule_id).

Returns: Response: A wrapper containing the original response and a PipelineSchedule model.

Raises: MissingParameterError: If the project_id or pipeline_schedule_id is missing. ParameterError: If invalid parameters are provided.

Inputs: page, per_page, max_pages, project_id, +1 more.

gitlab_get_pipeline_schedulesGet pipeline schedulesC
Read-onlyIdempotent

Get pipeline schedules for a specific project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a list of PipelineSchedule models.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: id, key, ref, cron, +121 more.

gitlab_get_pipelines_triggered_from_scheduleGet pipelines triggered from scheduleB
Read-onlyIdempotent

Get pipelines triggered from a specific pipeline schedule.

Args: **kwargs: Additional parameters for the request (e.g., project_id, pipeline_schedule_id).

Returns: Response: A wrapper containing the original response and a list of Pipeline models.

Raises: MissingParameterError: If the project_id or pipeline_schedule_id is missing. ParameterError: If invalid parameters are provided.

Inputs: id, key, ref, cron, +121 more.

gitlab_get_projectGet projectC
Read-onlyIdempotent

Get information about a specific project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a Project model.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: page, per_page, max_pages, project_id.

gitlab_get_project_contributorsGet project contributorsC
Read-onlyIdempotent

Get information about contributors to a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a list of User models.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: id, key, ref, cron, +121 more.

gitlab_get_project_dependenciesGet project dependenciesB
Read-onlyIdempotent

Get a project's Dependency List (all detected dependencies).

GET /projects/{project_id}/dependencies

Args: **kwargs: project_id (required); optional package_manager filter and pagination (page, per_page, max_pages).

Returns: Response: wrapper containing the original response and the parsed dependency list (list of dicts).

Raises: MissingParameterError: If project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, page, group_id, per_page, +4 more.

gitlab_get_project_deploy_tokenGet project deploy tokenC
Read-onlyIdempotent

Get a specific deploy token for a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, deploy_token_id).

Returns: Response: A wrapper containing the original response and a DeployToken model.

Raises: ParameterError: If invalid parameters are provided. MissingParameterError: If required parameters are missing.

Inputs: name, page, token, scopes, +6 more.

gitlab_get_project_deploy_tokensGet project deploy tokensC
Read-onlyIdempotent

Get deploy tokens for a specific project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a list of DeployToken models.

Raises: ParameterError: If invalid parameters are provided. MissingParameterError: If required parameters are missing.

Inputs: name, page, token, scopes, +6 more.

gitlab_get_project_groupsGet project groupsC
Read-onlyIdempotent

Get groups associated with a specific project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a list of Group models.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: id, key, ref, cron, +121 more.

gitlab_get_project_jobGet project jobB
Read-onlyIdempotent

Get details of a specific job within a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, job_id).

Returns: Response: A wrapper containing the original response and a Job model.

Raises: MissingParameterError: If the project_id or job_id is missing. ParameterError: If invalid parameters are provided.

Inputs: page, scope, job_id, per_page, +6 more.

gitlab_get_project_job_logGet project job logC
Read-onlyIdempotent

Get the log of a specific job within a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, job_id).

Returns: Response: A wrapper containing the original response and the raw job log data.

Raises: MissingParameterError: If the project_id or job_id is missing. ParameterError: If invalid parameters are provided.

Inputs: page, scope, job_id, per_page, +6 more.

gitlab_get_project_jobsGet project jobsC
Read-onlyIdempotent

Get jobs associated with a specific project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a list of Job models.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: page, scope, job_id, per_page, +6 more.

gitlab_get_project_level_merge_request_ruleGet project level merge request ruleB
Read-onlyIdempotent

Get details of a specific project-level merge request approval rule.

Args: **kwargs: Additional parameters for the request (e.g., project_id, approval_rule_id).

Returns: Response: A wrapper containing the original response and an ApprovalRule model.

Raises: MissingParameterError: If the project_id or approval_rule_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, name, group_id, user_ids, +9 more.

gitlab_get_project_level_merge_request_rulesGet project level merge request rulesC
Read-onlyIdempotent

Get project-level merge request approval rules.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a list of ApprovalRule models.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, name, group_id, user_ids, +9 more.

gitlab_get_project_level_ruleGet project level ruleC
Read-onlyIdempotent

Get details of a project-level merge request approval setting.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a MergeRequestRuleSettings model.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, group_id, project_id, allow_author_approval, +5 more.

gitlab_get_project_membersGet project membersB
Read-onlyIdempotent

Get members of a specific project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a list of Membership models.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: page, group_id, per_page, project_id.

gitlab_get_project_merge_requestGet project merge requestC
Read-onlyIdempotent

Get details of a specific merge request in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, merge_request_iid).

Returns: Response: A wrapper containing the original response and a MergeRequest model.

Raises: MissingParameterError: If the project_id or merge_request_iid is missing. ParameterError: If invalid parameters are provided.

Inputs: wip, data, page, sort, +42 more.

gitlab_get_project_merge_requestsGet project merge requestsC
Read-onlyIdempotent

Get merge requests for a specific project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a list of MergeRequest models.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: wip, data, page, sort, +42 more.

gitlab_get_project_runnersGet project runnersC
Read-onlyIdempotent

Get information about runners in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a list of Runner models.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, info, token, active, +15 more.

gitlab_get_projectsGet projectsC
Read-onlyIdempotent

Get information about projects.

Args: **kwargs: Additional parameters for the request (e.g., owned, membership).

Returns: Response: A wrapper containing the original response and a list of Project models.

Raises: ParameterError: If invalid parameters are provided.

Inputs: id, key, ref, cron, +121 more.

gitlab_get_project_statisticsGet project statisticsC
Read-onlyIdempotent

Get statistics for a specific project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and the raw statistics data.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: page, per_page, max_pages, project_id.

gitlab_get_project_vulnerabilitiesGet project vulnerabilitiesB
Read-onlyIdempotent

Get a project's security vulnerabilities (Ultimate).

GET /projects/{project_id}/vulnerabilities

Args: **kwargs: project_id (required); optional pagination.

Returns: Response: wrapper containing the original response and the parsed vulnerabilities (list of dicts).

Raises: MissingParameterError: If project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, page, group_id, per_page, +4 more.

gitlab_get_protected_branchGet protected branchB
Read-onlyIdempotent

Get information about a specific protected branch in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, branch).

Returns: Response: A wrapper containing the original response and a Branch model.

Raises: MissingParameterError: If the project_id or branch is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, page, branch, per_page, +2 more.

gitlab_get_protected_branchesGet protected branchesC
Read-onlyIdempotent

Get information about protected branches in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a list of Branch models.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, page, branch, per_page, +2 more.

gitlab_get_protected_environmentGet protected environmentA
Read-onlyIdempotent

Get details of a specific protected environment.

Args: **kwargs: Additional parameters for the request (e.g., project_id, name).

Returns: Response: A wrapper containing the original response and an Environment model.

Raises: MissingParameterError: If the project_id or name is missing. ParameterError: If invalid parameters are provided.

Inputs: name, page, per_page, max_pages, +1 more.

gitlab_get_protected_environmentsGet protected environmentsB
Read-onlyIdempotent

Get a list of protected environments for a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a list of Environment models.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: id, key, ref, cron, +121 more.

gitlab_get_protected_tagGet protected tagB
Read-onlyIdempotent

Get information about a specific protected tag in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, name).

Returns: Response: A wrapper containing the original response and a Tag model.

Raises: MissingParameterError: If the project_id or name is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, tag, page, message, +3 more.

gitlab_get_protected_tagsGet protected tagsC
Read-onlyIdempotent

Get information about protected tags in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a list of Tag models.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, tag, page, message, +3 more.

gitlab_get_release_by_tagGet release by tagC
Read-onlyIdempotent

Get information about a release by its tag in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, tag_name).

Returns: Response: A wrapper containing the original response and a Release model.

Raises: MissingParameterError: If the project_id or tag_name is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, data, name, page, +15 more.

gitlab_get_releasesGet releasesC
Read-onlyIdempotent

Get information about releases in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a list of Release models.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, data, name, page, +15 more.

gitlab_get_repository_packagesGet repository packagesC
Read-onlyIdempotent

Get information about repository packages for a specific project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a list of Package models.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, page, sort, select, +11 more.

gitlab_get_runnerGet runnerB
Read-onlyIdempotent

Get information about a specific runner.

Args: **kwargs: Additional parameters for the request (e.g., runner_id).

Returns: Response: A wrapper containing the original response and a Runner model.

Raises: MissingParameterError: If the runner_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, info, token, active, +15 more.

gitlab_get_runner_jobsGet runner jobsC
Read-onlyIdempotent

Get jobs for a specific runner.

Args: **kwargs: Additional parameters for the request (e.g., runner_id).

Returns: Response: A wrapper containing the original response and a list of Job models.

Raises: MissingParameterError: If the runner_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, info, token, active, +15 more.

gitlab_get_runnersGet runnersC
Read-onlyIdempotent

Get information about runners.

Args: **kwargs: Additional parameters for the request (e.g., scope, status).

Returns: Response: A wrapper containing the original response and a list of Runner models.

Raises: ParameterError: If invalid parameters are provided.

Inputs: data, info, token, active, +15 more.

gitlab_get_snippetGet snippetD
Read-onlyIdempotent

Get a specific snippet.

Inputs: data, title, content, file_name, +3 more.

gitlab_get_snippetsGet snippetsC
Read-onlyIdempotent

Get list of snippets. Can filter by project_id.

Inputs: data, title, content, file_name, +3 more.

gitlab_get_tagGet tagC
Read-onlyIdempotent

Get information about a specific tag in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, name).

Returns: Response: A wrapper containing the original response and a Tag model.

Raises: MissingParameterError: If the project_id or name is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, tag, page, message, +3 more.

gitlab_get_tagsGet tagsC
Read-onlyIdempotent

Get information about tags in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a list of Tag models.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, tag, page, message, +3 more.

gitlab_get_userGet userC
Read-onlyIdempotent

Get information about a specific user.

Args: **kwargs: Additional parameters for the request (e.g., user_id).

Returns: Response: A wrapper containing the original response and a User model.

Raises: MissingParameterError: If the user_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, name, page, sort, +27 more.

gitlab_get_usersGet usersC
Read-onlyIdempotent

Get information about users.

Args: **kwargs: Additional parameters for the request (e.g., per_page, page).

Returns: Response: A wrapper containing the original response and a list of User models.

Raises: ParameterError: If invalid parameters are provided.

Inputs: data, name, page, sort, +27 more.

gitlab_get_vulnerabilityGet vulnerabilityA
Read-onlyIdempotent

Get a single vulnerability by its global ID (Ultimate).

GET /vulnerabilities/{vulnerability_id}

Args: **kwargs: vulnerability_id (required).

Returns: Response: wrapper containing the original response and the parsed vulnerability (dict).

Raises: MissingParameterError: If vulnerability_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, page, group_id, per_page, +4 more.

gitlab_get_wiki_listGet wiki listC
Read-onlyIdempotent

Get a list of wiki pages for a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a list of WikiPage models.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, file, slug, title, +7 more.

gitlab_get_wiki_pageGet wiki pageC
Read-onlyIdempotent

Get information about a specific wiki page.

Args: **kwargs: Additional parameters for the request (e.g., project_id, slug).

Returns: Response: A wrapper containing the original response and a WikiPage model.

Raises: MissingParameterError: If the project_id or slug is missing. ParameterError: If invalid parameters are provided.

Inputs: data, file, slug, title, +7 more.

gitlab_graphqlGitlab GraphqlC

Execute raw GraphQL queries and mutations natively on GitLab.

Inputs: query (required), variables, operation_name.

gitlab_graphql_ops_cancel_pipelineGitlab Graphql Ops Cancel PipelineC

Cancel a running pipeline through GraphQL.

Inputs: project_id (required), pipeline_id (required).

gitlab_graphql_ops_create_pipelineGitlab Graphql Ops Create PipelineC

Create a pipeline through GraphQL.

Inputs: ref (required), project_id (required), variables.

gitlab_graphql_ops_delete_merge_requestGitlab Graphql Ops Delete Merge RequestA
Destructive

Close a merge request through GraphQL (GitLab does not delete over GraphQL).

Inputs: project_id (required), merge_request_iid (required), confirm.

gitlab_graphql_ops_get_jobGitlab Graphql Ops Get JobC
Read-only

Read one CI job through GraphQL.

Inputs: job_id (required), project_id (required).

gitlab_graphql_ops_retry_pipelineGitlab Graphql Ops Retry PipelineB

Retry the failed jobs of a pipeline through GraphQL.

Inputs: project_id (required), pipeline_id (required).

gitlab_graphql_ops_update_merge_requestGitlab Graphql Ops Update Merge RequestA

Change a merge request's title, description or target branch through GraphQL.

Inputs: project_id (required), merge_request_iid (required), title, description, +1 more.

gitlab_ingest_pipelinesGitlab Ingest PipelinesA

Natively ingest GitLab CI pipeline runs (+ jobs) into medulla.

Lists recent pipelines for project_id and pushes them as typed :PipelineRun/:CheckRun nodes (the same classes github-agent uses, so GitLab CI/CD and GitHub Actions unify) into the knowledge graph. Best-effort: returns {"ingested": None} when no engine is reachable. CONCEPT:AU-KG.ingest.enterprise-source-extractor.

Inputs: project_id (required), ref, status, per_page, +1 more.

gitlab_ingest_projectsGitlab Ingest ProjectsA

Natively ingest GitLab projects into medulla as typed :Project nodes.

Lists projects via the GitLab API and pushes them (with their :GitLabGroup + :partOfGroup links) into the knowledge graph via the fast engine client. Native-ingestion failures propagate to the caller. CONCEPT:AU-KG.ingest.enterprise-source-extractor.

Inputs: owned, search, per_page, max_pages, +1 more.

gitlab_instances_getGitlab Instances GetA
Read-only

Read one configured GitLab tenant: url, whether a token and a TLS profile are set.

Inputs: name (required).

gitlab_instances_listGitlab Instances ListA
Read-only

List the configured GitLab tenants by name (tokens are never returned).

Multi-tenancy is driven by the shared scion-sdk XDG config (gitlab_instances in ~/.config/scion-sdk/config.json). Falls back to the single-host GITLAB_URL/GITLAB_TOKEN.

Inputs: no named parameters.

gitlab_merge_request_level_approvalsMerge request level approvalsC
Read-onlyIdempotent

Get approvals for a specific merge request.

Args: **kwargs: Additional parameters for the request (e.g., project_id, merge_request_iid).

Returns: Response: A wrapper containing the original response and the raw approval data.

Raises: MissingParameterError: If the project_id or merge_request_iid is missing. ParameterError: If invalid parameters are provided.

Inputs: data, name, group_id, user_ids, +9 more.

gitlab_pause_runnerPause runnerC
Idempotent

Pause or unpause a specific runner.

Args: **kwargs: Additional parameters for the request (e.g., runner_id, active).

Returns: Response: A wrapper containing the original response and a Runner model.

Raises: MissingParameterError: If the runner_id or active status is missing. ParameterError: If invalid parameters are provided.

Inputs: data, info, token, active, +15 more.

gitlab_post_build_status_to_commitPost build status to commitC

Post build status to a commit.

Args: **kwargs: Additional parameters for the request.

Returns: Response: A wrapper containing the original response and a Commit model.

Raises: ParameterError: If invalid parameters are provided.

Inputs: all, ref, data, line, +35 more.

gitlab_protect_branchProtect branchC

Protect a specific branch in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, branch).

Returns: Response: A wrapper containing the original response and a Branch model.

Raises: MissingParameterError: If the project_id or branch is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, page, branch, per_page, +2 more.

gitlab_protect_environmentProtect environmentC

Protect an environment for a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, name).

Returns: Response: A wrapper containing the original response and an Environment model.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: id, key, ref, cron, +121 more.

gitlab_protect_tagProtect tagC

Protect a tag in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, name).

Returns: Response: A wrapper containing the original response and a Tag model.

Raises: MissingParameterError: If the project_id or name is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, tag, page, message, +3 more.

gitlab_publish_repository_packagePublish repository packageC
Idempotent

Publish a repository package for a specific project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, package_name, package_version, file_name).

Returns: Response: A wrapper containing the original response and a Package model.

Raises: MissingParameterError: If the project_id, package_name, package_version, or file_name is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, page, sort, select, +11 more.

gitlab_register_new_runnerRegister new runnerC

Register a new runner.

Args: **kwargs: Additional parameters for the request (e.g., token).

Returns: Response: A wrapper containing the original response and a Runner model.

Raises: MissingParameterError: If the token is missing. ParameterError: If invalid parameters are provided.

Inputs: data, info, token, active, +15 more.

gitlab_require_code_owner_approvals_single_branchRequire code owner approvals single branchC

Require code owner approvals for a specific branch in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, branch).

Returns: Response: A wrapper containing the original response and a Branch model.

Raises: MissingParameterError: If the project_id or branch is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, page, branch, per_page, +2 more.

gitlab_reset_gitlab_runner_tokenReset gitlab runner tokenB

Reset GitLab runner registration token.

Returns: Response: A wrapper containing the original response and the raw token data.

Raises: ParameterError: If invalid parameters are provided.

Inputs: no named parameters.

gitlab_reset_group_runner_tokenReset group runner tokenC

Reset registration token for a group's runner.

Args: **kwargs: Additional parameters for the request (e.g., group_id).

Returns: Response: A wrapper containing the original response and the raw token data.

Raises: MissingParameterError: If the group_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, info, token, active, +15 more.

gitlab_reset_project_runner_tokenReset project runner tokenC

Reset registration token for a project's runner.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and the raw token data.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, info, token, active, +15 more.

gitlab_reset_tokenReset tokenC

Reset authentication token for a runner.

Args: **kwargs: Additional parameters for the request (e.g., runner_id, token).

Returns: Response: A wrapper containing the original response and a Runner model.

Raises: MissingParameterError: If the runner_id or token is missing. ParameterError: If invalid parameters are provided.

Inputs: data, info, token, active, +15 more.

gitlab_retry_project_jobRetry project jobC

Retry a specific job within a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, job_id).

Returns: Response: A wrapper containing the original response and a Job model.

Raises: MissingParameterError: If the project_id or job_id is missing. ParameterError: If invalid parameters are provided.

Inputs: page, scope, job_id, per_page, +6 more.

gitlab_revert_commitRevert commitC

Revert a commit.

Args: **kwargs: Additional parameters for the request.

Returns: Response: A wrapper containing the original response and a Commit model.

Raises: ParameterError: If invalid parameters are provided.

Inputs: all, ref, data, line, +35 more.

gitlab_run_pipelineRun pipelineC

Run a pipeline for a specific project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, ref).

Returns: Response: A wrapper containing the original response and a Pipeline model.

Raises: MissingParameterError: If the project_id or ref is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, data, page, status, +6 more.

gitlab_run_pipeline_scheduleRun pipeline scheduleB

Run a pipeline schedule for a specific project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, pipeline_schedule_id).

Returns: Response: A wrapper containing the original response (no data for successful operation).

Raises: MissingParameterError: If the project_id or pipeline_schedule_id is missing. ParameterError: If invalid parameters are provided.

Inputs: page, per_page, max_pages, project_id, +1 more.

gitlab_run_project_jobRun project jobC

Run a specific job within a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, job_id).

Returns: Response: A wrapper containing the original response and a Job model.

Raises: MissingParameterError: If the project_id or job_id is missing. ParameterError: If invalid parameters are provided.

Inputs: page, scope, job_id, per_page, +6 more.

gitlab_share_projectShare projectC

Share a specific project with a group.

Args: **kwargs: Additional parameters for the request (e.g., project_id, group_id, group_access).

Returns: Response: A wrapper containing the original response and a Project model.

Raises: MissingParameterError: If the project_id, group_id, or group_access is missing. ParameterError: If invalid parameters are provided.

Inputs: id, key, ref, cron, +121 more.

gitlab_stop_environmentStop environmentB

Stop an environment for a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, environment_id).

Returns: Response: A wrapper containing the original response and an Environment model.

Raises: MissingParameterError: If the project_id or environment_id is missing. ParameterError: If invalid parameters are provided.

Inputs: id, key, ref, cron, +121 more.

gitlab_stop_stale_environmentsStop stale environmentsC

Stop stale environments for a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response (no data for successful operation).

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: id, key, ref, cron, +121 more.

gitlab_take_pipeline_schedule_ownershipTake pipeline schedule ownershipC
Idempotent

Take ownership of a pipeline schedule for a specific project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, pipeline_schedule_id).

Returns: Response: A wrapper containing the original response and a PipelineSchedule model.

Raises: MissingParameterError: If the project_id or pipeline_schedule_id is missing. ParameterError: If invalid parameters are provided.

Inputs: page, per_page, max_pages, project_id, +1 more.

gitlab_unapprove_merge_requestUnapprove merge requestC

Unapprove a specific merge request.

Args: **kwargs: Additional parameters for the request (e.g., project_id, merge_request_iid).

Returns: Response: A wrapper containing the original response (no data for successful operation).

Raises: MissingParameterError: If the project_id or merge_request_iid is missing. ParameterError: If invalid parameters are provided.

Inputs: data, name, group_id, user_ids, +9 more.

gitlab_unarchive_projectUnarchive projectB

Unarchive a specific project.

Args: **kwargs: Additional parameters for the request (e.g., project_id).

Returns: Response: A wrapper containing the original response and a Project model.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: page, per_page, max_pages, project_id.

gitlab_unprotect_branchUnprotect branchB
DestructiveIdempotent

Unprotect a specific branch in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, branch).

Returns: Response: A wrapper containing the original response (no data for successful deletion).

Raises: MissingParameterError: If the project_id or branch is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, page, branch, confirm, +3 more.

gitlab_unprotect_environmentUnprotect environmentC
DestructiveIdempotent

Unprotect an environment for a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, name).

Returns: Response: A wrapper containing the original response (no data for successful deletion).

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: name, page, confirm, per_page, +2 more.

gitlab_unprotect_tagUnprotect tagB
DestructiveIdempotent

Unprotect a tag in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, name).

Returns: Response: A wrapper containing the original response (no data for successful deletion).

Raises: MissingParameterError: If the project_id or name is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, tag, page, confirm, +4 more.

gitlab_update_environmentUpdate environmentC
Idempotent

Update an existing environment for a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, environment_id).

Returns: Response: A wrapper containing the original response and an Environment model.

Raises: MissingParameterError: If the project_id or environment_id is missing. ParameterError: If invalid parameters are provided.

Inputs: id, key, ref, cron, +121 more.

gitlab_update_epicUpdate epicC
Idempotent

Update a group epic.

Inputs: data, title, epic_iid, group_id, +2 more.

gitlab_update_issueUpdate issueD
Idempotent

Update an issue.

Inputs: data, page, state, title, +10 more.

gitlab_update_labelUpdate labelC
Idempotent

Update an existing label.

Inputs: data, name, color, new_name, +2 more.

gitlab_update_milestoneUpdate milestoneD
Idempotent

Update a project milestone.

Inputs: data, title, project_id, description, +2 more.

gitlab_update_noteUpdate noteD
Idempotent

Update a note.

Inputs: body, data, note_id, issue_iid, +1 more.

gitlab_update_project_level_ruleUpdate project level ruleC
Idempotent

Update an existing project-level merge request approval rule.

Args: **kwargs: Additional parameters for the request (e.g., project_id, approval_rule_id).

Returns: Response: A wrapper containing the original response and an ApprovalRule model.

Raises: MissingParameterError: If the project_id or approval_rule_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, name, group_id, user_ids, +9 more.

gitlab_update_protected_environmentUpdate protected environmentC
Idempotent

Update a protected environment for a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, name).

Returns: Response: A wrapper containing the original response and an Environment model.

Raises: MissingParameterError: If the project_id is missing. ParameterError: If invalid parameters are provided.

Inputs: id, key, ref, cron, +121 more.

gitlab_update_releaseUpdate releaseB
Idempotent

Update information about a release in a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, tag_name).

Returns: Response: A wrapper containing the original response and a Release model.

Raises: MissingParameterError: If the project_id or tag_name is missing. ParameterError: If invalid parameters are provided.

Inputs: ref, data, name, page, +15 more.

gitlab_update_runner_detailsUpdate runner detailsC
Idempotent

Update details for a specific runner.

Args: **kwargs: Additional parameters for the request (e.g., runner_id).

Returns: Response: A wrapper containing the original response and a Runner model.

Raises: MissingParameterError: If the runner_id is missing. ParameterError: If invalid parameters are provided.

Inputs: data, info, token, active, +15 more.

gitlab_update_snippetUpdate snippetD
Idempotent

Update a snippet.

Inputs: data, title, content, file_name, +3 more.

gitlab_update_userUpdate userC
Idempotent

Update an existing user.

Inputs: data, name, page, sort, +27 more.

gitlab_update_wiki_pageUpdate wiki pageB
Idempotent

Update an existing wiki page for a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, slug).

Returns: Response: A wrapper containing the original response and a WikiPage model.

Raises: MissingParameterError: If the project_id or slug is missing. ParameterError: If invalid parameters are provided.

Inputs: data, file, slug, title, +7 more.

gitlab_upload_wiki_page_attachmentUpload wiki page attachmentC

Upload an attachment to a wiki page for a project.

Args: **kwargs: Additional parameters for the request (e.g., project_id, file, branch).

Returns: Response: A wrapper containing the original response and the raw attachment data.

Raises: MissingParameterError: If the project_id, file, or branch is missing. ParameterError: If invalid parameters are provided.

Inputs: data, file, slug, title, +7 more.

gitlab_verify_runner_authenticationVerify runner authenticationD

Verify runner authentication.

Args: **kwargs: Additional parameters for the request (e.g., token).

Returns: Response: A wrapper containing the original response (no data for successful operation).

Raises: MissingParameterError: If the token is missing. ParameterError: If invalid parameters are provided.

Inputs: data, info, token, active, +15 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.5/5.0

    Scored across 208 tools

    Disambiguation3/5

    Most tools are distinguishable by resource plus scope (project vs group), but there are several genuinely confusing clusters: get_group_level_rule vs get_project_level_rule vs get_project_level_merge_request_rules, get_merge_requests vs get_project_merge_requests vs get_group_merge_requests, delete_runner vs delete_project_runner, and get_deploy_tokens vs get_group_deploy_tokens vs get_project_deploy_tokens. The generic escape hatches (gitlab_api_request, gitlab_graphql, gitlab_graphql_ops_*) overlap with every other tool, and near-identical templated descriptions give little help. With 208 tools, selection requires careful name-reading rather than description guidance.

    Naming Consistency3/5

    The gitlab_ prefix and a mostly verb_noun pattern (get_x, create_x, delete_x, update_x) are broadly consistent. However there are visible breaks: gitlab_instances_list/gitlab_instances_get use noun_verb, gitlab_merge_request_level_approvals and gitlab_graphql have no verb, edit_project/edit_group compete with update_* elsewhere, and the graphql_ops_* family uses a different namespace convention. Still readable, but not a single predictable scheme.

    Tool Count1/5

    208 tools is an extreme mismatch for any agent-facing surface, far past the 25+ threshold where selection accuracy collapses. Many are low-value variants (get_protected_branch vs get_branches, reset_token variants, individual approval-rule settings getters) that could be collapsed into parameterized tools or covered by api_request/graphql.

    Completeness5/5

    The surface covers essentially the entire GitLab domain: projects, groups, issues, MRs, approvals, pipelines/jobs/schedules, runners, environments, releases, tags, branches, wiki, snippets, packages, users, deploy tokens, and vulnerabilities, each with list/get/create/update/delete where applicable. Escape hatches (raw REST and GraphQL) close any remaining gap.

    Maintenance

    ActivityActive
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers