Anthropic에서 Model Context Protocol(MCP)를 만든 저스틴 스파-서머스와 데이빗 소리아 파라가 유튜브 채널 Latent Space와 진행하여 2025년 4월 4일 공개된 인터뷰 내용을 리뷰해봤습니다.
MCP: Model Context Protocol
Anthropic의 Model Context Protocol(MCP)는 AI 애플리케이션을 확장하고 외부 데이터 소스와 연결하는 방법을 표준화하는 오픈 프로토콜입니다.
데이빗 소리아 파라 David Soria Parra
데이빗은 Anthropic에서 내부 개발자 도구를 중점적으로 개발한 소프트웨어 엔지니어입니다. 그는 2024년 7월경에 Anthropic에 합류한 후 MCP 개발에 참여하였습니다. 그는 입사 후 2-3개월 동안 주로 내부 개발자 도구 작업을 하면서 기존 도구의 한계를 경험했습니다.
데이빗은 특히 오픈 소스 경험이 풍부하며, 개발자 도구 분야에서 다양한 경험을 가지고 있습니다. MCP 아이디어 이전에 그는 LSP(Language Server Protocol) 관련 프로젝트를 내부적으로 작업하고 있었으며, 이러한 경험이 MCP 개발에 중요한 영향을 미쳤습니다.
그는 또한 Zed 에디터에서 초기 MCP 구현을 직접 작성했으며, 이는 공식 발표보다 약 한 달 반 전에 이미 오픈 소스 프로젝트로 공개되어 있었습니다. 그의 접근 방식은 주로 개발자들이 직면하는 실질적인 문제를 해결하는 데 초점을 맞추고 있습니다.
저스틴 스파-서머스 Justin Spahr-Summers
저스틴은 Anthropic에서 주로 제품이나 인프라 관련 작업을 담당해온 엔지니어입니다. 데이빗과 달리 저스틴은 LSP 경험이 상대적으로 적었지만, AI 애플리케이션 개발에 대한 깊은 이해를 가지고 있었습니다.
데이빗이 MCP 아이디어를 처음 제안했을 때, 저스틴은 즉시 이 아이디어에 흥미를 보이고 함께 개발을 시작했습니다. 저스틴은 특히 MCP의 초기 통합 작업과 Cloud Desktop의 구현에 중점적으로 기여했습니다.
그는 인터뷰에서 애플리케이션 개발자 관점에서 MCP를 설계했다고 언급했으며, 이는 프로토콜의 사용자 경험에 대한 그의 중점을 보여줍니다. 또한 AI 모델의 능력을 최대한 활용하면서도 과도한 명세를 피하는 균형을 중요시했습니다.
공동 창작자로서의 협업
두 엔지니어는 2024년 7월부터 약 한 달 반 동안 MCP를 개발했으며, 공식 발표는 2024년 11월 25일에 이루어졌습니다. 그들의 협업은 애플리케이션 개발자들이 AI 모델과 더 효과적으로 통합할 수 있는 방법을 찾으려는 공통된 비전에서 시작되었습니다.
그들의 접근 방식은 실용적이면서도 미래 지향적이었습니다. 공식 발표 약 한 달 전에 있었던 Anthropic 내부 해커톤에서 MCP에 대한 관심이 크게 증가했으며, 이는 3D 프린터를 제어할 수 있는 MCP 서버와 같은 다양한 애플리케이션의 개발로 이어졌습니다.
저스틴과 데이빗은 모두 AI 애플리케이션이 더 상태 기반(stateful)이 될 것이라는 비전을 공유하며, 이를 위해 MCP를 설계했습니다. 그들은 또한 MCP가 단일 회사의 프로토콜이 아닌 오픈 커뮤니티 프로젝트로 발전하길 희망하고 있습니다.
이 두 엔지니어의 협업은 AI 애플리케이션 개발 방식에 중요한 변화를 가져왔으며, 그들이 설계한 프로토콜은 AI 생태계의 상호운용성을 크게 향상시키는 토대를 마련했습니다.
AI 애플리케이션을 위한 USB-C 포트
"MCP는 기본적으로 AI 애플리케이션이 자신을 확장하거나 플러그인 생태계와 통합할 수 있도록 설계된 것입니다. 용어는 약간 다르지만, 우리는 클라이언트-서버 용어를 사용합니다. 결국에는 AI 애플리케이션의 기능을 확장하고 향상시키는 것입니다." - 저스틴 스파-서머스
MCP는 모델 자체가 아닌 AI 애플리케이션에 초점을 맞추고 있습니다. 데이빗은 이를 "AI 애플리케이션의 USB-C 포트"라고 표현했는데, 이는 다양한 생태계와 연결되는 보편적인 커넥터 역할을 한다는 의미입니다. 중요한 특징은 양방향 통신이 가능하다는 점입니다.
개발자들의 좌절에서 시작된 혁신
"이것은 큰 전략의 일부가 아닙니다. 2024년 7월로 돌아가면, 저는 Anthropic에 입사한 지 몇 개월 밖에 되지 않았고, 주로 내부 개발자 도구 작업을 하고 있었습니다." - 데이빗 소리아 파라
MCP의 탄생은 데이빗의 개발자 도구 작업 경험에서 비롯되었습니다. 그는 Cloud Desktop과 같은 훌륭한 도구가 있지만, 확장 가능성이 제한되어 있고, IDE에서는 파일 시스템과 다른 기능을 사용할 수 있지만 Cloud Desktop의 아티팩트와 같은 기능이 없다는 점에 좌절감을 느꼈습니다.
이러한 좌절감이 데이빗이 MCP의 기본 아이디어를 구상하게 만들었고, 저스틴과 함께 이를 실현시켰습니다. 그들은 M*N 문제(여러 애플리케이션과 여러 통합 기능 사이의 연결 문제)를 해결하기 위해 프로토콜을 개발했습니다.
LSP에서 영감을 받다: 언어 서버 프로토콜의 교훈
"우리는 확실히 LSP에서 많은 영감을 받았습니다. 데이빗은 개발자 도구 작업을 통해 저보다 LSP에 대한 경험이 더 많았죠." - 저스틴 스파-서머스
MCP는 언어 서버 프로토콜(LSP)에서 많은 영감을 받았습니다. LSP는 다양한 IDE와 프로그래밍 언어 간의 M*N 문제를 해결했습니다. MCP는 이 원칙을 AI 애플리케이션과 확장 프로그램에 적용했습니다.
그들은 JSON-RPC와 양방향성 개념을 채택했지만, AI 애플리케이션에 맞게 새로운 경로를 개척했습니다. LSP의 "프레젠테이션 중심" 접근 방식도 채택했는데, 이는 기능이 어떻게 표현되는지에 초점을 맞추는 것입니다.
MCP의 핵심 프리미티브: 도구 그 이상의 것
"모든 구성 요소에 대해 먼저 애플리케이션 개발자 관점에서 생각했습니다. 통합으로부터 받고 싶은 다양한 것들이 무엇인가에 대해 생각했죠." - 저스틴 스파-서머스
MCP의 핵심 구성 요소는 다음과 같습니다:
- 도구(Tools): 모델에 직접 추가되는 도구나 함수 호출
- 리소스(Resources): 모델 컨텍스트에 추가할 수 있는 데이터나 컨텍스트 조각
- 프롬프트(Prompts): 사용자가 시작하거나 대체할 수 있는 텍스트나 메시지
각 구성 요소는 애플리케이션에서 다르게 표현될 수 있으며, 이는 애플리케이션 개발자가 차별화할 수 있는 부분입니다.
도구 vs 리소스: 언제 무엇을 사용해야 할까
"도구는 항상 모델에 의해 시작되도록 설계되었습니다. 리소스는 더 유연합니다." - 저스틴 스파-서머스
도구와 리소스의 주요 차이점은 누가 그것을 시작하는가입니다:
- 도구: 모델의 재량에 따라 시작되며, 모델이 적절한 도구를 찾아 적용합니다.
- 리소스: 더 유연하며, 사용자나 AI 애플리케이션이 시작할 수 있습니다. URI로 고유하게 식별됩니다.
데이빗은 자신의 첫 번째 Zed 구현이 실제로 도구가 아닌 프롬프트 구현이었음을 언급했습니다. 이를 통해 사용자는 Sentry와 같은 플랫폼에서 백트레이스를 컨텍스트 창으로 가져올 수 있었습니다.
OpenAPI vs MCP: 상호 보완적인 관계
"OpenAPI 사양은 훌륭한 도구이지만, 근본적으로 LLM으로 하고 싶은 일에는 너무 세분화되어 있습니다. MCP의 기본 구성요소와 같은 AI 특화된 상위 수준의 개념을 표현하지 않죠." - 저스틴 스파-서머스
MCP와 OpenAPI는 경쟁 관계가 아닌 상호 보완적인 관계입니다:
- OpenAPI: API 명세를 정의하는 데 유용하며 모델이 읽고 해석하기 쉽습니다.
- MCP: AI 애플리케이션과의 풍부한 상호작용에 적합합니다.
커뮤니티에서는 이미 두 가지를 연결하는 브리지를 구축했습니다. OpenAPI 사양을 MCP로 변환하거나 그 반대로 할 수 있습니다.
MCP 서버 구축: 간단하게 시작하기
"MCP의 가장 좋은 점 중 하나는 구축하는 것이 매우 쉽다는 것입니다. 30분 내에 시작할 수 있죠." - 데이빗 소리아 파라
MCP 서버 구축을 시작하는 방법에 대한 조언:
- 선호하는 언어를 선택하고 해당 SDK를 사용합니다.
- 개인적으로 중요한 것과 모델이 상호작용하길 원하는 도구를 구축합니다.
- 간단한 설명을 작성하고 모델에 제공합니다.
- 표준 I/O 프로토콜 전송을 통해 애플리케이션에 추가합니다.
저스틴은 AI를 활용하여 코딩 과정을 돕는 것도 추천했습니다. SDK 코드를 LLM의 컨텍스트 창에 넣고 MCP 서버 구축을 요청하면 놀라운 결과를 얻을 수 있습니다.
조합 가능성과 에이전트: MCP의 미래
"MCP 서버가 클라이언트인 동시에 서버인 MCP 서버를 쉽게 상상할 수 있습니다. 그러면 재귀적인 속성을 갖게 되죠." - 데이빗 소리아 파라
MCP의 조합 가능성에 대한 두 가지 측면:
- 양방향성: 서버는 LLM 상호작용을 소유한 클라이언트에게 완성을 요청할 수 있습니다. 이를 통해 모델 독립적인 방식으로 요약과 같은 작업을 수행할 수 있습니다.
- 재귀적 속성: MCP 서버는 동시에 클라이언트가 될 수 있으며, 다른 MCP 서버를 사용하여 더 풍부한 경험을 만들 수 있습니다. 이를 통해 MCP 서버의 방향성 비순환 그래프(DAG)를 구축할 수 있습니다.
이러한 접근 방식은 에이전트 구축에 매우 유용할 수 있지만, 단순한 프록시와 에이전트 사이에는 차이가 있습니다. 창시자들은 MCP와 에이전트 사이의 관계가 아직 정의되지 않은 열린 질문이라고 말합니다.
확장성과 대중화: 얼마나 많은 MCP 서버를 동시에 사용할 수 있을까?
"모델에 따라 다르고, 도구가 얼마나 잘 명명되고 설명되었는지에 따라 다릅니다." - 저스틴 스파-서머스
동시에 사용할 수 있는 MCP 서버의 최대 수에 대한 명확한 한계는 없습니다. 이는 사용 중인 모델, 도구의 명명 및 설명 방식, 그리고 도구 간의 중복 정도에 따라 달라집니다.
Claude의 경우 수백 개의 도구를 안전하게 지원할 수 있지만, 시간이 지남에 따라 이 능력은 향상될 것으로 예상됩니다. 애플리케이션 개발자는 도구 집합을 필터링하거나 작은 LLM을 실행하여 관련성이 높은 도구만 더 큰 모델에 전달하는 방법을 구현할 수 있습니다.
거버넌스와 오픈 소스: MCP의 미래 방향
"우리는 이것이 오픈 프로젝트가 되길 진심으로 원합니다. Anthropic에서 시작되었고 David와 제가 Anthropic에서 일하지만, 이것이 'Anthropic의 프로토콜'로 인식되길 원하지 않습니다." - 저스틴 스파-서머스
MCP 팀은 오픈 소스 접근 방식을 중요시하며, 이미 여러 회사의 직원들이 저장소에 대한 커밋 액세스 권한을 가지고 있습니다:
- 파이토치(Pyantic)의 직원들은 Python SDK에 대한 커밋 액세스 권한을 가지고 있습니다.
- Microsoft에서 C SDK를 개발했습니다.
- JetBrains에서 Kotlin SDK를, Spring AI에서 Java SDK를 개발했습니다.
그러나 팀은 AI와 같은 빠르게 움직이는 분야에서 과도한 프로세스가 프로젝트를 지연시킬 수 있다는 점을 우려하며, "위원회에 의한 죽음"을 피하고자 합니다.
MCP 서버 위시리스트: 더 많은 샘플링 클라이언트
"더 많은 샘플링 클라이언트가 필요합니다. 그리고 Reddit 스레드나 Eve Online에서 지난 주에 무슨 일이 있었는지 요약해주는 서버도 필요합니다." - 데이빗 소리아 파라
창시자들의 위시리스트:
- 더 많은 샘플링 클라이언트: 모델 독립적인 방식으로 작동하는 클라이언트
- 전체 스펙을 지원하는 클라이언트: 설계된 모든 프리미티브를 구현하는 클라이언트
- 게임 엔진 통합: Godot 엔진과 같은 게임 개발 도구와의 통합
결론: MCP의 가능성
저는 MCP가 나오자마자 접해본 케이스인데요, 뉴스레터 작성에 적용해보며 그 가능성을 확인했습니다. 다만, 한가지 아쉬운 점은 MCP를 사용하려면 Claude Desktop을 써야만 한다는 것이었는데요. 최근 Cursor, Windsurf 등 MCP를 지원해주는 프로그램들이 늘어나고, Figma MCP, Blender MCP 등 다양한 MCP Server들이 등장하면서 본격적으로 인기를 끌기 시작했습니다.
이 영상은 제가 만든 MCP 시연영상인데요, Youtube 영상의 링크를 주면 텍스트로 풀어주는 Youtube Transcriber Server와 영상속 인물과 기술용어 들에 대한 검색을 해주는 SerpApi Server를 직접 만들어서 사용했습니다. Server 생성이 정말로 쉽게 때문에 2개의 MCP Server를 만드는 데에 30분 밖에 걸리지 않았고, 이 Tool을 이용하니 뉴스레터 초안을 작성하는데 영상처럼 2분밖에 걸리지 않았습니다.
트위터에 올린 제 데모에는 데이빗이 직접 Like를 눌러주기도 했습니다.
MCP의 가장 큰 장점은 Tool에 대한 정의를 더 이상 개발자가 신경쓸 필요가 없다는 것인데요. Tool에 대한 정의는 이제 AI 애플리케이션 개발자가 아니라 MCP Server 개발자가 고민할 문제가 되었고, MCP Server 개발자는 자신의 Server가 많이 이용되게 하기 위해 자연스럽게 Tool 정의를 잘 써야합니다. 그동안 AI 어플리케이션은 한 팀이나 개인이 프롬프트와 Tool, RAG 등을 모두 관리해야 했는데, MCP 덕분에 “분업”이 가능해졌습니다.
분업이 가능해지자 전문화가 곧바로 뒤따랐습니다. Figma MCP, Blender MCP가 등장했고, MCP MCP에 올라탔습니다. 영리하고 손이 빠른 사람들은 곧 다가오는 시대의 Github이 될거라며 Smithery와 같은 MCP Server 저장소를 만들었습니다.
Model Context Protocol은 AI 애플리케이션과 외부 세계 사이의 상호작용 방식을 표준화함으로써 AI 생태계를 풍부하게 만들고 있습니다. 간단한 도구 호출을 넘어서 다양한 프리미티브와 조합 가능성을 통해, MCP는 AI 애플리케이션의 미래를 위한 강력한 기반을 제공합니다.
이 프로토콜은 여전히 초기 단계에 있지만, 그 잠재력은 이미 분명히 드러나고 있습니다. 개발자들이 더 많은 클라이언트와 서버를 구축하고 다양한 사용 사례를 탐색함에 따라, MCP 생태계는 계속해서 성장하고 진화할 것입니다.
의견을 남겨주세요