LLM의 한계: 기존 LLM은 대화에는 능숙하지만, 실시간 정보 접근이나 외부 시스템과의 상호작용(행동) 능력이 부족하여 훈련 데이터에만 의존하는 한계가 있었습니다. 🗣️
도구(Tools)의 등장: LLM이 웹 검색, 파일 시스템 접근 등 외부 도구를 호출하여 실시간 정보를 얻거나 특정 작업을 수행할 수 있게 되면서 '행동' 능력이 향상되었습니다. 🛠️
도구 통합의 문제점: 각 LLM과 도구마다 개별적인 래퍼(wrapper)를 만들어야 했고, 이는 LLM과 도구의 수가 늘어날수록 관리 및 확장이 매우 어려워지는 문제를 야기했습니다. 🕸️
MCP의 역할: Model Context Protocol (MCP)은 LLM과 다양한 도구/서비스 간의 연결을 표준화하여, 복잡한 통합 문제를 해결하고 관리 및 확장을 용이하게 하는 개방형 프로토콜입니다. 🔌
USB-C 비유: MCP는 AI 애플리케이션을 위한 USB-C 포트와 같아서, LLM이 다양한 데이터 소스 및 도구에 표준화된 방식으로 연결될 수 있도록 합니다. ⚡
MCP 구성 요소: MCP는 LLM(Model), 입력 및 도구/리소스(Context), 그리고 클라이언트와 서버를 연결하는 표준화된 통신 방식(Protocol)으로 구성됩니다. 🧩
MCP 아키텍처: 각 서비스(예: GitHub, Slack)는 자체 MCP 서버를 제공하며, 이 서버는 해당 서비스의 특정 기능(예: 레포 생성, 메시지 전송)을 표준화된 MCP를 통해 노출합니다. MCP 클라이언트는 LLM과 연결되어 여러 MCP 서버와 통신합니다. 🏗️
작동 방식: 사용자 입력이 MCP 클라이언트를 통해 LLM으로 전달될 때, 클라이언트는 MCP 서버로부터 사용 가능한 도구 목록을 받아 LLM에 제공하고, LLM은 이를 바탕으로 특정 도구 사용을 결정하여 클라이언트를 통해 서버에 요청을 보냅니다. 🔄
초기 단계의 프로토콜: MCP는 2024년 말 Anthropic에 의해 제안된 비교적 새로운 프로토콜로, 아직 초기 단계에 있으며 권한 부여(authorization)와 같은 보안 문제로 인해 서버가 로컬에서 호스팅되는 경우가 많습니다. 👶