# GitLab Operations

Manage GitLab resources including webhooks, CI/CD variables, and protected branches. Automate administrative tasks like creating project access tokens and managing group structures. Streamline reposi…

## Quick Start

```bash
# Connect this server (installs CLI if needed)
npx -y smithery mcp add jarecsni/gitlab-ops-mcp

# Browse available tools
npx -y smithery tool list jarecsni/gitlab-ops-mcp

# Get full schema for a tool
npx -y smithery tool get jarecsni/gitlab-ops-mcp create_webhook

# Call a tool
npx -y smithery tool call jarecsni/gitlab-ops-mcp create_webhook '{}'
```

## Direct MCP Connection

Endpoint: `https://gitlab-ops-mcp--jarecsni.run.tools`

**Required config:**
- `gitlabPersonalAccessToken` (query) — GitLab personal access token (glpat-...) with api scope

**Optional config:**
- `gitlabApiUrl` (query) — GitLab API base URL (for self-hosted instances)

## Tools (22)

- `create_webhook` — Create a project-level webhook with configurable event subscriptions (push, tag, MR, pipeline, etc.) and optional secre…
- `list_webhooks` — List all webhooks configured on a GitLab project, including their URLs, event subscriptions, and SSL verification status
- `update_webhook` — Update an existing webhook's URL, secret token, event subscriptions, or SSL settings
- `delete_webhook` — Remove a webhook from a GitLab project
- `test_webhook` — Trigger a test event (push, tag_push, etc.) against a webhook to verify it is receiving and processing events correctly
- `create_ci_variable` — Create a project-level CI/CD variable with optional protection (only exposed to protected branches), masking (hidden in…
- `list_ci_variables` — List all CI/CD variables for a project, including their keys, protection status, masking, and environment scopes
- `update_ci_variable` — Update an existing CI/CD variable's value, protection, masking, environment scope, or type
- `delete_ci_variable` — Remove a CI/CD variable from a project by key
- `protect_branch` — Protect a branch (or wildcard pattern) with configurable push/merge access levels and force-push settings to enforce me…
- `list_protected_branches` — List all protected branches for a project, including their push/merge access levels and force-push settings
- `unprotect_branch` — Remove protection rules from a branch, restoring default push and merge permissions
- `update_project_settings` — Update project-level settings: merge strategy (merge/rebase/fast-forward), squash policy, pipeline requirements, source…
- `create_group` — Create a new GitLab group or subgroup with configurable visibility and description for namespace isolation
- `list_groups` — List GitLab groups with optional search, ownership, and minimum access level filters
- `delete_group` — Delete a GitLab group and all projects within it (cascading delete)
- `create_project_access_token` — Create a scoped, rotatable access token for a project with configurable scopes (api, read_api, read/write_repository, r…
- `list_project_access_tokens` — List all access tokens for a project, including their scopes, access levels, and expiry dates
- `revoke_project_access_token` — Revoke a project access token, immediately invalidating it for all future API requests
- `create_pipeline_trigger` — Create a pipeline trigger token for cross-project pipeline triggering via the GitLab API
- `list_pipeline_triggers` — List all pipeline trigger tokens for a project, including their descriptions and ownership
- `delete_pipeline_trigger` — Remove a pipeline trigger token, preventing any further pipeline triggers using it

```bash
# Get full input/output schema for a tool
npx -y smithery tool get jarecsni/gitlab-ops-mcp <tool-name>
```
