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

GitLab MCPクライアント

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

Model Context Protocol(MCP)は、GitLab Duoの各機能がさまざまな外部データソースやツールに安全に接続するための標準化された方法を提供します。

MCPは以下の環境でサポートされています:

  • Visual Studio Code(VS Code)およびVSCodium
  • JetBrains IDE
  • GitLab Duo CLIを介したコマンドライン

同じMCP設定ファイルは、サポートされているすべてのIDEおよびGitLab Duo CLIで動作します。

次の機能はMCPクライアントとして動作し、MCPサーバーから外部ツールに接続できます:

これらの機能は、外部コンテキストと情報にアクセスして、より強力な回答を生成できます。

MCPで機能を使用するには、次の手順に従います:

  1. グループのMCPをオンにします。
  2. 機能を接続するMCPサーバーを構成します。

概要については、GitLab Duo Chat(エージェント型) - MCPツール呼び出しの承認を参照してください。

クリックデモについては、GitLab Duo Agent Platform - MCPクライアントを参照してください。

前提条件

拡張機能のサポートに関する詳細については、バージョンの互換性を参照してください。

外部のMCPツールを許可

GitLab Duoが設定されているトップレベルグループで、IDEが外部MCPツールにアクセスできるようにします。

GitLab.com

GitLab.comでローカル環境が外部MCPツールにアクセスできるようにするには:

  1. 上部のバーで、検索または移動先を選択して、グループを見つけます。
  2. 設定 > GitLab Duoを選択します。
  3. 設定の変更を選択します。
  4. 外部のMCPツールの下で、外部のMCPツールを許可チェックボックスを選択します。
  5. 変更を保存を選択します。

GitLab Self-Managed

GitLab Self-Managedでローカル環境が外部MCPツールにアクセスできるようにするには:

  1. 上部のバーで、検索または移動先を選択して、グループを見つけます。
  2. 設定 > 一般を選択します。
  3. GitLab Duoの機能を展開します。
  4. 外部のMCPツールの下で、外部のMCPツールを許可チェックボックスを選択します。
  5. 変更を保存を選択します。

MCPサーバーを設定する

MCPを言語サーバーと統合するには、ワークスペースの設定、ユーザー設定、またはその両方をセットアップします。GitLab言語サーバーは、設定ファイルを読み込み、マージします。

バージョンの互換性

MCPサポートGitLab for VS CodeGitLab Duoプラグイン
JetBrains IDE用
GitLab Duo CLI
基本 (ワークスペースまたはユーザー設定なし)6.28.2以降3.10.0以降
完了 (ワークスペースおよびユーザー設定あり)6.35.6以降3.14.0以降8.81.0以降

ワークスペース設定を作成する

ワークスペースの設定は、このプロジェクトにのみ適用され、同じサーバーのユーザー設定をオーバーライドします。

ワークスペースの設定を行うには、次の手順に従います:

  1. プロジェクトのワークスペースで、<workspace>/.gitlab/duo/mcp.jsonファイルを作成します。
  2. 設定形式を使用して、機能が接続するMCPサーバーに関する情報を追加します。
  3. ファイルを保存します。
  4. IDEまたはGitLab Duo CLIを再起動します。

ユーザー設定を作成する

ユーザー設定は、個人用ツールおよび一般的に使用されるサーバーに適しています。これらはすべてのワークスペースに適用されますが、同じサーバーのワークスペースの設定はユーザー設定をオーバーライドします。

ユーザー設定を行うには、次の手順に従います:

  1. 設定ファイルを作成します:

    1. IDEで、コマンドパレットを開きます:
      • macOSの場合は、Command+Shift+Pキーを押します。
      • WindowsまたはLinuxの場合は、Control+Shift+Pを押します。
    2. コマンドGitLab MCP: Open User Settings (JSON)を実行します。
    • ホームディレクトリにmcp.jsonファイルを作成します:
      • LinuxまたはmacOSの場合は、~/.gitlab/duo/mcp.json

      • Windowsの場合は、%APPDATA%\GitLab\duo\mcp.json

        例: C:\Users\<username>\AppData\Roaming\GitLab\duo\mcp.json

    以下の環境変数のいずれかを設定している場合は、別の場所にファイルを作成します:

    • GLAB_CONFIG_DIRの場合は、$GLAB_CONFIG_DIR/duo/mcp.json
    • XDG_CONFIG_HOMEの場合は、$XDG_CONFIG_HOME/gitlab/duo/mcp.json
    • ホームディレクトリにmcp.jsonファイルを作成します:
      • LinuxまたはmacOSの場合は、~/.gitlab/duo/mcp.json

      • Windowsの場合は、%APPDATA%\GitLab\duo\mcp.json

        例: C:\Users\<username>\AppData\Roaming\GitLab\duo\mcp.json

    以下の環境変数のいずれかを設定している場合は、別の場所にファイルを作成します:

    • GLAB_CONFIG_DIRの場合は、$GLAB_CONFIG_DIR/duo/mcp.json
    • XDG_CONFIG_HOMEの場合は、$XDG_CONFIG_HOME/gitlab/duo/mcp.json
  2. 設定形式を使用して、機能が接続するMCPサーバーに関する情報を追加します。

  3. ファイルを保存します。

  4. IDEまたはGitLab Duo CLIを再起動します。

