MCP란 무엇이며 어떻게 작동하나요?

대규모 언어 모델(LLM)은 강력하지만 두 가지 주요 한계가 있습니다. 하나는 학습 시점의 지식에 고착되어 있다는 점이고, 다른 하나는 외부 세계와 상호작용할 수 없다는 점입니다. 즉, 실시간 데이터에 액세스하거나 회의 예약, 고객 기록 업데이트와 같은 작업을 수행할 수 없습니다. 

Model Context Protocol(MCP)은 이러한 문제를 해결하기 위해 설계된 개방형 표준입니다. 2024년 11월 Anthropic에서 도입한 MCP는 LLM이 외부 데이터, 애플리케이션, 서비스와 통신할 수 있는 안전하고 표준화된 '언어'를 제공합니다. AI가 정적 지식을 넘어 현재 정보를 검색하고 조치를 취할 수 있는 동적 에이전트가 되도록 지원하는 브리지 역할을 하여 AI의 정확성, 유용성, 자동화를 높입니다.

Model Context Protocol 이해

MCP는 AI 애플리케이션을 위한 표준화된 양방향 연결을 생성하여 LLM이 다양한 데이터 소스 및 도구에 쉽게 연결할 수 있도록 합니다. MCP는 도구 사용 및 함수 호출과 같은 기존 개념을 기반으로 빌드되지만 이를 표준화합니다. 따라서 각 새로운 AI 모델과 외부 시스템에 대한 커스텀 연결의 필요성이 줄어듭니다. 이를 통해 LLM은 현재의 실제 데이터를 사용하고 작업을 수행하며 원래 학습에 포함되지 않은 특수한 기능에 액세스할 수 있습니다.

MCP 아키텍처 및 구성요소

Model Context Protocol은 LLM과 외부 시스템이 쉽게 상호작용할 수 있도록 함께 작동하는 구성요소로 명확하게 구성되어 있습니다.

MCP 호스트

LLM은 AI 기반 IDE 또는 대화형 AI와 같은 AI 애플리케이션 또는 환경인 MCP 호스트 내에 포함되어 있습니다. 일반적으로 사용자의 상호작용 지점이며, MCP 호스트는 LLM을 사용하여 외부 데이터나 도구가 필요할 수 있는 요청을 처리합니다.

MCP 클라이언트

MCP 호스트 내에 있는 MCP 클라이언트는 LLM과 MCP 서버가 서로 통신하도록 도와줍니다. MCP에 대한 LLM의 요청을 변환하고 LLM에 대한 MCP의 대답을 변환합니다. 또한 사용 가능한 MCP 서버를 찾아 사용합니다.

MCP 서버

MCP 서버는 LLM에 컨텍스트, 데이터 또는 기능을 제공하는 외부 서비스입니다. 데이터베이스 및 웹 서비스와 같은 외부 시스템에 연결하여 LLM의 응답을 LLM이 이해할 수 있는 형식으로 변환함으로써 개발자가 다양한 기능을 제공할 수 있도록 LLM을 지원합니다.

전송 계층

전송 계층은 JSON-RPC 2.0 메시지를 사용하여 클라이언트와 서버 간에 통신하며, 주로 다음 두 가지 전송 방법을 사용합니다.

  • 표준 입력/출력(stdio): 로컬 리소스에 적합하며 빠른 동기식 메시지 전송을 제공합니다.
  • 서버 전송 이벤트(SSE): 원격 리소스에 선호되며 효율적인 실시간 데이터 스트리밍을 지원합니다.

MCP는 어떻게 작동하나요?

Model Context Protocol의 핵심은 LLM이 외부 도구에 도움을 요청하여 쿼리에 답변하거나 작업을 완료할 수 있도록 하는 것입니다. AI 어시스턴트에게 '데이터베이스에서 최신 판매 보고서를 찾아 내 관리자에게 이메일로 보내 줘'라고 요청한다고 가정해 보겠습니다.

