Gitsunmin

TIL

TIL
(=Today I Learned)

What is MCP

Model Context Protocol (MCP)는 애플리케이션이 대규모 언어 모델(LLM)에 컨텍스트를 제공하는 방식을 표준화한 오픈 프로토콜(Open Protocol)입니다. 이 프로토콜은 LLM 기반 도구들이 보다 정확하고 상황에 맞는 응답을 생성할 수 있도록, 모델에 유의미한 컨텍스트 정보를 효율적으로 제공하는 것을 목적으로 합니다.

MCP의 구성 요소

MCP는 여러 컴포넌트로 구성되며, 각 요소는 다음과 같은 역할을 수행합니다.

  1. MCP Host
  • 정의: MCP를 통해 데이터를 접근하려는 주요 애플리케이션입니다.
  • 예시:
    • Claude Desktop과 같은 LLM 애플리케이션
    • 개발용 IDE (예: VSCode, IntelliJ)
    • AI 기반 툴 또는 어시스턴트 앱

이들은 LLM이 특정 작업을 수행할 수 있도록 외부 데이터를 요청하고, 그 데이터를 MCP를 통해 받아들이는 중심적인 역할을 합니다.

  1. MCP Client
  • 정의: MCP 서버와 1:1 연결을 유지하는 프로토콜 클라이언트입니다.
  • MCP Client는 Host와 Server 간의 중계자 역할을 하며, 필요한 데이터를 요청하고 결과를 전달합니다.
  • Client는 다양한 서버에 동시에 연결될 수 있으며, 서버로부터 오는 응답을 통합하여 Host로 전달합니다.
  1. MCP Server
  • 정의: 특정 기능 또는 데이터를 MCP를 통해 외부에 제공하는 경량화된 프로그램입니다.
  • 기능:
    • 특정 파일 시스템에 접근해 파일을 읽어 제공
    • 로컬 데이터베이스에서 쿼리 실행
    • 외부 API를 호출하여 실시간 데이터를 수집

서버는 일반적으로 한 가지 유형의 데이터를 제공하도록 설계되며, MCP 프로토콜을 따릅니다.

  1. 로컬 데이터 소스 (Local Data Sources)
  • 사용자의 컴퓨터 내에 존재하는 데이터
    • 예: 문서 파일, 코드베이스, 로컬 SQLite DB, 설정 파일 등
  • MCP Server는 이러한 로컬 데이터를 안전하게 접근하고, 필요에 따라 정제하여 Host로 전달합니다.
  1. 원격 서비스 (Remote Services)
  • MCP Server가 외부 네트워크를 통해 접근 가능한 리소스입니다.
  • 예시:
    • 외부 REST API
    • 클라우드 저장소 (예: Google Drive, Dropbox)
    • 온라인 데이터베이스

이를 통해 모델은 로컬 환경을 넘어서 더 풍부하고 시의성 있는 정보를 확보할 수 있습니다.