正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

GitLab MCPサーバー

  • プラン: Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed
  • ステータス: 実験的機能

この機能の利用可否は、機能フラグによって制御されます。詳細については、履歴を参照してください。この機能はテストには利用できますが、本番環境での使用には適していません。

この機能に関するフィードバックを提供するには、イシュー561564にコメントを残してください。

GitLab Model Context Protocol(MCP)サーバーを使用すると、AIツールとアプリケーションをGitLabインスタンスに安全に接続できます。Claude Desktop、Cursor、その他のMCP互換ツールのようなAIアシスタントは、GitLabデータにアクセスし、ユーザーに代わってアクションを実行できます。

MCPサーバーは、AIツールが以下を実行するための標準化された方法を提供します。

  • GitLabプロジェクト情報にアクセスします。
  • イシューとマージリクエストのデータを取得する。
  • GitLab APIと安全にやり取りします。
  • AIアシスタントを介してGitLab固有の操作を実行します。

GitLab MCPサーバーは、OAuth 2.0 Dynamic Client Registrationをサポートしており、AIツールはGitLabインスタンスに自身を登録できます。AIツールが初めてGitLab MCPサーバーに接続すると、次のようになります:

  1. OAuthアプリケーションとして自身を登録します。
  2. GitLabデータへのアクセス認可をリクエストします。
  3. 安全なAPIアクセス用のアクセストークンを受信します。

クリックスルーデモについては、Duo Agent Platform - MCP serverを参照してください。

CursorをGitLab MCPサーバーに接続する

前提要件:

  • Node.jsバージョン20以降をインストールします。

CursorでGitLab MCPサーバーを設定するには:

  1. Cursorを開きます。

  2. Cursorで、設定 > Cursor Settings(Cursor Settings) > Tools & Integrations(Tools & Integrations)に移動します。

  3. MCP Tools(MCP Tools)で、New MCP Serverを選択します。

  4. この定義を開いているmcp.jsonファイルのmcpServersキーに追加し、必要に応じて編集します:

    • "command":パラメータの場合、npxがグローバルではなくローカルにインストールされている場合は、npxへのフルパスを指定してください。
    • <gitlab.example.com>を以下に置き換えます:
      • GitLab Self-Managedでは、GitLabインスタンスのURL。
      • GitLab.comでは、GitLab.com
    • --static-oauth-client-metadataパラメータは、GitLabサーバーで予期されるようにOAuthスコープをmcpに設定するために、mcp-remoteモジュールに必須です。
    {
      "mcpServers": {
        "GitLab": {
          "command": "npx",
          "args": [
            "mcp-remote",
            "https://<gitlab.example.com>/api/v4/mcp",
            "--static-oauth-client-metadata",
            "{\"scope\": \"mcp\"}"
          ]
        }
      }
    }
  5. ファイルを保存し、ブラウザでOAuth認可ページが開くのを待ちます。

    これが発生しない場合は、Cursorを閉じて再起動します。

  6. ブラウザで、認可リクエストを確認して承認します。

新しいチャットを開始し、利用可能なツールに応じて質問をすることができます。

これらのツールを使用する際は、プロンプトインジェクションから保護する責任があります。最大限の注意を払うか、信頼できるGitLabオブジェクトでのみMCPツールを使用してください。

Claude DesktopをGitLab MCPサーバーに接続する

前提要件:

  • Node.jsバージョン20以降をインストールします。
  • Node.jsがPATH環境変数(which -a node)でグローバルに使用できることを確認します。

Claude DesktopでGitLab MCPサーバーを設定するには:

  1. Claude Desktopを開きます。

  2. 設定ファイルを編集します。次のいずれかを実行できます:

    • Claude Desktopで、設定 > デベロッパー > Edit Config(Edit Config)に移動します。
    • macOSで、~/Library/Application Support/Claude/claude_desktop_config.jsonファイルを開きます。
  3. 必要に応じて編集して、GitLab MCPサーバーにこのエントリを追加します:

    • "command":パラメータの場合、npxがグローバルではなくローカルにインストールされている場合は、npxへのフルパスを指定してください。
    • <gitlab.example.com>を以下に置き換えます:
      • GitLab Self-Managedでは、GitLabインスタンスのURL。
      • GitLab.comでは、GitLab.com
    • --static-oauth-client-metadataパラメータは、GitLabサーバーで予期されるようにOAuthスコープをmcpに設定するために、mcp-remoteモジュールに必須です。
    {
      "mcpServers": {
        "GitLab": {
          "command": "npx",
          "args": [
            "-y",
            "mcp-remote",
            "https://<gitlab.example.com>/api/v4/mcp",
            "--static-oauth-client-metadata",
            "{\"scope\": \"mcp\"}"
          ]
        }
      }
    }
  4. 設定を保存して、Claude Desktopを再起動します。

  5. 最初の接続時に、Claude DesktopはOAuthのブラウザウィンドウを開きます。リクエストを確認して承認します。

  6. 設定 > デベロッパーに移動し、新しいGitLab MCP設定を確認します。

  7. 設定 > Connectors(Connectors)に移動し、接続されているGitLab MCPサーバーを検査します。