MCP가 이를 처리하는 방식을 간략하게 살펴보겠습니다.

  1. 요청 및 도구 탐색: LLM은 자체적으로 데이터베이스에 액세스하거나 이메일을 보낼 수 없다는 것을 이해합니다. MCP 클라이언트를 사용하여 사용 가능한 도구를 검색하고, MCP 서버에 등록된 관련 도구 2개(database_query 도구와 email_sender 도구)를 찾습니다.
  2. 도구 호출: LLM이 이러한 도구를 사용하기 위한 구조화된 요청을 생성합니다. 먼저 보고서 이름을 지정하여 database_query 도구를 호출합니다. 그러면 MCP 클라이언트가 이 요청을 적절한 MCP 서버로 보냅니다.
  3. 외부 작업 및 데이터 반환: MCP 서버는 요청을 수신하고 이를 회사의 데이터베이스에 대한 보안 SQL 쿼리로 변환하여 판매 보고서를 검색합니다. 그런 다음 이 데이터를 포맷하여 LLM에 다시 보냅니다.
  4. 두 번째 작업 및 응답 생성: 이제 보고서 데이터를 확보한 LLM은 email_sender 도구를 호출하여 관리자의 이메일 주소와 보고서 콘텐츠를 제공합니다. 이메일이 전송된 후 MCP 서버는 작업이 완료되었음을 확인합니다.
  5. 최종 확인: LLM이 최종 응답을 제공합니다. '최신 판매 보고서를 찾아서 관리자에게 이메일로 보냈습니다.'

MCP와 RAG 비교

Model Context Protocol(MCP)과 검색 증강 생성(RAG)은 모두 외부 정보를 통해 LLM을 개선하지만, 그 방식과 목적은 서로 다릅니다. RAG는 텍스트를 생성하기 위한 정보를 찾아서 사용하는 반면, MCP는 상호작용과 작업을 위한 더 광범위한 시스템입니다.

기능

Model Context Protocol(MCP)

검색 증강 생성(RAG)

기본 목표

LLM이 외부 도구, 데이터 소스, 서비스에 액세스하고 상호작용하여 정보 검색과 함께 작업을 수행할 수 있도록 양방향 통신을 표준화합니다.

응답을 생성하기 전에 신뢰할 수 있는 기술 자료에서 관련 정보를 검색하여 LLM 응답을 개선합니다.

메커니즘

LLM 애플리케이션이 외부 함수를 호출하거나 특수 서버에서 정형 데이터를 요청할 수 있는 표준화된 프로토콜을 정의하여 작업 및 동적 컨텍스트 통합을 지원합니다.

사용자의 쿼리를 사용하여 기술 자료 또는 데이터 소스에서 정보를 가져오는 정보 검색 구성요소를 통합합니다. 이렇게 검색된 정보는 LLM의 프롬프트를 보강합니다.

출력 유형

LLM이 도구에 대한 구조화된 호출을 생성하고 결과를 수신한 다음 해당 결과와 작업을 기반으로 인간이 읽을 수 있는 텍스트를 생성할 수 있도록 합니다. 실시간 데이터와 함수도 포함될 수 있습니다.

LLM은 외부 문서의 쿼리와 관련된 텍스트로 보강된 학습 데이터를 기반으로 응답을 생성합니다. 사실 정확성에 중점을 두는 경우가 많습니다.

상호작용

외부 시스템에서 활발한 상호작용과 작업 실행을 위해 설계되었으며, LLM이 외부 기능을 '사용'할 수 있는 '문법'을 제공합니다.

주로 텍스트 생성을 위한 정보의 수동 검색에 사용되며, 일반적으로 외부 시스템 내에서 작업을 실행하는 데는 사용되지 않습니다.

표준화

AI 애플리케이션이 LLM에 컨텍스트를 제공하는 방식에 대한 개방형 표준으로, 통합을 표준화하고 커스텀 API의 필요성을 줄입니다.

LLM을 개선하기 위한 기법 또는 프레임워크이지만, 여러 공급업체 또는 시스템 전반에서 도구 상호작용을 위한 범용 프로토콜은 아닙니다.

