gl-cli

gl-cli is a skill for Claude Code, Codex from zereight/gitlab-mcp. It costs 79 tokens per session (920 once invoked), scanned A, original, MIT.

A command-line tool for working with GitLab, a service that hosts code repositories and team work. It supports signing in and reading merge requests, code changes, discussions, issues, and automated pipelines without setting up an MCP server.

In plain words
What is it for?
Use it to check GitLab merge requests, diffs, issues, discussions, and pipeline results from the terminal.
Why use it?
It gives a terminal-based way to inspect GitLab when the usual integration is unavailable. It also explains how to authenticate without exposing access tokens.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it to check GitLab merge requests, diffs, issues, discussions, and pipeline results from the terminal.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/zereight/gitlab-mcp/gl-cli
About the project

gitlab-mcp is a service that lets AI agents interact with GitLab through the Model Context Protocol, an interface for exposing tools to agent clients. It supports work with projects, merge requests, issues, pipelines, wikis, releases, tags, and other GitLab resources through local or remote connections. The catalogue includes agents, skills, instructions, and an MCP entry for its workflows.

zereight/gitlab-mcp · 2,047 stars · on GitHub · zereight.github.io

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add zereight/gitlab-mcp --skill gl-cli
Clone the repo
git clone --depth 1 https://github.com/zereight/gitlab-mcp

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for gl-cli

README.md
[![agentmods](https://agentmods.dev/badge/skills/zereight/gitlab-mcp/gl-cli/github.svg)](https://agentmods.dev/skills/zereight/gitlab-mcp/gl-cli)
Your own site
<a href="https://agentmods.dev/skills/zereight/gitlab-mcp/gl-cli"><img src="https://agentmods.dev/badge/skills/zereight/gitlab-mcp/gl-cli/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for gl-cli

Your own site · 80×15
<a href="https://agentmods.dev/skills/zereight/gitlab-mcp/gl-cli"><img src="https://agentmods.dev/badge/skills/zereight/gitlab-mcp/gl-cli.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 79 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 920 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00079 $0.00920
Opus 5.5 $0.00032 $0.00368
Sonnet 5.5 $0.00016 $0.00184
Haiku 4.5 $0.00008 $0.00092

Measured 4d ago against content hash 0d261ec2f8b7, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

gl-cli scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/gl-cli/SKILL.md · 77 lines

How it starts

The opening of the file, as written. The whole thing — 77 lines — stays where its author put it; the contents beside it link to each section on GitHub.

gl-cli

zereight-mcp-gitlab (alias mcp-gitlab) is both the MCP server and a GitLab CLI. Run it with a command and it prints the result and exits. No MCP client is involved.

Full guide: docs/getting-started/cli-without-mcp.md.

1. Check credentials first

Run this before anything else and read the result:

zereight-mcp-gitlab user whoami
  • Prints a user: credentials work, go to step 3.
  • Missing GitLab credentials (exit 2): go to step 2.
  • 401: token expired or under-scoped, redo step 2.
  • command not found: npm install -g @zereight/mcp-gitlab.

2. Authenticate (ask the user which option)

Never invent, guess, or echo a token. Ask the user to run the command themselves, since it needs their secret.

A. Personal Access Token (fastest; scope read_api, or api to write)

read -rs GITLAB_PERSONAL_ACCESS_TOKEN && export GITLAB_PERSONAL_ACCESS_TOKEN
export GITLAB_API_URL=https://gitlab.example.com/api/v4   # omit for gitlab.com

GITLAB_PERSONAL_ACCESS_TOKEN_FILE can point at a token file instead. The process reads it once at startup and trims surrounding whitespace. If GITLAB_PERSONAL_ACCESS_TOKEN is already non-empty, the file is ignored and a warning is written to stderr.

B. OAuth device flow (needs a GitLab OAuth application ID)

export GITLAB_OAUTH_CLIENT_ID=YOUR_APP_ID
zereight-mcp-gitlab auth        # open the printed URL, enter the code
export GITLAB_USE_OAUTH=true    # needed on every later CLI call

Do not pass the token with --token; arguments are visible in ps.

3. Read merge requests

Goal Command
List open MRs mr list --project-id <path|id> --state opened
MR summary mr view --project-id <p> --mr-iid <n>
Changed file paths only mr files --project-id <p> --mr-iid <n>
Full diff mr diff --project-id <p> --mr-iid <n>
Review threads mr discussions --project-id <p> --mr-iid <n>
MR pipelines mr pipelines --project-id <p> --mr-iid <n>
Approval state mr approvals --project-id <p> --mr-iid <n>
Anything else tool <tool_name> --project-id <p> --args-json '{...}'

Read the full file on GitHub · 77 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago Changed · +2 lines 0d261ec2f8b7
  2. 13d ago First seen · 75 lines · 79 tokens per session scan A 27e668a15013

Subscribe to this mod's changes

gl-cli is a skill published in the GitHub repository zereight/gitlab-mcp (2,047 stars, last pushed today), licensed MIT. It adds 79 tokens to every session and 920 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-04.

Related

Other skills, from other repositories

gitlab-merge-request-review

Review and merge GitLab merge requests via the gitlab-api MCP server — by default the MRs assigned to you or where you are a reviewer, optionally scoped to a project, group, or the whole instance. Read an MR, gate it on a green pipeline (pipeline → jobs → job log), then approve, accept/merge, or set…

Knuckles-Team/gitlab-api · 158 tokens

gitlab-merge-request-create

Open a new GitLab merge request against a project via the gitlab-api MCP server — from a source branch into a target branch, with title, description, assignees, reviewers, labels, and remove-source-branch/squash options. Use when the agent must create/open an MR for a project. Do NOT use to review, approve, or merge…

Knuckles-Team/gitlab-api · 111 tokens

create-pull-request

Generate a reviewer-ready pull request or merge request title and description from branch changes. Use when a user asks to draft PR/MR content, summarize branch deltas against a base branch, or optionally create the PR with gh/glab after approval.

liatrio-labs/ai-prompts · 54 tokens

git-commit-conventional

Create Conventional Commit messages and execute safe git commits from working tree changes. Use when users ask to create a commit, write a conventional commit message, split broad changes into multiple commits, stage only parts of files, run pre-commit before committing, or perform a quick commit-time quality review…

liatrio-labs/ai-prompts · 68 tokens

branch-surgery-pr-split

Split oversized or mixed-concern branches into smaller, reviewable PR stacks with safety refs, topology selection, parity audits, and merge sequencing. Use when a PR or branch is too large, difficult to review, mixed across concerns, conflict-prone, or needs to be decomposed without losing net changes.

liatrio-labs/ai-prompts · 68 tokens

repo-standardizer

Polish any GitHub repository's surface — labels (emoji rating tiers, P0–P3 priority, impact severity), issue forms, PR template, CI workflows, CODEOWNERS, rulesets, docs. Repo meta & config only — no code logic touched. Use when creating a new repo or polishing an existing one.

programmingWTF/repo-standardizer · 70 tokens