본문 바로가기

Model Context Protocol(MCP)란? LLM 기반 지능형 에이전트를 위한 맥락 유지 구조와 구축 방법

by 애덤더미 2025. 4. 10.
반응형

 

AI 관련 프로젝트를 하다 보면, 모델이 똑같은 질문에 맥락을 전혀 모르고 답할 때가 종종 있다.
"이전에 했던 말은 다 잊었나?" 싶은 상황들.
나도 최근 비슷한 문제를 겪으면서 찾게 된 개념이 바로 MCP(Model Context Protocol) 이다.

공식 문서가 있는 건 아니지만, 내가 알아본 결과 MCP는 요즘 AI 시스템들이

"지능적으로 보이게 만들기 위해 꼭 필요한 맥락 구성 기술" 이었다.

 

◎ 왜 MCP가 필요한가?

기본적으로 GPT나 Claude 같은 LLM은 Stateless 하다.
즉, 이전 대화나 작업 내용을 스스로 기억하지 못한다.

예를 들어 이런 상황:

나: 지난번에 만든 API 명세서 다시 보여줘
모델: (지난번 대화를 기억 못 함) … 어떤 명세서를 말씀하시는 건가요?

 

그래서 이런 문제를 해결하려면, 우리가 직접 맥락을 정리해서 모델에게 던져줘야 한다.
이걸 체계적으로 정리하는 구조가 MCP라는 것이다.

 

◎ MCP의 기본 구조

내가 이해한 MCP의 구성 요소는 다음과 같았다:

구성 요소역할
User Profile 사용자의 성향, 배경, 관심사 등을 요약
Task Definition 지금 모델이 해야 할 역할이나 목표를 명시
Conversation History 이전 대화의 기록 또는 요약
Working Memory 세션이나 장기 작업 내용을 기억해두는 공간
Instructions 모델이 지켜야 할 규칙, 금지어, 말투 등

이걸 조립해서 LLM에 던져주는 방식이 핵심이다.
즉, 모델에게 "너 지금 이런 사람과, 이런 목표를 가지고, 이런 문맥에서 대화 중이야" 라고 친절히 알려주는 것.

 

◎ MCP 전체 아키텍처 요약

내가 정리해본 MCP 기반 AI 시스템의 구조는 다음과 같다:

이 그림을 보면 흐름은 아래와 같다:

  1. 사용자가 어떤 요청을 보냄
  2. MCP Context Manager가 현재의 사용자 정보, 과업, 대화 이력 등을 모아서 Context를 구성
  3. Prompt Engine이 그 Context를 LLM에 전달할 수 있는 형태로 포맷팅
  4. LLM이 응답 생성
  5. 필요한 경우 Session DB나 Long-term Memory(RAG)를 통해 과거 정보도 끌어옴

이걸 통해 모델은 일시적인 대화가 아니라 "지속적이고 일관된 지능적 흐름" 을 가지게 된다.

 

◎ 예시: MCP 기반 초기 구축 맥락

내가 직접 만들어보려는 예제를 MCP에 맞춰 구성해 보면 이렇다.

☞ 상황:

  • 사용자는 Spring Boot를 사용하는 백엔드 개발자
  • API 명세서를 자동 생성해주는 AI 도우미를 만들고 싶음

☞ MCP Context 예시:

{
  "user_profile": {
    "role": "백엔드 개발자",
    "framework": "Spring Boot",
    "language": "Java"
  },
  "task_definition": "사용자의 설명을 바탕으로 REST API 명세서 템플릿을 생성한다",
  "conversation_history": [
    {"user": "고객 목록을 조회하는 API를 만들어줘", "assistant": "GET /customers ..."}
  ],
  "working_memory": {
    "base_url": "/api/v1",
    "response_format": "JSON"
  },
  "instructions": [
    "가능한 한 실무 예시 위주로 작성할 것",
    "문장 대신 코드 중심으로 설명할 것",
    "Swagger 스타일을 따를 것"
  ]
}

이 MCP를 기반으로 Prompt Engine이 아래와 같은 문장을 만들어 LLM에 넘긴다:

"당신은 Spring Boot 기반 백엔드 API 명세서를 작성하는 AI 도우미입니다. 사용자는 Java 개발자이며, 이전에 '/customers' API를 생성했습니다. 이번에는 같은 형식으로 새로운 API 명세서를 생성해야 합니다. 응답은 JSON 포맷을 사용하며 Swagger 스타일을 따릅니다."

 

이 정도만 해줘도 모델은 훨씬 더 "지능적인 흐름" 을 가질 수 있다.

 

◎ 내가 참고한 정리 포인트

  • MCP는 하나의 표준은 아니고, 각자 시스템에 맞게 구조화하는 "개념적 프로토콜" 에 가깝다.
  • 결국은 “프롬프트 엔지니어링을 시스템화” 한 구조라고 볼 수 있다.
  • LangChain, Semantic Kernel 같은 프레임워크도 MCP 개념을 내장하고 있음.
  • 중요한 건 "모델에게 지금 상황을 잘 설명해줘야 모델이 똑똑하게 행동한다" 는 점.
반응형