VS Code에서 MCP 서버 사용
Model Context Protocol (MCP)은 AI 모델이 통합 인터페이스를 통해 외부 도구 및 서비스를 사용할 수 있도록 하는 개방형 표준입니다. VS Code에서 MCP 서버는 파일 작업, 데이터베이스 또는 외부 API와 상호 작용과 같은 작업을 위한 도구를 제공합니다.
MCP 서버는 빌트인 도구 및 확장 기능에서 제공하는 도구와 함께 VS Code에서 도구를 사용하여 채팅을 확장하는 세 가지 방법 중 하나입니다. 도구 유형에 대해 자세히 알아보세요.
이 문서는 Visual Studio Code에서 MCP 서버를 설정하고 해당 기능을 사용하는 방법에 대한 안내입니다.
MCP는 어떻게 작동하나요?
MCP는 클라이언트-서버 아키텍처를 따릅니다.
- MCP 클라이언트(VS Code 등)는 MCP 서버에 연결하여 AI 모델을 대신하여 작업을 요청합니다.
- MCP 서버는 잘 정의된 인터페이스를 통해 특정 기능을 노출하는 하나 이상의 도구를 제공합니다.
- Model Context Protocol은 도구 검색, 호출 및 응답 처리를 포함하여 클라이언트와 서버 간의 통신을 위한 메시지 형식을 정의합니다.
예를 들어, 파일 시스템 MCP 서버는 파일 및 디렉토리를 읽거나, 쓰거나, 검색하는 도구를 제공할 수 있습니다. GitHub의 MCP 서버는 리포지토리를 나열하거나, 풀 리퀘스트를 만들거나, 이슈를 관리하는 도구를 제공합니다. MCP 서버는 로컬 머신에서 실행되거나 원격으로 호스팅될 수 있으며, VS Code는 두 구성 모두를 지원합니다.
이 상호 작용을 표준화함으로써 MCP는 각 AI 모델과 각 도구 간의 사용자 지정 통합의 필요성을 없앱니다. 이를 통해 새 MCP 서버를 작업 공간에 추가하는 것만으로 AI 어시스턴트의 기능을 확장할 수 있습니다. Model Context Protocol 사양에 대해 자세히 알아보세요.
VS Code에서 지원되는 MCP 기능
VS Code는 다음과 같은 MCP 기능을 지원합니다.
VS Code의 MCP 지원은 VS Code 1.102부터 일반적으로 사용할 수 있습니다.
전제 조건
- Visual Studio Code 최신 버전 설치
- Copilot 액세스
MCP 서버 추가
로컬 MCP 서버는 머신에서 임의의 코드를 실행할 수 있습니다. 신뢰할 수 있는 소스의 서버만 추가하고 시작하기 전에 게시자 및 서버 구성을 검토하세요. VS Code는 MCP 서버를 처음 시작할 때 MCP 서버를 신뢰하는지 확인하는 메시지를 표시합니다. VS Code에서 AI를 사용하는 보안 설명서를 읽고 영향을 이해하세요.
GitHub MCP 서버 레지스트리에서 MCP 서버 추가
VS Code의 확장 기능 보기에서 GitHub MCP 서버 레지스트리에서 직접 MCP 서버를 설치할 수 있습니다. MCP 서버를 사용자 프로필 또는 현재 작업 공간에 설치하도록 선택할 수 있습니다.
확장 기능 보기에서 MCP 서버를 설치하려면
-
chat.mcp.gallery.enabled 설정을 사용하여 MCP 서버 갤러리를 활성화합니다.
-
확장 기능 보기 열기 (⇧⌘X (Windows, Linux Ctrl+Shift+X))
-
MCP 서버 목록을 표시하려면 검색 필드에
@mcp를 입력하거나 명령 팔레트에서 MCP: Browse Servers 명령을 실행합니다.VS Code는 GitHub MCP 서버 레지스트리에서 MCP 서버 목록을 검색합니다.
-
MCP 서버를 설치하려면
-
사용자 프로필에서: 설치 선택
-
작업 공간에서: MCP 서버를 마우스 오른쪽 버튼으로 클릭하고 작업 공간에 설치를 선택합니다.
-
-
MCP 서버 세부 정보를 보려면 목록에서 MCP 서버를 선택합니다.
MCP 서버를 추가하는 다른 옵션
VS Code에서 MCP 서버를 추가하는 몇 가지 다른 옵션이 있습니다.
작업 공간 `mcp.json` 파일에 MCP 서버 추가
특정 프로젝트에 대한 MCP 서버를 구성하려면 작업 공간의 .vscode/mcp.json 파일에 서버 구성을 추가할 수 있습니다. 이를 통해 프로젝트 팀과 동일한 MCP 서버 구성을 공유할 수 있습니다.
입력 변수나 환경 파일을 사용하여 API 키 및 기타 자격 증명과 같은 민감한 정보를 하드코딩하지 않도록 하세요.
MCP 서버를 작업 공간에 추가하려면
-
작업 공간에
.vscode/mcp.json파일을 만듭니다. -
편집기에서 서버 추가 버튼을 선택하여 새 서버에 대한 템플릿을 추가합니다. VS Code는 MCP 서버 구성 파일에 대한 IntelliSense를 제공합니다.
다음 예는 GitHub 원격 MCP 서버를 구성하는 방법을 보여줍니다. VS Code의 MCP 구성 형식에 대해 자세히 알아보세요.
{ "servers": { "github-mcp": { "type": "http", "url": "https://api.githubcopilot.com/mcp" } } } -
또는 명령 팔레트에서 MCP: Add Server 명령을 실행하고 추가할 MCP 서버 유형을 선택한 다음 서버 정보를 제공합니다. 다음으로 Workspace를 선택하여 작업 공간의
.vscode/mcp.json파일에 서버를 추가합니다.
사용자 구성에 MCP 서버 추가
모든 작업 공간에 대해 MCP 서버를 구성하려면 사용자 프로필에 서버 구성을 추가할 수 있습니다. 이를 통해 여러 프로젝트에서 동일한 서버 구성을 재사용할 수 있습니다.
사용자 구성에 MCP 서버를 추가하려면
-
명령 팔레트에서 MCP: Add Server 명령을 실행하고 서버 정보를 제공한 다음 Global을 선택하여 프로필에 서버 구성을 추가합니다.
-
또는 명령 팔레트에서 MCP: Open User Configuration 명령을 실행하여 사용자 프로필에서
mcp.json파일을 엽니다. 그런 다음 파일을 수동으로 서버 구성을 추가할 수 있습니다.
여러 VS Code 프로필을 사용하는 경우 활성 프로필에 따라 다른 MCP 서버 구성 간에 전환할 수 있습니다. 예를 들어, Playwright MCP 서버는 웹 개발 프로필에 구성할 수 있지만 Python 개발 프로필에는 구성할 수 없습니다.
MCP 서버는 구성된 위치에서 실행됩니다. 원격에 연결되어 있고 서버를 원격 머신에서 실행하려는 경우 원격 설정(MCP: Open Remote User Configuration) 또는 작업 공간 설정에 정의해야 합니다. 사용자 설정에 정의된 MCP 서버는 항상 로컬에서 실행됩니다.
Dev 컨테이너에 MCP 서버 추가
MCP 서버는 devcontainer.json 파일을 통해 Dev 컨테이너에서 구성할 수 있습니다. 이를 통해 컨테이너화된 개발 환경의 일부로 MCP 서버 구성을 포함할 수 있습니다.
Dev 컨테이너에서 MCP 서버를 구성하려면 customizations.vscode.mcp 섹션에 서버 구성을 추가합니다.
{
"image": "mcr.microsoft.com/devcontainers/typescript-node:latest",
"customizations": {
"vscode": {
"mcp": {
"servers": {
"playwright": {
"command": "npx",
"args": ["-y", "@microsoft/mcp-server-playwright"]
}
}
}
}
}
}
Dev 컨테이너가 생성되면 VS Code는 MCP 서버 구성을 원격 mcp.json 파일에 자동으로 기록하여 컨테이너화된 개발 환경에서 사용할 수 있도록 합니다.
MCP 서버 자동 검색
VS Code는 Claude Desktop과 같은 다른 애플리케이션에서 MCP 서버 구성을 자동으로 감지하고 재사용할 수 있습니다.
chat.mcp.discovery.enabled 설정을 사용하여 자동 검색을 구성합니다. 해당 도구에서 MCP 서버 구성을 검색할 도구를 하나 이상 선택합니다.
명령줄에서 MCP 서버 설치
VS Code 명령줄 인터페이스를 사용하여 MCP 서버를 사용자 프로필 또는 작업 공간에 추가할 수도 있습니다.
사용자 프로필에 MCP 서버를 추가하려면 --add-mcp VS Code 명령줄 옵션을 사용하고 JSON 서버 구성을 {\"name\":\"server-name\",\"command\":...} 형식으로 제공합니다.
code --add-mcp "{\"name\":\"my-server\",\"command\": \"uvx\",\"args\": [\"mcp-server-fetch\"]}"
채팅에서 MCP 도구 사용
MCP 서버를 추가한 후에는 채팅에서 제공하는 도구를 사용할 수 있습니다. MCP 도구는 VS Code의 다른 도구와 마찬가지로 작동합니다. 에이전트를 사용할 때 자동으로 호출되거나 프롬프트에서 명시적으로 참조될 수 있습니다.
채팅에서 MCP 도구를 사용하려면
-
채팅 보기 열기 (⌃⌘I (Windows, Linux Ctrl+Alt+I)).
-
도구 선택기를 열어 에이전트가 사용할 수 있는 도구를 선택합니다. MCP 도구는 MCP 서버별로 그룹화됩니다.
팁사용자 지정 프롬프트 또는 사용자 지정 에이전트를 만들 때 사용할 수 있는 MCP 도구를 지정할 수도 있습니다.
-
에이전트를 사용할 때 프롬프트를 기반으로 필요한 경우 도구가 자동으로 호출됩니다.
예를 들어 GitHub MCP 서버를 설치한 다음 "내 GitHub 이슈 나열"이라고 묻습니다.

-
#뒤에 도구 이름을 입력하여 MCP 도구를 명시적으로 참조할 수도 있습니다. -
프롬프트가 표시될 때 도구 호출을 검토하고 승인합니다.

도구 승인 관리, 도구 선택기 사용 및 도구 세트 생성 방법을 포함하여 채팅에서 도구 사용에 대해 자세히 알아보세요.
캐시된 MCP 도구 지우기
VS Code가 MCP 서버를 처음 시작할 때 서버의 기능과 도구를 검색합니다. 그런 다음 채팅에서 이러한 도구를 사용할 수 있습니다. VS Code는 MCP 서버의 도구 목록을 캐시합니다. 캐시된 도구를 지우려면 명령 팔레트에서 MCP: Reset Cached Tools 명령을 사용합니다.
MCP 리소스 사용
MCP 서버는 채팅 프롬프트의 컨텍스트로 사용할 수 있는 리소스에 직접 액세스할 수 있습니다. 예를 들어 파일 시스템 MCP 서버를 사용하면 파일 및 디렉토리에 액세스할 수 있고, 데이터베이스 MCP 서버는 데이터베이스 테이블에 대한 액세스를 제공할 수 있습니다.
MCP 서버에서 리소스를 채팅 프롬프트에 추가하려면
-
채팅 보기에서 컨텍스트 추가 > MCP 리소스 선택
-
목록에서 리소스 유형을 선택하고 선택적 리소스 입력 매개변수를 제공합니다.

MCP 서버에서 사용 가능한 리소스 목록을 보려면 MCP: Browse Resources 명령을 사용하거나 MCP: List Servers > Browse Resources 명령을 사용하여 특정 서버의 리소스를 봅니다.
MCP 도구는 응답의 일부로 리소스를 반환할 수 있습니다. 저장을 선택하거나 리소스를 탐색기 보기로 끌어다 놓아 이러한 리소스를 보거나 작업 공간에 저장할 수 있습니다.
MCP 프롬프트 사용
MCP 서버는 일반적인 작업을 위한 미리 구성된 프롬프트를 제공할 수 있으며, 슬래시 명령으로 채팅에서 호출할 수 있습니다. 채팅에서 MCP 프롬프트를 호출하려면 채팅 입력 필드에 /를 입력하고 프롬프트 이름과 함께 mcp.servername.promptname 형식으로 지정합니다.
선택적으로 MCP 프롬프트에서 추가 입력 매개변수를 요청할 수 있습니다.

관련 도구를 도구 세트로 그룹화
더 많은 MCP 서버를 추가함에 따라 도구 목록이 길어질 수 있습니다. 관련 도구를 도구 세트로 그룹화하여 관리 및 참조를 쉽게 만들 수 있습니다.
도구 세트 생성 및 사용 방법에 대해 자세히 알아보세요.
설치된 MCP 서버 관리
설치된 MCP 서버에 대해 서버 시작 또는 중지, 서버 로그 보기, 서버 제거 등 다양한 작업을 수행할 수 있습니다.
MCP 서버에서 이러한 작업을 수행하려면 다음 옵션 중 하나를 사용합니다.
-
MCP SERVERS - INSTALLED 섹션에서 서버를 마우스 오른쪽 버튼으로 클릭하거나 톱니바퀴 아이콘 선택

-
mcp.json구성 파일을 열고 편집기 내에서 직접 작업을 액세스합니다(코드 렌즈).
MCP: Open User Configuration 또는 MCP: Open Workspace Folder Configuration 명령을 실행하여 MCP 서버 구성에 액세스합니다.
-
명령 팔레트에서 MCP: List Servers 명령을 실행하고 서버 선택

MCP 서버 자동 시작
MCP 서버를 추가하거나 구성을 변경할 때 VS Code는 서버가 제공하는 도구를 검색하기 위해 서버를 (재)시작해야 합니다.
구성 변경이 감지될 때 MCP 서버를 자동으로 다시 시작하도록 VS Code를 구성할 수 있습니다. chat.mcp.autostart 설정(실험적)을 사용합니다.
또는 채팅 보기에서 MCP 서버를 수동으로 다시 시작하거나 MCP 서버 목록에서 다시 시작 작업을 선택합니다.

MCP 서버 찾기
MCP는 비교적 새로운 표준이며 생태계는 빠르게 발전하고 있습니다. 더 많은 개발자가 MCP를 채택함에 따라 프로젝트와의 통합을 위해 더 많은 서버와 도구를 사용할 수 있게 될 것으로 예상됩니다.
GitHub MCP 서버 레지스트리는 훌륭한 시작점입니다. VS Code의 확장 기능 보기에서 직접 레지스트리에 액세스할 수 있습니다.
MCP의 공식 서버 리포지토리는 MCP의 다재다능함을 보여주는 공식 및 커뮤니티 기여 서버를 제공합니다. 파일 시스템 작업, 데이터베이스 상호 작용 및 웹 서비스와 같은 다양한 기능을 위한 서버를 탐색할 수 있습니다.
VS Code 확장 기능도 MCP 서버를 기여하고 확장 기능의 설치 프로세스의 일부로 구성할 수 있습니다. MCP 서버 지원을 제공하는 확장 기능은 Visual Studio Marketplace에서 확인하세요.
MCP 서버 신뢰
MCP 서버는 머신에서 임의의 코드를 실행할 수 있습니다. 신뢰할 수 있는 소스의 서버만 추가하고 시작하기 전에 게시자 및 서버 구성을 검토하세요. VS Code에서 AI를 사용하는 보안 설명서를 읽고 영향을 이해하세요.
작업 공간에 MCP 서버를 추가하거나 구성을 변경할 때 시작하기 전에 서버와 해당 기능에 대한 신뢰를 확인해야 합니다. VS Code는 서버를 처음 시작할 때 서버를 신뢰하는지 확인하는 대화 상자를 표시합니다. 별도 창에서 MCP 서버 구성을 검토하려면 대화 상자의 MCP 서버 링크를 선택합니다.

서버를 신뢰하지 않으면 서버가 시작되지 않으며, 채팅 요청은 해당 서버에서 제공하는 도구를 사용하지 않고 계속됩니다.
명령 팔레트에서 MCP: Reset Trust 명령을 실행하여 MCP 서버에 대한 신뢰를 재설정할 수 있습니다.
mcp.json 파일에서 직접 MCP 서버를 시작하는 경우 서버 구성에 대한 신뢰 확인 메시지가 표시되지 않습니다.
장치 간 MCP 서버 동기화
설정 동기화를 사용하면 MCP 서버 구성을 포함하여 장치 간에 설정 및 구성을 동기화할 수 있습니다. 이를 통해 일관된 개발 환경을 유지하고 모든 장치에서 동일한 MCP 서버에 액세스할 수 있습니다.
설정 동기화로 MCP 서버 동기화를 활성화하려면 명령 팔레트에서 Settings Sync: Configure 명령을 실행하고 동기화된 구성 목록에 MCP Servers가 포함되어 있는지 확인합니다.
구성 형식
MCP 서버는 서버 정의와 민감한 데이터에 대한 선택적 입력 변수의 두 가지 주요 섹션을 정의하는 JSON 파일(mcp.json)을 사용하여 구성됩니다.
MCP 서버는 다양한 전송 방법을 사용하여 연결할 수 있습니다. 서버가 통신하는 방식에 따라 적절한 구성을 선택합니다.
구성 구조
구성 파일에는 두 가지 주요 섹션이 있습니다.
"servers": {}- MCP 서버 목록과 해당 구성을 포함합니다."inputs": []- API 키와 같은 민감한 정보에 대한 선택적 플레이스홀더입니다.
서버 구성에서 미리 정의된 변수를 사용하여 작업 공간 폴더(${workspaceFolder})를 참조하는 등 할 수 있습니다.
표준 입출력(stdio) 서버
표준 입출력 스트림을 통해 통신하는 서버에 이 구성을 사용합니다. 이는 로컬에서 실행되는 MCP 서버의 가장 일반적인 유형입니다.
| 필드 | 필수 | 설명 | 예시 |
|---|---|---|---|
타입 |
예 | 서버 연결 유형 | "stdio" |
command |
예 | 서버 실행 파일을 시작하는 명령입니다. 시스템 경로에 있거나 전체 경로를 포함해야 합니다. | "npx", "node", "python", "docker" |
args |
아니요 | 명령에 전달되는 인수 배열 | ["server.py", "--port", "3000"] |
env |
아니요 | 서버에 대한 환경 변수 | {"API_KEY": "${input:api-key}"} |
envFile |
아니요 | 추가 변수를 로드할 환경 파일 경로 | "${workspaceFolder}/.env" |
stdio 서버와 함께 Docker를 사용할 때 분리 옵션(-d)을 사용하지 마세요. 서버는 VS Code와 통신하기 위해 포그라운드에서 실행되어야 합니다.
예제 로컬 서버 구성
이 예제는 npx를 사용하는 기본 로컬 MCP 서버의 최소 구성을 보여줍니다.
{
"servers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
}
}
}
HTTP 및 서버 전송 이벤트(SSE) 서버
HTTP를 통해 통신하는 서버에 이 구성을 사용합니다. VS Code는 먼저 HTTP 스트림 전송을 시도하고 HTTP가 지원되지 않으면 SSE로 대체됩니다.
| 필드 | 필수 | 설명 | 예시 |
|---|---|---|---|
타입 |
예 | 서버 연결 유형 | "http", "sse" |
url |
예 | 서버 URL | "https://:3000", "https://api.example.com/mcp" |
headers |
아니요 | 인증 또는 구성을 위한 HTTP 헤더 | {"Authorization": "Bearer ${input:api-token}"} |
네트워크를 통해 사용 가능한 서버 외에도 VS Code는 Unix 소켓 또는 Windows 명명된 파이프에서 HTTP 트래픽을 수신 대기하는 MCP 서버에 연결할 수 있습니다. unix:///path/to/server.sock 또는 Windows의 pipe:///pipe/named-pipe 형식으로 소켓 또는 파이프 경로를 지정합니다. unix:///tmp/server.sock#/mcp/subpath와 같은 URL 조각을 사용하여 하위 경로를 지정할 수 있습니다.
예제 원격 서버 구성
이 예제는 인증 없는 원격 MCP 서버의 최소 구성을 보여줍니다.
{
"servers": {
"context7": {
"type": "http",
"url": "https://mcp.context7.com/mcp"
}
}
}
민감한 데이터를 위한 입력 변수
입력 변수를 사용하면 구성 값에 대한 플레이스홀더를 정의하여 API 키 또는 암호와 같은 민감한 정보를 서버 구성에 직접 하드코딩할 필요가 없습니다.
${input:variable-id}를 사용하여 입력 변수를 참조하면 서버가 처음 시작될 때 VS Code에서 값을 묻습니다. 그런 다음 해당 값은 후속 사용을 위해 안전하게 저장됩니다. VS Code의 입력 변수에 대해 자세히 알아보세요.
입력 변수 속성
| 필드 | 필수 | 설명 | 예 |
|---|---|---|---|
타입 |
예 | 입력 프롬프트 유형 | "promptString" |
id |
예 | 서버 구성에서 참조할 고유 식별자 | "api-key", "database-url" |
설명 |
예 | 사용자 친화적인 프롬프트 텍스트 | "GitHub Personal Access Token" |
password |
아니요 | 입력한 텍스트 숨기기(기본값: false) | API 키 및 암호의 경우 true |
입력 변수를 사용한 예제 서버 구성
이 예제는 API 키가 필요한 로컬 서버를 구성합니다.
{
"inputs": [
{
"type": "promptString",
"id": "perplexity-key",
"description": "Perplexity API Key",
"password": true
}
],
"servers": {
"perplexity": {
"type": "stdio",
"command": "npx",
"args": ["-y", "server-perplexity-ask"],
"env": {
"PERPLEXITY_API_KEY": "${input:perplexity-key}"
}
}
}
}
서버 이름 규칙
MCP 서버를 정의할 때 서버 이름에 대해 다음 명명 규칙을 따르세요.
- 서버 이름에는 낙타 표기법을 사용합니다(예: "uiTesting" 또는 "githubIntegration").
- 공백이나 특수 문자를 피하세요.
- 충돌을 피하기 위해 각 서버에 고유한 이름을 사용합니다.
- 서버의 기능이나 브랜드를 반영하는 설명적인 이름을 사용합니다(예: "github" 또는 "database").
MCP 서버 문제 해결 및 디버깅
MCP 출력 로그
VS Code에서 MCP 서버에 문제가 발생하면 채팅 보기에서 오류 표시기가 표시됩니다.