사용 사례

AI 에이전트는 작업(예: 항공편 예약, CRM 업데이트, 코드 실행)을 수행하고, 실시간 데이터를 가져오고, 고급 통합을 수행합니다.

질의 응답 시스템, 최신 사실 정보를 제공하는 챗봇, 문서 요약, 텍스트 생성 시 할루시네이션 감소

기능

Model Context Protocol(MCP)

검색 증강 생성(RAG)

기본 목표

LLM이 외부 도구, 데이터 소스, 서비스에 액세스하고 상호작용하여 정보 검색과 함께 작업을 수행할 수 있도록 양방향 통신을 표준화합니다.

응답을 생성하기 전에 신뢰할 수 있는 기술 자료에서 관련 정보를 검색하여 LLM 응답을 개선합니다.

메커니즘

LLM 애플리케이션이 외부 함수를 호출하거나 특수 서버에서 정형 데이터를 요청할 수 있는 표준화된 프로토콜을 정의하여 작업 및 동적 컨텍스트 통합을 지원합니다.

사용자의 쿼리를 사용하여 기술 자료 또는 데이터 소스에서 정보를 가져오는 정보 검색 구성요소를 통합합니다. 이렇게 검색된 정보는 LLM의 프롬프트를 보강합니다.

출력 유형

LLM이 도구에 대한 구조화된 호출을 생성하고 결과를 수신한 다음 해당 결과와 작업을 기반으로 인간이 읽을 수 있는 텍스트를 생성할 수 있도록 합니다. 실시간 데이터와 함수도 포함될 수 있습니다.

LLM은 외부 문서의 쿼리와 관련된 텍스트로 보강된 학습 데이터를 기반으로 응답을 생성합니다. 사실 정확성에 중점을 두는 경우가 많습니다.

상호작용

외부 시스템에서 활발한 상호작용과 작업 실행을 위해 설계되었으며, LLM이 외부 기능을 '사용'할 수 있는 '문법'을 제공합니다.

주로 텍스트 생성을 위한 정보의 수동 검색에 사용되며, 일반적으로 외부 시스템 내에서 작업을 실행하는 데는 사용되지 않습니다.

표준화

AI 애플리케이션이 LLM에 컨텍스트를 제공하는 방식에 대한 개방형 표준으로, 통합을 표준화하고 커스텀 API의 필요성을 줄입니다.

LLM을 개선하기 위한 기법 또는 프레임워크이지만, 여러 공급업체 또는 시스템 전반에서 도구 상호작용을 위한 범용 프로토콜은 아닙니다.

사용 사례

AI 에이전트는 작업(예: 항공편 예약, CRM 업데이트, 코드 실행)을 수행하고, 실시간 데이터를 가져오고, 고급 통합을 수행합니다.

질의 응답 시스템, 최신 사실 정보를 제공하는 챗봇, 문서 요약, 텍스트 생성 시 할루시네이션 감소

MCP 사용의 이점

Model Context Protocol은 AI 기반 애플리케이션을 개발하고 배포하는 데 여러 가지 잠재적인 이점을 제공하여 LLM을 더욱 다재다능하고 안정적이며 유능하게 만듭니다.

할루시네이션 감소

LLM은 본질적으로 실시간 정보가 아닌 학습 데이터를 기반으로 대답을 예측하기 때문에 때로는 사실을 꾸며내거나 그럴듯하지만 궁극적으로는 잘못된 정보(할루시네이션)를 생성할 수 있습니다. MCP는 LLM이 외부의 신뢰할 수 있는 데이터 소스에 액세스할 수 있는 명확한 방법을 제공하여 이러한 문제를 줄이고 응답을 더욱 진실되게 만드는 데 도움이 됩니다.

AI 유용성 및 자동화 향상

