본문 바로가기
AI

MCP: 모델 컨텍스트 프로토콜(Model Context Protocol)

by 조병희 2025. 3. 16.

Introduction - Model Context Protocol

 

Introduction - Model Context Protocol

Understand how MCP connects clients, servers, and LLMs

modelcontextprotocol.io

 

모델 컨텍스트 프로토콜(Model Context Protocol, MCP)은 AI 애플리케이션이 대형 언어 모델(LLM)과 다양한 데이터 소스 및 도구를 표준화된 방식으로 연결할 수 있도록 설계된 개방형 프로토콜입니다. 이는 마치 USB-C 포트가 다양한 주변 기기와 액세서리를 표준화된 방식으로 연결하는 것과 유사합니다. 

 

MCP의 주요 특징은 다음과 같습니다:

  • 표준화된 통합: MCP는 다양한 데이터 소스와 도구에 대한 사전 구축된 통합을 제공하여, LLM이 직접적으로 이를 활용할 수 있게 합니다.
  • 유연한 LLM 제공자 전환: MCP를 통해 개발자는 LLM 제공자나 벤더를 유연하게 전환할 수 있습니다.
  • 데이터 보안: MCP는 인프라 내에서 데이터를 안전하게 보호하기 위한 모범 사례를 제공합니다.

MCP의 일반적인 아키텍처는 다음과 같이 구성됩니다:

  • MCP 호스트: Claude Desktop, IDE, AI 도구 등 MCP를 통해 데이터에 접근하려는 프로그램입니다. theverge.com
  • MCP 클라이언트: 서버와 1:1 연결을 유지하는 프로토콜 클라이언트입니다.
  • MCP 서버: 표준화된 MCP를 통해 특정 기능을 노출하는 경량 프로그램입니다.
  • 로컬 데이터 소스: 컴퓨터의 파일, 데이터베이스, 서비스 등 MCP 서버가 안전하게 접근할 수 있는 로컬 데이터 소스입니다.
  • 원격 서비스: 인터넷을 통해 접근 가능한 외부 시스템(API 등)으로, MCP 서버가 연결할 수 있습니다.

MCP는 2024년 11월에 Anthropic에 의해 도입되었으며, Replit, Codeium, Souregraph와 같은 기업들이 이미 MCP를 활용하여 AI 에이전트를 구축하고 있습니다.

Core architecture - Model Context Protocol

MCP의 핵심 구성 요소:

  1. 프로토콜 계층:
    • 메시지의 구조화, 요청과 응답의 연결, 고수준 통신 패턴을 관리합니다. 주요 클래스는 Protocol, Client, Server 등이 있습니다.
  2. 전송 계층:
    • 클라이언트와 서버 간의 실제 통신을 처리하며, MCP는 여러 전송 방식을 지원합니다:
      • Stdio 전송: 표준 입력/출력을 사용하여 로컬 프로세스 간 통신에 적합합니다.
      • HTTP 및 SSE(Server-Sent Events) 전송: 서버에서 클라이언트로의 메시지 전송에 SSE를 사용하고, 클라이언트에서 서버로의 메시지 전송에는 HTTP POST를 사용합니다.
    모든 전송 방식은 JSON-RPC 2.0을 사용하여 메시지를 교환합니다.
  3. 메시지 유형:
    • 요청(Request): 응답을 기대하는 메시지입니다.
    • 결과(Result): 요청에 대한 성공적인 응답입니다.
    • 오류(Error): 요청 처리 중 발생한 문제를 나타냅니다.
    • 알림(Notification): 응답을 필요로 하지 않는 일방향 메시지입니다.

 

연결 수명 주기:

  1. 초기화:
    • 클라이언트가 프로토콜 버전과 기능을 포함한 initialize 요청을 보냅니다.
    • 서버는 자신의 프로토콜 버전과 기능으로 응답합니다.
    • 클라이언트는 확인을 위해 initialized 알림을 보냅니다.
    • 이후 정상적인 메시지 교환이 시작됩니다.
  2. 메시지 교환:
    • 요청-응답 패턴: 클라이언트나 서버가 요청을 보내면 상대방이 응답합니다.
    • 알림: 어느 쪽이든 일방향 메시지를 보낼 수 있습니다.
  3. 종료:
    • close()를 통한 정상적인 종료
    • 전송 연결의 끊김
    • 오류 상황 발생

오류 처리:

MCP는 표준 오류 코드를 정의하며, SDK나 애플리케이션은 자체적인 오류 코드를 정의할 수 있습니다. 오류는 요청에 대한 오류 응답, 전송의 오류 이벤트, 프로토콜 수준의 오류 핸들러를 통해 전달됩니다.

 

댓글