일타 저스틴의 MCP 강의 1. MCP란?
자, 수강생 여러분 반갑습니다! 대한민국 최고의 일타 강사, 저스틴입니다. 여러분이 왜 이 자리에 있는지 저는 정확히 알고 있습니다. Claude, GPT, Gemini 같은 거대 언어 모델(LLM)의 엄청난 힘을 직접 목격했기 때문이죠. 이걸로 멋진 결과물도 만들고, 창의적인 글을 생성하고, 심지어 꽤 괜찮은 코드까지 짜는 걸 보셨을 겁니다.
하지만 동시에, 거대한 벽에 부딪힌 경험도 분명히 있으실 겁니다.
컴공과 1학년 학생이라면 눈 감고도 할 간단한 일을 LLM에게 시켰다가 처참하게 실패하는 모습을 본 적 있으시죠? “와, 이거 대단한데?” 하는 경외감과 “아니, 이걸 못한다고?” 하는 좌절감을 동시에 느끼면서, 이 강력한 모델들이 사실은 창문도, 도구도 없는 디지털 방 안에 갇혀 있다는 것을 깨달으셨을 겁니다.
오늘 강의는 바로 그 방의 문을 부숴버리는 방법에 대한 이야기입니다. 여러분의 AI에게 현실 세계와 상호작용할 도구를 쥐여주는 것, 그리고 그 모든 것의 열쇠가 될 혁신적인 새 표준, 바로 **MCP(Model Context Protocol)**에 대한 것입니다.
LLM의 치명적인 약점, ‘아킬레스건’
LLM은 언어와 패턴의 대가이지만, 컴퓨터가 하는 방식대로 ‘계산’하지는 않습니다. 가장 확률이 높은 토큰 순서를 ‘예측’할 뿐이고, 그건 종종 그냥 ‘추측’에 불과하다는 거죠.
LLM이 다음과 같은 문제에 취약합니다.
- 정확한 산수: 10자리 숫자 두 개를 곱하라고 시키면, 아주 자신감 넘치게 틀린 답을 내놓습니다.
- 실시간 정보: LLM의 지식은 훈련 시점에 멈춰 있습니다. 오늘 날씨, 현재 주가, 최신 뉴스를 전혀 알지 못하죠.
- 개인 데이터 접근: 여러분의 로컬 파일, 회사 데이터베이스, 개인 캘린더를 읽을 수 없습니다.
한마디로 LLM의 세계는 현실 세계와 완벽하게 격리된 ‘순수한 텍스트의 세계’인 셈입니다.
임시방편 해결책, ‘함수 호출(Function Calling)’
그렇다면 이 간극을 어떻게 메워왔을까요? 지금까지의 최선책은 ‘함수 호출’ 또는 ‘도구 사용’이라 불리는 방식이었습니다.
아이디어는 간단합니다. LLM을 감싸는 프로그램을 하나 만드는 거죠. 일종의 ‘지휘자(Orchestrator)’ 역할을 하는 프로그램입니다. 예를 들어 문자열이 몇 개의 문자를 포함하고 있는 지 알려고 한다면,
- 사용자의 질문을 받습니다.
- 질문과 함께 사용 가능한 ‘도구’ 목록(예:
len
함수)을 LLM에게 전달합니다. - LLM은 직접 답하는 대신, “나
character_counter
라는 도구를 이 문자열에 사용해야겠어”라는 특별한 메시지를 보냅니다. - 여러분이 만든 ‘지휘자’ 프로그램이 이 메시지를 보고, 실제 파이썬
len()
함수를 호출합니다. - 결과값(488)을 받아서 다시 LLM에게 전달합니다.
- 이제서야 LLM은 정확한 정보를 바탕으로 “이 문자열은 정확히 488개의 문자를 포함하고 있습니다”라고 최종 답변을 생성합니다.
이렇게 하는 것도 대단하지만, 이런 걸 ‘덕테이프 해결책(Duct Tape Solution)’ 이라고 부릅니다. 임시방편이라는 거죠. 표준도 없고, 모델마다 방식도 제각각입니다.
게임 체인저의 등장, AI의 USB-C 포트 ‘MCP’
자, 드디어 오늘의 주인공이 등장합니다. 2024년, Claude 모델을 만든 Anthropic이라는 회사가 MCP(Model Context Protocol) 라는 명세를 발표합니다.
‘AI를 위한 USB-C’ 라는 비유는 탁월 합니다. USB-C가 나오기 전을 생각해 보세요. 스마트폰 충전 케이블, 카메라 케이블, 외장 하드 케이블… 서랍 속에 온갖 종류의 케이블이 뒤엉켜 있었죠. 하지만 USB-C가 이 모든 것을 하나의 표준 커넥터로 통합했습니다. 우리는 그냥 꽂기만 하면 전원이든 데이터든 알아서 작동할 거라고 믿습니다.
MCP가 바로 AI 도구를 위해 똑같은 역할을 합니다. AI 모델이 외부 도구나 데이터 소스를 발견하고 통신하는 방법을 표준화한 ‘공개 프로토콜’인 것이죠. 그 도구가 간단한 파이썬 함수든, 복잡한 API든, 데이터베이스 쿼리든 상관없습니다. MCP라는 언어로 ‘말’할 수만 있다면, 어떤 MCP 호환 AI든 거기에 연결할 수 있습니다.
이건 그냥 이론이 아닙니다. 마이크로소프트는 2025년 빌드 행사에서 MCP를 윈도우 11의 AI 에이전트를 위한 기본 레이어로 통합하겠다고 발표했고, 구글은 자사 클라우드에 MCP 서버를 배포하는 튜토리얼을 공개하고 있습니다. 업계 전체가 MCP를 중심으로 뭉치고 있는 겁니다.
파이썬 개발자를 위한 두 개의 검, mcp vs fastmcp
자, 이제 우리 파이썬 개발자들은 뭘로 시작해야 할까요? 이 바닥에는 아주 흥미로운 이야기를 가진 두 개의 라이브러리가 있습니다.
1. 공식 라이브러리: mcp
MCP를 만든 Anthropic이 직접 관리하는 공식 파이썬 라이브러리입니다. 특징은 다음과 같습니다.
- 엄격함: MCP 명세를 칼같이 준수합니다.
- 표준: 모든 구현의 기준이 되는 ‘레퍼런스’입니다.
- 활발한 개발: 프로토콜을 정의하는 팀이 직접 관리합니다. 안정적이고 표준을 완벽히 따르는 ‘교과서’ 같은 존재라고 할 수 있습니다.
2. 실전 끝판왕: fastmcp
fastmcp
의 스토리는 전형적인 오픈소스 성공 신화입니다. ‘제레마이어 로윈’이라는 개발자가 MCP 서버를 놀랍도록 간단하고 파이썬답게 만들 수 있는 고수준 라이브러리 fastmcp
를 만들었습니다. 이게 너무 좋아서 초기 버전은 아예 공식 mcp
라이브러리에 통합되기도 했습니다.
하지만 그는 멈추지 않았습니다. 공식 명세보다 더 빠르게 혁신하고, 더 많은 기능을 추가하고 싶었던 그는 독립적인 새 라이브러리를 만들었고, 이것이 바로 지금의 fastmcp
입니다.
- 자유로움: 아직 공식 명세에는 없는 유용한 기능들을 많이 포함합니다.
- 고수준: 데코레이터 하나로 파이썬 함수를 뚝딱 도구로 만들어버리는 아름답고 깔끔한 API를 제공합니다.
- 높은 인기: 훌륭한 문서와 사용 편의성 덕분에 커뮤니티의 사랑을 듬뿍 받고 있습니다. 심지어 구글 공식 튜토리얼에서도 이 라이브러리를 사용합니다.
어떤 걸 써야 할까요? mcp
가 좀 더 정석적이고 절차적이라면, fastmcp
는 훨씬 간결하고 직관적입니다.
결론은? “둘 다 알아야 한다!” 입니다. 이 생태계는 아직 초창기이고, mcp
가 안정적인 기반을 제공하는 동안 fastmcp
는 개발의 편의성과 가능성의 경계를 넓히고 있기 때문입니다. 그래서 이 책에서는 두 라이브러리를 모두 다룬다고 합니다. 우리도 그 길을 따라갈 겁니다.
자, 오늘 정말 중요한 첫발을 내디뎠습니다. 코딩에 들어가기 전에, 오늘 배운 핵심 개념들을 머릿속에 각인시키고 끝내겠습니다.
- LLM은 강력하지만 근본적인 한계가 있다. 정확한 계산이나 실시간 데이터 접근이 불가능하다.
- 기존의 ‘함수 호출’은 표준이 없는 임시방편이다.
- MCP는 AI를 위한 USB-C 같은 ‘공개 표준’이다. 어떤 AI든 MCP를 지원하는 도구와 연결할 수 있다.
- MCP는 ‘우연한 만능 플러그인’ 생태계를 만들어낸다. 한 가지 목적으로 만든 도구를 모두가 재사용할 수 있다.
- 파이썬 개발자에게는 공식 라이브러리
mcp
와 실전 끝판왕fastmcp
라는 두 개의 핵심 도구가 있다.