GitLab MCP 클라이언트
GitLab v19.5Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
요약
Model Context Protocol(MCP)은 GitLab Duo 기능이 다양한 외부 데이터 소스 및 도구에 안전하게 연결되는 표준화된 방식을 제공합니다. 같은 MCP 설정 파일을 지원되는 모든 IDE와 GitLab Duo CLI에서 그대로 사용할 수 있습니다.
Model information
- GitLab 웹 UI의 GitLab Duo Agentic Chat을 제외하고 GitLab Duo with self-hosted models에서 사용할 수 있습니다.
히스토리
- GitLab 18.1에서
duo_workflow_mcp_support기능 플래그와 함께 도입. 기본적으로 비활성화. - GitLab 18.2에서 GitLab.com, GitLab Self-Managed, GitLab Dedicated에 활성화. 기능 플래그
duo_workflow_mcp_support제거. - GitLab 18.3에서 실험에서 베타로 변경.
- GitLab 18.8에서 일반 공개.
- GitLab 18.10에서 GitLab Credits를 사용하는 GitLab.com Free 티어에서 제공.
- GitLab 18.11 릴리스 기간에 GitLab Duo CLI 8.81.0에서 도입.
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 서버의 외부 도구에 연결할 수 있습니다.
이 기능들은 외부 컨텍스트와 정보를 활용해 더 나은 답변을 생성할 수 있습니다.
GitLab 웹 UI의 GitLab Duo Agentic Chat에서는 MCP에 자체 호스팅 모델을 사용할 수 없습니다. IDE, GitLab Duo CLI, 플로에서는 자체 호스팅 모델로 MCP를 사용할 수 있습니다.
MCP와 함께 기능을 사용하려면 다음을 수행합니다.
- 그룹에서 MCP를 켭니다.
- 기능이 연결할 MCP 서버를 설정합니다.
개요는 GitLab Duo Chat (agentic) - MCP tool call approval을 참고합니다.
클릭형 데모는 GitLab Duo Agent Platform - MCP client를 참고합니다.
사전 요구 사항#
- 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 도구에 접근할 수 있도록 허용합니다.
그룹과 프로젝트의 Owner는 MCP Registry로 특정 MCP 서버의 모든 도구를
차단할 수도 있습니다. 차단된 서버는 도구 승인 설정과 무관하게 개별 사용자가
차단을 해제할 수 없습니다.
자세한 내용은 MCP 서버 차단을 참고합니다.
GitLab Self-Managed에서는 커스텀 에이전트와 플로가 외부 MCP 도구를 사용하려면
관리자가 mcp_client 기능 플래그도
활성화해야 합니다.
GitLab.com의 경우#
GitLab.com에서 로컬 환경이 외부 MCP 도구에 접근하도록 허용하려면 다음을 수행합니다.
- 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다.
- 왼쪽 사이드바에서 Settings > GitLab Duo를 선택합니다.
- Change configuration을 선택합니다.
- External MCP tools에서 Allow external MCP tools 체크박스를 선택합니다.
- Save changes를 선택합니다.
GitLab Self-Managed의 경우#
GitLab Self-Managed에서 로컬 환경이 외부 MCP 도구에 접근하도록 허용하려면 다음을 수행합니다.
- 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다.
- 왼쪽 사이드바에서 Settings > General을 선택합니다.
- GitLab Duo features를 확장합니다.
- External MCP tools에서 Allow external MCP tools 체크박스를 선택합니다.
- Save changes를 선택합니다.
MCP 서버 설정#
MCP를 Language Server와 연동하려면 워크스페이스 설정이나 사용자 설정, 또는 둘 다를 구성합니다. GitLab Language Server가 설정 파일을 불러와 병합합니다.
워크스페이스 설정은 IDE의 워크스페이스 폴더 또는 GitLab Duo CLI를 사용할 때의 현재 작업 디렉터리에 적용됩니다. 이는 가상 개발 환경인 GitLab Workspaces와는 별개입니다.
버전 호환성#
| MCP 지원 | GitLab for VS Code | GitLab Duo plugin for JetBrains IDEs |
GitLab Duo CLI |
|---|---|---|---|
| 기본(워크스페이스·사용자 설정 없음) | 6.28.2 이상 | 3.10.0 이상 | |
| 전체(워크스페이스·사용자 설정 포함) | 6.35.6 이상 | 3.14.0 이상 | 8.81.0 이상 |
워크스페이스 설정 만들기#
워크스페이스 설정은 IDE의 워크스페이스 폴더 또는 현재 작업 디렉터리에 적용되며, 같은 서버에 대한 사용자 설정보다 우선합니다.
워크스페이스 설정을 구성하려면 다음을 수행합니다.
- IDE의 워크스페이스 폴더 또는 현재 작업 디렉터리에
.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입니다.
-
- 설정 형식에 따라 기능이 연결할 MCP 서버 정보를 추가합니다.
- 파일을 저장합니다.
- IDE 또는 GitLab Duo CLI를 재시작합니다.
설정 형식#
두 설정 파일 모두 같은 JSON 형식을 사용하며, 세부 정보는
mcpServers키에 넣습니다.{ "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" } } }Note다른 MCP 클라이언트의 경우 Atlassian 문서는 예시 설정 파일에서
mcp.servers를 사용합니다. GitLab에서는mcpServers를 사용합니다.도구 승인 설정#
기본적으로 세션마다 서버의 모든 MCP 도구를 직접 승인해야 합니다.
대신 설정 파일에서 MCP 도구를 미리 승인해 수동 승인 창을 건너뛸 수 있습니다.
그렇게 하려면 서버 설정에
approvedTools필드를 추가합니다."approvedTools": true- 이 서버의 현재 및 향후 도구를 모두 자동으로 승인합니다."approvedTools": ["tool1", "tool2"]- 지정한 도구만 승인합니다.
이 필드를 넣지 않으면 세션에서 모든 도구를 직접 승인해야 합니다(기본 동작).
Warning"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를 닫거나 워크플로를 끝내면 이 승인은 사라집니다.
둘 중 하나만 충족해도 도구는 승인된 것으로 간주됩니다.
샌드박스 설정#
로컬 샌드박스가 켜져 있으면
stdio전송을 사용하는 MCP 서버는 샌드박스에서 실행됩니다. 서버 하나의 샌드박스 규칙을 변경하려면 해당 서버의 구성에sandbox객체를 추가합니다. 자세한 내용은 MCP 서버의 샌드박스 구성을 참고합니다.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 Knowledge Graph 서버#
GitLab Knowledge Graph는 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"] } } }사용할 수 있는 도구에 관한 자세한 내용은 Knowledge Graph 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에서 도입.
사전 요구 사항:
- GitLab for VS Code 확장 6.55.0 이상이 필요합니다.
- 사용자 설정이나 워크스페이스 설정에 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 18.4에서 추가.
GitLab Duo 기능이 질문에 답하기 위해 외부 도구를 호출하면, 세션 전체에 대해 승인해 두지 않은 한 그 도구를 검토해야 합니다.
-
VS Code를 엽니다.
-
왼쪽 사이드바에서 GitLab Duo Agent Platform ([duo-agentic-chat])을 선택합니다.
-
Chat 또는 Flows 탭을 선택합니다.
-
텍스트 상자에 질문을 입력하거나 코드 작업을 지정합니다.
-
질문이나 코드 작업을 제출합니다.
-
다음 경우에 Tool Approval Required 대화 상자가 표시됩니다.
- 세션에서 GitLab Duo가 그 도구를 처음 호출하는 경우입니다.
- 세션 전체에 대해 그 도구를 승인하지 않은 경우입니다.
-
도구를 승인하거나 거부합니다.
-
도구를 승인하면 해당 기능이 도구에 연결해 답변을 생성합니다.
-
선택 사항입니다. 세션 전체에 대해 도구를 승인하려면 Approve 드롭다운 목록에서 Approve for Session을 선택합니다.
세션 단위 승인은 MCP 서버가 제공하는 도구에만 적용됩니다. 터미널이나 CLI 명령은 승인할 수 없습니다.
-
-
Chat에서 도구를 거부하면 Provide Rejection Reason 대화 상자가 표시됩니다. 거부 사유를 입력한 다음 Submit Rejection을 선택합니다.
Chat은 입력한 사유를 바탕으로 새로운 접근 방식을 제안하거나 이슈를 만드는 등의 조치를 취할 수 있습니다.
-
문제 해결#
MCP 인증 캐시 삭제#
GitLab은 MCP 인증 정보를 로컬
~/.mcp-auth/아래에 캐시합니다. 문제를 해결하는 동안 잘못된 결과가 나오지 않도록 캐시 디렉터리를 삭제합니다.rm -rf ~/.mcp-auth/Error starting server filesystem: Error: spawn ... ENOENT#이 오류는 명령을 상대 경로(
/usr/bin/node대신node등)로 지정했는데, GitLab Language Server에 전달된PATH환경 변수에서 그 명령을 찾을 수 없을 때 발생합니다.PATH해석 개선은 이슈 1345에서 추적하고 있습니다.VS Code 에서의 MCP 문제 해결#
문제 해결 정보는 GitLab for VS Code 확장 문제 해결을 참고합니다.