WIPIVERSE

안철수

MCP(Model Context Protocol)는 AI 애플리케이션(특히 LLM 기반 앱)이 외부 데이터 소스와 도구에 표준화된 방식으로 연결될 수 있도록 해주는 개방형 프로토콜입니다.


🎯 핵심 개념

MCP는 "AI 애플리케이션을 위한 USB-C 포트" 로 비유됩니다. USB-C가 다양한 주변기기를 표준화된 방식으로 연결하듯, MCP는 AI 모델이 다양한 데이터 소스와 도구에 표준화된 방식으로 연결될 수 있게 합니다.

왜 필요한가?

LLM은 본질적으로 정적인 지식을 가지고 있습니다(학습 시점에 고정됨). 실시간 데이터 접근이나 외부 시스템과의 상호작용이 필요할 때, 기존에는 각 도구마다 커스텀 API 통합을 직접 개발해야 했습니다. 이는 M×N 문제를 야기합니다:

  • M개의 AI 애플리케이션 × N개의 데이터 소스 = M×N개의 개별 통합 필요
  • MCP는 이를 M+N으로 단순화 (M개의 클라이언트 + N개의 서버만 구축)

🏗️ 아키텍처

MCP는 클라이언트-서버 아키텍처를 따릅니다:

┌─────────────────────────────────┐
│         MCP Host (AI 앱)         │
│  ┌─────────┐  ┌─────────┐      │
│  │Client 1 │  │Client 2 │ ...   │
│  └────┬────┘  └────┬────┘      │
└───────┼────────────┼───────────┘
        │            │
   ┌────▼────┐  ┌────▼────┐
   │Server A │  │Server B │  ...
   │(로컬)   │  │(원격)   │
   └─────────┘  └─────────┘

주요 구성 요소

구성 요소 설명
MCP Host AI 애플리케이션 (예: Claude Desktop, VS Code, IDE 등)
MCP Client 호스트 내에서 각 서버와 1:1 연결을 유지하는 컴포넌트
MCP Server 특정 기능(도구, 리소스, 프롬프트)을 제공하는 프로그램

📦 3가지 핵심 프리미티브 (Primitives)

MCP 서버는 다음 세 가지 기능을 제공할 수 있습니다:

1. Tools (도구) — 실행 가능한 함수

  • LLM이 능동적으로 호출하여 외부 시스템에 액션을 수행
  • 예: 데이터베이스 쿼리, 파일 쓰기, API 호출, 이메일 전송
  • 프로토콜: tools/list (목록 조회), tools/call (실행)

2. Resources (리소스) — 읽기 전용 데이터

  • LLM에 컨텍스트를 제공하는 데이터 소스
  • 예: 파일 내용, 데이터베이스 스키마, API 문서
  • 고유 URI로 식별 (예: file:///path/to/doc.md)
  • 프로토콜: resources/list, resources/read

3. Prompts (프롬프트) — 재사용 가능한 템플릿

  • 특정 작업을 위한 사전 정의된 상호작용 템플릿
  • 예: "휴가 계획 세우기", "회의 요약하기"
  • 프로토콜: prompts/list, prompts/get

🔄 통신 방식

MCP는 JSON-RPC 2.0을 기반으로 합니다:

  • Request/Response: 클라이언트-서버 간 요청-응답
  • Notification: 응답이 필요 없는 단방향 메시지 (실시간 업데이트)

전송 방식 (Transport)

  1. Stdio: 로컬 프로세스 간 표준 입출력 통신 (고성능)
  2. Streamable HTTP: 원격 서버 통신 (HTTP POST + Server-Sent Events)

🔐 보안 원칙

  1. 사용자 동의 및 통제: 모든 데이터 접근과 도구 실행에 사용자 명시적 동의 필요
  2. 데이터 프라이버시: 사용자 데이터는 동의 없이 외부로 전송 금지
  3. 도구 안전성: 도구 호출은 임의 코드 실행으로 간주, 주의 필요
  4. LLM 샘플링 제어: 서버가 LLM에 요청하는 샘플링도 사용자 승인 필요

💡 실제 활용 예시

여행 계획 시나리오 (3개의 MCP 서버 협력):

  1. 사용자가 "바르셀로나 여행 계획" 프롬프트 실행
  2. 리소스를 통해 캘린더, 과거 여행 기록, 선호도 조회
  3. 도구를 통해 항공편 검색, 호텔 예약, 캘린더 일정 추가, 이메일 전송

🛠️ SDK 및 구현

공식 SDK가 제공됩니다:

  • Python SDK: pip install mcp (GitHub: modelcontextprotocol/python-sdk, ⭐ 23.5k)
  • TypeScript SDK: npm install @modelcontextprotocol/sdk

간단한 서버 예시 (Python):

from mcp.server import MCPServer

mcp = MCPServer("Demo")

@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers."""
    return a + b

📊 요약

항목 설명
정의 AI 애플리케이션과 외부 데이터/도구 간 표준화된 연결 프로토콜
만든 이 Anthropic (오픈소스)
기반 기술 JSON-RPC 2.0
라이선스 MIT
핵심 가치 표준화, 모듈성, 보안, 확장성
영감 Language Server Protocol (LSP)

MCP는 AI 에이전트 생태계의 상호운용성을 크게 향상시키며, 개발자가 각 도구마다 개별 통합 코드를 작성할 필요 없이 한 번의 구현으로 모든 MCP 호환 클라이언트와 연결될 수 있게 해줍니다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기