본문으로 건너뛰기
Kreath Archive
TechProjectsBooksAbout
TechProjectsBooksAbout

내비게이션

  • Tech
  • Projects
  • Books
  • About
  • Tags

카테고리

  • AI / ML
  • 웹 개발
  • 프로그래밍
  • 개발 도구

연결

  • GitHub
  • Email
  • RSS
© 2026 Kreath Archive. All rights reserved.Built with Next.js + MDX
홈TechProjectsBooksAbout
//
  1. 홈
  2. 테크
  3. 1장: MCP 소개와 핵심 개념
2026년 1월 21일·AI / ML·

1장: MCP 소개와 핵심 개념

Model Context Protocol이 무엇이고, 왜 AI 생태계의 표준으로 자리 잡았는지, 그리고 이 시리즈에서 다룰 내용의 전체 지도를 살펴봅니다.

17분395자10개 섹션
mcptypescriptpython
공유
mcp-guide1 / 10
12345678910
다음2장: 프로토콜 아키텍처 심층 분석

AI 통합의 근본적인 문제

대규모 언어 모델(Large Language Model, LLM)은 텍스트 생성과 추론에 뛰어난 능력을 보여주고 있습니다. 하지만 LLM만으로는 해결할 수 없는 근본적인 한계가 있습니다. 모델은 학습 데이터에 포함되지 않은 최신 정보를 모르고, 외부 시스템에 접근할 수 없으며, 실제 세계에서 행동을 취할 수 없습니다.

이 문제를 해결하기 위해 각 AI 애플리케이션은 독자적인 방식으로 외부 도구와의 연동을 구현해 왔습니다. 데이터베이스에 접근하려면 해당 데이터베이스 전용 코드를 작성하고, API를 호출하려면 API별 어댑터를 만들어야 했습니다. 이런 방식의 문제는 명확합니다.

  • M개의 AI 애플리케이션과 N개의 외부 서비스가 있다면 M x N개의 커스텀 통합이 필요합니다.
  • 각 통합은 서로 다른 인터페이스, 인증 방식, 에러 처리 로직을 가집니다.
  • 새로운 AI 도구가 나올 때마다 모든 통합을 처음부터 다시 구현해야 합니다.

이것은 USB 이전의 컴퓨터 주변기기 시장과 동일한 상황입니다. 프린터, 스캐너, 키보드가 각각 다른 포트와 드라이버를 필요로 했던 시대를 USB가 하나의 표준으로 통합한 것처럼, AI 생태계에도 범용 연결 표준이 필요했습니다.

MCP란 무엇인가

MCP(Model Context Protocol)는 Anthropic이 2024년 11월에 발표한 개방형 프로토콜로, AI 모델과 외부 데이터 소스 및 도구 사이의 연결을 표준화합니다. MCP를 사용하면 AI 애플리케이션이 데이터베이스, API, 파일 시스템, 클라우드 서비스 등 다양한 외부 시스템과 일관된 방식으로 상호작용할 수 있습니다.

MCP 이전에는 각 AI 애플리케이션이 각 서비스에 대한 개별 통합을 구현해야 했습니다. MCP 이후에는 클라이언트 측과 서버 측이 표준 프로토콜을 구현하기만 하면 어떤 조합이든 즉시 연결됩니다. M x N 문제가 M + N으로 줄어듭니다.

MCP의 핵심 아키텍처

MCP는 클라이언트-서버 아키텍처를 따릅니다. 세 가지 핵심 역할이 있습니다.

호스트(Host)

사용자가 직접 상호작용하는 AI 애플리케이션입니다. Claude Desktop, VS Code, IDE 플러그인 등이 호스트에 해당합니다. 호스트는 하나 이상의 MCP 클라이언트를 생성하고 관리합니다.

클라이언트(Client)

호스트 내부에 존재하며, 특정 MCP 서버와 1:1로 연결되는 프로토콜 세션입니다. 클라이언트는 사용자의 요청을 MCP 프로토콜 형식으로 변환하여 서버에 전달하고, 서버의 응답을 호스트에 다시 전달합니다.

서버(Server)

특정 외부 서비스(GitHub, PostgreSQL, Slack 등)와의 통신을 담당하는 프로세스입니다. 서버는 도구(Tools), 리소스(Resources), 프롬프트(Prompts)를 클라이언트에 노출합니다.

각 클라이언트와 서버 사이의 통신은 JSON-RPC 2.0 프로토콜을 기반으로 합니다. 이는 웹 개발자에게 이미 친숙한 요청-응답 패턴을 따르므로, 기존 지식을 활용하여 빠르게 이해할 수 있습니다.

서버가 제공하는 세 가지 프리미티브

