← 블로그로 돌아가기

MCP(Model Context Protocol)란? 초보자도 이해하는 완전 가이드

Cursor Settings의 MCP 각 줄은 Agent가 파일 읽기·Issue 검색을 하도록 독립 프로세스를 띄웁니다. 이 설정 체인에서 세 역할 분담, Function Calling과의 차이, filesystem 5분 연동까지 다룹니다.

1. 먼저 Cursor의 MCP 스위치부터

Cursor → Settings → MCP를 열면, 각 행의 설정은 Host에게 「어떤 로컬 프로세스를 시작하고, 어떤 기능을 Agent에 개방할지」를 알려줍니다. filesystem을 추가하면 Agent가 read_file을 직접 호출할 수 있습니다. GitHub Server를 추가하면 Issue를 검색할 수 있습니다——모델이 갑자기 똑똑해진 것이 아니라, 뒤에 도구 호출 경로가 하나 더 생긴 것입니다.

이 경로는 Model Context Protocol(MCP) 을 따릅니다. 정식 명칭은 나중에 외워도 됩니다. 먼저 역할 분담을 기억하세요:

역할 접하는 형태 하는 일
Host Cursor, Claude Desktop 채팅, 스케줄링, 도구 호출 여부 결정
Server 설정의 filesystem, github 실제로 디스크 읽기, API 호출, 쿼리 실행
Client Host 내장, UI에서는 보통 안 보임 MCP 프로토콜로 Host와 Server 연결

대부분 MCP를 설치하는 이유는 하나입니다: AI가 채팅 창 밖의 시스템에 접근하게 하기——프로젝트 파일, 티켓, 데이터베이스——복사·붙여넣기를 반복하지 않기 위해서입니다. 아래에서는 왜 이 일을 프로토콜로 할 가치가 있는지 먼저 설명하고, 이어서 아키텍처 세부를 나눕니다.


2. 왜 별도 프로토콜을 둘 가치가 있을까?

대규모 언어 모델은 기본적으로 대화창에 보낸 내용만 처리합니다. 실무에서는 종종 다음이 필요합니다:

  1. 수동 복사·붙여넣기가 아니라 프로젝트 코드 읽기
  2. 사내 문서나 티켓 시스템 조회
  3. git commit 실행, 테스트 실행, API 호출

과거에는 Function Calling(함수 호출)이 흔했습니다: 개발자가 코드에 함수를 하드코딩하고, 모델은 그것만 호출할 수 있습니다. 문제는——

과제 MCP 없을 때 MCP 있을 때
도구 발견 Host를 바꿀 때마다 통합 재작성 런타임에 서버 기능 목록 자동 발견
벤더 종속 OpenAI / Anthropic 전용 형식에 묶임 개방 프로토콜, 여러 Host가 동일 서버 재사용
권한 분리 API Key를 프롬프트에 쓰기 쉬움 서버 측에서 자격 증명 관리, 모델은 도구 인터페이스만 봄
조합 확장 새 도구마다 Host 코드 수정 설정 파일에 MCP 서버 주소 한 줄 추가

2025년 말 Anthropic이 MCP를 Agentic AI Foundation에 기부했고, OpenAI, Google, Microsoft 등 멤버가 참여합니다. 2026년 기준 MCP는 AI 도구 연결의 사실상 표준 중 하나——당시 REST가 Web API에 있던 것과 같습니다.


3. 세 가지 역할: 「누가 누구인지」 먼저 구분하기

MCP 아키텍처의 핵심 역할은 세 가지뿐입니다. 초보자가 가장 헷갈리는 것은 HostClient입니다. 나눠서 설명합니다.

3.1 Host(호스트 애플리케이션)

일상적으로 쓰는 소프트웨어: Cursor, Claude Desktop, VS Code + Copilot, 자체 Agent 플랫폼 등.

Host 담당: 채팅 UI 표시, 대규모 언어 모델 호출, 사용자 작업을 MCP에 넘길지 결정.

3.2 Client(MCP 클라이언트)

