MCP, Model Context Protocol 이란?

조민수·2025년 5월 28일
0

AI

목록 보기
4/7

최근 가장 핫하게 떠오른 기술은 단연코 MCP이다.
MCP(Model Context Protocol)은 뭐길래 이렇게 난리이며,
LLM 사용의 C타입은 도대체 무엇을 의미하는 건지 공부해보았다.


MCP란

MCP는 Model Context Protocol의 약자로, Claude를 개발한 Antrophic이 만든 프로토콜의 일종으로,
LLM이 외부 시스템과 데이터소스에 실시간으로 연결하는 표준 프로토콜이다.
이를 통해, AI 시스템와 외부 데이터 간의 표준화된 인터페이스가 구축되었다는 것이 가장 큰 의의이다.

  • Antrophic은 이러한 방식을 USB-C 타입 포트를 제공한다고 설명한다.

그럼 MCP 이전엔 AI Application이 다른 데이터 소스에 연결하지 못했는가?

  • 그렇지 않다. 이전엔 직접 API를 구축하는 자체 개발의 형태로 진행하곤 했다.

사실, MCP는 지난 2024년 11월에 Antrophic이 세상에 오픈소스로 공개했지만, 당시엔 큰 관심을 받지 못했다.

그러나 2025년 초, Cursor.aiMCP 지원을 통해 많은 개발자들에게 관심을 받게 되었고, 실제로 이를 통한 비즈니스가 진행되고 있다.

더불어 AI Agent의 포문을 열었다고 평가받는 Manus AI의 등장도, MCP의 중요성을 강조하는데 큰 역할을 했다.


MCP 구성

MCP는 Client-Server아키텍처를 기본으로 하며
Host, MCP Client, MCP Server 3가지를 구성요소로 갖는다.

1. Host

  • AI Application의 컨테이너
  • Client 연결 권한 및 lifetime을 관리하고, 여러 Client의 instance를 관리
  • 사용자가 프롬프트를 통해 제어
  • Claude Desktop, Cursor.ai IDE 가 이에 속한다.

2. Client

  • Host에 의해 생성되어 Server와 독립적인 연결을 유지
  • 하나의 Server는 하나의 Client 상태를 갖는다.
  • 양방향으로 프로토콜 메시지를 라우팅한다.

3. Server

  • JSON-RPC 방식으로 동작하며 코드(Python, TypeScript, Java 등)으로 직접 제어되는 핵심
  • 사용자가 원하는 기능에 특화된 컨텍스트를 제공
  • Resource(GET), Tools(POST), Prompt(Command)를 MCP 기본요소를 통해 제어
  • 독립적으로 작동
  • Local, Remote로 구분
  • Oracle 제어 MCP, 파일 시스템 MCP, Notion MCP 등이 이에 속함
  • 다양한 회사, 개인은 자신들의 Resource를 LLM이 효과적으로 처리할 수 있게끔 MCP Server를 구축해 제공하고 있으며,
    smithery.ai를 통해 이를 확인할 수 있다.

MCP Primitive

  1. Tools
  • AI가 호출해, 특정 작업을 수행
  • API를 호출하거나, 브라우저를 컨트롤하고, DB 쿼리를 수행한다.
  1. Resource
  • AI가 접근, 처리할 수 있는 외부 Data
  • 파일시스템의 내용, System log, API Response 등이 있다.
  1. Prompt
  • 재사용 가능한 명령어 template

MCP 동작 원리

1. 연결 설정

  • Host Application이 MCP Client를 생성
  • 요구되는 MCP 서버와의 연결 설정

2. 컨텍스트 교환

  • Server는 Client에게 External Data Source의 컨텍스트 정보 제공
  • Client는 이를 Host에 전달
  • Host는 이러한 컨텍스트들을 집계해 LLM에 제공

3. 도구 호출

  • LLM은 작업 수행을 위해 Tools를 요청
  • Host는 이를 확인하고 적절한 Client에 전달
  • Server는 Client로부터 전달받은 Tools 요청을 수행

4. 결과 처리

  • Client는 Server로부터 작업 결과를 받아 Host에 전달
  • Host는 이를 LLM에 제공
  • LLM은 결과 정보를 바탕으로 사용자에게 Response를 생성

MCP vs API

기존 API 방식에서 파일 시스템, 클라우드와 같은 저장소에 접근하려면, 클라우드 DB에 대한 접근 API, 드라이버 등을 별도로 호출해 이를 Application 단에서 로직을 구현해야 했다.

