MCP? 이건 또 뭔가? Function Calling하고는 뭐가 다르지?

MCP란 무엇인가?

최근 Claude AI를 개발한 Anthropic에서 발표한 MCP(Model, Context, Protocol)는 대형 언어 모델(LLM)의 사용성과 확장성을 향상시키기 위한 새로운 개념입니다. 기존의 Function Calling이 외부 도구 호출에 초점을 두었다면, MCP는 모델이 실제 “작업 단위”를 더 풍부한 맥락 속에서 파악하고 수행하게 해주는 프레임워크입니다. 각 요소는 인간-컴퓨터 상호작용을 좀 더 구조적으로 만들기 위해 정의되었으며, 아래에서 각각을 자세히 살펴보겠습니다.

Model, Context, Protocol의 구성 요소

1. Model (모델)

말 그대로, 언어 모델 자체를 의미합니다. Claude나 GPT와 같은 대형 언어 모델이 여기에 해당합니다. 이전에는 모델이 입력받은 텍스트만으로 판단하고 출력을 생성해야 했지만, MCP에서는 이 모델이 더욱 구조화된 방식으로 활용됩니다.

2. Context (문맥)

현재 모델이 작동하는 환경 또는 문맥으로, 입력 텍스트 외에도 사용자의 의도, 시스템 상태, 이전 대화 기록, 수신된 데이터 등도 포함될 수 있습니다. 이 문맥은 단순 프롬프트의 범위를 넘어서며, 다양한 정보를 시스템이 인식하고 해석할 수 있도록 돕습니다.

예시: 사용자가 Claude에 “오늘 미팅 어땠어?”라고 물었을 때, Claude는 이전에 사용자가 기록해놓은 회의 내용을 문맥으로 활용해 “회의에서 결정된 사항은 다음과 같아요”라고 답변할 수 있습니다.

3. Protocol (프로토콜)

모델이 Context를 기반으로 어떻게 반응해야 하는지를 정의한 일종의 행동 규약입니다. ‘무엇을 언제, 어떻게 할 것인가’에 관한 절차나 순서를 미리 정해 놓은 것입니다. 일반적인 Function Calling은 단순 API 호출 포맷만 제공한다면, Protocol은 보다 복잡한 멀티스텝 작업도 다룰 수 있습니다. Function Calling의 경우 사용할 수 있는 API들을 JSON으로 정리해서 제공하고, 이를 바탕으로 호출할 API를 LLM이 선택하게 되는데, 이 프로토콜에서는 하나의 서비스와 같이 더 큰 범위에서 제공할 수 있는 기능들의 정보를 공통된 규약으로 제공하게 됩니다. 

예시: 사용자가 Claude에게 “내일 일정 정리해줘”라고 요청했을 때, Protocol은 먼저 달력 API로부터 일정을 가져오고, 그 데이터를 바탕으로 사용자의 개입 없이 자동 요약된 일정을 생성하도록 정의해줄 수 있습니다. 중요한 것은 제작자가 다른 여러 서비스가 공통적인 규격으로 자신들이 제공하는 기능을 제공한다는 점입니다. 

MCP 애플리케이션의 기본 구조. 출처: https://modelcontextprotocol.io/introduction

MCP와 Function Calling의 차이점

Function Calling은 GPT-4 등의 LLM에 도입된 기능으로, 외부 함수(API)를 호출해 결과를 가져오는 데 중점을 뒀습니다. 가장 대표적인 사용 예는 날씨 API를 호출하여 현재 날씨를 알려주는 것입니다. 하지만 이 방식은 다음과 같은 한계를 지닙니다:

  • 단일 호출 형태로 설계되기 때문에 멀티스텝 의사결정이 어렵다
  • 대화 흐름에서 문맥을 충분히 활용하지 못하는 경우가 많음
  • 모델이 행동 순서를 파악하거나 조정하기 어려움

반면, MCP는 모델이 단순 호출이 아닌 행동 단위(Protocol)를 통해 문제를 해결할 수 있도록 해줍니다. 즉, 모델은 하나의 프로세스를 실행하는 “행위자(actor)”가 되며, 더 복잡한 상호작용이 가능합니다.

Function Calling Diagram Steps

Funcion Calling의 예시. 출처 : OpenAI

기대할 수 있는 시나리오 예시

1. 지능형 업무 자동화 에이전트

MCP의 Context와 Protocol을 활용하면, 사용자는 Claude에게 “프로젝트 시작에 필요한 준비물을 정리하고 관련 문서를 회사 Wiki에 업로드해줘”라는 복합 요청을 할 수 있습니다. 모델은 이 요청을 Protocol 형태로 처리하며, 준비물 목록 생성 → 파일 정리 → Wiki API 호출 → 업로드 완료 보고 등의 일련의 작업을 autonomously 수행할 수 있습니다.

2. 개인화된 건강 코치

사용자가 자신의 건강 데이터를 연동해 두었다면, “이번 주 운동 계획 세워줘”라는 요청에 대해 Claude는 사용자의 위치, 건강 상태, 선호하는 운동, 날씨 등 다양한 Context를 활용한 뒤, Protocol에 따라 일정표를 작성하고 리마인더까지 설정해주는 완전한 코칭 경험을 제공할 수 있습니다.

향후의 발전 가능성

MCP는 단순히 지시를 이해하고 응답하는 단계를 넘어서, 인간처럼 생각하고 작업을 조직화하는 방향으로 언어 모델의 진화를 이끕니다. 특히 복잡한 작업을 자동화하거나 멀티 에이전트 아키텍처에서 협력하는 데 큰 역할을 할 것입니다. 현재 Claude 설치형 앱에서 지원하는 방식은, 모든 MCP 서버가 동일한 컴퓨터에 설치되어 있을 것을 요구합니다. 하지만 Cursor에서 볼 수 있듯이, 조만간 이런 방식은 URL을 활용하는 방식으로 변화할 것이고 사용자 입장에서는 무언가를 설치하지 않아도 AI가 알아서 호출하고 결과를 제공하는 방식으로 진화할 것입니다.

어찌 보면 오랜 시절 전 분산 객체라는 개념이 도입될 때 부터의 이상이 실현되는 모습을 보게 될 수도 있을지 모릅니다. 그 사용 주체가 LLM이 되는 것이 다르겠지만요. 어느 순간 SEO처럼 LLM Selection Optimization을 고민하게 될 수도 있겠네요. =)

Leave a Comment