WIPIVERSE

카르나타카주

개요

MCP(Model Context Protocol)는 Anthropic이 2024년 11월 25일에 발표한 오픈 표준 프로토콜로, 대규모 언어 모델(LLM) 애플리케이션과 외부 데이터 소스 및 도구 간의 원활한 통합을 가능하게 한다. 흔히 "AI를 위한 USB-C 포트"에 비유되며, 다양한 AI 애플리케이션이 표준화된 방식으로 데이터와 도구에 접근할 수 있게 해준다.

2025년 12월, Anthropic은 MCP를 Agentic AI Foundation(AAIF)에 기부했으며, 이는 Linux Foundation 산하의 기금으로 Anthropic, Block, OpenAI가 공동 창립했다.


배경 및 필요성

MCP 이전에는 개발자가 각 데이터 소스나 도구마다 맞춤형 커넥터를 구축해야 했고, 이는 N×M 데이터 통합 문제로 불렸다. OpenAI의 2023년 "function-calling" API나 ChatGPT 플러그인 프레임워크 같은 이전 접근법도 유사한 문제를 해결했지만, 벤더별 커넥터가 필요했다. MCP는 Language Server Protocol(LSP)의 메시지 흐름 아이디어를 재사용하여 이 문제를 해결한다.


아키텍처

MCP는 클라이언트-서버 아키텍처를 따르며, 세 가지 주요 참여자로 구성된다:

1. MCP Host (호스트)

  • AI 애플리케이션(Claude Desktop, IDE, AI 도구 등)
  • 여러 MCP 클라이언트를 생성하고 관리
  • 보안 정책 및 사용자 동의 처리
  • 컨텍스트 집계 조정

2. MCP Client (클라이언트)

  • 호스트 내에서 각 MCP 서버와 1:1 연결을 유지하는 구성 요소
  • 프로토콜 협상 및 기능 교환 처리
  • 메시지 양방향 라우팅

3. MCP Server (서버)

  • 컨텍스트와 기능을 제공하는 프로그램
  • 로컬(stdio transport) 또는 원격(Streamable HTTP transport)으로 실행 가능
  • 각 서버는 특화된 책임을 가짐
MCP Host (AI Application)
    ├── MCP Client 1 ─── MCP Server A (로컬: 파일시스템)
    ├── MCP Client 2 ─── MCP Server B (로컬: 데이터베이스)
    └── MCP Client 3 ─── MCP Server C (원격: Sentry)

프로토콜 계층

MCP는 두 개의 계층으로 구성된다:

데이터 계층 (Data Layer)

  • JSON-RPC 2.0 기반 메시지 교환 프로토콜
  • 생명주기 관리: 연결 초기화, 기능 협상, 연결 종료
  • 서버 프리미티브: Tools, Resources, Prompts
  • 클라이언트 프리미티브: Sampling, Roots, Elicitation
  • 유틸리티: 알림(Notifications), 진행 추적, 취소, 로깅

전송 계층 (Transport Layer)

  • Stdio transport: 표준 입출력 스트림을 통한 로컬 프로세스 간 통신
  • Streamable HTTP transport: HTTP POST + Server-Sent Events(SSE)를 통한 원격 통신, OAuth 인증 지원

핵심 프리미티브 (Primitives)

서버 기능

프리미티브 설명 예시 제어 주체
Tools LLM이 능동적으로 호출할 수 있는 실행 가능 함수 항공편 검색, DB 쿼리, 파일 쓰기 모델
Resources 읽기 전용 데이터 소스 (컨텍스트 제공) 문서 조회, DB 스키마, API 문서 애플리케이션
Prompts 재사용 가능한 템플릿 (워크플로우 안내) 휴가 계획, 이메일 초안 작성 사용자

클라이언트 기능

  • Sampling: 서버가 클라이언트의 LLM에 완성(completion) 요청 가능
  • Roots: 서버가 URI나 파일시스템 경계를 탐색할 수 있도록 함
  • Elicitation: 서버가 사용자에게 추가 정보 요청 가능

동작 방식 예시

1. 초기화 (Lifecycle Management)

클라이언트가 initialize 요청을 보내 프로토콜 버전과 지원 기능을 협상한다.

2. 도구 발견 (Tool Discovery)

tools/list 요청으로 서버가 제공하는 도구 목록과 JSON Schema를 조회한다.

3. 도구 실행 (Tool Execution)

tools/call 요청으로 특정 도구를 인자와 함께 호출하고 결과를 받는다.

4. 실시간 업데이트 (Notifications)

서버가 notifications/tools/list_changed 같은 알림을 보내 변경사항을 실시간으로 전달한다.


보안 원칙

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

SDK 지원 언어

  • 공식 SDK: Python, TypeScript, Java, Kotlin, C#
  • 커뮤니티 SDK: Go, PHP, Perl, Ruby, Rust, Swift

채택 현황

  • OpenAI (2025년 3월): MCP 공식 채택, ChatGPT 데스크톱 앱에 통합
  • Google DeepMind (2025년 4월): MCP 채택 발표
  • Microsoft: Semantic Kernel, Azure OpenAI와 통합
  • Cloudflare: MCP 서버 배포 지원
  • Salesforce: Headless 360 플랫폼에서 MCP 활용 (4,500만+ 호출 처리)
  • IDE 도구: Replit, Sourcegraph 등에서 채택

관련 프로젝트

  • Agent2Agent (A2A): AI 에이전트 간 통신을 위한 오픈 프로토콜 (Google)
  • MCP Apps: MCP의 공식 확장으로, 대화형 UI(대시보드, 폼, 데이터 시각화)를 MCP 서버에서 호스트 앱(Claude, ChatGPT)으로 전달하는 표준화

참고 자료

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기