채팅 보기에서 오류 알림을 선택한 다음 출력 보기 옵션을 선택하여 서버 로그를 봅니다. 또는 명령 팔레트에서 MCP: List Servers를 실행하고 서버를 선택한 다음 Show Output을 선택합니다.

MCP 서버 디버깅
MCP 서버 구성에 dev 키를 추가하여 MCP 서버에 대한 *개발 모드*를 활성화할 수 있습니다. 이는 두 가지 속성을 가진 객체입니다.
watch: MCP 서버를 다시 시작할 파일 변경을 감시하는 파일 glob 패턴입니다.debug: MCP 서버로 디버거를 설정할 수 있도록 합니다. 현재 VS Code는 Node.js 및 Python MCP 서버 디버깅을 지원합니다.
MCP Dev Guide의 MCP 개발 모드에 대해 자세히 알아보세요.
MCP 액세스 중앙 제어
조직은 GitHub 정책을 통해 MCP 서버에 대한 액세스를 중앙에서 관리할 수 있습니다. MCP 서버의 엔터프라이즈 관리에 대해 자세히 알아보세요.
자주 묻는 질문
사용할 MCP 도구를 제어할 수 있나요?
- 에이전트를 사용할 때 채팅 보기에서 도구 버튼을 선택하고 필요한 특정 도구를 켜거나 끕니다.
- 컨텍스트 추가 버튼을 사용하거나
#를 입력하여 프롬프트에 특정 도구를 추가합니다. - 더 고급 제어를 위해
.github/copilot-instructions.md를 사용하여 도구 사용을 미세 조정할 수 있습니다.
Docker 사용 시 MCP 서버가 시작되지 않음
명령 인수가 올바른지, 컨테이너가 분리 모드(-d 옵션)로 실행되지 않는지 확인합니다. 또한 MCP 서버 출력에서 오류 메시지를 확인할 수 있습니다( 문제 해결 참조).
"요청당 128개 이상의 도구를 가질 수 없습니다."라는 오류가 발생합니다.
모델 제약으로 인해 채팅 요청은 한 번에 최대 128개의 도구만 활성화할 수 있습니다. 128개 이상의 도구를 선택한 경우 채팅 보기의 도구 선택기에서 일부 도구나 전체 서버의 선택을 해제하여 도구 수를 줄이거나 가상 도구가 활성화되었는지 확인합니다( github.copilot.chat.virtualTools.threshold).