이 프로토콜은 AI가 훨씬 더 많은 작업을 수행하고 스스로 작동하도록 도와줍니다. 일반적으로 LLM은 학습한 내용만 알고 있으며, 이 내용은 빠르게 오래된 정보가 될 수 있습니다. 그러나 MCP를 사용하면 LLM을 비즈니스 소프트웨어, 콘텐츠 저장소, 개발 환경과 같은 많은 기성 도구 및 통합과 연결할 수 있습니다. 즉, AI가 CRM 시스템에서 고객 정보를 업데이트하거나 온라인에서 현재 이벤트를 검색하거나 특수 계산을 실행하는 등 실제 세계와의 상호작용이 필요한 더 복잡한 작업을 처리할 수 있습니다. 이러한 외부 도구에 직접 연결함으로써 LLM은 더 이상 단순한 채팅 프로그램이 아니라 독립적으로 행동할 수 있는 스마트 에이전트가 되며, 이는 훨씬 더 많은 작업을 자동화할 수 있음을 의미합니다.

AI를 위한 간편한 연결

MCP 이전에는 LLM을 다양한 외부 데이터 소스 및 도구에 연결하기가 더 어려웠으며, 일반적으로 특수 연결이 필요하거나 각 공급업체에 특정한 방법을 사용해야 했습니다. 이로 인해 복잡하고 지저분한 시스템이 생겨났으며, 이를 'N x M' 문제라고 부르기도 합니다. 새로운 모델이나 도구가 추가될 때마다 필요한 커스텀 연결의 수가 매우 빠르게 증가했기 때문입니다. MCP는 USB-C 포트가 기기 연결을 간편하게 만들어 주는 것과 마찬가지로 이러한 연결을 더 쉽게 만들어 주는 공통의 개방형 표준을 제공합니다. 이러한 간소화된 방법은 개발 비용을 절감하고 AI 애플리케이션 생성을 가속화하며 더욱 연결된 AI 환경을 조성할 수 있습니다. 또한 개발자는 주요 변경사항 없이 LLM 제공업체 간에 더 쉽게 전환하고 새로운 도구를 추가할 수 있습니다.

MCP 및 보안

Model Context Protocol은 LLM을 외부 시스템에 연결하여 LLM 기능을 개선하지만, 중요한 보안 고려사항을 야기할 수도 있습니다. MCP는 연결된 도구를 통해 모든 데이터에 액세스하고 코드를 실행할 수 있으므로 강력한 보안이 필수적입니다.

MCP의 주요 보안 원칙은 다음과 같습니다.

  • 사용자 동의 및 제어: 사용자는 MCP를 통해 LLM이 수행하는 모든 작업과 데이터 액세스를 명확하게 이해하고 이에 동의해야 합니다. 사용자는 공유되는 데이터와 수행되는 작업을 제어할 수 있어야 하며, 이상적으로는 사용하기 쉬운 승인 화면을 통해 제어할 수 있어야 합니다.
  • 데이터 개인 정보 보호: 호스트는 사용자 데이터를 MCP 서버에 노출하기 전에 사용자로부터 명확한 권한을 받아야 합니다. 특히 LLM은 대량의 데이터를 처리하므로 민감한 정보가 실수로 유출되거나 공유되지 않도록 적절한 액세스 제어로 보호해야 합니다. 암호화와 강력한 액세스 제어 규칙을 사용하는 것이 필수적입니다.
  • 도구 안전성: MCP를 통해 연결된 도구를 사용하여 코드를 실행할 수 있습니다. 개발자는 신뢰할 수 있는 서버에서 제공되지 않는 도구 설명은 신뢰해서는 안 됩니다. 사용자는 도구를 사용하기 전에 권한을 부여해야 하며 도구를 실행하기 전에 도구가 무엇을 하는지 이해해야 합니다.
  • 안전한 출력 처리: MCP 상호작용에서 생성된 LLM 출력은 출력이 사용자에게 표시되는 경우 교차 사이트 스크립팅(XSS) 또는 기타 웹 애플리케이션 공격과 같은 보안 문제를 방지하기 위해 신중하게 처리되어야 합니다. 입력을 적절히 정리하고 출력을 필터링하며 프롬프트에 민감한 정보를 포함하지 않는 것이 중요합니다.
  • 공급망 보안: MCP 서버와 연결된 외부 도구의 안정성은 매우 중요합니다. 조직은 편향된 결과, 보안 침해 또는 오류를 방지하기 위해 LLM 공급망의 모든 부분이 안전한지 확인해야 합니다.
  • 모니터링 및 감사: LLM 활동과 MCP 서버와의 상호작용을 정기적으로 확인하면 비정상적인 행동이나 잠재적인 오용을 발견하는 데 도움이 될 수 있습니다. 강력한 로깅 및 감사 시스템을 설정하면 데이터 이동과 도구 사용을 추적할 수 있어 보안 사고에 대응할 때 도움이 됩니다.

