gitlab-mcp
Use this skill when working with the GitLab MCP server tools for merge requests, issues,…
Use GitLab from the terminal without registering an MCP server. Covers authenticating the zereight-mcp-gitlab CLI (PAT or OAuth device flow) and reading merge requests, diffs, discussions, issues, and pipelines. Use when the user asks about a GitLab MR/issue/pipeline and no
$ npx -y skills add zereight/gitlab-mcp --skill gl-cli --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/gl-cliContext preview
The summary Claude sees to decide when to auto-load this skill.
Use GitLab from the terminal without registering an MCP server. Covers authenticating the zereight-mcp-gitlab CLI (PAT or OAuth device flow) and reading merge requests, diffs, discussions, issues, and pipelines. Use when the user asks about a GitLab MR/issue/pipeline and no
name: gl-cli description: Use GitLab from the terminal without registering an MCP server. Covers authenticating the zereight-mcp-gitlab CLI (PAT or OAuth device flow) and reading merge requests, diffs, discussions, issues, and pipelines. Use when the user asks about a GitLab MR/issue/pipeline and no GitLab MCP tools are available, or wants CLI-only setup.
`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`.
Run this before anything else and read the result:
zereight-mcp-gitlab user whoami
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
**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`.
| 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 '{...}'` |
Prefix every command with `zereight-mcp-gitlab`. Add `--output json` when parsing the result. For large MRs use `mr files` first, then diff only the files you need.
Never use placeholders like `<project>` or `42` from this table in a real call. If the project or MR number is missing, get it from the user, or discover it with `mr list` or `git remote -v`.
For the MCP tool catalog and workflows, use the `gitlab-mcp` skill. This skill is the CLI route only.
📖 Documentation → Setup guides, environment variables, and the full tool reference live on the hosted docs site.
Repo: zereight/gitlab-mcp
Use this skill when working with the GitLab MCP server tools for merge requests, issues,…