byteforce

CPN 한국어 자습서 · Introduction to Model Context Protocol

1 · Introduction

MCP 시작하기

Introducing MCP

이 모듈은 모델 컨텍스트 프로토콜(MCP)을 다룹니다. MCP는 지루한 코드를 잔뜩 쓰지 않고도 Claude에 컨텍스트와 도구를 제공하도록 설계된 통신 계층입니다. 작은 앱을 상상하며 클라이언트·서버, 그리고 도구·리소스·프롬프트가 어떻게 맞물리는지 살펴봅니다.

전체 내레이션영상 나레이션 한국어 번역 (전체)

Stephen Grider · Anthropic 기술 스태프

이 모듈에서는 모델 컨텍스트 프로토콜(MCP)에 집중합니다. MCP는 개발자인 여러분이 지루한 코드를 잔뜩 작성하지 않아도 Claude에 컨텍스트와 도구를 제공하도록 설계된 통신 계층입니다.

MCP를 처음 접하면 이런 다이어그램을 아주 자주 보게 됩니다. 거기엔 MCP의 두 가지 큰 요소, 즉 클라이언트와 서버가 그려져 있습니다. 그리고 서버 안에는 보통 여러 내부 구성 요소가 들어 있는데, 이름이 도구(tools)·리소스(resources)·프롬프트(prompts)입니다. 용어가 많으니, 작은 앱을 하나 만든다고 상상하면서 MCP가 거기에 어떻게 들어맞는지 보겠습니다.

예시 앱은 또 하나의 채팅 인터페이스입니다. 사용자가 자기 GitHub 데이터를 두고 Claude와 대화할 수 있게 합니다. 사용자가 “내 여러 저장소에 걸쳐 열려 있는 풀 리퀘스트가 뭐가 있어?”라고 물으면, Claude는 아마 도구를 써서 GitHub에 접근하고 사용자의 계정을 들여다보며 열린 PR이나 저장소 등을 확인할 것입니다. 핵심은, 우리가 이걸 도구 묶음으로 구현하리라는 점입니다.

그런데 GitHub에는 기능이 어마어마하게 많습니다. 저장소, 풀 리퀘스트, 이슈, 프로젝트, 그 밖에도 수많은 것이 있죠. 완전한 GitHub 챗봇을 만들려면 정말 엄청난 수의 도구를 작성해야 합니다. 그 앱을 만들려면 이 모든 스키마와 함수를 우리가 직접 작성·테스트·유지해야 합니다. 이건 개발자에게 큰 부담입니다.

개발자가 거대한 연동 묶음을 떠안고 유지하게 만드는 이 문제야말로 MCP가 풀려는 핵심 난점입니다. MCP는 도구를 정의하고 실행하는 부담을 여러분의 서버에서 ‘MCP 서버’라고 부르는 다른 것으로 옮깁니다. 이제 이 도구를 우리가 작성하지 않습니다. 대신 MCP 서버 안에서 작성되고 실행됩니다.

MCP 서버는 외부 서비스로 향하는 인터페이스라고 생각하면 됩니다. 예컨대 GitHub MCP 서버는 GitHub가 제공하는 데이터와 기능을 도구 묶음의 형태로 감싸 둡니다. 즉 MCP 서버는 어떤 외부 서비스의 기능을 노출하는 도구 묶음을 우리에게 제공하고, 덕분에 우리는 그 많은 도구 스키마와 함수를 직접 작성하지 않아도 됩니다.

이제 사람들이 MCP 서버를 처음 배울 때 자주 하는 질문 세 가지를 짚겠습니다. 첫째, 이 MCP 서버는 누가 만드나? 답은 누구나입니다. 다만 아주 흔하게는 서비스 제공자가 자기네 공식 구현을 내놓습니다. 예를 들어 AWS가 자체 공식 MCP 서버를 공개하고, 그 안에 다양한 도구를 담아 둘 수 있습니다.

둘째, MCP 서버를 쓰는 게 서비스의 API를 그냥 직접 호출하는 것과 뭐가 다른가? API를 직접 호출하려면 우리가 그 도구를 직접 작성해야 합니다. 결국 우리가 스키마와 함수 구현을 직접 짜는 셈이죠. MCP 서버를 더하는 것만으로 우리는 그 수고를, 그러니까 약간의 시간을 아끼게 됩니다.

셋째는 질문이라기보다 흔한 비판입니다. “MCP는 그냥 도구 사용 아니냐”는 말인데, 보통 MCP가 무엇인지 정확히 이해하지 못한 데서 나옵니다. MCP 서버와 도구 사용은 같은 것이 아니라 서로 보완하는 관계입니다. MCP의 핵심은 도구 함수와 스키마를 우리가 작성하지 않아도 된다는 점이고, 그 일은 다른 누군가가 해서 MCP 서버 안에 감싸 둔 것입니다. 어떤 면에서는 둘 다 도구 사용을 말하니 비슷해 보이지만, MCP 서버는 ‘실제 그 작업을 누가 하는가’를 말합니다.

이 장에서 배우는 것What you'll learn

약 5분
1

MCP = 지루한 코드 없이 Claude에 컨텍스트·도구를 주는 통신 계층

2

두 요소 — 클라이언트서버(서버 안에 도구·리소스·프롬프트)

3

예시: GitHub 데이터로 채팅 — “내 열린 PR?” 에 Claude가 도구로 GitHub 접근