Host 내부에서 동작하는 커넥터로, Host 벤더가 구현합니다. 하나의 Host가 여러 MCP 서버에 동시 연결할 수 있습니다.

Client는 Host 안의 「MCP 드라이버」로 이해하면 됩니다——사용자에게는 보통 보이지 않습니다.

3.3 Server(MCP 서버)

실제로 일하는 쪽: 도구(Tools), 리소스(Resources), 프롬프트 템플릿(Prompts)을 노출합니다. 로컬 프로세스이거나 원격 서비스일 수 있습니다.

┌─────────────┐     ┌─────────────┐     ┌──────────────────┐
│    Host     │     │ MCP Client  │     │   MCP Server     │
│  (Cursor)   │────▶│  (내장)     │────▶│  (filesystem)    │
│  사용자 UI   │     │  프로토콜 변환 │     │  파일 읽기/목록   │
└─────────────┘     └─────────────┘     └──────────────────┘
                           │
                           ▼
                    ┌──────────────────┐
                    │   MCP Server     │
                    │  (github)        │
                    │  PR / Issue 조회  │
                    └──────────────────┘

역할 대조표

Host
여는 앱. UX와 모델 추론 담당
Client
Host 내장. MCP 프로토콜로 Server와 통신
Server
설정하는 도구 서비스. 구체적 작업 실행

4. MCP 서버가 노출할 수 있는 것: 세 가지 핵심 기능

4.1 Tools(도구)—— AI가 「손을 움직이게」

가장 많이 씁니다. 각 Tool에는 이름, 설명, 입력 매개변수 schema가 있습니다. 모델은 설명을 보고 스스로 호출 여부를 선택합니다.

대표 예:

  • read_file(path) — 파일 읽기
  • search_issues(query) — GitHub Issue 검색
  • run_sql(query) — 데이터베이스 조회

Tools는 부작용이 있는 작업(파일 쓰기, 요청 전송)이므로 권한 제어가 필요합니다.

4.2 Resources(리소스)—— AI에 「읽기 전용 접근」

「구독 가능한 데이터 소스」와 비슷합니다: 파일 내용, API 문서, 데이터베이스 schema. AI는 리소스를 list / read 할 수 있지만, 반드시 Tool 형태로 수정하는 것은 아닙니다.

로그 디렉터리, 지식 베이스 문서를 모델 컨텍스트에 노출하고 매번 전체를 붙여넣지 않을 때 적합합니다.

4.3 Prompts(프롬프트 템플릿)—— 재사용 가능한 워크플로

서버에 미리 둔 프롬프트 템플릿으로, 매개변수가 있습니다. 예: 「코드 리뷰 템플릿」「SQL 생성 템플릿」.

Host에서 한 번에 삽입해 사용자가 같은 프롬프트를 반복 작성하는 부담을 줄일 수 있습니다.

기능 비교

기능 부작용 여부 전형적 용도 초보자 우선순위
Tools 있음 명령 실행, 파일 쓰기, API 호출 ★★★★★
Resources 없음(읽기 전용) 문서, 설정, schema 노출 ★★★☆☆
Prompts 없음 리뷰/번역 흐름 표준화 ★★☆☆☆

5. MCP vs 플러그인 vs Function Calling vs REST

초보자가 자주 묻습니다: 「REST API를 바로 쓰면 안 되나요?」 됩니다. 다만 상황이 다릅니다.

관점 REST API Function Calling 브라우저 플러그인 / ChatGPT 플러그인 MCP
프로토콜 개방성 개방 벤더 전용 형식 플랫폼 전용 개방 표준
도구 발견 엔드포인트를 미리 알아야 함 컴파일 시 함수 목록 고정 스토어 설치 런타임 동적 발견
Host 간 재사용 Host마다 어댑터 필요 모델 SDK마다 다름 거의 크로스 플랫폼 불가 동일 Server를 여러 Host가 공유
로컬 도구 HTTP 서비스 직접 구축 코드에 내장 제한적 stdio / SSE 네이티브 지원
적합 대상 전통적 백엔드 통합 단일 앱 내 AI 내장 소비자용 채팅 제품 개발자 툴체인, Agent 생태계

