[개념] 모델 컨텍스트 프로토콜(MCP) 완전 정복

서쿠·2025년 3월 29일
1

AI의 USB 시대가 시작된다

최근 AI 개발 생태계에서 "MCP(Model Context Protocol)"라는 키워드가 심상치 않은 주목을 받고 있습니다. ChatGPT, Claude, Cursor 등 다양한 AI 에디터와 에이전트 환경이 생겨나는 가운데, LLM(Large Language Model)과 외부 도구를 연결하는 "표준 인터페이스"가 필요하다는 인식이 높아졌고, 그 해결책으로 등장한 것이 바로 MCP입니다.

MCP는 단순한 기술 요소를 넘어, AI 도구 생태계를 하나의 통합된 플랫폼으로 확장시키는 개념입니다. AI가 단순히 텍스트 생성에 그치지 않고, 실제로 무언가를 '할 수 있는' 에이전트가 되기 위해서는 다양한 외부 도구와의 연결이 필수적인데, 이 연결을 어떻게 효율적이고 보편적인 방식으로 구현할 것인가에 대한 해답이 바로 MCP입니다.

데이터과학자 입장에서 보면, 모델이 예측을 넘어서 직접 행동(예: 파일 열기, 이메일 전송, DB 질의 등)을 하려면 실제 세계와의 연결이 필요합니다. 그 연결의 다리가 바로 MCP이며, 이는 매우 구조화된 방식으로 이루어집니다. 이 글에서는 최대한 친절하고 비전공자도 이해할 수 있도록 MCP 개념을 설명하고, 실제 사용 사례와 함께 차근차근 안내드릴 예정입니다.


1. MCP란 무엇인가?

MCP(Model Context Protocol)는 LLM이 외부 도구(툴), 데이터, 애플리케이션 등과 상호작용할 수 있게 해주는 개방형 인터페이스 규약입니다.

조금 더 쉽게 말하면, AI 모델이 인터넷 검색, 파일 저장, 코드 실행, 데이터베이스 질의 같은 일을 할 수 있도록 도구(tool)를 사용할 수 있게 해 주는 공통의 사용 설명서라고 생각하면 됩니다.

비유: USB-C 규격

MCP는 AI 생태계의 USB-C다.

스마트폰, 노트북, 카메라 등 다양한 기기들이 USB-C라는 하나의 표준 포트를 통해 충전/데이터 전송이 가능해진 것처럼, MCP는 다양한 AI 툴과 애플리케이션을 "표준 인터페이스" 하나로 LLM과 연결할 수 있도록 만들어줍니다.

즉, MCP는 LLM이 외부 기능을 '프롬프트'만으로 호출하고 제어할 수 있게 하는 API 표준이라고 볼 수 있습니다.

예전에는 모델이 파일을 저장하려면 '파일 저장용 코드'를 직접 연결해야 했지만, 이제는 MCP로 래핑된 도구만 있으면 어느 AI든 공통 방식으로 불러 사용할 수 있게 된 것입니다.


2. 왜 MCP가 필요한가?

기존 방식의 한계

예전에는 AI가 외부 도구를 쓰려면 다음과 같은 복잡한 조건이 필요했습니다:

  • 특정 프레임워크(예: LangChain, LanGraph)를 배워야 했고,
  • 각각의 도구에 맞게 커스텀 코드로 연결해야 하며,
  • 모델마다 연동 방식이 달라 중복 개발이 많았고,
  • 다양한 도구를 한 번에 연동하기 어려웠습니다.

MCP의 도입 효과

이런 비효율성을 줄이기 위해, MCP는 다음을 가능하게 만듭니다:

  • 어떤 도구든 표준화된 방식으로 연결할 수 있음
  • 어떤 AI 모델(GPT, Claude 등)이든 동일한 방식으로 호출 가능
  • 개발자든 일반 사용자든 쉽게 사용할 수 있도록 직관적인 구조
  • 도구 생태계가 '앱스토어'처럼 확장 가능함

출처: https://changelog.langchain.com/announcements/mcp-adapters-for-langchain-and-langgraph

한마디로, AI가 실세계에서 다양한 작업을 하려면 그 기반이 되는 도구들의 연결 구조가 필요하고, MCP는 이걸 모두에게 열려 있는 방식으로 제공하는 것입니다.


3. MCP의 기본 구조

관련 링크

어렵게 생각하지 말고, 사람-도구-중계자 구조로 이해하자