개발자는 이러한 원칙을 고수함으로써 잠재적인 위험으로부터 보호하면서 MCP의 강력한 기능을 사용할 수 있습니다.

MCP 기반 애플리케이션 빌드 및 배포

Model Context Protocol을 구현하려면 LLM, MCP 서버, 기본 데이터 소스를 호스팅할 수 있는 강력한 인프라가 필요합니다. 클라우드 플랫폼은 완전한 솔루션을 빌드하는 데 필요한 확장 가능하고 안전한 구성요소를 제공합니다. 다음과 같은 방법으로 접근할 수 있습니다.

MCP 서버 호스팅 및 확장

MCP 서버는 외부 도구와의 연결 고리입니다. 필요에 따라 다음을 선택할 수 있습니다.

  • 서버리스 환경(예: Cloud Run): 간단한 스테이트리스(Stateless) 도구에 적합합니다. 서버리스 플랫폼은 수요에 따라 서버를 자동으로 확장하거나 0으로 축소하므로 사용한 만큼만 비용을 지불하면 됩니다. 개별 도구를 효율적으로 배포하는 데 적합합니다.
  • 컨테이너 조정(예: Google Kubernetes Engine(GKE)): 네트워킹과 리소스에 대한 세밀한 제어가 필요한 복잡한 스테이트풀(stateful) 애플리케이션의 경우 관리형 Kubernetes 환경은 엔터프라이즈 규모로 정교한 MCP 인프라를 실행하는 데 필요한 성능과 유연성을 제공합니다.

MCP를 데이터 및 도구에 연결

MCP의 가치는 대부분 액세스할 수 있는 도구에서 비롯됩니다. LLM을 다음 항목에 연결할 수 있습니다.

  • 관리형 데이터베이스(예: Cloud SQL 또는 Spanner): AI가 고객 정보, 인벤토리, 운영 데이터와 같은 항목에 대해 관계형 데이터베이스를 안전하게 쿼리할 수 있도록 합니다.
  • 데이터 웨어하우스(예: BigQuery): 분석 작업의 경우 LLM은 데이터 웨어하우스를 활용하여 대규모 데이터 세트를 분석하고 사용자의 쿼리에 대한 응답으로 심층적인 컨텍스트 기반 인사이트를 도출할 수 있습니다.

Vertex AI를 사용한 엔드 투 엔드 AI 워크플로 조정

모든 것을 하나로 묶는 데는 통합 AI 플랫폼이 필수적입니다. Vertex AI는 MCP 기반 애플리케이션의 전체 수명 주기를 관리하는 데 도움이 됩니다.

  • LLM 호스팅: 애플리케이션의 '두뇌' 역할을 하는 Gemini와 같은 강력한 파운데이션 모델을 배포하고 관리합니다.
  • 에이전트 및 조정 프레임워크: AI 에이전트를 빌드하려면 복잡한 워크플로가 필요합니다. Vertex AI는 LLM과 MCP 서버에서 제공하는 컨텍스트 간의 정보 흐름을 간소화하는 도구를 제공하여 추론하고 행동할 수 있는 정교한 에이전트의 개발을 단순화합니다.

다음 단계 수행

$300의 무료 크레딧과 20여 개의 항상 무료 제품으로 Google Cloud에서 빌드하세요.

Google Cloud