기억 요령: REST는 「주소를 알면 호출」; Function Calling은 「모델에게 미리 이 몇 가지만 있다고 알림」; MCP는 「서버에 연결한 뒤, 그 자리에서 무엇을 할 수 있는지 물음」.

~~MCP를 REST 대체라고 보는 것~~ 은 정확하지 않습니다——많은 MCP Server가 내부에서 REST API를 감쌉니다. MCP는 AI 시대의 연결 계층이지 HTTP 대체가 아닙니다.


6. 완전한 호출은 어떻게 일어나나?

「프로젝트에서 TODO 주석을 모두 찾아줘」 예로, 단순화한 흐름은 다음과 같습니다:

  1. 사용자가 Host에 작업 입력(Cursor 채팅창)
  2. Host가 대화를 대규모 언어 모델에 보내고, 연결된 MCP 서버의 Tools 목록(이름 + 설명)을 첨부
  3. 모델이 search_files 도구 호출을 결정하고 매개변수 { "pattern": "TODO", "path": "/project" } 생성
  4. MCP Client가 요청을 filesystem MCP Server에 전달
  5. Server가 grep / 순회를 실행하고 결과를 JSON으로 반환
  6. 모델이 결과를 바탕으로 자연어 답변을 구성하거나 다른 도구를 계속 호출

전송 방식(Transport)

방식 설명 흔한 상황
stdio 로컬 프로세스, 표준 입출력 통신 Claude Desktop, Cursor 로컬 Server
SSE / HTTP 원격 HTTP 장연결 팀 공유 MCP 게이트웨이, 클라우드 배포

로컬 개발에서는 stdio가 가장 많습니다: 설정에 command + args를 쓰면 Host가 자식 프로세스를 시작하면 됩니다.


7. MCP는 어디서 쓸 수 있나?

2026년 주요 Host의 MCP 지원 현황:

Host MCP 지원 설정 방법
Cursor ✅ 내장 Settings → MCP → 서버 추가
Claude Desktop ✅ 네이티브 claude_desktop_config.json
VS Code(GitHub Copilot 등) ✅ 점진적 개선 확장 / 설정 패널
Windsurf / Zed ✅ 또는 일부 제품별 문서
자체 Agent ✅ SDK 연동 @modelcontextprotocol/sdk

에디터를 바꿀 필요 없습니다——기존 도구에 설정만 추가하면 기능을 확장할 수 있습니다.


8. 5분 만에 시작: Cursor에서 MCP 활성화

공식 filesystem 서버를 예로 합니다(지정 디렉터리 읽기 전용 접근). 경로는 버전마다 조금 다를 수 있으나 핵심 단계는 같습니다.

8.1 사전 조건

  • Node.js 18+ 설치
  • AI가 접근할 디렉터리 명확히(전용 워크스페이스 권장. 사용자 홈 전체는 열지 말 것)

8.2 설정 추가

Cursor → SettingsMCPAdd new global MCP server에서 다음과 비슷한 설정 입력:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/you/projects/my-app"
      ]
    }
  }
}

저장 후 Cursor 재시작 또는 MCP 연결 새로고침. 상태 표시줄 / MCP 패널에 filesystem 연결됨이 보이면 됩니다.

8.3 검증

Agent 모드에서 입력:

/Users/you/projects/my-app 루트 디렉터리 파일을 나열하고, package.json에 어떤 scripts가 있는지 알려줘.

모델이 직접 목록을 반환하면(수동 붙여넣기를 요구하지 않으면) MCP가 동작하는 것입니다.

자주 쓰는 단축키

  • 명령 팔레트 열기: + Shift + P(macOS)
  • Cursor 설정 열기: + ,
Claude Desktop 사용자: 설정 파일 경로

macOS에서 설정 파일 위치:

~/Library/Application Support/Claude/claude_desktop_config.json

구조는 Cursor와 비슷하며 동일하게 mcpServers 필드를 사용합니다. 변경 후 Claude Desktop을 완전히 종료한 뒤 다시 열어야 합니다.


