MCP란?
왜 MCP를 써야 할까?
stdout
에 출력하거나 HTTP 엔드포인트를 제공할 수만 있다면 어떤 언어로든 MCP 서버를 만들 수 있어 — Python, JavaScript, Go 등.
작동 방식
Transport | Execution environment | Deployment | Users | Input | Auth |
---|---|---|---|---|---|
stdio | Local | Cursor manages | Single user | Shell command | Manual |
SSE | Local/Remote | Deploy as server | Multiple users | URL to an SSE endpoint | OAuth |
Streamable HTTP | Local/Remote | Deploy as server | Multiple users | URL to an HTTP endpoint | OAuth |
프로토콜 지원
Feature | Support | Description |
---|---|---|
Tools | Supported | AI 모델이 실행할 함수 |
Prompts | Supported | 사용자용 템플릿 메시지와 워크플로 |
Resources | Supported | 읽고 참조할 수 있는 구조화된 데이터 소스 |
Roots | Supported | 작업을 수행할 URI 또는 파일 시스템 경계를 서버가 조회 |
Elicitation | Supported | 사용자에게 추가 정보를 요청하는 서버 주도 요청 |
MCP 서버 설치
원클릭 설치
mcp.json
사용하기
STDIO 서버 구성
mcp.json
에서 다음 필드를 설정해:
Field | Required | Description | Examples |
---|---|---|---|
type | Yes | 서버 연결 유형 | "stdio" |
command | Yes | 서버 실행 파일을 시작할 명령. 시스템 PATH에 있거나 전체 경로를 포함해야 해. | "npx" , "node" , "python" , "docker" |
args | No | 명령에 전달되는 인수 배열 | ["server.py", "--port", "3000"] |
env | No | 서버용 환경 변수 | {"API_KEY": "${input:api-key}"} |
envFile | No | 추가 변수를 로드할 환경 파일 경로 | ".env" , "${workspaceFolder}/.env" |
Extension API 사용하기
mcp.json
파일을 수정하지 않고도 동적으로 설정을 구성할 수 있는 확장 API를 제공해. 엔터프라이즈 환경이나 자동화된 설정 워크플로에 특히 유용해.
MCP Extension API Reference
vscode.cursor.mcp.registerServer()
로 코드에서 MCP 서버를 등록하는 방법 알아보기구성 위치
프로젝트 구성
프로젝트 전용 도구는 프로젝트 루트에
.cursor/mcp.json
만들어줘.전역 구성
어디서나 쓰는 도구는 홈 디렉터리에
~/.cursor/mcp.json
만들어줘.구성 보간
mcp.json
값에서 변수를 써. Cursor는 다음 필드의 변수를 해석해: command
, args
, env
, url
, headers
.
지원되는 문법:
${env:NAME}
환경 변수${userHome}
홈 폴더 경로${workspaceFolder}
프로젝트 루트(“.cursor/mcp.json”이 들어 있는 폴더)${workspaceFolderBasename}
프로젝트 루트 이름${pathSeparator}
및${/}
OS 경로 구분자
인증
채팅에서 MCP 사용하기
Available Tools
에 표시된 MCP 도구를 자동으로 써. 특정 도구를 이름으로 지목하거나, 필요한 걸 설명해 줘. 설정에서 도구를 켜거나 끌 수 있어.
도구 토글하기
도구 승인

자동 실행
도구 응답

컨텍스트로서의 이미지
보안 고려사항
- 소스 검증: 신뢰할 수 있는 개발자와 저장소에서 제공하는 MCP 서버만 설치하기
- 권한 검토: 서버가 어떤 데이터와 API에 접근하는지 확인하기
- API 키 제한: 최소 권한으로 제한된 API 키 사용하기
- 코드 검토: 중요한 통합의 경우 서버의 소스 코드를 리뷰하기
실제 사례
자주 묻는 질문
MCP 서버를 쓰는 이유가 뭐야?
MCP 서버를 쓰는 이유가 뭐야?
MCP 서버는 Cursor를 Google Drive, Notion 같은 외부 도구와 서비스에 연결해서 문서와 요구사항을 네 코딩 워크플로에 바로 가져와.
MCP 서버 문제를 어떻게 디버그해?
MCP 서버 문제를 어떻게 디버그해?
MCP 로그를 보려면: 1. Cursor에서 Output 패널 열기 (Ctrl+Shift+U) 2. 드롭다운에서 “MCP Logs” 선택 3. 연결 오류, 인증 문제, 서버 크래시 확인 로그에는 서버 초기화, 도구 호출, 오류 메시지가 표시돼.
MCP 서버를 잠깐 꺼둘 수 있어?
MCP 서버를 잠깐 꺼둘 수 있어?
물론! 제거하지 않고 서버를 켜거나 끌 수 있어: 1. 설정 열기 (Ctrl+Shift+J) 2. Features → Model Context Protocol로 이동 3. 원하는 서버 옆 토글을 클릭해서 활성화/비활성화 비활성화한 서버는 로드되지 않고 채팅에 나타나지 않아. 문제 해결이나 도구가 너무 많을 때 정리하는 데 유용해.
MCP 서버가 크래시 나거나 타임아웃되면 어떻게 돼?
MCP 서버가 크래시 나거나 타임아웃되면 어떻게 돼?
MCP 서버가 실패하면: - Cursor가 채팅에 오류 메시지를 보여줘 - 도구 호출은 실패로 표시돼 - 작업을 다시 시도하거나 로그에서 상세 정보를 확인할 수 있어 - 다른 MCP 서버는 정상적으로 계속 동작해 Cursor는 한 서버의 실패가 다른 서버에 영향 주지 않도록 격리해.
MCP 서버는 어떻게 업데이트해?
MCP 서버는 어떻게 업데이트해?
npm 기반 서버의 경우: 1. 설정에서 서버 제거 2. npm 캐시 비우기:
npm cache clean --force
3. 최신 버전을 받으려면 서버 다시 추가 커스텀 서버는 로컬 파일을 업데이트하고 Cursor를 재시작해.민감한 데이터로 MCP 서버를 써도 돼?
민감한 데이터로 MCP 서버를 써도 돼?
가능해, 대신 보안 모범 사례를 따라야 해: - 시크릿은 환경 변수로 관리하고 하드코딩하지 마 - 민감한 서버는
stdio
트랜스포트로 로컬에서 실행해 - API 키 권한은 필요한 최소로 제한해 - 민감한 시스템에 연결하기 전에 서버 코드를 검토해 - 격리된 환경에서 서버를 실행하는 것도 고려해