[AI] Model Context Protocol (MCP)

MeteorBang·2025년 4월 13일

AI

목록 보기
2/2

MCP란?

MCP 즉 Model Context Protocol은 특정 애플리케이션이 LLM에 Context를 제공하는 방법의 규약을 의미한다. 이를 통해 LLM은 외부 리소스에 쉽게 접근할 수 있어, 더 강력한 AI 어플리케이션 구축이 쉬워진다.
기존의 LLM은 한계가 있었다.

  1. 학습 기간의 문제
    기본적으로 LLM은 학습을 통해 본인의 문맥을 파악하는데, 보통 LLM의 학습 기간은 매우 긴 시간이 필요하다. 때문에 새로 갱신되는 최신 지식에 관련해서는 Knowledge Cutoff가 발생하기 마련이다.

  2. 특정 도메인의 지식 부족
    LLM은 학습이 되어있다면 해당 분야에 대한 지식에 관련해서 답변은 잘 하지만, 학습이 되어있지 않다면 Hallucination이 발생할 확률이 높다. 즉, 보편적인 도메인이 아니라면 LLM을 활용하기 어렵다는 뜻이다.

  3. 외부 리소스 접근 방식의 다양성
    위의 2 문제로 인하여 LLM에는 추가 정보를 적용하기 위한 방법이 있다. 검색 기반 생성인 RAG 방식, 로컬 지식 기반, 인터넷에 검색을 하게 하는 등의 여러 방법이 있다. 하지만 도메인 별로 겪고 있는 문제는 다양하고 해당 문제를 통일화 시키기에는 너무 많은 노력이 필요하다.

MCP 활용

위와 같이 MCP는 외부 도메인의 지식을 LLM으로 가져오는 데 발생하는 비용의 최소화를 도와줄 수 있다.
하지만 아직 MCP는 HTTP나 TCP/IP처럼 전 세계적으로 통용되는 단일 표준 형식이 확립된 상태는 아니다. 현재 MCP는 개념적인 프레임워크에 가깝고, 실제 구현은 사용하는 LLM, 플랫폼, 라이브러리 등에 따라 다르다.
하지만 공통적으로 나타나는 구조와 필수 요소가 존재한다. 통상적으로 JSON 형식을 많이 사용한다. 그 이유로 가독성, 구조화, 호환성이 있다.

MCP 형식 구성 요소

  1. 컨텍스트 컨테이너 : 전체 컨텍스트 정보를 담는 최상위 구조이다. 주로 JSON 배열이나 객체 형태를 띈다.
  2. 개별 컨텍스트 객체 : 컨테이너 내부에 포함되는 각각의 컨텍스트 정보를 나타내는 객체이다. 각 객체는 다음과 같은 키-값 쌍을 포함한다.
  • content : 실제 컨텍스트 내용이다. 문서의 일부, 검색 결과, 데이터베이스 레코드 등을 여기에 담는다.
  • metadata : 컨텍스트 내용에 대한 부가 정보이다. 이 메타데이터가 LLM이 컨텍스트를 더 잘 이해하고 활용하는 데 도움을 준다.
    • source : 정보의 출처
    • type : 컨텍스트의 유형
    • id : 각 컨텍스트 조각의 고유 식별자
    • relevance_score : 검색 시스템 등이 판단한 해당 컨텍스트 조각과 사용자 질문 간의 관련성 점수
    • timestamp : 정보가 생성되거나 검색된 시간
    • page_number, chunk_index : 원본 문서 내 위치 정보
    • 기타 필요한 정보들
[
  {
    "id": "doc_xyz_chunk_003",
    "source": "file://internal_docs/product_manual_v3.pdf",
    "type": "document_chunk",
    "page_number": 5,
    "relevance_score": 0.92,
    "content": "모델 B의 주요 기능은 향상된 배터리 효율성과 자동 업데이트입니다. 특히..."
  },
  {
    "id": "search_result_8a4f",
    "source": "https://news.example.com/article/12345",
    "type": "search_result",
    "timestamp": "2025-04-13T14:20:00Z",
    "relevance_score": 0.85,
    "content": "최근 발표된 보고서에 따르면, 모델 B는 경쟁 제품 대비 15% 더 긴 배터리 수명을 제공합니다."
  },
  {
    "id": "user_pref_001",
    "source": "user_database/profiles",
    "type": "user_preference",
    "content": "사용자는 기술 사양과 배터리 수명에 특히 관심이 많음."
  }
]

MCP 사용 이유

MCP를 사용하는 이유는 LLM의 성능과 신뢰도를 향상시키기 위함이다.

MCP 장점

  • 최신성 및 정확성 향상 : LLM의 학습 데이터에 없는 최신 정보나 특정 도메인의 정확한 데이터를 컨텍스트로 제공하여 더 정확하고 시의적절한 답변을 생성하도록 유도한다.
  • Hallucination 감소 : 관련성 높은 정확한 정보를 함께 제공함으로써 LLM이 잘못된 정보를 생성할 가능성을 줄여준다.
  • 개인화 및 특화된 응답 : 사용자 정보, 이전 대화 기록, 특정 문서 내용 등을 컨텍스트로 제공하여 사용자 맞춤형 응답이나 특정 작업에 특화된 답변 생성이 가능해진다.
  • 컨텍스트 관리 효율화 : 단순히 많은 정보를 나열하는 것이 아닌, 구조화된 형식으로 메타데이터와 함께 정보를 제공하여 LLM이 컨텍스트를 더 효과적으로 이해하고 활용하도록 돕는다.
  • 검색 증강 생성(RAG) 구현 : MCP는 RAG 시스템의 핵심 요소로 상요된다. 사용자의 질문과 관련된 정보를 외부 데이터 소스(DB, 문서 등)에서 검색한 후, 이를 MCP 형식에 맞춰 LLM에게 전달하여 답변의 근거를 마련해준다.
  • 표준화 : 다양한 시스템(검색 엔진, 데이터베이스, 애플리케이션 등)이 일관된 방식으로 LLM에게 컨텍스트를 전달할 수 있는 표준을 제공한다.
profile
소프트웨어 프로그래머

0개의 댓글