커뮤니티에 이미 많은 Server가 있습니다. 용도별 분류:

범주 대표 Server 할 수 있는 일
파일 시스템 @modelcontextprotocol/server-filesystem 허용 디렉터리 내 파일 읽기·쓰기
코드 호스팅 GitHub MCP, GitLab MCP Issue 조회, PR 읽기, 저장소 관리
지식 베이스 Notion, Confluence MCP 페이지·데이터베이스 읽기·쓰기
데이터베이스 PostgreSQL, SQLite MCP 읽기 전용 또는 제한 SQL 실행
검색 Brave Search, Fetch MCP 웹 검색, 페이지 가져오기
자동화 Puppeteer / Playwright MCP 브라우저 자동화
Apple 생태계 Xcode / simctl 래퍼(커뮤니티) iOS 빌드, 시뮬레이터 제어

전체 목록은 MCP 공식 저장소Cursor MCP 디렉터리에서 확인할 수 있습니다. 설치 전 각 Server 권한 설명을 반드시 읽으세요.

선택 가이드

  1. 적게 시작: 읽기 전용 Server 1~2개부터, 동작이 기대와 맞는지 확인
  2. 운영과 실험 분리: 개인 노트북은 느슨한 설정, 팀 환경은 전용 머신 + 디렉터리 화이트리스트
  3. macOS 툴체인(Xcode, 시뮬레이터)이 필요하면 Server는 Mac에서 실행해야 함——클라우드 Mac mini로 24/7 호스팅 검토 가능

10. 보안 체크리스트: AI를 「슈퍼 관리자」로 만들지 말 것

MCP는 실행력을 모델에 넘깁니다. 프롬프트 인젝션(악의적 웹페이지/문서가 모델을 유도해 위험한 도구 호출)은 실제 위험입니다.

필수 네 가지

  1. 최소 권한: filesystem은 프로젝트 하위 디렉터리만, ~, /etc 금지
  2. 자격 증명 분리: API Token은 Server 환경 변수에, 채팅·설정 파일에 쓰고 Git에 커밋하지 말 것
  3. 독립 계정: 운영 MCP는 전용 시스템 사용자로 실행, sudo 없음
  4. 감사 로그: 매 Tool 호출과 매개변수 기록, 사후 추적 가능하게

위험 대조

설정 위험 수준 설명
읽기 전용 + 단일 프로젝트 디렉터리 낮음 일상 개발에 적합
쓰기 가능 filesystem + 경로 제한 없음 매우 높음 모델이 유도되어 파일 삭제 가능
Shell 실행 권한 Server 매우 높음 격리 VM / 전용 머신에서만 사용
원격 SSE + 인증 없음 매우 높음 Token / mTLS 필수

원칙: AI에 주는 권한은 신입 인턴에게 줄 권한을 넘지 말 것.


11. 다섯 가지 흔한 오해

  1. 「MCP는 대규모 언어 모델의 한 종류」 — 틀림. MCP는 프로토콜이며 GPT, Claude 등 모델과 무관.
  2. 「MCP를 깔면 모델이 강해진다」 — 틀림. MCP는 손과 눈(도구와 데이터)만 확장하며 추론 능력은 올리지 않음.
  3. 「MCP는 로컬만 가능」 — 틀림. stdio는 로컬에 적합, SSE/HTTP는 클라우드에 배포해 팀 공유 가능.
  4. 「MCP가 LangChain을 대체한다」 — 정확하지 않음. LangChain은 오케스트레이션 프레임워크, MCP는 도구 연결 프로토콜로 함께 쓰는 경우가 많음.
  5. 「모든 Server가 공식 유지보수」 — 틀림. 커뮤니티 Server 품질은 들쭉날쭉. 연결 전 소스와 권한 확인.

12. 기성을 쓸까, 직접 만들까?

상황 권장
Cursor에서 프로젝트 파일만 읽게 하고 싶음 공식 filesystem, 5분이면 됨
사내 API 연결 먼저 Fetch / 얇은 래퍼 Server 자체 구축
비공개 DB + 복잡한 비즈니스 로직 Python/TS SDK로 Server 직접 작성
팀 다수 공유, 감사 필요 클라우드 Mac / Linux에 SSE 게이트웨이 + 통합 인증

