모델 컨텍스트 프로토콜(MCP)이란?

AI 에이전트는 모델 컨텍스트 프로토콜(MCP)을 통해 외부 도구와 데이터 소스에 접근하여, 보다 효과적으로 조치를 취할 수 있습니다.

학습 목표

이 글을 읽은 후에 다음을 할 수 있습니다:

  • 에이전틱 AI에서 모델 컨텍스트 프로토콜(MCP)의 역할 이해
  • MCP 작동 방식 설명
  • MCP의 보안 문제 식별

글 링크 복사

모델 컨텍스트 프로토콜(MCP)이란?

모델 컨텍스트 프로토콜은 대규모 언어 모델(LLM)이 정보를 활용할 수 있도록 하는 표준 방식입니다. 애플리케이션 프로그래밍 인터페이스(API)가 작동하는 방식과 다소 유사하지만, MCP는 컴퓨터 프로그램이 외부 소스의 서비스와 통합할 수 있도록 문서화되고 표준화된 방식을 제공합니다. AI는 자율적으로 목표를 추구하고 조치를 취할 수 있는 지능형 프로그램인 에이전트 AI를 지원합니다.

MCP는 본질적으로 AI 프로그램이 학습 범위를 넘어설 수 있도록 합니다. 이를 통해 AI가 새로운 정보원을 의사 결정과 콘텐츠 생성에 통합할 수 있으며, 외부 도구와의 연결도 가능하게 합니다.

상사를 대신해 레스토랑 예약을 해야 하는 비서가 있다고 상상해 보세요. 비서는 레스토랑의 전화번호로 연락하여 예약 가능한 시간을 묻고, 테이블 예약을 요청할 것입니다. MCP는 AI 에이전트가 필요한 정보를 얻어 작업을 수행할 수 있도록 “전화번호”를 제공하는 방식입니다.

MCP는 AI 기업인 Anthropic이 개발했으며, 이후 오픈 소스로 공개되었습니다. 2024년 말 오픈 소스로 전환된 이후, MCP는 빠르게 업계 표준이 되어 AI 에이전트를 더 폭넓게 활용할 수 있게 되었습니다.

AI 에이전트란?

AI 에이전트는 LLM을 기반으로 구축된 AI 프로그램입니다. 이는 LLM의 정보 처리 기능을 활용하여 인간 사용자 대신 데이터를 확보하고, 의사 결정을 내리며, 작업을 수행합니다.

MCP는 AI 에이전트가 필요한 정보를 찾고 작업을 수행할 수 있도록 하는 한 가지 방법입니다. 즉, MCP는 AI 에이전트를 LLM의 학습 데이터 범위를 넘어선 일명 “외부 세계”와 연결하는 역할을 합니다. (다른 방법으로는 API 통합 및 헤드리스 브라우징이 있습니다.)

MCP는 어떻게 작동하나요?

MCP는 프로토콜로, 네트워크에 연결된 다양한 컴퓨팅 장치 간에 사용되는, 합의된 단계와 지침의 집합입니다. MCP는 클라이언트-서버 아키텍처를 전제로 하며, 한 엔터티인 클라이언트(AI 에이전트 또는 보조 프로그램)가 서버에 요청을 보내면. 서버가 이에 응답하는 구조입니다.

MCP 클라이언트는 MCP 호스트 내에서 작동합니다. 클라이언트는 MCP 서버와 일대일 연결을 유지하지만, 동일한 MCP 호스트에서 여러 클라이언트가 실행될 수 있습니다. 따라서 MCP 호스트는 여러 MCP 서버로부터 동시에 데이터를 가져올 수 있습니다. 그러면 MCP 서버는 API 통합을 사용하여 추가 소스에서 데이터를 확보할 수 있습니다.

즉, AI 에이전트는 MCP를 활용해 여러 서버에 동시에 연결할 수 있지만, 각 연결은 다른 모든 연결과 서로 독립적으로 이루어집니다. 신문사의 기자 팀을 예로 들어보면, 이들은 각자 정보원과 연락을 하고 정보를 수집하지만, 이를 종합하여 하나의 뉴스 기사를 작성하는 것과 비슷합니다.

MCP 메시지