MCP 서버는 세 가지 핵심 프리미티브(Primitive)를 통해 기능을 노출합니다.

도구(Tools)

서버가 제공하는 실행 가능한 함수입니다. AI 모델이 판단하여 호출하며, 외부 시스템에 대한 작업을 수행합니다. 예를 들어 GitHub MCP 서버는 create_issue, list_pull_requests, merge_pr 같은 도구를 제공합니다.

도구는 모델 제어(Model-controlled) 방식으로 동작합니다. 사용자가 "이 버그를 이슈로 등록해 줘"라고 요청하면, LLM이 적절한 도구를 선택하고 필요한 매개변수를 구성하여 호출합니다.

리소스(Resources)

서버가 제공하는 읽기 전용 데이터입니다. 파일 내용, 데이터베이스 레코드, API 응답 등이 리소스에 해당합니다. 리소스는 URI로 식별되며, 부작용(side effect) 없이 안전하게 읽을 수 있습니다.

리소스는 애플리케이션 제어(Application-controlled) 방식으로 동작합니다. 호스트 애플리케이션이 어떤 리소스를 LLM의 컨텍스트에 포함할지 결정합니다.

프롬프트(Prompts)

서버가 제공하는 재사용 가능한 템플릿입니다. 특정 작업을 수행하기 위한 구조화된 지시사항을 포함하며, 동적으로 매개변수를 받아 컨텍스트에 맞게 조정됩니다.

프롬프트는 사용자 제어(User-controlled) 방식으로 동작합니다. 사용자가 명시적으로 프롬프트를 선택하여 실행합니다.

MCP의 발전 과정

MCP는 발표 이후 빠르게 발전해 왔습니다. 주요 이정표를 살펴보겠습니다.

2024년 11월: Anthropic이 MCP를 오픈 소스로 공개합니다. 초기 버전은 stdio 전송과 HTTP+SSE 전송을 지원했습니다.

2025년 3월: Streamable HTTP 전송이 도입됩니다. 기존 SSE 전송의 한계(지속적 연결 필요, 로드 밸런싱 어려움)를 해결한 현대적인 원격 전송 방식입니다.

2025년 6월: Elicitation(유도) 프리미티브가 추가됩니다. 서버가 클라이언트를 통해 사용자에게 추가 정보를 요청할 수 있는 기능입니다.

2025년 11월: 1주년 기념 사양이 발표됩니다. 비동기 Tasks, Sampling with Tools, MCP Bundles(.mcpb) 등 프로덕션 환경을 위한 핵심 기능이 대거 추가됩니다.

2025년 12월: MCP가 Linux Foundation으로 이관되어 중립적 거버넌스 체제를 갖추게 됩니다. 이 시점에서 OpenAI, Google, Microsoft를 포함한 주요 AI 플랫폼이 모두 MCP를 채택합니다.

Info

MCP가 Linux Foundation으로 이관된 것은 특정 기업의 프로토콜이 아닌 산업 표준으로 자리 잡았음을 의미합니다. OpenAI의 Agents SDK, Google의 Gemini, Microsoft의 Copilot 등이 모두 MCP를 지원하며, 이는 도구 통합을 한 번만 구현하면 모든 AI 플랫폼에서 활용할 수 있다는 것을 뜻합니다.

MCP가 기존 접근 방식과 다른 점

MCP 이전에도 LLM에 도구를 연결하는 방법은 존재했습니다. OpenAI의 Function Calling, LangChain의 Tool 추상화 등이 대표적입니다. MCP는 이들과 근본적으로 다른 관점을 제시합니다.

비교 항목Function CallingLangChain ToolsMCP
범위단일 API 호출프레임워크 내부범용 프로토콜
표준화벤더 종속라이브러리 종속개방형 표준
전송HTTP만프로세스 내stdio, HTTP, SSE
생태계플랫폼별 분리Python 중심언어 독립적
프리미티브도구만도구 중심도구 + 리소스 + 프롬프트

Function Calling은 "이 LLM에서 이 함수를 호출하는 방법"을 정의합니다. MCP는 "어떤 LLM이든 어떤 외부 서비스든 연결할 수 있는 표준"을 정의합니다. 이 차이가 MCP가 생태계 전체의 표준이 된 이유입니다.

이 시리즈의 구성

이 시리즈에서는 MCP를 개념부터 실전 구현까지 체계적으로 다룹니다.

