mcpField
G
gl-cli

gl-cli

github.com/zereight開発2.1k6 回インストール今日更新
リポジトリ

gl-cli について

gl-cli は zereight-mcp-gitlab を使って GitLab を操作するコマンドライン手段で、MCP クライアントなしでコマンドを実行したいユーザー向けです。マージリクエストの確認に加え、認証情報の設定や書き込み制御も扱います。

主な機能

  1. 01マージリクエストの確認
  2. 02差分と変更ファイルの表示
  3. 03ディスカッションとパイプラインの確認
  4. 04承認状況とMR状態の確認
  5. 05認証情報と読み取り専用モードの設定

活用シーン

  1. 01MCP クライアントなしでMRをレビュー
  2. 02大きな差分の確認前に変更パスを調査
  3. 03MRのパイプラインと承認状況を確認

MCP 対応

このプロジェクトはMCP サーバーであると同時にGitLab CLIでもあります。このスキルでは、MCP クライアントを介さずコマンドを直接実行する方法を説明しています。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/zereight/gitlab-mcp --skill gl-cli

インストール後、Claude Code で/gl-cliを入力して読み込まれたか確認します。

詳細

gl-cli

zereight-mcp-gitlab(別名 mcp-gitlab)は、MCP サーバーであると同時に GitLab CLI でもあります。コマンドを実行すると、結果を出力して終了します。MCP クライアントは関与しません。

完全なガイド:docs/getting-started/cli-without-mcp.md。

1. まず認証情報を確認する

何よりも先にこれを実行し、結果を確認してください。

zereight-mcp-gitlab user whoami
  • ユーザーが表示された場合:認証情報は有効です。手順 3 に進んでください。
  • Missing GitLab credentials(終了コード 2)の場合:手順 2 に進んでください。
  • 401 の場合:トークンの有効期限が切れているか、スコープが不足しています。手順 2 をやり直してください。
  • command not found の場合:npm install -g @zereight/mcp-gitlab を実行してください。

2. 認証する(どちらの方法にするかユーザーに確認する)

トークンを捏造、推測、または表示してはいけません。ユーザーの秘密情報が必要なため、コマンドを自分で実行するようユーザーに依頼してください。

A. Personal Access Token(最速。スコープは read_api、書き込みには api)

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 でトークンファイルを指定することもできます。プロセスは起動時に一度だけファイルを読み込み、前後の空白を削除します。GITLAB_PERSONAL_ACCESS_TOKEN がすでに空でない場合は、ファイルは無視され、警告が標準エラーに出力されます。

B. OAuth デバイスフロー(GitLab OAuth アプリケーション 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

トークンを --token で渡さないでください。引数は ps で表示されます。

3. マージリクエストを読む

目的コマンド
オープン状態の MR を一覧表示mr list --project-id <path|id> --state opened
MR の概要mr view --project-id <p> --mr-iid <n>
変更されたファイルパスのみmr files --project-id <p> --mr-iid <n>
差分全体mr diff --project-id <p> --mr-iid <n>
レビュースレッドmr discussions --project-id <p> --mr-iid <n>
MR のパイプラインmr pipelines --project-id <p> --mr-iid <n>
承認状態mr approvals --project-id <p> --mr-iid <n>
その他tool <tool_name> --project-id <p> --args-json '{...}'

すべてのコマンドの先頭に zereight-mcp-gitlab を付けてください。結果を解析する場合は --output json を追加してください。大きな MR では、まず mr files を使い、必要なファイルだけを diff で確認してください。

必須入力の解決

実際の呼び出しで、この表の <project> や 42 のようなプレースホルダーを使ってはいけません。 プロジェクトまたは MR 番号が不明な場合は、ユーザーに確認するか、mr list または git remote -v で調べてください。

安全性

  • デフォルトでは読み取り専用にします:export GITLAB_PERMISSION_MODE=readonly。書き込み(mr approve、mr merge、mr note、mr update、mr create)は終了コード 2 で拒否されます。
  • 破壊的なコマンドには --yes が必要です。ユーザーが現在のメッセージでその操作を明確に確認した後にのみ追加してください。
  • ユーザーがその操作を明示していない限り、mr merge または mr approve を実行しないでください。

ここでは扱わない内容

MCP ツールカタログとワークフローについては、gitlab-mcp スキルを使用してください。このスキルは CLI のみを対象としています。

コメント