MCP에서는 네 가지 유형의 메시지가 사용됩니다.

  • 요청: 클라이언트(호스트 내에 포함됨)가 MCP 서버에 정보를 요청합니다.
  • 결과: MCP 서버가 요청받은 정보로 응답합니다.
  • 오류: 서버가 응답할 수 없을 때 전송됩니다.
  • 알림: 응답이 필요 없는 일방향 메시지(예: 공익 광고)입니다. 이 메시지는 클라이언트와 서버에서 모두 전송할 수 있습니다.

원격 및 로컬 MCP 연결

MCP 연결은 원격 또는 로컬로 구분할 수 있습니다. 원격 연결은 인터넷을 통해 AI 에이전트와 MCP 서버 간에 이루어집니다. 로컬 연결은 동일한 장치 내에서 이루어지며, MCP 클라이언트와 MCP 서버는 별도의 소프트웨어 프로그램으로 실행됩니다.

MCP 연결 단계

MCP 네트워크 통신에는 세 가지 단계가 있습니다.

  1. 초기화: 클라이언트가 첫 번째 메시지를 보내고, 이어지는 짧은 메시지 교환을 통해 클라이언트와 서버가 프로토콜 버전에 합의합니다
  2. 메시지 교환: 요청, 결과, 알림이 교환됩니다
  3. 종료: 클라이언트 또는 서버가 "close()" 메시지로 연결을 종료합니다

MCP의 보안을 강화하기 위해, 이 세 단계 이전에 인증권한 부여 를 위한 추가 절차를 진행할 수 있습니다.

MCP 서버란?

MCP 서버는 서버 또는 클라우드에서 호스팅되는 프로그램으로, AI 에이전트가 MCP를 통해 사용할 수 있는 기능을 제공합니다. MCP 서버는 AI 에이전트가 필요로 하는 신규 데이터 세트나 기타 도구에 접근할 수 있도록 지원합니다. 예를 들어, MCP 서버는 AI 에이전트가 이메일 서비스를 사용할 수 있도록 허용하여, 해당 에이전트가 지원하는 인간 사용자를 대신해 이메일을 보낼 수 있도록 합니다.

MCP는 안전한가요?

MCP에는 인증, 권한 부여, 암호화 기능이 기본적으로 내장되어 있지 않으므로, 개발자가 직접 구현하거나 구현을 지원하는 서비스를 이용해야 합니다.

MCP는 HTTPS 사용을 요구하지 않으며, 실제로 많은 구현에서 HTTP를 통해 실행됩니다. 따라서 개발자가 사전에 Transport Layer Security(TLS) 사용을 적용하지 않으면 암호화 및 인증이 부족할 수 있습니다. MCP는 다른 네트워킹 프로토콜과 마찬가지로 TLS를 사용하지 않을 경우. 경로상 공격에 취약할 수 있습니다.

MCP는 API(데이터 및 서비스를 요청하는 외부 당사자)와 유사한 기능을 제공하므로, 주요 API 보안 고려사항 대부분이 MCP 구현에도 적용됩니다. MCP 서버를 제공하는 조직은 기밀 데이터가 노출되지 않도록 하고, 리소스를 보호하며, 과도한 요청은 레이트 리미팅로 차단하고, AI 에이전트가 과도한 권한을 갖지 않도록 하며, 입력값을 검증하고 정제해야 합니다.

일부 MCP 서버에서는 OAuth를 더 쉽게 구현할 수 있도록 라이브러리를 제공합니다. Cloudflare는 OAuth 2.1 프로토콜의 공급자 측을 구현한 OAuth 공급자 라이브러리를 제공하여 MCP 서버에 손쉽게 권한 부여 기능을 추가할 수 있도록 지원합니다.

개발자는 이 OAuth 공급자 라이브러리를 세 가지 방식으로 활용할 수 있습니다.

  • 서드파티 OAuth 공급자와 직접 통합
  • 서비스형 인증 공급자를 포함한 자체 OAuth 공급자와 통합
  • Cloudflare Worker(Cloudflare 네트워크에 배포된 서버리스 기능)가 권한 부여를 처리하고, Cloudflare에서 실행되는 MCP 서버가 전체 OAuth 흐름을 처리

Cloudflare는 에이전틱 AI를 구축하는 개발자를 위해 여러 MCP 서버를 제공합니다. 또한 Cloudflare는 개발자가 AI 에이전트를 지원하는 자체 MCP 서버를 구축 및 배포할 수 있도록 지원합니다. Cloudflare에서 MCP를 시작하는 방법을 알아보세요.