spring-ai/05.MCP

01. MCP란?

  • -

이번 포스트에서는 MCP의 개념에 대해 살펴보자.

 

MCP(Model Context Protocol)

 

MCP의 정의와 문제 상황

MCP(Model Context Protocol)란 AI 모델(LLM)이 외부 데이터(구글 드라이브, GitHub 등)나 도구와 통신할 때 사용하는 오픈 표준 규약으로, 앤트로픽(Anthropic)이 개발하여 오픈소스로 공개했다.

왜 MCP라는 개념이 등장했는지 생각해 보자.

ChatGPT, Claude, Gemini 같은 LLM을 이용해 내 컴퓨터의 파일 내용을 읽거나 구글 캘린더를 확인하려면 어떻게 해야 할까?

Spring 개발자라면 Spring AI의 'Tool Calling' 기능을 이용해 구현할 수 있다. Spring AI는 라이브러리 내부에서 모델별 차이를 추상화해주므로, 어떤 모델을 쓰든 동일한 코드로 기능을 구현할 수 있게 도와준다.

하지만 여기서 발생하는 문제는 '구현의 파편화'입니다. Spring AI로 개발한 도구는 Spring 환경에서만 돌아간다. 만약 파이썬 기반의 LangChain으로 환경을 바꾸거나 다른 프레임워크를 쓰게 된다면, 기존에 만든 도구 로직을 그 환경에 맞춰 매번 다시 개발해야 한다.

이에 반해 MCP는 특정 언어나 프레임워크에 종속되지 않는 '통신 규약(Protocol)' 이다. 자바로 MCP 서버를 하나 구축해두면, 자바 애플리케이션은 물론 파이썬 프로그램, 심지어 Claude 데스크톱 앱 같은 기성 소프트웨어들도 별도의 추가 개발 없이 서버 주소만 연결해 즉시 그 기능을 사용할 수 있다. 즉, 도구의 재사용성을 개별 앱 단위가 아닌 생태계 단위로 확장한 것이다.

 

MCP의 작동 원리

MCP 시스템은 크게 3가지 부분으로 구성된다.

  1. MCP Host:  AI가 탑재된 프로그램( Claude 데스크톱 앱, Cursor 코드 애디터 등)
  2. MCP Client: 호스트 안에서 서버와 연결을 담당하는 중간 다리 역할로 서버와 1:1로 연결됨
  3. MCP Server: MCP 프로토콜을 통해 도구들을 노출하는 서버 프로그램

이 요소들이 어떻게 동작하는지는 다음의 그림이 잘 보여준다.

MCP Architecture

1. MCP Hosts 

  • 역할: AI 에이전트 역할을 하는 어플리케이션이다. 이들은 뒷단에 LLM과 연결되어 있다.
  • 예시: 그림에 보이는 Claude Desktop이나 Cursor, Vscode같은 툴 또는 웹, 앱일 수 있다.
  • 설명: "데이터를 필요로 하는 주체"입니다. 이전에는 이 호스트들이 각 서비스(슬랙, 구글 등)에 직접 연결해야 했지만, 이제는 MCP라는 표준 입구를 통해 데이터를 받아온다

2. MCP Clients

  • 역할: MCP 호스트(앱) 내부에서 MCP 서버와 대화하는 통로이다.
  • 설명: client.py라는 파일명이 적혀 있듯이, 개발자가 작성한 코드 혹은 라이브러리 형태이다. 호스트 앱이 "나 슬랙 메시지 좀 가져와줘"라고 하면, 이 클라이언트가 해당 요청을 MCP 규격에 맞춰 서버로 전달한다.

3. MCP

  • 역할: 이 그림의 핵심 비유로, 공통 규격(프로토콜) 그 자체를 의미한다.
  • 설명: 노트북에 여러 장치를 연결할 때 'USB-C 허브' 하나만 있으면 모든 기기가 연결되듯, MCP가 MCP Host와 MCP Server 사이에서 표준 연결 고리 역할을 한다.

4. MCP Servers

  • 역할: 각 데이터 소스(앱, 파일 등)에서 정보를 읽어와 MCP 규격으로 변환해주는 어댑터로 Remote Service와 Local Data Source로 구분할 수 있다.
  • Remote Services (원격 서비스): Slack, Gmail, Google Calendar 같은 클라우드 기반 서비스들이다. 전용 MCP 서버가 이 서비스들의 API를 호출해 AI가 읽을 수 있는 형태로 바꿔준다.
  • Local Data Sources (로컬 데이터): 내 컴퓨터에 있는 파일 시스템(그림의 Finder 아이콘)이다. AI가 내 하드디스크의 파일을 직접 읽을 수 있게 해주는 서버이다.

 

간단한 동작 시나리오

사용자가 "내 지메일을 읽어서 요약해줘." 라는 요청을 한다면 MCP는 다음과 같이 동작한다.

MCP의 동작 흐름

 

'spring-ai > 05.MCP' 카테고리의 다른 글

02. MCP 통신 방식  (0) 2026.01.22
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.