LLM (Large Language Model)은 자연어를 이해하고 생성하는 데 특화된 AI 모델이다복잡한 언어 패턴과 문맥을 파악하고, 다양한 자연어 처리(NLP) 작업에서 뛰어난 성능을 보입니다. LLM은 책, 기사 등 방대한 학습 데이터를 기반으로 언어의 원리를 이해하며, 자연어의 복잡성을 기존 기계 학습 알고리즘보다 더 정확하게 이해할 수 있습니다.

MCP는 애플리케이션이 LLM에 컨텍스트를 제공하는 방식을 표준화하는 개방형 프로토콜이다. 여기서 컨텍스트란? LLM이 어떤 질문이나 요청에 대해 적절한 답변을 생성할 수 있도록 도와주는 배경 정보, 상황 정보, 이전 대화 내용, 관련 데이터 등을 포함할 수 있다. 한마디로 우리가 생성형 AI한테 물어보는 질문 같은 것들이다.

MCP는 AI 애플리케이션이 다양한 데이터 소스 및 도구에 연결하는 표준화된 방식을 제공함. C타입과 같은 역할을 한다.

image.png

일반 아키텍처

image.png

핵심 아키텍처

MCP는 LLM 애플리케이션과 통합 간의 원활한 통신을 지원하는 유연하고 확장 가능한 아키텍처를 기반으로 함.

MCP는 클라이언트-서버 아키텍처를 따른다.

image.png

핵심 구성 요소

프로토콜 계층

프로토콜 계층은 메시지 프레이킹, 요청/응답 연결, 고수준 통신 패턴을 처리한다.

class Protocol<Request, Notification, Result> {
    // Handle incoming requests
    setRequestHandler<T>(schema: T, handler: (request: T, extra: RequestHandlerExtra) => Promise<Result>): void

    // Handle incoming notifications
    setNotificationHandler<T>(schema: T, handler: (notification: T) => Promise<void>): void

    // Send requests and await responses
    request<T>(request: Request, schema: T, options?: RequestOptions): Promise<T>

    // Send one-way notifications
    notification(notification: Notification): Promise<void>
}