JUNEee

[Spring Boot] MCP(Model Context Protocol) 기본 개념 및 테스트(1) 본문

BE/스프링

[Spring Boot] MCP(Model Context Protocol) 기본 개념 및 테스트(1)

JUNEee 2025. 4. 4. 14:07
반응형

MCP 란 무엇인가?!

  • MCP는 여러 LLM 모델이 외부 세계와 통신하기 위해 엔트로픽 에서 정의한 표준 프로토콜 이라고 할 수 있다.

    여러 mcp를 소개하는 글에서는 mcp를 USB-C 포트로 비유하는 경우가 많은데, 이는 mcp 공식문서에서도 확인할 수 있는 내용이다.

    Think of MCP like a USB-C port for AI applications. Just as USB-C provides a standardized way to connect your devices to various peripherals and accessories, MCP provides a standardized way to connect AI models to different data sources and tools.

    "MCP를 AI 애플리케이션의 USB-C 포트라고 생각하세요. USB-C가 다양한 주변 기기 및 액세서리에 장치를 연결하는 표준화된 방식을 제공하는 것처럼 MCP는 AI 모델을 다양한 데이터 소스 및 도구에 연결하는 표준화된 방식을 제공합니다."

  • 그래서 MCP로 뭘 할 수 있는데?

    필자가 mcp를 접하고 가장 먼저 떠오른 생각은 "LLM 모델의 종류와 관계없이 다양한 편의 기능을 구현할 수 있겠는데?" 라는 생각이였다. 이에 대해 매우 단순한 예를 하나 들자면 사용자가 분석을 원하는 파일을 업로드 하고 이를 분석해줄 LLM 모델을 바꿔가며 (GPT, claude 등) 이용할 수 있다.
    (파일 업로드를 지원하지 않는 모델이라 하더라도..)
    모델에 의존하지 않고 사용자에게 일관된 인터페이스를 제공할 수 있다는 의미이기도 하다.

한계점

  • MCP 의 한계점은?

    앞서 MCP는 USB-C 포트와 유사하다고 하였다. USB-C 포트는 스마트폰 포함 대부분의 기기에 일관된 충전 규격을 제공함으로써 생태계의 호환성과 효율성을 높였듯이 mcp 또한 LLM모델의 종류와 상관없이 MCP서버가 사용자와 LLM사이를 중계하여 사용자에게 일관된 경험을 제공할 수 있도록 서비스 개발이 가능해진다
    다만 이 방식에는 한계점이 존재하는데 (개인적으로 느끼는 한계점으로 그냥 참고만 하길..)

    1. 모델의 독립성을 완전히 보장하지는 못한다.
    • MCP 구조 부분에서 언급하겠지만, MCP는 크게 세 부분으로 나뉜다
      "MCP 호스트", "MCP 클라이언트", "MCP 서버"
      간단히만 알아보자면 사용자가 입력한 자연어는 먼저 MCP 호스트 내에서 LLM모델로 전달되게 된다 LLM모델은 이를 MCP 클라이언트가 이해할 수 있는 구조화된 데이터로 변환 후 MCP 클라이언트에게 전달하게 되는데 이때 문제가 발생한다.
      만약 우리가 사용하려는 LLM 모델의 성능 이슈로 인해 사용자가 입력한 자연어를 적절하게 해석하지 못한다면 전반적인 MCP 흐름에 부정적인 영향을 주게 된다
    1. 데이터 주입 방식이 비효율 적이다.
    • 앞서 언급했듯이 MCP 구조는 세 부분으로 나뉜다.
      만약 사용자가 "내 깃허브 README 파일을 분석해줘"라고 요청한다면, MCP 서버는 README 파일을 읽고 데이터를 MCP 클라이언트에게 전달할 것이다.
      MCP 클라이언트는 받은 데이터를 LLM 모델이 이해할 수 있는 형태로 변환한 후, 사용자의 요청과 함께 프롬프트 형식으로 데이터를 주입하게 된다. 이 과정에서 문제가 발생한다.
      간단한 파일 내용을 분석하는 것은 프롬프트 주입 방식이 적합하지만, 대용량 파일을 분석할 경우 이러한 방식은 과도한 토큰을 소모하게 되고, 이는 곧 비용 증가로 직결된다.

MCP 구조

  • MCP(Model Context Protocol) 는 크게 3가지 부분으로 나뉜다
  1. MCP 호스트
  2. MCP 클라이언트
  3. MCP 서버
    MCP 호스트 : MCP 호스트는 Claude Desktop, 통합 개발 환경, 또는 기타 AI 도구와 같이 MCP를 통해 데이터에 접근하고자 하는 애플리케이션 프로그램을 의미한다
    MCP 클라이언트 : MCP 클라이언트는 다양한 MCP 서버와 MCP 프로토콜을 통해 연결될 수 있으며 서버에서 데이터를 가져와 LLM 모델에게 제공한다
    MCP 서버 : 표준화된 Model Context Protocol을 통해 특정 기능을 제공한다.(MCP 클라이언트가 요청한 데이터를 MCP 서버는 내부의 다양한 도구들(web api, sql 등)을 활용하여 데이터를 조회하고 이를 제공한다)
    전체 구조를 보면 다음과 같다.

이어서 [Spring Boot] MCP(Model Context Protocol) 기본 개념 및 테스트(2) 편에서 스프링부트를 사용해 실제 MCP서버를 구현해보도록 하겠다

반응형