MCP(Multi-Agent Control Protocol)는 복잡한 도구 제어 환경을 단순화하기 위해 호스트(Host), 클라이언트(Client), 서버(Server)로 구성된 3계층 구조를 따릅니다.

출처: https://github.com/langchain-ai/langchain-mcp-adapters/tree/main

이 구조는 "AI 앱 ↔ 통역자 ↔ 도구" 관계로 이해할 수 있습니다.

🧩 전체 구조 요약

역할구성요소핵심 기능
🧠 Host (AI App)LangGraph Agent, Claude App 등사용자의 명령을 이해하고 클라이언트를 통해 실행 지시
🗣️ Client (MCP 클라이언트)Py Client, Claude Client 등Host ↔ Server 간 중간 다리 역할. 요청을 프로토콜 형식으로 번역
🛠️ Server (MCP 서버)Tool Server (Math, Data 등)실제로 작업을 수행하는 도구 실행기

1) 🧠 Host (APP, LangGraph 등)

사용자와 상호작용하며 클라이언트를 통해 요청을 전달하는 AI 애플리케이션

  • Claude, Cursor 등은 사용자의 자연어 명령을 이해하고 작업을 수행하기 위한 준비를 합니다.
  • 하지만 직접 MCP 서버와 통신할 수는 없고, 중간에 클라이언트(Client)가 필요합니다.
  • 즉, Host는 사용자의 요청을 이해한 뒤 실제 작업은 MCP 클라이언트가 대신 수행할 수 있도록 요청을 전달합니다.
    • 다르게 표현하면, 직접 실행하지 않고 클라이언트에게 작업 수행을 요청하는 역할만 합니다.

📌 예시

  • LangGraph 워크플로우에서 “뉴스 검색” 노드 실행
  • Cursor AI에서 “PDF 요약” 요청

2) 🗣️ Client (MCP 클라이언트, Protocol Adapter)

Host와 Server 간 통신을 중계하는 '통역사' 역할

  • 호스트 내부에 내장되며, 도구 서버와의 연결을 1:1로 유지합니다.
  • 서버가 이해할 수 있도록 요청을 JSON-RPC 형식으로 번역하여 전달합니다.
  • 결과를 다시 호스트가 이해할 수 있는 형태로 역변환합니다.

📌 예시

  • LangGraph에서 load_mcp_tools() 함수로 MCP 클라이언트를 로딩
  • Claude 앱 내부에 MCP client가 탑재되어 서버와 통신 수행

✅ 특징

  • 클라이언트가 없으면, Host는 MCP 서버와 직접 통신할 수 없음
  • 여러 MCP 서버에 대한 연결을 개별로 관리 (1:1 구조)
  • 일반적으로 Adapter 형태로 배포되어 손쉽게 연동 가능

3) 🛠️ Server (MCP Servers)

요청을 실제로 ‘처리’하는 기능 실행 주체

  • "PDF 요약", "DB 질의", "날씨 확인" 등의 실제 기능 로직이 구현된 서버입니다.
  • 하나의 서버 안에 여러 개의 도구를 가질 수 있으며, 각각의 도구는 독립된 API처럼 동작합니다.
  • SSE 또는 STDIO 방식으로 클라이언트와 응답을 주고받습니다.

📌 예시

  • Math 서버: add(), divide() 등 수치 계산 기능
  • Data 서버: search_documents(), get_summary() 등 정보 조회 기능

✅ 특징

  • 클라이언트가 요청한 명령을 실제 수행하고 응답 전달
  • 도구 단위로 구분된 인터페이스 제공
  • 로컬에서도 작동 가능, 또는 외부 API 서버로 운영 가능

데이터과학자 입장에서 이해하면, 마치 pandassklearn에서 함수 호출할 때, 함수 이름, 인자, 결과값의 포맷을 맞춰야 하듯 MCP도 그런 인터페이스 규격을 정해놓은 것입니다.


4. MCP의 동작 방식 – 아주 쉽게 설명하기

실제 사용 예시: "내 컴퓨터에서 큰 파일 찾아줘"

  1. 사용자는 Claude 같은 AI에게 말합니다:

    "내 컴퓨터에서 가장 큰 파일 5개 알려줘"

  2. Claude는 이 요청을 보고 "파일 검색 툴이 필요하겠군"이라고 판단합니다.

  3. Claude는 자신이 연결된 도구 중에서 '파일 검색 툴(MCP Server)'이 있는지 찾습니다.

  4. 찾은 툴에 대해 사용자에게 물어봅니다:

    "이 도구를 사용해도 될까요?"

  5. 사용자가 허용하면 Claude는 해당 도구에 MCP 방식으로 요청을 보냅니다.

  6. 도구가 응답합니다: "이런 파일들이 있어요~"

  7. Claude는 이걸 다시 자연어로 예쁘게 정리해서 우리에게 보여줍니다.

