앤트로픽이 주도하는 Model Context Protocol의 확산
AI 모델은 사고하고 추론하는 것을 넘어 인터넷 검색 및 브라우저 제어 등 다른 도구까지 활용할 수 있게 발전했습니다. 이 과정에서 AI 모델과 어플리케이션 간의 통신은 주로 API 단위로 이루어져 왔으며, 표준화된 규격 없이 각각 개발되고 통합되어 왔습니다.
클로드(Claude) 모델을 개발한 하는 앤트로픽(Anthropic)은 AI 모델과 어플리케이션 간의 통신 규격 표준화를 시도하고 있습니다. 앤트로픽이 제안한 MCP(Model Context Protocol)는 USB-C를 모티브로 한 통신 규격으로, 클로드에 다양한 도구를 통합하는 과정에서 꾸준히 활용되어 왔습니다. 또한 2024년 11월에는 이 규격을 누구나 활용할 수 있도록 오픈소스로 공개하기도 했습니다.
Model Context Protocol 공식 홈페이지
MCP는 호스트(Host), 클라이언트(Client), 서버(Server)로 구성된 구조이며, 각각 다음과 같은 역할을 수행합니다.
호스트: LLM 어플리케이션이 대표적이며, 연결을 초기화합니다.
클라이언트: 서버와 1:1 연결되어 통신하며, 호스트 내에 존재합니다.
서버: 컨텍스트, 툴, 프롬프트 등의 정보를 클라이언트에게 전달하는 역할을 담당합니다.
MCP는 JSON-RPC 2.0 구조를 기반으로 하며, 다음의 세 가지 형태의 메시지 프로토콜로 구성되어 있습니다.
Requests: 명령 실행을 위한 요청
Responses: 요청에 대한 응답
Notifications: 응답을 받지 않는 단방향 전송
MCP의 통신 과정은 서버와 클라이언트 간 초기화(Initialization) → 실행(Operation) → 종료(Shutdown) 순서로 진행됩니다.
MCP 규격으로 통신할 수 있는 데이터 유형은 리소스(Resources), 툴(Tools), 프롬프트(Prompts), 샘플링(Sampling), 루트(Roots), 전송(Transports)입니다.
리소스 통신은 서버에서 LLM(클라이언트)으로 단순 데이터를 전달하는 데 사용합니다. 연산이 거의 발생하지 않으며, 데이터 전달이 주된 목적인 규격입니다. 파일, 데이터베이스 레코드, API 응답, 실시간 시스템 데이터, 스크린샷, 이미지, 로그 파일 등이 리소스 통신 규격을 통해 전송됩니다.
툴 통신은 서버에서 연산을 처리한 뒤 그 결과를 LLM(클라이언트)으로 전달하는 유형입니다. 데이터 전달도 포함하지만, 주된 목적은 연산 처리인 규격입니다. 실시간 날씨, 데이터 분석, 웹 검색, 깃헙 이슈 생성 등이 툴 통신 규격을 통해 수행되어 결과가 전달됩니다.
샘플링 통신은 LLM(클라이언트)이 서버에게 데이터의 샘플을 요청하는 규격입니다. 예를 들어 이미지 샘플링, 텍스트 샘플링 등이 샘플링 통신 규격을 통해 전달됩니다.
루트 통신 규격은 URI의 기본 경로를 반환하는 역할을 합니다.
전송 통신 규격은 MCP가 통신하는 메시지 프로토콜인 `Requests`, `Responses`, `Notifications`를 처리합니다.
클로드 데스크탑(Claude Desktop)은 MCP를 지원하는 가장 대표적인 클라이언트입니다. 커서(Cursor), 윈드서프 에디터(Windsurf Editor) 등에서도 MCP 클라이언트를 지원합니다. MCP 클라이언트를 지원하는 어플리케이션의 목록은 아래 목록에서 확인할 수 있습니다.
Example Clients | Model Context Protocol
MCP 서버는 대부분 API를 MCP로 연결해 주는 방식인 '레퍼런스 구현(Reference Implementations)'입니다. 슬랙(Slack), 구글 드라이브(Google Drive), 옵시디언 마크다운 노트(Obsidian Markdown Notes), 도커(Docker), 쿠버네티스(Kubernetes) 및 PostgreSQL, SQLite, Git, GitHub, GitLab, Sentry 등을 지원합니다. MCP 서버를 지원하는 어플리케이션 목록은 아래에서 확인할 수 있습니다.
Example Servers | Model Context Protocol
servers | GitHub: modelcontextprotocol
AI 모델과 어플리케이션 간 통합에서 매번 별도의 API를 호출하는 일은 번거롭습니다. 물론 MCP 또한 래퍼(Wrapper) 수준의 규격이기 때문에 통신 규격의 완전한 표준화라고 표현하기는 어렵습니다. 그러나 MCP는 JSON 기반의 통신 방식을 채택하고, 리소스, 툴, 프롬프트 등과 같이 목적과 용도에 따라 구성 요소를 명확히 구분하고 있습니다. 이는 충분한 자유도를 확보하면서도 큰 틀에서의 규격화를 이루어 낸 것으로 볼 수 있습니다.
MCP가 공개된지 약 5개월이 지난 지금, 다양한 도구에서 MCP 지원이 확대되고 있습니다. 근래에는 블렌더(Blender)를 MCP 규격으로 조작하여 LLM을 이용한 모델링을 수행하기도 했습니다. 오픈AI는 자체 규격의 API를 계속 활용하고 있으며 현재까지는 별도의 표준화 움직임을 보이지 않고 있습니다. 그러나 앤트로픽은 AI 모델과 어플리케이션 간 통신 규격 표준화 화두를 던졌고, 이를 시장에 빠르게 확산시켜 나가고 있습니다. 이러한 추세로 볼 때, MCP는 사실상의 표준(De-facto Standard)으로 자리잡을 가능성이 높아 보입니다.
Model Context Protocol | GitHub - modelcontextprotocol
https://www.threads.net/@choi.openai/post/DHFQXYoPAoo | Threads