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를 통해 데이터에 접근하고자 하는 AI 도구(채팅 클라이언트, IDE, 에이전트)
- MCP 클라이언트: 서버와 1:1 연결을 유지하는 프로토콜 클라이언트
- MCP 서버: 표준화된 Model Context Protocol을 통해 특정 기능을 노출하는 프로그램
- 로컬 데이터 소스: 정보를 포함하는 로컬 데이터베이스, 파일 및 서비스
- 원격 서비스: MCP 서버가 연결할 수 있는 외부 API 또는 서비스
이를 고전적인 AI 사용 사례인 텍스트-SQL 변환으로 설명해 보겠습니다. 텍스트-SQL은 자연어를 SQL로 변환합니다. MCP 이전의 일반적인 구현:

- SQL 클라이언트가 대상 데이터베이스에서 스키마를 가져옴
- SQL 클라이언트가 스키마를 포함한 프롬프트를 LLM에 전송
- LLM이 SQL로 응답
- SQL 클라이언트가 대상 데이터베이스에 대해 SQL을 실행
MCP 없이는 모든 SQL 클라이언트가 지원하는 모든 데이터베이스에 대해 이를 구현해야 합니다. MCP가 있으면 SQL 클라이언트는 MCP 클라이언트 프로토콜만 구현하면 되고, 각 데이터베이스 벤더는 MCP 서버를 한 번만 구현하면 됩니다.

본질적으로, MCP라는 또 다른 추상화 수준을 통해 M×N 문제를 M+N 솔루션으로 전환합니다.
핵심 기본 요소
MCP는 MCP 서버가 제공하는 세 가지 기본 요소를 중심으로 구축됩니다:
- Resources: 참조하고 검색할 수 있는 데이터 객체. 문서, 이미지, 데이터베이스 스키마 및 기타 구조화된 데이터가 포함됩니다.
- Prompts: 특정 작업이나 도메인에 최적화된, 언어 모델과의 효과적인 상호작용을 생성하기 위한 템플릿.
- Tools: 데이터베이스 쿼리, API 호출, 데이터 처리와 같은 작업을 수행하기 위해 언어 모델이 실행할 수 있는 함수.
텍스트-SQL 예제에 매핑하면:

MCP 기본 요소 | 텍스트-SQL 예제 |
---|---|
Resources | 데이터베이스에서 가져온 스키마 정보 |
Prompts | 모델이 올바른 SQL을 생성하도록 돕는 데이터베이스 도메인 특화 프롬프트 |
Tools | 데이터베이스에 대해 SQL 명령 실행 |
주요 이점
MCP는 AI 시스템 개발에 여러 중요한 이점을 제공합니다:
- 개발 시간 단축: 개발자는 각 데이터 소스나 도구에 대한 맞춤형 통합을 구축하는 대신 일반적인 작업을 위해 미리 구축된 MCP 서버를 활용할 수 있습니다.
- 상호 운용성 향상: MCP로 구축된 애플리케이션은 호환되는 모든 도구 및 데이터 소스와 원활하게 작동할 수 있어, 진정으로 조합 가능한 생태계를 만듭니다.
- 모듈화: 디버깅, 인증, 감사, 체이닝과 같은 범분야적 관심사를 표준화하고 한 번 구현한 다음 생태계 전체에서 재사용할 수 있습니다.
기술적 선구자
MCP는 다른 영역에서 유사한 문제를 해결한 이전 표준의 성공을 기반으로 합니다:
- SQL: 데이터베이스와 상호 작용하는 표준화된 방법을 만들어 애플리케이션이 모든 SQL 호환 데이터베이스와 작동할 수 있게 했습니다.
- Docker: 애플리케이션 패키징 및 배포를 표준화하여 애플리케이션을 다양한 환경에서 이식 가능하게 만들었습니다.
- LSP(Language Server Protocol): 이름 유사성은 우연이 아닙니다 — LSP는 코드 완성, 구문 강조, 오류 검사와 같은 기능을 위해 코드 편집기가 다양한 프로그래밍 언어 서버와 통신하는 방법을 표준화했습니다.
이 표준들은 모두 클라이언트를 구현에서 분리하는 추상화 계층을 도입하여 M×N 문제를 해결하고, 통합 복잡성을 크게 줄였습니다.
개방성
유명한 xkcd 927 만화는 또 다른 표준을 만드는 도전을 상기시킵니다:

그러나 MCP는 진정한 개방성의 유망한 징후를 보여주고 있습니다.
MCP는 Anthropic에 의해 발명되었지만, 그들은 이를 별도의 조직(github.com/modelcontextprotocol) 아래에 두어, 독점적 솔루션이 아닌 개방형 표준으로 만들겠다는 약속을 보여주고 있습니다.
이 글을 쓰는 시점(2025년 3월 13일)에서 작업 그룹에는 5명의 구성원이 있습니다:

JetBrains의 Alexander Sysoev를 제외하고 나머지 4명은 Anthropic에서 일하고 있습니다. 이 균형은 프로젝트가 아직 초기 단계이며, 한 조직의 핵심 팀이 초기 개발 동안 명확한 방향을 제공하는 데 도움이 되기 때문에 이해할 수 있습니다.
미래 전망
MCP는 아직 초기 단계입니다. 성공적인 프로토콜을 만드는 것은 시장을 구축하는 것과 비슷합니다 - 임계 질량에 도달하려면 공급자와 소비자 모두가 필요합니다.
그러나 낙관적인 이유가 있습니다. MCP 생태계는 초기 채택 장벽을 극복한 것으로 보이며, 더 많은 에이전트(MCP 클라이언트)가 등장하고 도메인별 작업을 해결하기 위한 MCP 서버가 매주 더 많이 개발되고 있습니다.
기술적 관점에서, MCP는 코딩 영역에서 큰 성공을 거둔 LSP와 매우 유사합니다. 장기적으로 MCP는 SQL만큼 중요해져 AI 네이티브 시대의 공통 언어가 될 수 있습니다.
참고: MCP 서버 개발자라면 내 개발 노트도 읽어보세요.