직접 Server 최소 Python 예(개념 데모):

# pip install mcp
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("hello")

@mcp.tool()
def greet(name: str) -> str:
    """向指定名字打招呼"""
    return f"Hello, {name}!"

if __name__ == "__main__":
    mcp.run()

실행 후 Host 설정에서 commandpython /path/to/server.py로 지정하면 됩니다.


13. 용어집

용어 영어 한 줄 설명
MCP Model Context Protocol AI 앱이 도구·데이터에 연결하는 개방 프로토콜
Host 쓰는 AI 소프트(Cursor, Claude Desktop)
Server MCP Server Tools/Resources를 노출하는 도구 서비스
Tool 모델이 호출할 수 있는 함수, 부작용이 흔함
Resource 읽기 전용 데이터 소스, 파일·문서 URI 등
stdio standard I/O 로컬 프로세스 통신 방식, 가장 흔함
SSE Server-Sent Events 원격 HTTP 스트리밍 통신 방식

14. 결론: 지금 배울 가치가 있나?

있다. 당장 Server를 직접 만들지 않아도 MCP를 이해하면 다음에 도움이 됩니다:

  • Cursor / Claude Desktop 확장 기능을 더 안전하게 설정
  • 팀과 「AI가 사내 시스템에 어떻게 연결되는지」 아키텍처 언어 맞추기
  • MCP를 쓸 때와 전통 API를 쓸 때를 판단

권장 경로:

  1. 오늘: Cursor에 filesystem 또는 GitHub Server 하나 추가
  2. 이번 주: 공식 Server 소스 하나 읽고 Tool 정의 방식 이해
  3. 필요할 때: MCP 서버 실전 배포를 읽고 Server를 클라우드에서 24/7 운영

정의만 쌓기보다, 먼저 filesystem 또는 GitHub Server를 설정하고 Agent가 도구를 실제로 호출하는 것을 직접 보는 편이 훨씬 유용합니다.

24/7 프라이빗 MCP 서버가 필요하신가요?

클라우드 Mac mini M4 전용 베어메탈, 상시 SSH——filesystem / Git / Xcode 툴체인에 적합

일 단위 과금, 도쿄·싱가포르·홍콩 노드——CI와 MCP를 한 대에서, TCO 최적화

추가 읽기

자주 묻는 질문

MCP와 REST API의 본질적 차이는?

REST는 고정 메뉴처럼 클라이언트가 모든 엔드포인트를 미리 알아야 합니다. MCP는 런타임에 서버에서 도구를 발견한 뒤 호출하므로 코드 변경 없이 Agent에 새 능력을 붙일 수 있습니다.

코딩 없이 MCP를 쓸 수 있나요?

네. Cursor나 Claude Desktop에 기성 Server(filesystem, GitHub, Notion)를 추가하고 자연어로 작업을 지시하면 됩니다. 자체 도구를 만들 때만 프로그래밍이 필요합니다.

MCP는 안전한가요? AI가 PC 파일을 지울 수 있나요?

활성화한 Server와 권한 범위에 달립니다. filesystem은 특정 폴더로 제한하고, 프로덕션에서는 전용 계정·최소 권한·감사 로그를 권장합니다. 본문 보안 체크리스트를 참고하세요.

MCP는 ChatGPT 플러그인과 같나요?

아닙니다. ChatGPT 플러그인은 OpenAI 전용입니다. MCP는 Agentic AI Foundation에 기부된 개방형 프로토콜로 Cursor, Claude Desktop, VS Code 등에서 쓰이며 자체 호스팅도 가능합니다.

MCP를 배우기 전에 AI Agent를 알아야 하나요?

아닙니다. 채팅과 Cursor 설정만 할 수 있으면 본문대로 filesystem Server를 연결할 수 있습니다. Agent 오케스트레이션은 그다음 단계입니다.

한정 특가 →