List
지난 글에서 LLM을 잘 활용하기 위한 다양한 방법들에 대해서 이야기하였습니다. 최근 AI 모델은 점점 똑똑해지고 있지만, 여전히 하나의 큰 한계가 있었습니다. 바로 "LLM 모델은 자신이 훈련된 지식 외의 새로운 데이터에 접근하기 어렵다"는 점입니다.
이러한 문제를 해결하기 위해서 다양한 방법이 나왔지만, 이러한 방법들이 너무 다양해지다보니 사용하는 본인의 요구사항에 맞는 형식으로 개발되어, 본인 외에는 그런 것들을 활용하기 힘들어졌습니다.
이 문제를 해결하기 위해 등장한 것이 바로 MCP(Model Context Protocol)입니다. 오늘은 MCP가 무엇이고, 왜 중요한지, 그리고 MCP를 구성하는 핵심 요소들까지 함께 알아보겠습니다.
MCP란 무엇인가?
MCP(Model Context Protocol)는 AI 모델이 외부 데이터 소스나 도구와 안전하고 표준화된 방법으로 연결할 수 있게 해주는 개방형 프로토콜입니다. 기존에는 AI 모델이 새로운 데이터 소스(예: 데이터베이스, API, 파일 시스템 등)와 연결하려면 각각 별도로 커스텀 통합을 만들어야 했습니다.
하지만 MCP는 이러한 작업을 표준화하여, 마치 AI 세계의 USB-C 포트처럼 어디에나 꽂아 쓸 수 있게 해줍니다. 덕분에 개발자들은 데이터 통합에 드는 시간을 대폭 줄이고, 더 많은 데이터나 도구를 AI 모델에 쉽게 연결할 수 있게 되었습니다.
간단히 요약하면, MCP는 AI 모델을 고립된 상태에서 꺼내 현실 세계의 데이터와 도구에 자유롭게 접근할 수 있도록 도와주는 역할을 합니다.
MCP의 주요 구성 요소
MCP는 크게 5가지 핵심 요소로 구성되어 있습니다.
1. 호스트(Host)
•
AI 모델을 운용하는 주체 애플리케이션입니다.
•
예시: Claude Desktop, 코드 IDE의 AI 어시스턴트, 채팅 애플리케이션 등
•
호스트는 사용자로부터 입력을 받아 모델에게 전달하고, 모델의 응답을 다시 사용자에게 보여줍니다.
•
내부에 MCP 클라이언트를 포함해 여러 MCP 서버와 연결을 관리합니다.
2. 클라이언트(Client)
•
호스트 내부에서 개별 MCP 서버와 1:1로 통신하는 컴포넌트입니다.
•
여러 데이터 소스를 이용하고 싶다면 MCP 클라이언트를 각각 별도로 둬야 합니다.
•
MCP 프로토콜을 구현하여 서버에 요청을 보내고 응답을 받아 모델에 전달합니다.
3. 서버(Server)
•
외부 데이터나 기능을 제공하는 역할을 합니다.
•
MCP 서버는 특정 API, 데이터베이스, 파일 시스템 등을 모델이 이해할 수 있는 형태로 가공해 제공합니다.
•
하나의 호스트는 동시에 여러 MCP 서버(파일 서버, 날씨 서버, DB 서버 등)에 연결할 수 있습니다.
4. 맥락(Context) 요소
MCP 서버가 제공하는 데이터나 기능은 모두 "맥락(Context)" 요소로 분류됩니다. 크게 세 가지로 나뉩니다.
•
Resources(리소스): 읽기 전용 데이터 (예: 파일, DB 레코드)
•
Tools(도구): 실행 가능한 기능 (예: 날씨 API 호출, Slack 메시지 전송)
•
Prompts(프롬프트): 모델에게 주는 지침이나 템플릿 메시지 (예: "이 문서를 요약해라")
5. 프로토콜(Protocol)
•
클라이언트와 서버가 어떻게 대화할지 정해놓은 통신 규약입니다.
•
MCP는 JSON-RPC 2.0 기반 메시지를 사용해 요청과 응답을 주고받습니다.
•
통신은 표준 입출력(stdin/stdout)이나 HTTP(SSE 스트림 포함)를 통해 이뤄집니다.
즉, MCP를 지원하는 어떤 클라이언트와 서버라도 서로 호환될 수 있게 만든 것입니다.
마무리
오늘은 MCP(Model Context Protocol)가 무엇인지, 왜 등장했는지, 그리고 그 핵심 구성 요소들에 대해 살펴보았습니다. MCP는 AI 모델이 외부 세계와 안전하고 유연하게 연결될 수 있도록 도와주는 표준화된 다리 역할을 합니다. 덕분에 앞으로 더 다양한 데이터와 기능을 모델이 활용할 수 있게 될 것이고, 그 가능성은 점점 더 커질 것입니다.
다음 글에서는 MCP가 실제로 어떻게 작동하는지, 그리고 파이썬을 이용해 간단한 MCP 환경을 구축하는 방법까지 함께 알아보겠습니다.