新しいチャットを開始し、利用可能なツールに応じて質問をすることができます。

これらのツールを使用する際は、プロンプトインジェクションから保護する責任があります。最大限の注意を払うか、信頼できるGitLabオブジェクトでのみMCPツールを使用してください。

利用可能なツール

GitLab MCPサーバーは、次のツールを提供します。

get_mcp_server_version

GitLab MCPサーバーの現在のバージョンを返します。

例:

What version of the GitLab MCP server am I connected to?

create_issue

GitLabプロジェクトに新しいイシューを作成します。

パラメータ必須説明
id文字列はいプロジェクトのIDまたはURLエンコードされたパス。
title文字列はいイシューのタイトル。
description文字列いいえイシューの説明。
assignee_ids配列いいえ割り当てられたユーザーのID。
milestone_id整数いいえマイルストーンのID。
labels文字列いいえラベル名のコンマ区切りリスト。
confidentialブール値いいえイシューを機密に設定します。デフォルトはfalseです。
epic_id整数いいえリンクされたエピックのID。

例:

Create a new issue titled "Fix login bug" in project 123 with description
"Users cannot log in with special characters in password"

get_issue

特定のGitLabイシューに関する詳細情報を取得する。

パラメータ必須説明
id文字列はいプロジェクトのIDまたはURLエンコードされたパス。
issue_iid整数はいイシューの内部ID。

例:

Get details for issue 42 in project 123

create_merge_request

プロジェクトにマージリクエストを作成します。

パラメータ必須説明
id文字列はいプロジェクトのIDまたはURLエンコードされたパス。
title文字列はいマージリクエストのタイトル。
source_branch文字列はいソースブランチの名前。
target_branch文字列はいターゲットブランチの名前。
target_project_id整数いいえターゲットプロジェクトのID(数値)。

例:

Create a merge request in project gitlab-org/gitlab titled "Bug fix broken specs"
from branch "fix/specs-broken" into "master" and enable squash

get_merge_request

特定のGitLabマージリクエストに関する詳細情報を取得する。

パラメータ必須説明
id文字列はいプロジェクトのIDまたはURLエンコードされたパス。
merge_request_iid整数はいマージリクエストの内部ID。

例:

Get details for merge request 15 in project gitlab-org/gitlab

get_merge_request_commits

特定のマージリクエスト内のコミットのリストを取得する。

パラメータ必須説明
id文字列はいプロジェクトのIDまたはURLエンコードされたパス。
merge_request_iid整数はいマージリクエストの内部ID。
per_page整数いいえページあたりのコミット数。
page整数いいえ現在のページ番号。

例:

Show me all commits in merge request 42 from project 123

get_merge_request_diffs

特定のマージリクエストの差分を取得する。

パラメータ必須説明
id文字列はいプロジェクトのIDまたはURLエンコードされたパス。
merge_request_iid整数はいマージリクエストの内部ID。
per_page整数いいえページあたりの差分の数。
page整数いいえ現在のページ番号。

例:

What files were changed in merge request 25 in the gitlab project?

get_merge_request_pipelines

特定のマージリクエストのパイプラインを取得する。

パラメータ必須説明
id文字列はいプロジェクトのIDまたはURLエンコードされたパス。
merge_request_iid整数はいマージリクエストの内部ID。

例:

Show me all pipelines for merge request 42 in project gitlab-org/gitlab

get_pipeline_jobs

特定のCI/CDパイプラインのジョブを取得する。

パラメータ必須説明
id文字列はいプロジェクトのIDまたはURLエンコードされたパス。
pipeline_id整数はいパイプラインのID。
per_page整数いいえページあたりのジョブ数。
page整数いいえ現在のページ番号。

例:

Show me all jobs in pipeline 12345 for project gitlab-org/gitlab

検索APIを使用して、GitLabインスタンス全体で用語を検索します。このツールは、グローバル検索でのみ使用できます。

パラメータ必須説明
scope文字列はい検索スコープ(issuesmerge_requests、またはprojectsなど)。
search文字列はい検索語句。
state文字列いいえ検索結果の状態。
confidentialブール値いいえ機密性で結果をフィルタリングします。デフォルトはfalseです。
per_page整数いいえページあたりの結果数。
page整数いいえ現在のページ番号。
fields文字列いいえ検索するフィールドのコンマ区切りリスト。

例:

Search issues for "flaky test" across GitLab

get_code_context

この機能の利用可否は、機能フラグによって制御されます。詳細については、履歴を参照してください。この機能はテストには利用できますが、本番環境での使用には適していません。

プロジェクト内の関連するコードスニペットを検索します。

パラメータ必須説明
search_term文字列はい検索語句。
project_id整数はいプロジェクトのID。
directory_path文字列いいえディレクトリのパス(app/services/など)。
knn整数いいえ類似のコードスニペットを検出するために使用される最近傍の数。デフォルトは64です。
limit整数いいえ返す結果の最大数。デフォルトは20です。

例:

Search for relevant code snippets that show how authorizations are managed in GitLab