MCP란 무엇인가? (Model Context Protocol) - 입문서

Model Context Protocol(MCP)은 LLM 애플리케이션과 외부 데이터 소스 및 도구 간의 원활한 통합을 가능하게 하는 오픈 프로토콜입니다. 이는 2024년 11월 25일 Anthropic에 의해 발표되었습니다.

USB와의 유사성

MCP는 AI 시스템을 위한 "USB 표준"으로 생각할 수 있습니다. USB가 장치별 커넥터의 필요성을 없애고 모든 USB 장치가 모든 USB 포트에 연결할 수 있는 범용 인터페이스를 만든 것처럼, MCP는 AI 애플리케이션이 다양한 데이터 소스 및 도구와 연결할 수 있는 표준화된 방법을 만듭니다.

USB 이전에는 각 장치마다 고유한 전용 커넥터가 필요했습니다. 마찬가지로 MCP 이전에는 개발자들이 AI 애플리케이션과 데이터 소스의 각 조합에 대해 맞춤형 통합을 만들어야 했습니다. MCP는 모든 MCP 호환 클라이언트가 모든 MCP 호환 서버와 작동할 수 있게 하는 공통의 "플러그 앤 플레이" 프로토콜을 확립하여, 통합 복잡성과 개발 시간을 크게 줄입니다.

MCP 작동 방식

아키텍처

MCP는 클라이언트-서버 아키텍처를 따르며 다섯 가지 주요 구성 요소가 있습니다:

다섯 가지 주요 구성 요소를 보여주는 MCP 아키텍처 다이어그램: MCP 호스트, MCP 클라이언트, MCP 서버, 로컬 데이터 소스, 원격 서비스
  • MCP 호스트: MCP를 통해 데이터에 접근하고자 하는 AI 도구(채팅 클라이언트, IDE, 에이전트)
  • MCP 클라이언트: 서버와 1:1 연결을 유지하는 프로토콜 클라이언트
  • MCP 서버: 표준화된 Model Context Protocol을 통해 특정 기능을 노출하는 프로그램
  • 로컬 데이터 소스: 정보를 포함하는 로컬 데이터베이스, 파일 및 서비스
  • 원격 서비스: MCP 서버가 연결할 수 있는 외부 API 또는 서비스

이를 고전적인 AI 사용 사례인 텍스트-SQL 변환으로 설명해 보겠습니다. 텍스트-SQL은 자연어를 SQL로 변환합니다. MCP 이전의 일반적인 구현:

전통적인 텍스트-SQL 구현 워크플로우 다이어그램: 스키마 가져오기, 프롬프트 생성, SQL 생성, 실행의 네 단계를 보여줌
  1. SQL 클라이언트가 대상 데이터베이스에서 스키마를 가져옴
  2. SQL 클라이언트가 스키마를 포함한 프롬프트를 LLM에 전송
  3. LLM이 SQL로 응답
  4. SQL 클라이언트가 대상 데이터베이스에 대해 SQL을 실행

MCP 없이는 모든 SQL 클라이언트가 지원하는 모든 데이터베이스에 대해 이를 구현해야 합니다. MCP가 있으면 SQL 클라이언트는 MCP 클라이언트 프로토콜만 구현하면 되고, 각 데이터베이스 벤더는 MCP 서버를 한 번만 구현하면 됩니다.

MCP 기반 데이터베이스 통합 다이어그램: SQL 클라이언트가 MCP 프로토콜 레이어를 통해 다양한 데이터베이스 엔진에 연결하는 방법을 보여줌

본질적으로, MCP라는 또 다른 추상화 수준을 통해 M×N 문제를 M+N 솔루션으로 전환합니다.

핵심 기본 요소

MCP는 MCP 서버가 제공하는 세 가지 기본 요소를 중심으로 구축됩니다:

  • Resources: 참조하고 검색할 수 있는 데이터 객체. 문서, 이미지, 데이터베이스 스키마 및 기타 구조화된 데이터가 포함됩니다.
  • Prompts: 특정 작업이나 도메인에 최적화된, 언어 모델과의 효과적인 상호작용을 생성하기 위한 템플릿.
  • Tools: 데이터베이스 쿼리, API 호출, 데이터 처리와 같은 작업을 수행하기 위해 언어 모델이 실행할 수 있는 함수.

텍스트-SQL 예제에 매핑하면:

