Model Context Protocol에 대해 알아보기

Jae·2025년 6월 1일

ByteByteGo의 EP165: AI Agent versus MCP에 MCP가 소개되어 아티클 읽어보다가 좀더 알아보고 싶어서 찾은 내용을 정리하였습니다.

MCP

  • AI가 DB, 파일시스템 등 외부 데이터 소스 또는 도구에 대한 연결을 정의한 개방형 프로토콜
  • 엔트로픽에서 만듦
  • 현실 세계의 데이터와 도구의 접근을 통해 관련성 높고 유용한 응답의 생성을 돕고 고립 상태의 데이터에서 벗어나게 한다.

특징

  • AI 모델이 외부의 지식이나 데이터의 획득을 돕는다.
  • 표준 프로토콜을 통해 API, 데이터베이스, 파일 등에 안전하게 접근 및 사용할 수 있도록 해준다.

주요 구성 요소

Host

  • AI 모델을 운용하는 주체 애플리케이션
  • 사용자로부터 요청을 받아 모델에게 전달하고, 모델로부터 요청에 대한 응답을 받아 사용자에게 전달한다.

Client

  • 호스트 애플리케이션 내부에서 동작하며 하나의 MCP 서버와 1:1 연결을 담당하는 컴포넌트
  • MCP 클라이언트는 AI 모델 측에서 MCP 프로토콜을 구현하여 서버로 요청을 보내고 응답을 받아 모델에 전달하는 역할을 한다.

Server

  • 외부 데이터나 기능을 제공하는 곳.
  • MPC의 표준화된 형태를 이용하여 모델이 이해할 수 있는 형태로 맥락을 전달한다.

MCP 서버가 제공하는 context

Resource

  • 모델이 참고할 읽기 전용 데이터
  • 파일의 내용, 데이터베이스의 레코드, 문서 등의 구조화된 정보를 포함하며, 모델의 지식 기반을 확장
  • API 주소 지정하는 기능

Tools

  • 모델이 호출할 수 있는 기능 또는 함수
  • 소스코드 내에서 함수를 프레임워크에 함수를 등록하는 것과 비슷

Prompts

  • 모델에게 특정 지시나 템플릿을 제공하는 문구

프로토콜

  • JSON-RPC 2.0 기반의 표준 메시지 형식을 사용
  • 표준 입출력
  • HTTPS 사용

동작 방식과 흐름

  1. 초기화
    • 클라이언트가 서버에 연결을 위해 초기화 메시지를 서버에 보냄으로서 시작한다.
    • 메시지에는 MCP 프로토콜 버전등의 클라이언트 정보가 담겨있다.
    • 서버는 클라이언트가 보낸 메시지에서 서버가 지원하는 기능과 버전을 확인하여 호환성 교섭을 진행한다.
    • 이 과정을 완료하면 세션이 생성된다.
  2. 기능 협상 및 발견
    • 클라이언트는 서버가 어떤 맥락 기능을 제공하는지 확인한다.
    • 이렇게 획득한 맥락 기능들을 AI 모델에게 알려주거나 사용자 인터페이스에 표시하여 사용자가 선택할 수 있도록 한다.
  3. 모델의 요청 처리
    • 사용자가 AI 호스트 애플리케이션에게 질문을 하면 호스트는 AI 모델에게 질문한다.
    • 외부 도구의 필요성을 모델은 판단 한 후 도구를 어떻게 사용할지 확인을 하고, 필요시 사용할 수 있는 요청의 형태를 도출한다.
  4. 도구 호출 요청
    • 모델이 MCP 도구를 사용하고자 할 때, 호스트의 MCP 클라이언트가 개입하여 해당 도구 호출을 실제로 수행한다.
    • 요청에 대한 데이터는 모델이게만 보이며, 사용자에게 직접적으로 노출되지 않는다.
  5. 모델 응답 생성
    • AI 모델이 만든 데이터와 MPC 서버에서 전달받은 데이터를 바탕으로 맥락 정보를 답변에 반영
  6. 사용자에게 응답 전달

MCP를 통해 모델이 외부 도구를 사용할 때 항상 사용자의 승인이나 사전에 정의된 정책에 따라 이뤄진다.
-> 보안과 통제의 상태에서도 모델의 자율성을 부여할 수 있다.

참고

0개의 댓글