4

GitHub 기능이 방대 → 완전한 챗봇이면 도구를 엄청 많이 작성·유지(부담)

5

MCP는 도구 정의·실행 부담을 우리 서버에서 MCP 서버로 이전

6

흔한 질문 3 — 누가 만드나 · API 직접 호출과 차이 · ‘도구 사용 아니냐’ 비판

먼저 짚고 갈 용어
MCP
모델 컨텍스트 프로토콜. Claude에 컨텍스트와 도구를 제공하기 위한 통신 계층(프로토콜).
클라이언트 / 서버
MCP의 두 큰 요소. 클라이언트는 통신을 맡고, 서버는 기능을 담는다.
MCP 서버
외부 서비스로 향하는 인터페이스. 그 서비스의 기능을 도구 묶음으로 감싸 노출한다(예: GitHub MCP 서버).
서버 프리미티브
서버가 담는 세 구성 요소 — 도구(tools)·리소스(resources)·프롬프트(prompts).

MCP란 무엇인가

A communication layer

모델 컨텍스트 프로토콜(MCP)은 개발자가 지루한 코드를 잔뜩 쓰지 않고도 Claude에 컨텍스트와 도구를 제공하도록 설계된 통신 계층입니다. MCP를 처음 보면 거의 항상 같은 다이어그램을 만나는데, 거기엔 두 큰 요소 — 클라이언트서버 — 가 있고, 서버 안에는 보통 도구·리소스·프롬프트가 들어 있습니다.

서버 프리미티브

서버가 담는 세 구성 요소를 프리미티브라 부릅니다 — tools(도구) · resources(리소스) · prompts(프롬프트). 이 섹션에서 셋을 하나씩 직접 다룹니다.

예시 — GitHub 챗봇과 도구의 부담

Why a tool burden appears

예시 앱은 사용자가 자기 GitHub 데이터로 Claude와 대화하는 채팅입니다. “내 여러 저장소에 걸쳐 열린 PR이 뭐가 있어?”라고 물으면, Claude는 도구를 써서 GitHub에 접근합니다. 그런데 GitHub에는 저장소·PR·이슈·프로젝트 등 기능이 어마어마해서, 완전한 챗봇이면 엄청난 수의 도구를 우리가 직접 작성·테스트·유지해야 합니다.

핵심 난점

개발자가 거대한 연동 묶음을 떠안고 유지하게 만드는 이 문제 — 바로 이것이 MCP가 풀려는 핵심 난점입니다.

MCP가 하는 일 — 부담 이전

Shifting the burden

MCP는 도구를 정의하고 실행하는 부담을 우리 서버에서 MCP 서버로 옮깁니다. 이제 그 도구를 우리가 작성하지 않고, MCP 서버 안에서 작성·실행됩니다. MCP 서버는 어떤 외부 서비스로 향하는 인터페이스 — 예컨대 GitHub MCP 서버는 GitHub의 기능을 도구 묶음으로 감싸 둡니다. 아래 탭을 눌러 부담의 위치가 어떻게 바뀌는지 보세요.

MCP 구조 · 탭으로 부담 이전 전/후 비교
CLIENT

클라이언트

우리 서버와 MCP 서버 사이의 통신 수단. (다음 장에서 자세히)

SERVER

우리 서버

우리가 GitHub용 도구 스키마와 함수를 전부 직접 작성·테스트·유지합니다.

toolsresourcesprompts
부담 — 우리 쪽저장소·PR·이슈·프로젝트… GitHub 기능이 방대해, 완전한 챗봇이면 엄청난 수의 도구를 우리가 작성·테스트·유지해야 합니다.

탭을 누르면 같은 그림에서 도구 정의·실행의 위치가 바뀝니다. MCP는 그 부담을 우리 서버에서 MCP 서버로 옮깁니다.

흔한 질문 셋

Three common questions

MCP 서버를 처음 배울 때 거의 항상 나오는 질문 세 가지입니다. 각 줄을 눌러 펼쳐 보세요.

누구나 만들 수 있습니다. 다만 아주 흔하게는 서비스 제공자가 공식 구현을 내놓습니다. 예를 들어 AWS가 자체 공식 MCP 서버를 공개하고, 그 안에 다양한 도구를 담아 둘 수 있습니다.
API를 직접 호출하려면 그 도구 스키마와 함수 구현을 우리가 직접 짜야 합니다. MCP 서버를 더하면 그 작업이 이미 되어 있어, 우리는 약간의 시간을 아끼게 됩니다.
둘은 같은 것이 아니라 서로 보완하는 관계입니다. 둘 다 도구 사용을 말하니 비슷해 보이지만, MCP의 핵심은 도구 함수·스키마를 우리가 작성하지 않아도 된다는 점 — 즉 ‘그 작업을 누가 하는가’입니다(우리가 아니라 MCP 서버).

정리 & 점검

Recap & check
핵심 정리
  • MCP = 지루한 코드 없이 Claude에 컨텍스트·도구를 주는 통신 계층.
  • 두 요소 — 클라이언트서버(서버 안에 도구·리소스·프롬프트).
  • MCP는 도구 정의·실행 부담을 우리 서버에서 MCP 서버로 옮긴다.
  • MCP 서버는 외부 서비스의 인터페이스 — 도구 사용과 상호 보완(누가 그 작업을 하는가).

QMCP가 풀려는 핵심 문제는?