MCP를 사용한 텍스트-SQL 다이어그램: 데이터베이스 컨텍스트에서 MCP 기본 요소(리소스, 프롬프트, 도구)가 어떻게 구현되는지 보여줌
MCP 기본 요소텍스트-SQL 예제
Resources데이터베이스에서 가져온 스키마 정보
Prompts모델이 올바른 SQL을 생성하도록 돕는 데이터베이스 도메인 특화 프롬프트
Tools데이터베이스에 대해 SQL 명령 실행

주요 이점

MCP는 AI 시스템 개발에 여러 중요한 이점을 제공합니다:

  • 개발 시간 단축: 개발자는 각 데이터 소스나 도구에 대한 맞춤형 통합을 구축하는 대신 일반적인 작업을 위해 미리 구축된 MCP 서버를 활용할 수 있습니다.
  • 상호 운용성 향상: MCP로 구축된 애플리케이션은 호환되는 모든 도구 및 데이터 소스와 원활하게 작동할 수 있어, 진정으로 조합 가능한 생태계를 만듭니다.
  • 모듈화: 디버깅, 인증, 감사, 체이닝과 같은 범분야적 관심사를 표준화하고 한 번 구현한 다음 생태계 전체에서 재사용할 수 있습니다.

기술적 선구자

MCP는 다른 영역에서 유사한 문제를 해결한 이전 표준의 성공을 기반으로 합니다:

  • SQL: 데이터베이스와 상호 작용하는 표준화된 방법을 만들어 애플리케이션이 모든 SQL 호환 데이터베이스와 작동할 수 있게 했습니다.
  • Docker: 애플리케이션 패키징 및 배포를 표준화하여 애플리케이션을 다양한 환경에서 이식 가능하게 만들었습니다.
  • LSP(Language Server Protocol): 이름 유사성은 우연이 아닙니다 — LSP는 코드 완성, 구문 강조, 오류 검사와 같은 기능을 위해 코드 편집기가 다양한 프로그래밍 언어 서버와 통신하는 방법을 표준화했습니다.

이 표준들은 모두 클라이언트를 구현에서 분리하는 추상화 계층을 도입하여 M×N 문제를 해결하고, 통합 복잡성을 크게 줄였습니다.

개방성

유명한 xkcd 927 만화는 또 다른 표준을 만드는 도전을 상기시킵니다:

XKCD 만화 #927: 표준 - 경쟁 표준이 통합되지 않고 증식하는 방식을 보여줌

그러나 MCP는 진정한 개방성의 유망한 징후를 보여주고 있습니다.

MCP는 Anthropic에 의해 발명되었지만, 그들은 이를 별도의 조직(github.com/modelcontextprotocol) 아래에 두어, 독점적 솔루션이 아닌 개방형 표준으로 만들겠다는 약속을 보여주고 있습니다.

이 글을 쓰는 시점(2025년 3월 13일)에서 작업 그룹에는 5명의 구성원이 있습니다:

Model Context Protocol 작업 그룹 구성원들: 5명의 기여자와 그들의 역할 및 소속을 보여줌

JetBrains의 Alexander Sysoev를 제외하고 나머지 4명은 Anthropic에서 일하고 있습니다. 이 균형은 프로젝트가 아직 초기 단계이며, 한 조직의 핵심 팀이 초기 개발 동안 명확한 방향을 제공하는 데 도움이 되기 때문에 이해할 수 있습니다.

미래 전망

MCP는 아직 초기 단계입니다. 성공적인 프로토콜을 만드는 것은 시장을 구축하는 것과 비슷합니다 - 임계 질량에 도달하려면 공급자와 소비자 모두가 필요합니다.

그러나 낙관적인 이유가 있습니다. MCP 생태계는 초기 채택 장벽을 극복한 것으로 보이며, 더 많은 에이전트(MCP 클라이언트)가 등장하고 도메인별 작업을 해결하기 위한 MCP 서버가 매주 더 많이 개발되고 있습니다.

기술적 관점에서, MCP는 코딩 영역에서 큰 성공을 거둔 LSP와 매우 유사합니다. 장기적으로 MCP는 SQL만큼 중요해져 AI 네이티브 시대의 공통 언어가 될 수 있습니다.

참고: MCP 서버 개발자라면 내 개발 노트도 읽어보세요.

참고 자료