設定形式

両方の設定ファイルは、mcpServersキーに詳細が記述された同じJSON形式を使用します:

{
  "mcpServers": {
    "server-name": {
      "type": "stdio",
      "command": "path/to/server",
      "args": ["--arg1", "value1"],
      "env": {
        "ENV_VAR": "value"
      },
      "approvedTools": true
    },
    "http-server": {
      "type": "http",
      "url": "http://localhost:3000/mcp",
      "approvedTools": ["read_file", "search"]
    },
    "sse-server": {
      "type": "sse",
      "url": "http://localhost:3000/mcp/sse"
    }
  }
}

他のMCPクライアントの場合、Atlassianのドキュメントではサンプル設定ファイルにmcp.serversを使用しています。GitLabでは、代わりにmcpServersを使用します。

ツール承認を設定します

デフォルトでは、各セッションでサーバーからのすべてのMCPツールを手動で承認する必要があります。

代わりに、設定ファイルでMCPツールを事前承認して、手動のプロンプトをスキップできます。

そのためには、approvedToolsフィールドを任意のサーバー設定に追加します:

  • "approvedTools": true - このサーバーからの現在および将来のすべてのツールを自動的に承認します。
  • "approvedTools": ["tool1", "tool2"] - 指定したツールのみを承認します。

このフィールドを含めない場合、セッション内のすべてのツールを手動で承認する必要があります(これがデフォルトの動作です)。

完全に信頼できるサーバーにのみ"approvedTools": trueを使用してください。

例:

{
  "mcpServers": {
    "trusted-server": {
      "type": "stdio",
      "command": "npx",
      "args": ["my-trusted-mcp-server"],
      "approvedTools": true
    },
    "selective-server": {
      "type": "http",
      "url": "http://localhost:3000/mcp",
      "approvedTools": ["read_file", "search"]
    },
    "untrusted-server": {
      "type": "sse",
      "url": "http://example.com/mcp/sse"
    }
  }
}

ツール承認の仕組み

GitLabはMCPツールに2層の承認システムを使用します:

  • 設定ベースの承認(永続的): mcp.jsonapprovedToolsフィールドを使用して承認されたツール。これらの承認はすべてのセッションで持続します。
  • セッションベースの承認(一時的): 現在のワークフローセッションのランタイム中に承認されたツール。これらの承認は、IDEを閉じるか、ワークフローを終了するとクリアされます。

いずれかの条件が満たされた場合、ツールは承認されます。

MCPサーバー設定の例

次のコード例を参考にして、MCPサーバーの設定ファイルを作成してください。

詳細と例については、MCPサーバー例のドキュメントを参照してください。その他のサーバー例としては、Smithery.aiAwesome MCP Serversがあります。

ローカルサーバー

{
  "mcpServers": {
    "enterprise-data-v2": {
      "type": "stdio",
      "command": "node",
      "args": ["src/server.js"],
      "cwd": "</path/to/your-mcp-server>",
      "approvedTools": ["query_database", "fetch_metrics"]
    }
  }
}

GitLabナレッジグラフサーバー

The GitLabナレッジグラフは、MCPを通じてコードインテリジェンスを提供します。すべてのツールまたは特定のツールを承認できます:

{
  "mcpServers": {
    "knowledge-graph": {
      "type": "sse",
      "url": "http://localhost:27495/mcp/sse",
      "approvedTools": true
    }
  }
}

または、特定のツールのみを承認します:

{
  "mcpServers": {
    "knowledge-graph": {
      "type": "sse",
      "url": "http://localhost:27495/mcp/sse",
      "approvedTools": ["list_projects", "search_codebase_definitions", "get_references", "get_definition"]
    }
  }
}