장주제핵심 내용
1장소개와 핵심 개념MCP의 정의, 아키텍처, 프리미티브
2장프로토콜 아키텍처 심층 분석JSON-RPC, 메시지 흐름, 생명주기
3장전송 계층stdio, Streamable HTTP, 전송 선택 기준
4장서버 프리미티브도구, 리소스, 프롬프트 상세 구현
5장TypeScript MCP 서버TypeScript SDK로 서버 구축
6장Python FastMCP 서버FastMCP 프레임워크로 서버 구축
7장MCP 클라이언트 구현클라이언트 측 프로토콜 구현
8장기존 시스템 연동데이터베이스, API, 레거시 시스템 통합
9장보안과 인증OAuth 2.1, 권한 관리, 보안 모범 사례
10장실전 프로젝트풀스택 MCP 시스템 구축

시작하기 전에

이 시리즈를 따라가기 위해 필요한 사전 지식과 환경을 안내합니다.

사전 지식

  • TypeScript 또는 Python 기본 문법
  • HTTP, REST API, JSON에 대한 기본 이해
  • LLM API 호출 경험 (Anthropic, OpenAI 등)
  • 터미널/명령줄 사용 경험

개발 환경 준비

TypeScript 환경
bash
# Node.js 18 이상
node --version
 
# 프로젝트 초기화
mkdir mcp-tutorial && cd mcp-tutorial
npm init -y
npm install @modelcontextprotocol/sdk zod
npm install -D typescript @types/node tsx
Python 환경
bash
# Python 3.11 이상
python --version
 
# 가상 환경 생성 및 활성화
python -m venv mcp-env
source mcp-env/bin/activate
 
# FastMCP 설치
pip install fastmcp
Tip

이 시리즈에서는 TypeScript와 Python 두 언어로 예제를 제공합니다. 5장은 TypeScript 중심, 6장은 Python 중심으로 구성되어 있으며, 나머지 장에서는 두 언어의 예제를 병행합니다. 자신에게 익숙한 언어를 선택하여 따라가면 됩니다.

MCP의 첫인상

MCP 서버가 실제로 어떤 모습인지 간단한 예제를 통해 살펴보겠습니다. 아래는 현재 시간을 반환하는 가장 단순한 MCP 서버입니다.

simple-server.ts
typescript
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
 
const server = new McpServer({
  name: "time-server",
  version: "1.0.0",
});
 
server.tool("get_current_time", "현재 시간을 반환합니다", {}, async () => {
  return {
    content: [
      {
        type: "text",
        text: new Date().toISOString(),
      },
    ],
  };
});
 
const transport = new StdioServerTransport();
await server.connect(transport);

이 서버를 Claude Desktop이나 다른 MCP 호스트에 연결하면, AI 모델이 "지금 몇 시야?"라는 질문에 get_current_time 도구를 호출하여 실시간 정보를 제공할 수 있습니다. 단 20줄의 코드로 AI 모델에 새로운 능력을 부여한 것입니다.

다음 장 미리보기

2장에서는 MCP의 프로토콜 아키텍처를 심층적으로 분석합니다. JSON-RPC 2.0 기반의 메시지 형식, 클라이언트와 서버 간의 연결 생명주기, 능력 협상(Capability Negotiation) 메커니즘을 상세히 다루겠습니다. 프로토콜 수준의 이해는 안정적인 MCP 서버를 구축하는 데 필수적인 기반입니다.

이 글이 도움이 되셨나요?

관련 주제 더 보기

#mcp#typescript#python

관련 글

AI / ML

2장: 프로토콜 아키텍처 심층 분석

MCP의 JSON-RPC 2.0 기반 메시지 형식, 연결 생명주기, 능력 협상 메커니즘을 상세히 분석합니다.

2026년 1월 23일·20분
AI / ML

3장: 전송 계층 - stdio와 Streamable HTTP

MCP의 두 가지 핵심 전송 방식인 stdio와 Streamable HTTP의 동작 원리, 장단점, 선택 기준을 상세히 다룹니다.

2026년 1월 25일·17분
AI / ML

4장: 서버 프리미티브 - 도구, 리소스, 프롬프트

MCP 서버가 제공하는 세 가지 핵심 프리미티브의 스키마 정의, 구현 패턴, 실전 활용 사례를 상세히 다룹니다.

2026년 1월 27일·24분
다음 글2장: 프로토콜 아키텍처 심층 분석

댓글

목차

약 17분 남음
  • AI 통합의 근본적인 문제
  • MCP란 무엇인가
  • MCP의 핵심 아키텍처
    • 호스트(Host)
    • 클라이언트(Client)
    • 서버(Server)
  • 서버가 제공하는 세 가지 프리미티브
    • 도구(Tools)
    • 리소스(Resources)
    • 프롬프트(Prompts)
  • MCP의 발전 과정
  • MCP가 기존 접근 방식과 다른 점
  • 이 시리즈의 구성
  • 시작하기 전에
    • 사전 지식
    • 개발 환경 준비
  • MCP의 첫인상
  • 다음 장 미리보기