mcpField
G
GitLab MCP Server

GitLab MCP Server

ローカル
github.com/sumiratiバージョン管理12 週間前に更新

GitLab MCP Server について

@sumirati/mcp-gitlabは、MCPクライアントをGitLab API v4に接続し、セルフホストのCE・EEインスタンスとGitLab.comに対応します。クライアントに見える5つのツールから90種類の操作を必要に応じて検索でき、よく使うファイル、プロジェクト、コミット操作には直接アクセスできます。

主な機能

  1. 0114分野の操作をオンデマンド検索
  2. 02プロジェクト、ブランチ、ファイル操作
  3. 03コミットとマージリクエストのワークフロー
  4. 04CI/CDパイプライン、Runner、アーティファクト
  5. 05読み取り専用モードと出力投影

活用シーン

  1. 01プロジェクトのファイルを読みコミット差分を調べる
  2. 02マージリクエストの変更と議論を確認する
  3. 03失敗したパイプラインやRunnerの状態を調査する
  4. 04セルフホストのGitLabインスタンスを操作する

MCP 対応

このMCPサーバーは、操作カタログの検索・実行用2ツールと、ファイル、プロジェクト、コミットへの直接アクセス用ツールを合わせた5ツールを公開します。カタログには90種類のGitLab操作があり、読み取り専用モードで変更を禁止できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"sumirati-mcp-gitlab": {
"command": "npx",
"args": [
"-y",
"@sumirati/mcp-gitlab"
],
"env": {
"GITLAB_PERSONAL_ACCESS_TOKEN": "<GITLAB_PERSONAL_ACCESS_TOKEN>",
"GITLAB_API_URL": "<GITLAB_API_URL>",
"GITLAB_READ_ONLY": "<GITLAB_READ_ONLY>",
"GITLAB_EXPOSE_ALL_TOOLS": "<GITLAB_EXPOSE_ALL_TOOLS>",
"MCP_OUTPUT_FORMAT": "<MCP_OUTPUT_FORMAT>"
}
}
}
}
起動コマンドnpx -y @sumirati/mcp-gitlab
設定が必要な環境変数
GITLAB_PERSONAL_ACCESS_TOKENシークレットGitLab Personal Access Token with api scope
GITLAB_API_URLGitLab instance API URL (defaults to https://gitlab.com/api/v4)
GITLAB_READ_ONLYEnable read-only safety mode (true/false, default: false)
GITLAB_EXPOSE_ALL_TOOLSSet to true to expose all 90 catalog actions directly on ListTools instead of the 5-tool hybrid surface
MCP_OUTPUT_FORMATDefault output format: 'markdown' (default, compact tables) or 'json'

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@sumirati/mcp-gitlab3.2.0

ツール

5

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
pagenumberはいページ分割された操作結果のページ番号(デフォルト:1)
querystringいいえ操作を検索するキーワード(例:'merge request'、'pipeline'、'runner'、'mirror'、'release'、'branch'、'job trace')
domainenumいいえ検索範囲を限定する任意のドメインrepositories | branches | commits | members | variables | issues | milestones | pipelines | releases | merge-requests | wikis | snippets | user | enterprise
formatenumはい出力形式:'json'(デフォルト、構造化オブジェクト)または 'markdown'(人間/LLM が読みやすい簡潔なテキストテーブル)json | markdown
per_pagenumberはい1 ページあたりの操作数(デフォルト:15)

詳細

翻訳後に原文が更新されています。最新の内容は原文をご確認ください。

GitLab MCP サーバー(@sumirati/mcp-gitlab)

セルフホスト型の GitLab Community Edition(CE)、Enterprise Edition(EE)、および GitLab.com 向けに開発された、GitLab API v4 用の最新の 2026 年対応 AI ネイティブ Model Context Protocol(MCP)サーバーです。

npm version License: MIT GitHub GitLab


v3.0.0 の特長:2026 年版 5 ツールのハイブリッド標準

初期の MCP サーバーでは、50〜100 個のツールをクライアントのツールリストに並べることで、毎ターン 10,000 個以上のプロンプトコンテキストトークン(「システムプロンプト税」)を消費し、Glama TDQS の評価基準で低い一貫性評価を招いていました。

@sumirati/mcp-gitlab v3 は、5 ツールのハイブリッド構成によりこの問題を解決します。

  • Glama TDQS 一貫性ランク A(5/5):クライアントに公開するツールをちょうど 5 個にすることで、サーバーは一貫性に理想的な 3〜15 個の範囲に収まります。
  • 極めて軽量なシステムプロンプト税:スキーマのオーバーヘッドを約 11,200 トークンから約 450 トークンへ削減し(96% 削減)、コンテキストウィンドウを維持して LLM のプロンプトキャッシュヒットを最大化します。
  • ホップなしで実行する使用頻度の高い操作:ペアプログラミング中に開発者やエージェントが頻繁に使う 3 つの操作(get_file_contents、get_project、get_commit)は、即時実行できるホップなしのツールとして引き続き利用できます。
  • 必要に応じてプラットフォーム全体にアクセス:14 のドメインにまたがる 88 のアクションすべてに、動的なアクション検出(gitlab_find_actions $\rightarrow$ gitlab_execute_action)を通じて必要に応じてアクセスでき、既定の高密度 Markdown テーブルと要約(format: "markdown" | "json")により、85%〜90% のトークンを削減します。
  • 堅牢なフォールバック:エージェントがカタログ内のアクション名(例:list_pipelines)を直接呼び出した場合も、サーバーは入力の完全な検証とデータの絞り込みを行って、そのアクションを動的に実行します。
LLM Prompt Context (~450 tokens total):
├── 1. gitlab_find_actions(query, [domain], [format])     [Meta Discovery]
├── 2. gitlab_execute_action(action, params, [format])   [Meta Dynamic Execution]
├── 3. get_file_contents(projectId, filePath)             [Eager Daily Driver #1]
├── 4. get_project(projectId)                             [Eager Daily Driver #2]
└── 5. get_commit(projectId, sha)                         [Eager Daily Driver #3]

Under the hood (Dynamic Registry):
└── 88 Curated Actions across 14 Domains (with 85%–98% token reduction projections)

14 のドメインにわたる主な機能

  1. エンタープライズ向け可観測性とセルフホスト運用:
    • システム健全性の診断:エンドツーエンドの接続、トークンの本人確認、API レイテンシのテスト(system_health_check)。
    • プッシュミラー:GitHub/GitLab.com への上流レプリケーションを確認し(list_push_mirrors)、即時同期を強制します(trigger_push_mirror_sync)。
    • CI ランナー:ランナーの健全性、オンライン/一時停止状態、タグを監査します(list_runners、get_runner_status)。
    • Webhook:登録済みの自動化フックを確認します(list_project_hooks)。
  2. リポジトリとブランチのガバナンス:プロジェクトの CRUD、グループ階層の解決(buggycode/project-name)、ブランチのライフサイクル、ブランチ保護の管理(list_protected_branches、protect_branch、unprotect_branch)、ファイルの読み取り、複数ファイルのアトミックなコミット(push_files)。
  3. CI/CD の可観測性:ステータスでパイプラインを検索し、失敗したジョブのログをトークン消費を抑えて末尾から取得し(get_job_trace)、ビルド成果物を読み取り、JUnit テストレポートを確認します。
  4. マージリクエストのレビューと差分のディスカッション:2 段階の差分確認、自動的なロックファイルの整理(package-lock.json)、SHA 座標の解決を伴うインライン差分ディスカッション。
  5. イシューとタスク計画:イシューの CRUD、ブロッカー/依存関係の追跡(issue_links)、進捗メモの追加(issue_notes)。
  6. マイルストーンとラベル:人が読みやすいマイルストーンの解決、ラベルの作成、スコープ指定によるマイルストーンの確認。
  7. Wiki とスニペット:ドキュメントのアウトライン分割(toc_only: true)、章の抽出、スニペットの管理。
  8. ユーザーとアイデンティティのコンテキスト:認証済みユーザーの情報照会、グループの列挙、所有プロジェクトの検出。

クイックスタートとインストール

オプション 1:npx で実行(インストール不要)
npx -y @sumirati/mcp-gitlab
オプション 2:グローバルにインストール
npm install -g @sumirati/mcp-gitlab
mcp-gitlab
オプション 3:ローカルにクローン
git clone https://github.com/sumirati/mcp-gitlab.git
cd mcp-gitlab
npm install
npm test
npm start

環境設定

変数必須デフォルト説明
GITLAB_PERSONAL_ACCESS_TOKENはい—api スコープを持つパーソナルアクセストークンです。
GITLAB_API_URLいいえhttps://gitlab.com/api/v4GitLab CE/EE またはクラウドインスタンスのベース API URL です。
GITLAB_READ_ONLYいいえfalse読み取り専用の安全モードを有効にします(true、1、yes)。変更を伴うツールを除外し、86 個すべてのアクションにおいて書き込み/変更を行う HTTP リクエストを厳格にブロックします。
GITLAB_EXPOSE_ALL_TOOLSいいえfalse5 ツールのハイブリッドサーフェスを無効にし、レガシークライアント向けに ListTools で 86 個すべてのツールを直接公開するには、true(または GITLAB_EXPOSE_LEGACY_TOOLS=true)を設定します。

クライアント設定

Google Antigravity / Claude Desktop / Cursor

MCP 設定ファイル(mcp_config.json または claude_desktop_config.json)に追加します。

{
  "mcpServers": {
    "gitlab": {
      "command": "npx",
      "args": ["-y", "@sumirati/mcp-gitlab"],
      "env": {
        "GITLAB_PERSONAL_ACCESS_TOKEN": "<your-gitlab-token>",
        "GITLAB_API_URL": "https://gitlab.example.com/api/v4"
      }
    }
  }
}

全アクションカタログのリファレンス(82 アクション)

82 個すべてのアクションで、厳格な入力検証とフィールドマスクによるプロジェクションを利用できます(トークンを 77%~98% 削減)。

1. クライアントに公開される 5 つのツール(ハイブリッドモード)
ツール種類説明
gitlab_find_actionsメタコンパクトなパラメータースキーマを使用して、14 のすべてのドメインにわたる GitLab 操作を検索、確認します
gitlab_execute_actionメタ入力検証とトークン最適化されたプロジェクションを使用して、確認済みの GitLab プラットフォームアクションを実行します
get_file_contents即時クローンせずに、任意のブランチまたはコミット参照からファイルの内容やディレクトリ一覧を読み取ります
get_project即時プロジェクトのメタデータ、プロジェクト ID、可視性、クローン URL、デフォルトブランチを取得します
get_commit即時Git コミットの詳細、作成者情報、トークン数を制限したファイル差分を確認します
2. エンタープライズおよびセルフホスト環境での操作(5 アクション)
アクション説明変更を伴う操作?
list_push_mirrorsプロジェクトのリモートプッシュミラーと同期状況を一覧表示しますいいえ
trigger_push_mirror_syncプッシュミラーの同期を即時に強制実行します(例:ローカルのセルフホスト環境から GitHub へ)はい
list_runnersCI/CD ランナーをオンライン/一時停止の状態とともに一覧表示します(インスタンス、グループ、プロジェクトの各レベル)いいえ
get_runner_statusランナーの詳細な健全性指標、アーキテクチャ、タグ、最終接続時刻を取得しますいいえ
list_project_hooks設定済みのプロジェクト Webhook と登録されたイベントトリガーを一覧表示しますいいえ
3. リポジトリおよびプロジェクト管理(8 アクション)
アクション説明変更を伴う操作?
search_repositoriesGitLab 全体、または特定のグループ内でプロジェクトを名前で検索しますいいえ
create_repository個人またはグループの名前空間に新しいプロジェクトを作成しますはい
update_projectプロジェクトの表示名、説明、デフォルトブランチ、トピックを更新しますはい
delete_projectプロジェクトを完全に削除します(明示的な安全確認が必要です)はい
create_or_update_file即時の Git コミットを伴って、単一ファイルを作成または更新しますはい
push_files複数のファイルの追加、編集、削除を 1 つのコミットでアトミックに実行しますはい
create_commitpush_files の別名です。GitLab Commits API を通じて複数のファイルをアトミックにコミットしますはい
fork_repository既存のプロジェクトを、指定したユーザーまたはグループの名前空間にフォークしますはい
4. ブランチガバナンス(4 アクション)
アクション説明変更を伴う操作?
list_branches最新のコミット概要と保護状態を含めて、リポジトリのブランチを一覧表示しますいいえ
get_branchコミット作成者や保護状態を含む、特定のブランチの詳細を取得しますいいえ
create_branch既存のブランチ、タグ、または SHA を起点として新しいブランチを作成しますはい
delete_branchGit ブランチを削除します(デフォルトブランチの削除は厳格にブロックされます)はい
5. Git コミットと履歴(1 アクション)
アクション説明変更を伴う?
list_commitsブランチ、日付、またはファイルパスで絞り込んだ、時系列順のコミット履歴を一覧表示しますいいえ
6. パイプラインと CI/CD の可観測性(8 アクション)
アクション説明変更を伴う?
list_pipelinesブランチ、コミット SHA、または実行ステータスで絞り込んだパイプラインを一覧表示しますいいえ
get_pipelineパイプラインの実行詳細、所要時間、全体のステータスを取得しますいいえ
create_pipeline指定したブランチまたはタグで新しい CI/CD パイプラインを実行しますはい
cancel_pipeline実行中のパイプラインをキャンセルしますはい
retry_pipelineパイプライン実行で失敗またはキャンセルされたジョブを再試行しますはい
list_pipeline_jobsステージ、ステータス、所要時間とともに、パイプライン内の個々のジョブを一覧表示しますいいえ
get_job_traceコンテキストの過剰な消費を防ぐため、行数を制限してジョブのビルド/テストログを安全に末尾から取得しますいいえ
get_job_artifact_file完了したジョブのビルド成果物から特定のファイルを読み取りますいいえ
7. マージリクエストとコードレビュー(12 アクション)
アクション説明変更を伴う?
list_merge_requests状態(opened、merged、closed)、ソース/ターゲットで絞り込んだプロジェクトの MR を一覧表示しますいいえ
get_merge_requestMR の詳細なメタデータ、マージ可能性、ブランチ情報を取得しますいいえ
create_merge_requestソースブランチ、ターゲットブランチ、説明を指定して新しい MR を作成しますはい
update_merge_requestタイトル、説明、ターゲットブランチ、またはドラフト状態を更新しますはい
accept_merge_requestオプションでスカッシュやブランチ削除を指定して、承認済みの MR をマージしますはい
get_merge_request_changesロックファイルのフィルタリングと行の切り詰めによる安全対策を備えた、2 段階の差分レビューを行いますいいえ
list_merge_request_diffsコミット差分のバージョンと座標 SHA(head_sha、base_sha)を一覧表示しますいいえ
list_merge_request_discussionsコードレビューのディスカッションとコメントスレッドを一覧表示しますいいえ
create_diff_discussion特定のファイルと行の差分に紐づけて、インラインのレビューコメントを作成しますはい
reply_merge_request_discussion既存のレビューコメントスレッドに返信しますはい
resolve_merge_request_discussionインラインのレビューコメントスレッドを解決済み、または再オープンとしてマークしますはい
update_merge_request_discussion_note既存のレビューコメントを編集しますはい
8. イシューとロードマップ(8 アクション)
アクション説明変更を伴う?
list_issues状態、マイルストーン、ラベル、作成者、または担当者で絞り込んだイシューを一覧表示しますいいえ
get_issueイシューの詳細、説明、担当者、状態を取得しますいいえ
create_issueタイトル、説明、マイルストーン、ラベルを指定して新しいイシューを作成しますはい
update_issueタイトル、説明、状態(close/reopen)、または担当者を変更しますはい
delete_issueイシューを完全に削除します(安全確認が必要です)はい
list_issue_notesイシューのコメントを一覧表示しますいいえ
create_issue_noteイシューに進捗状況やコメントを投稿しますはい
create_issue_link関係(relates_to、blocks、is_blocked_by)を指定してイシューをリンクしますはい
9. マイルストーンとラベル(6 アクション)
アクション説明変更を伴う?
list_milestonesプロジェクトのマイルストーンを一覧表示します(継承されたグループのマイルストーンも含みます)いいえ
get_milestoneタイトルまたは数値 ID でマイルストーンの詳細を取得しますいいえ
create_milestoneタイトル、説明、期日を指定して新しいマイルストーンを作成しますはい
update_milestoneマイルストーンのタイトル、説明、状態、または日付を更新しますはい
list_labels色と説明を含むプロジェクトのラベルを一覧表示しますいいえ
create_label名前とカラーの HEX コードを指定して、新しいプロジェクトラベルを作成しますはい
10. リリースとタグ(5 アクション)
アクション説明変更を伴うか
list_releases変更履歴とリリースアセットを含むプロジェクトのリリース一覧を取得しますいいえ
get_release指定したリリースのリリースノートとタグのメタデータを取得しますいいえ
create_releaseMarkdown 形式のリリースノートを付けて、Git タグに紐づくリリースを作成しますはい
list_tagsコミットハッシュと注釈付きメッセージを含む Git タグの一覧を取得しますいいえ
create_tagブランチまたはコミット SHA を指す新しい Git タグを作成しますはい
11. プロジェクトのコラボレーターとロール(5 アクション)
アクション説明変更を伴うか
list_membersアクセスレベル(ゲストからオーナーまで)を含むプロジェクトメンバーの一覧を取得しますいいえ
get_member指定したユーザーのメンバーシップの詳細とアクセスレベルを取得しますいいえ
add_memberロール名または数値レベルを指定してコラボレーターを追加しますはい
update_memberコラボレーターのロールまたは有効期限を変更しますはい
remove_memberプロジェクトへのコラボレーターのアクセス権を削除しますはい
12. CI/CD 環境変数(5 アクション)
アクション説明変更を伴うか
list_variablesプロジェクトのパイプライン変数一覧を取得します(値はマスクされます)いいえ
get_variable変数の詳細を取得し、値を復号しますいいえ
create_variableマスク/保護フラグを指定して変数(env_var または file)を作成しますはい
update_variable変数の値、マスキング、または保護状態を更新しますはい
delete_variableパイプライン変数を削除しますはい
13. Wiki とドキュメント(4 アクション)
アクション説明変更を伴うか
list_wikisプロジェクト内のすべての Wiki ページを一覧表示しますいいえ
get_wiki目次(toc_only)またはセクション抽出を指定して Wiki の内容を取得しますいいえ
create_wikiタイトルと Markdown コンテンツを指定して新しい Wiki ページを作成しますはい
update_wiki既存の Wiki ページのタイトルまたは Markdown コンテンツを更新しますはい
14. スニペットとユーザーコンテキスト(9 アクション)
  • スニペット:list_snippets、get_snippet、create_snippet、update_snippet。
  • ユーザーとグループ:get_current_user、list_my_groups、get_group、list_group_projects、list_my_projects。

ベンチマーク:トークン節約の実例

操作標準の GitLab API@sumirati/mcp-gitlabトークン削減率
システムプロンプトの負荷(5 ツール対 88 アクション)約14,200トークン約450トークン96.8%節約
get_project(単一プロジェクトの調査)1,850トークン210トークン88.6%節約
list_merge_requests(10 件の MR)8,900トークン940トークン89.4%節約
list_pipelines(10 件の実行)4,200トークン620トークン85.2%節約
get_merge_request_changes(差分レビュー)48,000トークン以上約3,200トークン93.3%節約
主なトークン最適化の柱:
  • スマートな差分処理とロックファイルの切り詰め:コミット差分(get_commit)と MR の変更内容(get_merge_request_changes)では、デフォルトで ignore_lockfiles: true により、依存関係のロックファイル(package-lock.json、pnpm-lock.yaml、yarn.lock、go.sum、Cargo.lock、*.min.js)を自動的に折りたたみます。これにより、レビューごとに1,000~3,000トークンを節約できます。ロックファイルの差分全体が必要な場合は、ignore_lockfiles: false を渡してください。
  • 控えめなデフォルトのページネーション:すべての一覧アクションでは、デフォルトで per_page: 10(最大:100)を使用します。これにより、必要なのは最新の項目だけなのに20~50件を読み込むことで生じるトークンの無駄をなくします。
  • 高密度な Markdown 形式をデフォルトに設定:検出(gitlab_find_actions)、実行(gitlab_execute_action)、プロジェクト情報(get_project)、コミットの調査(get_commit)では、デフォルトで format: "markdown" を使用し、生の JSON と比べてトークンを85~90%削減します。
  • 再帰的な出力投影フィルター(projectOutput):ペイロードが LLM のコンテキストに渡される前に、ノイズとなるメタデータキー(_links、avatar_url、gravatar_id、node_id、site_admin、ナビゲーション URL、内部 API リンク、null/空のフィールド)を除去します。

ロードマップ

今後の予定(v3.2)
  • 上流のインデックス付きフィルタリングと厳格なページネーション上限(state、labels、milestone、author_id、assignee_id)
  • クライアントのエラー耐性(401 プローブの判別、403 スコープ不足、429 レート制限時のバックオフ、201 のゴースト書き込み防止)
  • 再帰深度ガード(maxDepth = 32)と空のコレクションの保持による、出力射影の強化
  • ネストされたサブグループ階層の管理(parent_id を指定した create_group)
  • get_job_trace での CI/CD 失敗ログのスマート抽出と ANSI シーケンスの除去(strip_ansi、smart_failure)
  • get_file_contents でのアウトライン優先のコードシンボル抽出と行範囲の切り出し(outline_only、start_line、end_line)
  • マージ可能性と競合の事前検証(get_mergeability)
  • トークンスコープのセルフ監査と権限の事前確認
今後の展望(v3.x)
  • LiteLLM / Eigent のエージェントオーケストレーションで複数ターンの履歴を整理しやすくする、コレクションの標準化された _summary ヘッダー
  • リモートトランスポート:ストリーミング可能な SSE と HTTP リモートサーバーモード
  • リレーションを深く調査する、スコープ制限付き GraphQL クエリエンジン
  • DevSecOps の脆弱性およびシークレットスキャンアラートのクエリ
  • プロジェクトリポジトリ内でのスコープ制限付き、レートガード付きコード検索

謝辞と由来

このプロジェクトには、以下のプロジェクトのアーキテクチャ概念、スキーマ、パターンが取り入れられています。

  • @modelcontextprotocol/server-gitlab(MIT License)— Copyright (c) 2024 Anthropic, PBC / GitLab, PBC。ベースとなるリポジトリおよびファイルのスキーマパターン。
  • @modelcontextprotocol/sdk(MIT License)— Copyright (c) Anthropic, PBC.
  • zod(MIT License)— Colin McDonnell.
  • GitLab REST API v4 — GitLab, PBC.
  • jmrplens/gitlab-mcp-server — 動的なアクション検出とメタディスパッチャーパターンの概念。
  • Vijay-Duke/mcp-gitlab と zereight/gitlab-mcp のアーキテクチャパターンを評価しました。

サードパーティの完全な帰属表示については、NOTICE を参照してください。


ライセンス

このプロジェクトは MIT License の下でライセンスされています — Copyright (c) 2026 [email protected]。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。