MCP란?
왜 MCP를 써?
stdout
에 출력하거나 HTTP 엔드포인트를 제공할 수 있는 어떤 언어로든 MCP 서버를 작성해 — Python, JavaScript, Go 등.
동작 방식
Transport | 실행 환경 | 배포 | 사용자 | 입력 | 인증 |
---|---|---|---|---|---|
stdio | 로컬 | Cursor가 관리 | 단일 사용자 | 셸 명령 | 수동 |
SSE | 로컬/원격 | 서버로 배포 | 다중 사용자 | SSE 엔드포인트 URL | OAuth |
Streamable HTTP | 로컬/원격 | 서버로 배포 | 다중 사용자 | HTTP 엔드포인트 URL | OAuth |
프로토콜 지원
기능 | 지원 여부 | 설명 |
---|---|---|
Tools | 지원됨 | AI 모델이 실행하는 함수 |
Prompts | 지원됨 | 사용자용 템플릿 메시지와 워크플로우 |
Resources | 지원됨 | 읽고 참조할 수 있는 구조화된 데이터 소스 |
Roots | 지원됨 | 동작 범위를 정의하기 위한 URI 또는 파일 시스템 경계에 대한 서버 주도 조회 |
Elicitation | 지원됨 | 사용자에게 추가 정보를 요청하는 서버 주도 요청 |
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
파일을 수정하지 않고도 동적으로 설정할 수 있는 Extension 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 키 사용하기
- 코드 감사: 중요 통합의 경우 서버 소스 코드를 직접 검토하기
실전 예시
FAQ
MCP 서버는 왜 쓰는 거야?
MCP 서버는 왜 쓰는 거야?
MCP 서버는 Cursor를 Google Drive, Notion 같은 외부 도구와 서비스에 연결해서
문서와 요구사항을 네 코딩 워크플로우로 바로 가져와줘.
MCP 서버 문제는 어떻게 디버깅해?
MCP 서버 문제는 어떻게 디버깅해?
MCP 로그 보기: 1. Cursor에서 Output 패널 열기 (Ctrl+Shift+U) 2.
드롭다운에서 “MCP Logs” 선택 3. 연결 오류, 인증 문제, 서버 크래시 확인 로그에는
서버 초기화, 도구 호출, 에러 메시지가 나와.
MCP 서버를 일시적으로 비활성화할 수 있어?
MCP 서버를 일시적으로 비활성화할 수 있어?
가능해! 제거하지 않고 서버를 온/오프로 토글할 수 있어: 1. Settings 열기 (
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
키 권한은 필요한 최소한으로 제한해 - 민감한 시스템에 연결하기 전에 서버 코드를
리뷰해 - 격리된 환경에서 서버를 실행하는 걸 고려해