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で機能を使用するには、次の手順に従います:
- グループのMCPをオンにします。
- 機能を接続するMCPサーバーを構成します。
概要については、GitLab Duo Chat(エージェント型) - MCPツール呼び出しの承認を参照してください。
クリックデモについては、GitLab Duo Agent Platform - MCPクライアントを参照してください。
前提条件
- GitLab Duo Agent Platformの前提条件を満たしてください。
- Visual Studio Code(VS Code)またはVSCodiumの場合:
- GitLab for VS Code 6.35.6以降をインストールしてセットアップします。
- JetBrains IDEの場合:
- JetBrains IDE用GitLab Duoプラグイン 3.14.0以降をインストールしてセットアップします。
- お使いのコマンドラインの場合:
- GitLab Duo CLIの前提条件を満たしてください。
- GitLab Duo CLI 8.81.0以降をインストールして設定します。
拡張機能のサポートに関する詳細については、バージョンの互換性を参照してください。
外部のMCPツールを許可
GitLab Duoが設定されているトップレベルグループで、IDEが外部MCPツールにアクセスできるようにします。
GitLab.com
GitLab.comでローカル環境が外部MCPツールにアクセスできるようにするには:
- 上部のバーで、検索または移動先を選択して、グループを見つけます。
- 設定 > GitLab Duoを選択します。
- 設定の変更を選択します。
- 外部のMCPツールの下で、外部のMCPツールを許可チェックボックスを選択します。
- 変更を保存を選択します。
GitLab Self-Managed
GitLab Self-Managedでローカル環境が外部MCPツールにアクセスできるようにするには:
- 上部のバーで、検索または移動先を選択して、グループを見つけます。
- 設定 > 一般を選択します。
- GitLab Duoの機能を展開します。
- 外部のMCPツールの下で、外部のMCPツールを許可チェックボックスを選択します。
- 変更を保存を選択します。
MCPサーバーを設定する
MCPを言語サーバーと統合するには、ワークスペースの設定、ユーザー設定、またはその両方をセットアップします。GitLab言語サーバーは、設定ファイルを読み込み、マージします。
バージョンの互換性
| MCPサポート | GitLab for VS Code | GitLab Duoプラグイン JetBrains IDE用 | GitLab Duo CLI |
|---|---|---|---|
| 基本 (ワークスペースまたはユーザー設定なし) | 6.28.2以降 | 3.10.0以降 | |
| 完了 (ワークスペースおよびユーザー設定あり) | 6.35.6以降 | 3.14.0以降 | 8.81.0以降 |
ワークスペース設定を作成する
ワークスペースの設定は、このプロジェクトにのみ適用され、同じサーバーのユーザー設定をオーバーライドします。
ワークスペースの設定を行うには、次の手順に従います:
- プロジェクトのワークスペースで、
<workspace>/.gitlab/duo/mcp.jsonファイルを作成します。 - 設定形式を使用して、機能が接続するMCPサーバーに関する情報を追加します。
- ファイルを保存します。
- IDEまたはGitLab Duo CLIを再起動します。
ユーザー設定を作成する
ユーザー設定は、個人用ツールおよび一般的に使用されるサーバーに適しています。これらはすべてのワークスペースに適用されますが、同じサーバーのワークスペースの設定はユーザー設定をオーバーライドします。
ユーザー設定を行うには、次の手順に従います:
設定ファイルを作成します:
- IDEで、コマンドパレットを開きます:
- macOSの場合は、Command+Shift+Pキーを押します。
- WindowsまたはLinuxの場合は、Control+Shift+Pを押します。
- コマンド
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。
- IDEで、コマンドパレットを開きます:
設定形式を使用して、機能が接続するMCPサーバーに関する情報を追加します。
ファイルを保存します。
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.jsonでapprovedToolsフィールドを使用して承認されたツール。これらの承認はすべてのセッションで持続します。 - セッションベースの承認(一時的): 現在のワークフローセッションのランタイム中に承認されたツール。これらの承認は、IDEを閉じるか、ワークフローを終了するとクリアされます。
いずれかの条件が満たされた場合、ツールは承認されます。
MCPサーバー設定の例
次のコード例を参考にして、MCPサーバーの設定ファイルを作成してください。
詳細と例については、MCPサーバー例のドキュメントを参照してください。その他のサーバー例としては、Smithery.aiとAwesome 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サーバーのステータスを表示するには:
- VS CodeまたはVSCodiumで、コマンドパレットを開きます:
- macOSでは、Command+Shift+Pを押します。
- WindowsまたはLinuxでは、Control+Shift+Pを押します。
GitLab: Show MCP Dashboardと入力してEnterキーを押します。
MCPダッシュボードが新しいエディタタブで開きます。ダッシュボードを使用して以下を実行します:
- お使いのMCPサーバーが正しく構成され、実行されていることを確認します。
- GitLab Duo機能を使用する前に、接続の問題を特定します。
- 各サーバーから利用可能なツールを表示します。
- サーバーの設定の問題のトラブルシューティングを行う。
MCP設定ファイルを開く
MCP設定ファイルを開くには:
- VS CodeまたはVSCodiumで、コマンドパレットを開きます:
- macOSでは、Command+Shift+Pを押します。
- WindowsまたはLinuxでは、Control+Shift+Pを押します。
- 設定ファイルを開きます:
- ユーザー設定の場合は、
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機能が質問に回答するために外部ツールを呼び出す場合、セッション全体で承認されていない限り、そのツールをレビューする必要があります:
VS Codeを開きます。
左側のサイドバーで、GitLab Duo Agent Platform( )を選択します。
ChatまたはFlowsタブを選択します。
テキストボックスに、質問を入力するか、コードタスクを指定します。
質問またはコードタスクを送信します。
次の場合に、Tool Approval Required(ツール承認が必要)ダイアログが表示されます:
- GitLab Duoがセッションで初めてそのツールを呼び出す場合。
- セッション全体でそのツールを承認していない場合。
ツールを承認または拒否します:
ツールを承認すると、機能がツールに接続して回答を生成します。
オプション。セッション全体でツールを承認するには、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拡張機能のトラブルシューティングを参照してください。