혹은 LangChain와 같이 Agent를 개발하는 에이전트 오케스트레이션 프레임워크를 사용해 LLM에 접근하고, 외부 데이터소스를 전달해야했다.

  • 다만, 이 방식은 LangChain을 지원하는 별도의 과정이 필요했고, LangChain 측도 이를 확장시키기위해 다양한 기업과 개인과의 직접적인 확장이 필요했다.

여기서, 가장 중요한 차이점은 표준화가 이뤄지는 대상이다.

  • LangChain의 경우, 개발자 코드에서 도구를 통합하기 위한 표준을 제시하는 방법이고,
  • MCP는 모델이 직접 실시간으로 필요한 도구를 확인, 발견하고 직접 제어하는 표준이다.

MCP vs RAG

그렇다면, LLM을 사용하는 기존 방식 중 가장 강력했던 RAG와는 어떤 차이가 있을까?

가장 큰 차이는 데이터의 변화를 실시간으로 접근하냐 못하냐에 있다.
RAG의 경우, LLM의 지식 한계를 벗어나는 효과적인 방법이지만,
제공하는 데이터 소스가 정적이라는 한계가 있다.

  • 예를 들어 NotebookLM에서 Google Drive를 연동해 이를 외부 소스로 사용한다면,
    Drive 내 내용이 변화한다고 이를 즉시 알아채 결과값에 변동이 생기지 않는다.
    NotebookLM의 경우에는 Drive 동기화를 직접 클릭해 외부 소스 최신화를 사용자가 직접해야한다.
  • 하지만 MCP를 통해 Drive를 제어하는 경우, AI 모델이 변화를 직접 파악하고, 더불어 변화를 일으킬 수도 있다.
    (제어권을 갖는 권한 하에)

결론과 사견

그렇다면 MCP는 진정한 의미의 AI Agent로 다가가는가?

  • 나는 MCP의 가장 큰 의의를 개발자를 넘어 비개발자에게도 편리함을 제공하는 것이라고 보고있다.
  • 현재 MCP는 채팅 기반의 Prompt로 제어, 요청, 수행되고 있는데, 이는 자연어 프롬프트 전략을 적절히 수립하기만 한다면 누구나 쉽게 AI를 제어할 수 있음을 의미하기 때문이다.

다만, MCP가 Software Engineer를 대체한다고 보기는 어렵다.

  • MCP는 하나의 패러다임, 현상으로 바라봐야한다고 생각한다.
    AI Application을 비즈니스에 통합하는 새로운 관점이자
    이를 효과적으로 사용하는 새로운 비즈니스 영역 창출에 가깝다.
  • 이로 인해, 기업과 개인의 AI를 사용하는 역량이 더욱 중요해졌다고 생각한다.

그만큼 더욱 다양한 정보를 빠르게 학습하고 사용해야한다.

  • MCP Server는 지금 이 순간에도 우후죽순 쏟아지고 있다.
  • Notion, Google Drive와 같은 대형 서비스 외에도 소규모 서비스부터, 개인의 니즈를 맞춘 커스텀 MCP도 더욱 빠르게 등장할 것이다.
  • 예를들어 Playwright MCP를 통해 브라우저를 직접 컨트롤 할 수 있지만, 이를 모르고 있다면 MCP를 사용함에도 브라우저는 직접 제어하는 모습도 있을 수 있다.

그러나, 기술의 양면이 있는 만큼 MCP도 Risk를 가지고있다.

  • 가장 큰 리스크는 단연 보안에 있다.
  • 예를 들어 DB 접근, 제어 MCP의 경우, 사용자의 요청에 따라
    쿼리를 작성하고 이를 실행한다.
  • 그런데 해당 쿼리가 TRUNCATE, DROP이라면? 이를 사용자 확인없이 바로 처리된다면?
  • 나아가, MCP 해킹을 통해 SQL Injection 공격을 DB에 다이렉트로 진행한다면?

마치며...

다음 포스트에는 Claude, Cursor를 통해 Google Drive파일 시스템 등에 접근, 제어하는 과정을 진행해보겠다.
이를 기반으로 주식 시장을 파악하고, 정보를 작성하는 프로그램을 작성해보겠다.

[참고자료]

profile
Being a Modern Software Engineer

0개의 댓글