WIPIVERSE

신장암

Model Context Protocol (MCP)

MCP는 Model Context Protocol의 약자로, 2024년 11월 Anthropic이 발표한 오픈 표준 프로토콜입니다. AI 애플리케이션(특히 LLM)이 외부 데이터 소스, 도구, 시스템과 표준화된 방식으로 연결될 수 있게 해주는 인터페이스 규격입니다.


개요

MCP는 마치 AI를 위한 USB-C 포트와 같습니다. USB-C가 다양한 주변기기를 표준화된 포트 하나로 연결하듯, MCP는 다양한 데이터 소스와 도구를 LLM 애플리케이션에 표준화된 방식으로 연결합니다.

  • 개발자: Anthropic (David Soria Parra, Justin Spahr-Summers)
  • 발표일: 2024년 11월 25일
  • 라이선스: 오픈 소스
  • 공식 사이트: modelcontextprotocol.io
  • 2025년 12월: Linux Foundation 산하 Agentic AI Foundation(AAIF)으로 기부됨 (Anthropic, Block, OpenAI 공동 창립)

핵심 아키텍처

MCP는 클라이언트-호스트-서버 3계층 구조로 동작합니다:

구성 요소 설명
MCP Host AI 애플리케이션 (예: Claude Desktop, VS Code, IDE) - 여러 MCP 클라이언트를 생성/관리
MCP Client 호스트 내부에서 각 서버와 1:1 연결을 유지하는 프로토콜 클라이언트
MCP Server 특정 기능(도구, 리소스, 프롬프트)을 노출하는 경량 프로그램

통신 방식: JSON-RPC 2.0 기반, Stateful 연결, STDIO(로컬) 또는 Streamable HTTP(원격) 전송 지원


3대 핵심 프리미티브 (Primitives)

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

프리미티브 설명 비유
Tools (도구) LLM이 호출할 수 있는 실행 가능한 함수 (파일 작업, API 호출, DB 쿼리 등) POST/PUT 엔드포인트
Resources (리소스) LLM에 컨텍스트를 제공하는 읽기 전용 데이터 (파일 내용, DB 스키마, 문서 등) GET 엔드포인트
Prompts (프롬프트) 재사용 가능한 템플릿 (시스템 프롬프트, few-shot 예제 등) 워크플로 레시피

주요 특징

  1. 표준화된 통합: 기존의 M×N 통합 문제를 M+N으로 단순화
  2. 보안: 사용자 동의 기반, 데이터 프라이버시 보호, 도구 호출 승인 절차
  3. 확장성: 새로운 기능을 점진적으로 추가 가능
  4. 벤더 중립성: LLM 제공자와 무관하게 동작
  5. 실시간 업데이트: 알림(Notification) 시스템을 통한 동기화

SDK 지원 언어

  • Python (mcp 패키지, PyPI)
  • TypeScript/JavaScript (@modelcontextprotocol/sdk)
  • Java, Kotlin, C#, Go, PHP, Perl, Ruby, Rust, Swift

채택 현황

  • OpenAI (2025년 3월) - ChatGPT 데스크톱 앱에 MCP 지원 통합
  • Google DeepMind (2025년 4월) - MCP 채택 발표
  • Elastic - Elasticsearch MCP 서버 공식 제공
  • Cloudflare, Salesforce, Microsoft (Semantic Kernel, Azure OpenAI) 등 다수 기업 채택
  • VS Code, Cursor, Replit, Sourcegraph 등 개발 도구에서 폭넓게 사용

간단한 예제 (Python SDK)

from mcp.server import MCPServer

mcp = MCPServer("Demo")

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

@mcp.resource("greeting://{name}")
def greeting(name: str) -> str:
    """Greet someone by name."""
    return f"Hello, {name}!"

참고 자료

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기