gitlab-mcp-skill について
gitlab-mcp-skillは、コードレビュー、イシュー管理、プロジェクト作業でエージェントを使う人向けに、GitLab MCPツールのワークフローを案内します。タスク別の手順に加え、パラメーターのヒントや大きな出力を抑える方法も示します。
主な機能
- 01コードレビューとマージリクエストの手順
- 02イシュー、プロジェクト、ブランチの操作
- 03パイプラインとファイル操作の説明
- 04ツールセットのオンデマンド有効化
- 05パラメーターのヒントと出力削減の案内
活用シーン
- 01段階的なマージリクエスト差分の確認
- 02GitLabイシューの作成と更新
- 03プロジェクトのファイルやブランチの検索
- 04大きな差分やログによるコンテキスト消費の削減
MCP 対応
GitLab MCPサーバーのツールについて、ツールセットの有効化や代表的な呼び出し手順を案内します。MCP登録なしでCLIと組み合わせることもできます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ zereight/ gitlab-mcp --skill gitlab-mcp-skillインストール後、Claude Code で/gitlab-mcp-skillを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
reference/code-review.mdissues.mdmerge-requests.mdpipelines.mdsearch.mdvulnerability-triage.mdwebhooks.mdwork-items.md詳細
gitlab-mcp
278 個のツールを提供する GitLab MCP サーバーです。24 個のツールセットに含まれる 275 個のツールに加え、execute_graphql、常時利用可能なメタツール discover_tools、および help を提供します。
正確な生成済みパラメーターテーブルについては、docs/tools/ を参照してください。このファイルでは、ワークフローの概要と重要なパラメーターのヒントを確認できます。
ツールセット
| ツールセット | デフォルト | 有効にする方法 |
|---|---|---|
| core(38 個のツール) | はい | デフォルトの軽量スターターセット |
| merge_requests(46 個のツール) | いいえ | GITLAB_TOOLSETS=merge_requests |
| issues(24 個のツール) | いいえ | GITLAB_TOOLSETS=issues |
| repositories(7 個のツール) | いいえ | GITLAB_TOOLSETS=repositories |
| branches(16 個のツール) | いいえ | GITLAB_TOOLSETS=branches |
| projects(11 個のツール) | いいえ | GITLAB_TOOLSETS=projects |
| labels(5 個のツール) | いいえ | GITLAB_TOOLSETS=labels |
| ci(4 個のツール) | いいえ | GITLAB_TOOLSETS=ci |
| groups(1 個のツール) | いいえ | GITLAB_TOOLSETS=groups |
| users(7 個のツール) | いいえ | GITLAB_TOOLSETS=users |
| pipelines(58 個のツール) | いいえ | GITLAB_TOOLSETS=core,pipelines(非推奨の USE_PIPELINE。GITLAB_TOOLS が未設定の場合は GITLAB_TOOLS=validate_ci_lint,validate_project_ci_lint を設定し、設定済みの場合はリストを置き換えずにこれらのツールを追加します) |
| milestones(17 個のツール) | いいえ | GITLAB_TOOLSETS=core,milestones(非推奨の USE_MILESTONE) |
| wiki(10 個のツール) | いいえ | GITLAB_TOOLSETS=core,wiki(非推奨の USE_GITLAB_WIKI) |
| releases(7 個のツール) | いいえ | GITLAB_TOOLSETS=releases |
| tags(9 個のツール) | いいえ | GITLAB_TOOLSETS=tags |
| snippets(5 個のツール) | いいえ | GITLAB_TOOLSETS=snippets |
| workitems(18 個のツール) | いいえ | GITLAB_TOOLSETS=workitems |
| webhooks(6 個のツール) | いいえ | GITLAB_TOOLSETS=webhooks |
| search(3 個のツール) | いいえ | GITLAB_TOOLSETS=search |
| variables(10 個のツール) | いいえ | GITLAB_TOOLSETS=variables |
| dependency_proxy(4 個のツール) | いいえ | GITLAB_TOOLSETS=dependency_proxy |
| vulnerabilities(4 個のツール) | いいえ | GITLAB_TOOLSETS=vulnerabilities |
| orbit(4 個のツール) | いいえ | GITLAB_TOOLSETS=orbit |
| api(1 個のツール) | いいえ | GITLAB_TOOLSETS=api のみ(all、discover_tools、GITLAB_TOOLS では有効になりません) |
検出可能なツールセットをすべて有効にするには、GITLAB_TOOLSETS=all を設定します(api は有効になりません)。軽量化前のデフォルトに戻すには、GITLAB_TOOLSETS=merge_requests,issues,repositories,branches,projects,labels,ci,groups,users を設定します。GITLAB_TOOLS を使用すると、明示的な指定のみで有効になる gitlab_api_request などのツールを除き、ツールセット外の個別ツールを有効にできます。discover_tools は、api を除き、現在のセッションでオプトイン対象のカテゴリを一覧表示して有効にできます。execute_graphql はツールセットに含まれません。有効にするには GITLAB_TOOLS=execute_graphql を明示的に設定してください。USE_GITLAB_WIKI、USE_MILESTONE、USE_PIPELINE は非推奨です(次のメジャーバージョン(v3.0.0)で削除されます)。すでに GITLAB_TOOLSETS を設定している場合は、置き換えずに既存のリストへツールセットを追加してください。GITLAB_TOOLS が未設定の場合は、GITLAB_TOOLS=validate_ci_lint,validate_project_ci_lint を設定してください。すでに設定されている場合は、リストを置き換えずにこれら 2 つのツールを追加してください。
gitlab_api_request は、GITLAB_ALLOWED_GROUPS などのグループ制限、プロジェクトの許可リスト、ツールレベルの制限(他のツールに対する GITLAB_TOOLS、GITLAB_DENIED_TOOLS_REGEX)、および個々のツールの安全チェックを迂回します。トークンの完全な権限スコープが公開されます。プロンプトインジェクションによって、このツールを操作される可能性があります。これらの制限に依存している運用者は、このツールを有効にしてはなりません。GITLAB_ALLOWED_PROJECT_IDS またはセッションのプロジェクトスコープが設定されている場合、許可されたプロジェクトの /projects/:id パスのみが受け付けられます。/search、/users、/groups/:id、/runners などのパスは拒否されます。別のプロジェクトを指定する本文およびクエリパラメーターはチェックされません。GITLAB_PROJECT_ID と OAuth のグループ許可リストは適用されません。
上記のツールセットごとの数を合計すると 315 になります。これは、38 個の core ツールがそれぞれ完全なカテゴリにも記載されているためです(get_branch と list_branches は merge_requests と branches の両方にも記載されています)。全ツールセットを通した重複のないツール数は 275 です。
主なワークフロー
コードレビュー(reference/code-review.md を参照)
list_merge_request_changed_files— ファイルパスのみを取得します(差分は取得しません)get_merge_request_file_diff— 1 回の呼び出しにつき、3~5 ファイルの差分を取得します(一括処理)create_merge_request_threadまたはcreate_draft_note— レビューコメントを残しますbulk_publish_draft_notes— すべての下書きを一度に公開します
MR のライフサイクル(reference/merge-requests.md を参照)
create_merge_request -> レビュー -> approve_merge_request -> merge_merge_request
イシュー管理(reference/issues.md を参照)
create_issue -> create_issue_link -> create_issue_note -> update_issue
長いイシューの説明を少しだけ編集する場合は、本文全体を再送信する代わりに update_issue_description_patch を使用してください。
プロジェクトと名前空間
get_project、list_projects、update_project— プロジェクト設定を確認または変更しますlist_project_members、list_group_members— プロジェクトまたはグループ内のメンバーを名前またはユーザー名で検索しますlist_namespaces、get_namespace、verify_namespace— プロジェクト/グループを作成する前に、対象の名前空間を確認しますverify_namespace.parent_idは、ネストされた名前空間の確認範囲を指定しますcreate_repository.namespace_idは、グループ名前空間の下にプロジェクトを作成します
ブランチとコミット
create_branch、list_branches、get_branch、delete_branch- 保護ブランチ:
list_protected_branches、get_protected_branch、protect_branch、update_protected_branch、unprotect_branch、update_default_branch(protect_branchはルールを新規作成するだけで、既存のルールがある場合は 409 を返します。保護を解除してから再設定するのではなく、get_protected_branchのレコードidを使ってupdate_protected_branchで既存のルールを変更してください) - コミット:
list_commits、get_commit、get_commit_diff、get_file_blame、list_commit_statuses、create_commit_status
タグ
list_tags、get_tag、create_tag、delete_tag、get_tag_signature- 保護タグ:
list_protected_tags、get_protected_tag、protect_tag、unprotect_tag(create_access_levelは 0、30、または 40 です。v*などのワイルドカードを使用できます)
CI
- Lint 設定:
validate_ci_lint、validate_project_ci_lint - カタログ:
list_ci_catalog_resources、get_ci_catalog_resource - パイプライン/ジョブ/デプロイ:reference/pipelines.md を参照してください
作業項目(reference/work-items.md を参照)
list_work_items -> get_work_item -> update_work_item -> create_work_item_note
変数と依存関係プロキシ
GITLAB_TOOLSETS=variables または GITLAB_TOOLSETS=dependency_proxy で有効にします。
- 変数:プロジェクト/グループ用の CRUD ツール(
list_*_variables、get_*_variable、create_*_variable、update_*_variable、delete_*_variable) - 依存関係プロキシ:
get_dependency_proxy_settings、update_dependency_proxy_settings、list_dependency_proxy_blobs、purge_dependency_proxy_cache
Webhook と検索
- Webhook:reference/webhooks.md を参照してください
- コード検索:reference/search.md を参照してください
脆弱性のトリアージ(reference/vulnerability-triage.md を参照)
GITLAB_TOOLSETS=vulnerabilities で有効にします(GitLab Ultimate が必要です)。
list_project_vulnerabilities -> get_vulnerability -> dismiss_vulnerability または confirm_vulnerability
ファイル操作
- 読み取り:
get_file_contents、get_repository_tree - 書き込み:
create_or_update_file(単一ファイル)、push_files(複数のファイルを 1 回のコミットで追加)
トークン節約のルール
get_merge_request_diffsの全ペイロードを会話に出力しないでください。list_merge_request_changed_filesでパスを一覧表示してから、get_merge_request_file_diffの呼び出し 1 回につき 3~5 ファイルを取得してください。- 大きな JSON の応答をモデルに読み込ませる前に、
jmespathフィルターまたはGITLAB_MCP_COMPACT_RESULTS/--compact-resultsを使用してください。 - ジョブログ全体を 1 回の呼び出しで取得するのではなく、
limitとoffsetを指定してget_pipeline_job_outputをページネーションしてください。
パラメーターのヒント
- project_id:数値 ID または URL エンコードされたパス(
group%2Fsubgroup%2Fproject) - namespace_id:
create_repository用の数値のネームスペース ID。まずlist_namespaces/verify_namespaceを使用してください - parent_id:サブグループの作成範囲、またはネストされたグループの
verify_namespaceを指定します - MR の検索:
merge_request_iidまたはsource_branchを指定してください - list_issues:デフォルトのスコープは現在のユーザーが作成した課題です。すべての課題を対象にするには
scope: "all"を使用してください - list_merge_requests:
project_idを指定しない場合、すべてのプロジェクトにわたるユーザーの MR が返されます - rebase_merge_request:
waitがtrue(デフォルト)の場合、マージリクエストに加えてprevious_shaとhead_changedが返されます - CI カタログのリソース検索:
idまたはfull_pathのいずれか一方のみを指定してください - 絵文字リアクション:マージリクエスト、課題、作業項目のリアクションツールでは、
thumbsup、rocket、eyesのような GitLab の絵文字名を使用します - 作業項目:ステータスとカスタムフィールドには GitLab Premium/Ultimate の機能が必要です
- execute_graphql:クエリ文字列内の二重引用符をエスケープしてください
破壊的なツール(注意が必要)
cancel_pipeline、cancel_pipeline_job、delete_branch、delete_deployment、approve_deployment、delete_draft_note、delete_environment、erase_pipeline_job、delete_group_milestone、delete_group_variable、delete_group_wiki_page、delete_issue、delete_issue_emoji_reaction、delete_issue_link、delete_issue_note_emoji_reaction、delete_label、delete_merge_request_discussion_note、delete_merge_request_emoji_reaction、delete_merge_request_note、delete_merge_request_note_emoji_reaction、delete_milestone、delete_pipeline、delete_pipeline_schedule、delete_pipeline_schedule_variable、delete_pipeline_trigger、delete_project_variable、delete_release、delete_review_app_environments、delete_snippet、delete_tag、delete_webhook、delete_wiki_page、delete_work_item_emoji_reaction、delete_work_item_note_emoji_reaction、merge_merge_request、protect_branch、protect_tag、purge_dependency_proxy_cache、push_files、rebase_merge_request、stop_environment、stop_stale_environments、unprotect_branch、unprotect_tag、update_default_branch、update_protected_branch、gitlab_api_request
詳細情報
- 動的な検出:
discover_toolsは、実行時にオプトインのツールセットを一覧表示して有効化します。apiは有効化できません - ワークフローガイド:
helpは必要に応じてガイド(コードレビュー、パイプライン、課題、トークン節約)を返します。概要を表示するにはトピックを省略してください - Raw API:
gitlab_api_requestは、GITLAB_TOOLSETSにapiが含まれている場合にのみ使用してください。読み取り専用モードでは GET のみ使用でき、変更モードでは DELETE が拒否されます - GraphQL:REST ツールでカバーされないクエリには
execute_graphqlを使用してください - ツールのドキュメント:
docs/tools/はtools/registry.tsから生成されます。正確なスキーマについては、こちらを優先してください - リモート MCP OAuth:
GITLAB_MCP_OAUTH=trueの場合、POST /register(DCR)はクライアント IP ごとにレート制限されます(MCP SDK ではデフォルトで 20 回/時間。OAUTH_REGISTER_RATE_LIMIT_PER_HOURで調整できます)。これはMAX_REQUESTS_PER_MINUTEおよび GitLab API のクォータとは別です。詳しくは environment-variables.md を参照してください - Zoekt 検索:
search_code、search_project_code、search_group_code(高度な検索を有効にする必要があります) - 作業項目:課題に代わる GraphQL ベースの機能(Premium/Ultimate の機能)