利用可能なツールに関する詳細については、ナレッジグラフMCPツールドキュメントを参照してください。

HTTPサーバー

{
  "mcpServers": {
    "local-http-server": {
      "type": "http",
      "url": "http://localhost:3000/mcp",
      "approvedTools": ["read_file", "write_file"]
    }
  }
}

MCPサーバーのステータスを表示

前提条件:

  • GitLab for VS Code拡張機能6.55.0以降。
  • ユーザーまたはワークスペース設定で、少なくとも1つのMCPサーバーが設定されていること。

構成されたMCPサーバーのステータスを表示するには:

  1. VS CodeまたはVSCodiumで、コマンドパレットを開きます:
    • macOSでは、Command+Shift+Pを押します。
    • WindowsまたはLinuxでは、Control+Shift+Pを押します。
  2. GitLab: Show MCP Dashboardと入力してEnterキーを押します。

MCPダッシュボードが新しいエディタタブで開きます。ダッシュボードを使用して以下を実行します:

  • お使いのMCPサーバーが正しく構成され、実行されていることを確認します。
  • GitLab Duo機能を使用する前に、接続の問題を特定します。
  • 各サーバーから利用可能なツールを表示します。
  • サーバーの設定の問題のトラブルシューティングを行う。

MCP設定ファイルを開く

MCP設定ファイルを開くには:

  1. VS CodeまたはVSCodiumで、コマンドパレットを開きます:
    • macOSでは、Command+Shift+Pを押します。
    • WindowsまたはLinuxでは、Control+Shift+Pを押します。
  2. 設定ファイルを開きます:
    • ユーザー設定の場合は、GitLab MCP: Open User Settings (JSON)と入力してEnterを押します。
    • ワークスペース設定の場合は、GitLab MCP: Open Workspace Settings (JSON)と入力してEnterを押します。

MCPサーバーで再認証する

MCP設定ファイルで認証の詳細を更新した後、関連するMCPサーバーで再認証する必要があります。

再認証をトリガーするには:

  • そのMCPサーバーからのデータを必要とするGitLab Duoに質問をします(たとえば、Atlassianの場合はWhat are the issues in my Jira project?)。認証ワークフローが自動的に開始されます。

MCPでGitLab Duo機能を使用する

GitLab Duo機能が質問に回答するために外部ツールを呼び出す場合、セッション全体で承認されていない限り、そのツールをレビューする必要があります:

  1. VS Codeを開きます。

  2. 左側のサイドバーで、GitLab Duo Agent Platform duo-agentic-chat )を選択します。

  3. ChatまたはFlowsタブを選択します。

  4. テキストボックスに、質問を入力するか、コードタスクを指定します。

  5. 質問またはコードタスクを送信します。

  6. 次の場合に、Tool Approval Required(ツール承認が必要)ダイアログが表示されます:

    • GitLab Duoがセッションで初めてそのツールを呼び出す場合。
    • セッション全体でそのツールを承認していない場合。
  7. ツールを承認または拒否します:

    • ツールを承認すると、機能がツールに接続して回答を生成します。

      • オプション。セッション全体でツールを承認するには、ApproveドロップダウンリストからApprove for Sessionを選択します。

        MCPサーバーが提供するツールのみをセッションで承認できます。ターミナルまたはCLIコマンドは承認できません。

    • チャットの場合、ツールを拒否すると、Provide Rejection Reasonダイアログが表示されます。拒否理由を入力し、Submit Rejectionを選択します。

      チャットは、あなたが提供する理由に基づいて、新しいアプローチを提案したり、イシューを作成したりするなどのアクションを実行する可能性があります。

トラブルシューティング

MCP認証キャッシュを削除します

GitLabはMCP認証を~/.mcp-auth/の下にローカルでキャッシュします。トラブルシューティング中に誤検出を防ぐために、キャッシュディレクトリを削除します:

rm -rf ~/.mcp-auth/

Error starting server filesystem: Error: spawn ... ENOENT

このエラーは、(nodeの代わりに/usr/bin/nodeのように)相対パスを使用してコマンドを指定し、そのコマンドがGitLab言語サーバーに渡されたPATH環境変数で見つからない場合に発生します。

PATHを解決するための改善策は、イシュー1345で追跡されています。

VS CodeでのMCPのトラブルシューティング

のトラブルシューティング情報については、GitLab for VS Code拡張機能のトラブルシューティングを参照してください。