“AI와 외부 서비스를 잇는 다리” 모델 컨텍스트 프로토콜의 이해
컨텐츠 정보
- 조회 463
본문
모델 컨텍스트 프로토콜(Model Context Protocol, MCP)은 LLM(Large Language Model)과 같은 AI 시스템에 다른 툴이나 컴퓨팅 서비스, 데이터 소스와 상호작용하는 표준화된 방법을 제공하는 데 목표를 두고 출범한 오픈소스 프레임워크다.
자율 AI가 현실 세계에서 작업을 수행하기 위해서는 생성형 AI 툴과 AI 에이전트가 스스로 외부 세계와 상호작용할 수 있도록 하는 것이 핵심이다. 그러나 AI 개발자가 대규모로 이를 구현하는 데는 그동안 어려움이 있었으며, AI 시스템을 데이터베이스와 파일 시스템, 기타 툴에 연결하는 복잡한 맞춤형 코드를 작성하는 일에는 많은 노력이 필요했다.
이 문제를 해결하기 위해 최근 여러 프로토콜이 등장했다. MCP는 2024년 11월 앤트로픽이 발표한 이후 빠른 속도로 채택되고 있다. MCP를 사용하면 중개 클라이언트와 서버 프로그램이 AI 시스템과 외부 툴 또는 데이터 간의 통신을 처리하고 개발자가 통합에 사용할 수 있는 표준화된 메시지 형식과 인터페이스를 제공한다. 여기서는 모델 컨텍스트 프로토콜이 무엇이며, AI 분야에 어떤 영향을 미치고 있는지 살펴본다.
MCP 서버란 무엇인가?
MCP 아키텍처의 다양한 구성 요소를 심층적으로 살펴보기에 앞서, 먼저 MCP 서버가 무엇인지 정의할 필요가 있다. MCP 서버는 프로토콜과 사실상 거의 동의어로 사용되고 있기 때문이다. MCP 서버는 AI 시스템과 다른 서비스 또는 데이터 소스 사이에 위치하는 가벼운 프로그램이다. 이 서버는 다리 역할을 하면서 MCP 클라이언트를 통해 MCP 프로토콜에 정의된 표준 형식으로 AI와 통신하고, 다른 서비스 또는 데이터 소스와는 그쪽의 프로그램 인터페이스를 통해 통신한다.
MCP 서버 구축은 비교적 간단하다. 깃허브 등에는 데이터베이스 상호작용부터 최신 날씨 정보 수집에 이르기까지 온갖 작업을 수행하는 다양한 MCP 서버가 올라와 있다. 대부분 무료로 다운로드할 수 있고 유료 MCP 서버도 조금씩 등장하고 있다. 이 점이 MCP의 급속한 인기 상승을 이끈 주된 요인이다. 다양한 분야의 AI 시스템 개발자와 사용자가 폭넓은 작업에서 MCP 서버를 간편히 사용할 수 있다는 점이다. 그리고 이와 같은 광범위한 도입이 가능했던 이유는 MCP 서버가 AI 툴과 연결되는 방식에 있다.
MCP vs. RAG vs. 기능 호출
AI를 외부 세계와 연결하기 위한 기술은 MCP 이전에도 있었다. LLM이 학습 데이터에 포함되지 않은 문서를 응답에 반영하도록 하려면 검색 증강 생성(Retrieval Augmented Generation, RAG)을 사용하면 된다. 다만 이 경우 대상 데이터를 벡터 형식의 데이터베이스로 인코딩해야 한다.
많은 LLM은 함수 호출 또는 툴 사용 기능도 갖추고 있다. 사용자 프롬프트 등의 입력에서 도우미 툴 사용이 필요한 기능이 요청되는 경우 LLM은 이를 인지하고, 자연어로 응답하는 대신 해당 툴을 호출하기 위한 명령을 알려준다. 예를 들어 범용 챗봇에 LA의 기후에 대해 질문하면 대부분은 학습 데이터에서 가져온 정보를 제공한다. 그러나 LA의 내일 날씨를 묻는다면 챗봇은 기상 예보 데이터를 제공하는 서비스에 연결해야 한다.
이런 연결 작업은 전에도 가능했다. 결국 LLM의 본질은 텍스트 생성기이며, 이들 서비스가 기대하는 명령 역시 텍스트 형태로 주어지기 때문이다. 그러나 LLM을 외부 서비스에 연결하기 위한 툴을 구축하기가 매우 어렵다는 사실이 드러났고, 많은 개발자는 커넥터를 코딩할 때마다 같은 작업을 반복하는 상황에 직면했다.
IBM의 개발자 경험 및 에이전트 담당 수석 제품 관리자인 로이 더크스는 “1년 전의 툴 호출과는 다르다. 그때는 모든 에이전트 프레임워크마다 자체 툴 정의가 있었기 때문에 프레임워크를 바꾸면 툴도 다시 작업해야 했다. 툴은 API, 데이터베이스 등에 대한 매핑에 불과했으므로 공유하기도 어려웠다”라고 말했다.
MCP는 LLM의 함수 호출 기능을 기반으로 동작하며, 서비스와 데이터 소스에 연결하는 훨씬 더 표준화된 방법을 제공한다. 더크스는 “LLM은 MCP를 인식하지 못하고 단지 툴 목록만 볼 수 있다. 그러나 에이전트 루프는 툴 이름과 MCP 간의 매핑을 이해하고 있으므로 MCP가 툴 호출에 사용되고 있다는 것을 인식한다. 예를 들어 LLM이 get-weather 툴을 호출하거나 제안한다면 에이전트 루프는 get-weather 툴을 호출해야 함을 아는 것이다. 또한 이 툴이 MCP 서버에 포함된 툴이라면 에이전트 루프는 MCP 클라이언트-서버 연결을 사용해 툴을 호출한다”라고 설명했다.
MCP 아키텍처 : MCP는 어떻게 작동하는가
이제부터는 MCP 아키텍처를 이루는 다양한 구성요소와 그 작동 방식을 자세히 살펴보자.
- MCP 호스트는 외부 환경과 연결되는 AI 기반 애플리케이션이다. 앤트로픽은 MCP를 출시하면서 이를 클로드 데스크톱 애플리케이션에 내장했는데, 이것이 최초의 MCP 호스트 중 하나다. 호스트가 LLM 챗봇에만 국한되지는 않는다. 예를 들어 AI로 강화된 IDE도 호스트 역할을 할 수 있다. 호스트 프로그램에는 코어 LLM과 다양한 도우미 프로그램이 포함된다.
- 이런 도우미 중 여기서 가장 중요하게 볼 프로그램은 MCP 클라이언트다. 각 LLM에는 그 LLM이 툴을 호출하고 데이터를 소비하는 방식에 따라 맞춤 구성된 클라이언트가 필요하다. 모든 MCP 클라이언트는 호스트에 표준 서비스 모음을 제공한다. 클라이언트는 액세스 가능한 서버를 검색해서 해당 서비스와 이를 호출하는 데 필요한 매개변수를 보고한다. 모든 정보는 LLM의 프롬프트 컨텍스트에 들어간다. LLM은 사용 가능한 서비스에 대한 호출을 트리거하는 사용자 입력을 인식하면 클라이언트를 사용해 해당 서비스에 대한 요청을 적절한 MCP 서버로 전송한다.
- MCP 서버에 대해서는 이미 설명했지만, 이제 전체 그림에서 MCP 서버가 어디에 위치하는지 좀 더 명확히 이해할 수 있을 것이다. 각 서버는 통신 대상 데이터 소스 또는 외부 서비스가 이해하는 언어를 사용해 통신하도록 설계되며, 모델 컨텍스트 프로토콜에 따라 MCP 클라이언트와 통신하면서 둘 사이의 중개자 역할을 한다.
- MCP 클라이언트와 MCP 서버는 JSON 기반의 형식을 사용해 통신한다. MCP 전송 계층은 MCP 프로토콜 메시지를 전송을 위한 JSON-RPC 형식으로 변환하고, 수신 측에서는 JSON-RPC 메시지를 다시 MCP 프로토콜 메시지로 변환한다. 참고로 서버는 클라이언트와 동일한 머신에서 로컬로 실행될 수도 있고, 온라인에서 실행되면서 인터넷을 통해 클라이언트 연결을 허용할 수도 있다. 클라이언트-서버 통신은 전자의 경우 stdio를 통해, 후자의 경우 스트리밍 가능한 HTTP를 통해 이뤄진다.
아래 그림은 여러 구성요소가 어떻게 서로 연계해 작동하는지 보여준다. 앞서 설명한 바와 같이 서버는 클라이언트 기준으로 로컬 또는 원격으로 실행될 수 있으며, 로컬 또는 원격 서비스에 연결할 수 있다.
MCP 서버 생태계
MCP 인기의 주된 이유는 누구나 무료로 사용할 수 있는 다양한 서버에 있다. 아키텍처에 이런 모든 구성요소를 포함하는 형태는 LLM을 외부 서비스에 직접 연결하는 방식보다 얼핏 더 복잡해 보일 수 있지만, MCP의 모듈성과 이식성, 표준화 덕분에 개발자 입장에서는 모든 작업이 훨씬 더 쉬워진다.
- MCP 서버는 적절히 구현된 MCP 클라이언트가 포함된 모든 AI 애플리케이션과 통신할 수 있다. 즉, AI 에이전트가 액세스할 수 있도록 서비스를 노출하려는 경우 서버를 하나만 만들어도 다양한 유형의 LLM과 문제없이 작동한다.
- MCP 클라이언트는 특정 호스트에 따라 맞춤 조정이 필요하지만 올바르게 구현된 모든 MCP 서버에 연결할 수 있다. 특정 LLM을 구글 문서나 MySQL 데이터베이스 또는 기상 예보 서비스에 어떻게 연결해야 하는지 고민할 필요가 없다. MCP 클라이언트만 만들면 MCP 서버를 통해 모든 유형의 서비스에 연결할 수 있다.
MCP 서버 깃허브 리포지토리에서 MCP 서버 생태계에 대해 더 깊이 알아볼 수 있다.
MCP의 보안 문제
새로운 통신 경로를 개방하는 모든 방법은 공격자에게 잠재적인 새로운 공격 경로도 동시에 제공한다. MCP는 처음 출시될 때 URL에 세션 식별자를 의무적으로 두도록 했는데, 보안 측면에서는 매우 부적절한 방식이다. MCP에는 원래 메시지 서명이나 검증 메커니즘이 없었기 때문에 메시지를 변조할 수 있었다.
이후 업데이트를 통해 많은 취약점이 패치됐지만 없애기 어려운 취약점도 존재한다. 게다가 많은 사람이 그냥 온라인에서 찾은 MCP 서버를 무심히 사용하기 때문에 잘못 구성된 또는 악성 코드가 포함된 서버가 프로덕션으로 유입될 위험도 크다.
MCP의 미래는?
MCP의 높은 활용성과 편의성은 보안 우려를 압도하고 있다. 앞으로도 그 기세는 수그러들지 않을 것이 확실하다. MCP는 앞으로 어떻게 될까? IBM의 더크스는 기업이 AI 에이전트가 활용하게 될 MCP 서버의 확산을 관리하기 위해 툴을 구축하고 전략을 마련하기 시작했다고 말했다.
더크스는 “흥미로운 패턴은 MCP 서버의 구성과 오케스트레이션이다. 많은 기업이 여러 MCP 서버를 하나의 클라이언트에 연결하는 방식이 아니라 여러 MCP 서버를 하나의 서버로 오케스트레이션한 다음 이 서버를 클라이언트에 연결하는 방식을 사용한다. 왼쪽에 클라이언트가, 오른쪽에 서버가 있다고 보면, 오른쪽에서 필요한 MCP 서버 수를 줄여 복잡성을 낮추려는 패턴이 나타나고 있다. 예를 들어 한 모델에 100개의 툴을 제공하면 혼란스러워지기 때문”이라고 말했다.
더크스는 “많은 기업의 이 방향에 관심을 두고 있다. 즉, 최상의 클라이언트를 구축하는 것보다는 모든 서버를 오케스트레이션하고 배치할 방법에 중심을 두고 고민한다”라고 덧붙였다. MCP는 아직 초기 단계에 있지만 기업들은 앞으로 빠르게 적응해 나갈 것으로 전망된다.
MCP 요약 : 알아야 할 5가지
MCP로 인해 기업 시스템과 AI의 상호작용 방식이 바뀌고 있다. IT 책임자는 효율적이고 안전한 AI 전략을 수립하기 위해 다음과 같은 MCP의 함의를 제대로 파악해야 한다.
- AI 에이전시와 자동화 지원 : MCP는 LLM과 같은 AI 모델이 기존 애플리케이션, 데이터베이스, 서비스와 연결돼 상호작용하기 위한 표준화된 경로를 제공한다. 이는 복잡한 작업을 자율적으로 수행할 수 있는 에이전트 AI를 구축하기 위한 기반이다.
- 통합 간소화와 기술 부채 감소 : MCP가 등장하기 전에는 AI를 다양한 기업 시스템에 연결하기 위해서는 맞춤형 통합이 필요했으며, 이런 통합은 불안정한 경우가 많았다. MCP는 AI 통합에 따르는 개발 노력과 기술 부채를 대폭 줄이기 위해 설계된 플러그 앤 플레이 프레임워크를 제공한다. 단일 MCP 서버는 여러 AI 클라이언트에 서비스를 노출할 수 있고, 그 반대의 경우도 마찬가지다.
- MCP는 AI 컨텍스트와 정확성에 있어 필수적 : LLM이 환각을 피하고 정확하고 실천 가능한 응답을 제공하기 위해서는 관련성 있는 최신 컨텍스트가 필요하다. MCP 서버는 기업의 독점적인 내부 데이터와 툴에 AI가 실시간으로 접근할 수 있도록 해서 이 요구사항을 충족한다.
- 새로운 보안 고려 사항 : MCP는 새로운 공격 표면을 유발하기도 한다. IT 책임자는 공급망 취약점, 자격 증명 노출, 권한 남용, 프롬프트/툴 주입과 같은 위험을 예의주시해야 한다.
- 엔터프라이즈 AI 아키텍처의 변화 : MCP는 AI 네이티브 아키텍처 패턴으로 전환하도록 기업을 푸시하고 있다. MCP는 격리된 AI 실험 환경이 아닌, AI가 IT 환경 전반의 기능을 동적으로 발견하고 상호작용할 수 있는 통합되고 관리되는 계층을 실현한다.
dl-itworldkorea@foundryco.com
관련자료
-
링크
-
이전
-
다음