이 모든 과정은 기존 방식처럼 복잡한 코드 작성 없이, 프롬프트 기반 대화로 이루어집니다. 그리고 도구와 AI 간의 연결은 모두 MCP 규약으로 일관되게 처리되므로, 매우 안정적이고 확장 가능하게 설계됩니다.


5. 왜 지금 MCP가 핫한가?

  • Claude, Cursor, AIXE 등 주요 플랫폼에서 정식 지원
  • 도구들을 자유롭게 등록할 수 있는 MCP 마켓플레이스 급성장
  • 누구나 Python만 알면 툴을 만들어 등록할 수 있음
  • 도구 생태계가 커지면 사용자도 더 많아짐 → 선순환 구조

비개발자에게도 중요한 변화

기존에는 개발자가 도구를 만들어야만 AI가 행동할 수 있었지만,
이제는 그 도구들이 마켓플레이스에 올라와 있기 때문에,
데이터과학자나 일반 사용자도 MCP 마켓에서 필요한 기능을 바로 가져다 쓸 수 있게 된 것입니다.


6. MCP 개발은 어렵지 않을까? → 놀라울 만큼 쉽다

다음은 가장 기본적인 MCP 툴 예제입니다. 이름을 받아 인사말을 출력해주는 도구입니다:

from fastmcp import tool, FastMCP
from fastapi import FastAPI

app = FastAPI()
mcp = FastMCP(app)

@tool(name="hello", description="인사말을 출력합니다")
def hello(name: str):
    return f"안녕하세요, {name}님!"

이처럼 MCP 툴은 실제 기능을 함수로 구현한 후, @tool이라는 데코레이터만 붙이면 자동으로 MCP 형식이 됩니다.

이제 이 툴을 실행해 MCP 서버로 띄우고, 클라이언트에 등록하면 Claude나 Cursor에서 이 기능을 불러 쓸 수 있게 됩니다.

데이터과학자의 관점에서 보면, 예전에 Flask나 FastAPI로 간단한 API 서버 만들던 경험이 있다면 MCP 툴 개발은 매우 친숙하고 단순합니다.


7. 미래 전망: 에이전트 생태계의 중심으로

우리는 지금 AI 생태계가 단순한 텍스트 생성에서 도구 실행, 행동 기반 작업으로 진화하는 시점에 있습니다. MCP는 이 흐름의 핵심 기술로 자리 잡고 있으며, 마치 앱스토어, USB-C처럼 플랫폼 독립적인 표준이 될 가능성이 큽니다.

💌 앞으로 예상되는 변화

  • 기업 솔루션, SaaS 제품이 MCP 툴로 래핑되어 AI에 연결됨
  • 사용자 맞춤형 에이전트를 만들 때 MCP 도구 연결이 기본
  • 오픈소스 툴, 비즈니스 자동화 도구가 MCP화되어 사용 가능

💌 데이터과학자에게 의미하는 바

  • 자신이 만든 분석 함수, 데이터 파이프라인도 MCP 툴로 래핑 가능
  • 데이터 접근, 정제, 시각화 등 반복 작업을 AI에게 시킬 수 있음
  • GPT나 Claude 기반 에이전트에게 '내 툴'을 맡기는 것이 현실화됨

마치며

MCP는 단순한 기술 규약이 아닙니다.

이것은 AI 모델이 진짜로 '일을 할 수 있는' 세상으로 가는 문이며, 그 문을 여는 공통 키(key)입니다. USB-C가 모든 기기를 하나로 연결한 것처럼, MCP는 모든 AI와 도구를 하나로 묶는 생태계의 시작입니다. 데이터과학자든, 개발자든, 일반 사용자든 지금 이 흐름에 올라타야 할 이유는 분명합니다.

아직 늦지 않았습니다!!
지금부터 MCP 마켓플레이스와 예제 툴들을 실험해 보면서, 당신만의 에이전트 환경을 만들어 보세요💡

읽어주셔서 감사합니다.

profile
Always be passionate ✨

0개의 댓글