npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

gitlab-ops-mcp

v1.1.0

Published

Supplementary MCP server for GitLab operational tools — webhooks, CI/CD variables, protected branches, project settings, groups, access tokens, and pipeline triggers

Readme

gitlab-ops-mcp

npm version licence

The operational layer for GitLab that the standard MCP doesn't cover. Webhooks, CI/CD variables, branch protection, project settings, groups, access tokens, and pipeline triggers — 21 tools across 7 domains, ready for automated project setup and delivery orchestration.

Why?

The existing GitLab MCP (@zereight/mcp-gitlab) covers the developer workspace: repos, branches, MRs, issues, pipelines. But when you need to set up and govern projects — configure webhooks, protect branches, manage CI variables across repos — you're back in the GitLab UI clicking buttons.

gitlab-ops-mcp fills that gap. Together with the standard MCP, you get complete GitLab API coverage for fully automated multi-repo project setup.

Quick Start

Local (stdio transport)

Run directly with npx — no install required:

npx gitlab-ops-mcp

Requires GITLAB_PERSONAL_ACCESS_TOKEN in your environment.

Remote (HTTP transport)

A hosted instance is available at:

https://gitlab-ops-mcp.fly.dev/mcp

The remote server uses per-session authentication via the X-GitLab-Token header — no server-side credentials stored.

MCP Client Configuration

Stdio (local)

{
  "mcpServers": {
    "gitlab-ops": {
      "command": "npx",
      "args": ["-y", "gitlab-ops-mcp"],
      "env": {
        "GITLAB_PERSONAL_ACCESS_TOKEN": "glpat-...",
        "GITLAB_API_URL": "https://gitlab.com/api/v4"
      }
    }
  }
}

Streamable HTTP (remote)

{
  "mcpServers": {
    "gitlab-ops": {
      "type": "streamable-http",
      "url": "https://gitlab-ops-mcp.fly.dev/mcp",
      "headers": {
        "X-GitLab-Token": "glpat-..."
      }
    }
  }
}

Environment Variables

| Variable | Required | Default | Description | |----------|----------|---------|-------------| | GITLAB_PERSONAL_ACCESS_TOKEN | Yes (stdio) | — | GitLab personal access token with appropriate scopes | | GITLAB_API_URL | No | https://gitlab.com/api/v4 | GitLab API v4 base URL |

For the HTTP transport, the GitLab token is passed per-request via the X-GitLab-Token header instead.

Tool Catalogue

21 tools across 7 domains. Each tool is a thin REST wrapper around the GitLab API v4.

Webhooks

Manage project-level webhooks for event-driven automation.

| Tool | Description | |------|-------------| | create_webhook | Create a webhook with configurable event flags | | list_webhooks | List all webhooks for a project | | update_webhook | Update a webhook's URL, token, or event flags | | delete_webhook | Remove a webhook from a project | | test_webhook | Trigger a test event for a webhook |

CI/CD Variables

Manage project-level CI/CD variables for environment-specific configuration.

| Tool | Description | |------|-------------| | create_ci_variable | Create a variable with optional protection, masking, and scoping | | list_ci_variables | List all CI/CD variables for a project | | update_ci_variable | Update a variable's value or flags | | delete_ci_variable | Remove a CI/CD variable |

Protected Branches

Manage branch protection rules to enforce merge-only workflows.

| Tool | Description | |------|-------------| | protect_branch | Protect a branch with configurable access levels | | list_protected_branches | List all protected branches | | unprotect_branch | Remove protection from a branch |

Project Settings

Update project-level configuration for consistent governance across repos.

| Tool | Description | |------|-------------| | update_project_settings | Update merge method, pipeline requirements, squash options, and more |

Groups / Subgroups

Manage GitLab groups for namespace isolation.

| Tool | Description | |------|-------------| | create_group | Create a group or subgroup | | list_groups | List groups with search and access level filters | | delete_group | Delete a group (cascades to all projects within) |

Project Access Tokens

Manage scoped, rotatable access tokens for cross-repo CI communication.

| Tool | Description | |------|-------------| | create_project_access_token | Create a scoped token with configurable access level and expiry | | list_project_access_tokens | List all access tokens for a project | | revoke_project_access_token | Revoke an access token |

Pipeline Trigger Tokens

Manage pipeline trigger tokens for cross-project pipeline triggering.

| Tool | Description | |------|-------------| | create_pipeline_trigger | Create a pipeline trigger token | | list_pipeline_triggers | List all trigger tokens for a project | | delete_pipeline_trigger | Remove a trigger token |

Auto-Approve Suggestions

Read-only tools are safe to auto-approve. Mutating tools (create, update, delete) should require confirmation.

"autoApprove": [
  "list_webhooks",
  "list_ci_variables",
  "list_protected_branches",
  "list_groups",
  "list_project_access_tokens",
  "list_pipeline_triggers"
]

Self-Hosting

The server ships with a Dockerfile and Fly.io configuration for self-hosting the HTTP transport.

fly apps create my-gitlab-ops-mcp
fly deploy

The HTTP server runs on port 3000 with a /health endpoint for liveness checks. Machines auto-stop when idle and auto-start on incoming requests.

Relationship to Existing GitLab MCP

The two servers are complementary, not competing:

  • @zereight/mcp-gitlab — developer workspace (repos, branches, MRs, issues, pipelines)
  • gitlab-ops-mcp — project operations (webhooks, variables, protection, settings, tokens)

Requirements

  • Node.js >= 18.0.0

Licence

MIT