GitLab MCP 클라이언트
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
Model Context Protocol(MCP)은 GitLab Duo 기능이 다양한 외부 데이터 소스 및 도구에 안전하게 연결하는 표준화된 방법을 제공합니다. 동일한 MCP 구성 파일이 지원되는 모든 IDE 및 GitLab Duo CLI에서 작동합니다.
모델 정보
- 자체 호스팅 모델을 사용하는 GitLab Duo에서는 사용할 수 없음
히스토리
- 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 서버의 외부 도구에 연결할 수 있습니다:
그런 다음 이 기능들은 외부 컨텍스트 및 정보에 액세스하여 더 강력한 답변을 생성할 수 있습니다.
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가 구성된 최상위 그룹에서 로컬 환경이 외부 MCP 도구에 액세스할 수 있도록 허용합니다.
GitLab.com에서#
GitLab.com에서 로컬 환경이 외부 MCP 도구에 액세스할 수 있도록 허용하려면:
- 상단 표시줄에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
- 왼쪽 사이드바에서 설정 > GitLab Duo를 선택합니다.
- 구성 변경을 선택합니다.
- 외부 MCP 도구 아래에서 외부 MCP 도구 허용 체크박스를 선택합니다.
- 변경 사항 저장을 선택합니다.
GitLab Self-Managed에서#
GitLab Self-Managed에서 로컬 환경이 외부 MCP 도구에 액세스할 수 있도록 허용하려면:
- 상단 표시줄에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
- 왼쪽 사이드바에서 설정 > 일반을 선택합니다.
- GitLab Duo 기능을 확장합니다.
- 외부 MCP 도구 아래에서 외부 MCP 도구 허용 체크박스를 선택합니다.
- 변경 사항 저장을 선택합니다.
MCP 서버 구성#
Language Server와 MCP를 통합하려면 작업 공간 구성, 사용자 구성 또는 둘 다 설정합니다. GitLab Language Server가 구성 파일을 로드하고 병합합니다.
버전 호환성#
| MCP 지원 | GitLab for VS Code | JetBrains IDE용 GitLab Duo 플러그인 | 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.jsonXDG_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.jsonXDG_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"
}
}
}
다른 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계층 승인 시스템을 사용합니다:
- 구성 기반 승인(영구):
approvedTools필드를 사용하여mcp.json에서 승인된 도구. 이 승인은 모든 세션에 걸쳐 유지됩니다. - 세션 기반 승인(임시): 현재 워크플로 세션에 대해 런타임 중에 승인된 도구. 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 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 서버로 재인증해야 합니다.
재인증을 트리거하려면:
- GitLab Duo에 해당 MCP 서버의 데이터가 필요한 질문을 합니다
(예: 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 탭을 선택합니다.
-
텍스트 상자에 질문을 입력하거나 코드 작업을 지정합니다.
-
질문 또는 코드 작업을 제출합니다.
-
다음과 같은 경우 도구 승인 필요 대화 상자가 나타납니다:
- GitLab Duo가 세션에서 처음으로 해당 도구를 호출하는 경우.
- 전체 세션에 대해 해당 도구를 승인하지 않은 경우.
-
도구를 승인하거나 거부합니다:
-
도구를 승인하면 기능이 도구에 연결하고 답변을 생성합니다.
-
선택 사항. 전체 세션에 대해 도구를 승인하려면 승인 드롭다운 목록에서 세션에 대해 승인을 선택합니다.
세션에 대해서는 MCP 서버에서 제공하는 도구만 승인할 수 있습니다. 터미널 또는 CLI 명령은 승인할 수 없습니다.
-
-
Chat의 경우 도구를 거부하면 거부 이유 제공 대화 상자가 나타납니다. 거부 이유를 입력한 다음 거부 제출을 선택합니다.
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 확장 문제 해결을 참조합니다.
