
【AI 에이전트 해부학: 제3회】 플러그 앤 플레이 도구 상자: Model Context Protocol (MCP)의 혁신
요약
Anthropic이 발표한 오픈 소스 표준 규격인 Model Context Protocol(MCP)을 소개합니다. MCP는 AI 모델과 다양한 데이터/도구 간의 연결을 USB 포트처럼 표준화하여, 복잡한 연결 코드 없이도 플러그 앤 플레이 방식으로 에이전트 기능을 확장할 수 있게 합니다.
핵심 포인트
- MCP는 AI 모델과 외부 도구 간의 연결을 표준화하는 JSON-RPC 기반 규격임
- N×M 방식의 복잡한 연결 문제를 해결하여 개발 효율성을 극대화함
- Host, Client, Server의 3가지 역할 분담 아키텍처로 구성됨
- 한 번의 서버 구현으로 다양한 AI 호스트에서 즉시 도구 사용 가능
【
신연재: AI 에이전트 해부학】 ※본 연재는, 아무 말도 할 수 없는 텅 빈 '챗봇 (Chatbot)' 앞에 서서, 그에게 생명을 불어넣으며 자신의 의지로 움직이는 'AI 에이전트 (AI Agent)'로 부품 하나하나 만들어가는 개발 다큐멘터리입니다.
지난번, 우리는 로봇의 암(Arm)으로 언어의 의지를 JSON 데이터로서 송신하여 함수를 실행하는 'Function Calling'의 신경을 연결했습니다.
이를 통해 그는 '일기예보를 조사한다', '거리를 계산한다'와 같은 특정 도구를 자신의 의지로 움직일 수 있게 되었습니다.
하지만 이 방법에는 번거로운 과제가 남아 있습니다.
현실 세계에는 파일 시스템, PostgreSQL, GitHub API, Slack 등 연결하고 싶은 도구(데이터나 툴)가 무수히 존재합니다. 새로운 도구를 추가할 때마다 우리가 수작업으로 사양서(JSON Schema)를 작성하고, 각각 다른 통신 코드를 일일이 써 내려가는 것은 스마트하지 않습니다.
이번에는 이 도구의 연결을 극적으로 표준화하여, 어떤 데이터나 기능도 USB 메모리처럼 딸깍하고 한 번에 플러그 앤 플레이(Plug & Play)할 수 있는 공통 규격, 'Model Context Protocol (MCP)'의 멀티 포트를 로봇의 어깨에 장착합니다.
난잡한 배선을 깔끔하게 정리하고, 그의 가능성을 전 세계의 모든 도구로 연결해 봅시다.
기존의 AI 에이전트 개발에서는 사용하고 싶은 AI 모델(GPT, Claude, Gemini 등)이 'N개' 있고, 연계하고 싶은 데이터베이스나 API가 'M개' 있는 경우, 각각을 연결하기 위해 'N × M'만큼의 개별적인 연결 코드나 스키마 정의를 작성해야 했습니다. 이것이 이른바 '연결의 스파게티 코드화'입니다.
이 혼돈에 종지부를 찍기 위해 2024년 말 Anthropic이 발표한 오픈 소스 표준 규격이 바로 'Model Context Protocol (MCP)'입니다.
이것은 컴퓨터의 'USB 포트'와 같은 역할을 합니다. 마우스, 키보드, 프린터 등의 제조사가 다르더라도 USB라는 공통 포트가 있다면 꽂는 것만으로 즉시 사용할 수 있습니다. MCP는 AI(Client)와 데이터/툴(Server) 사이를 중립적이고 심플한 JSON-RPC 기반의 표준 사양으로 딸깍하고 브릿지(Bridge)합니다.
MCP 아키텍처는 다음과 같은 3가지 역할 분담으로 구성되어 있습니다.

※그림: 호스트, 클라이언트, 및 복수의 외부 MCP 서버가 JSON-RPC를 통해 표준 브릿지하는 MCP의 아키텍처(AI 생성 다이어그램)
MCP Host (호스트): LLM을 구동하고 사용자와의 대화를 제어하는 중심적인 애플리케이션(Claude Desktop이나, 이번에 구축하고 있는 에이전트 시스템 등).
MCP Client (클라이언트): 호스트 내부에 내장되어 규격에 따라 서버군과의 연결이나 요청 전달을 수행하는 모듈.
MCP Server (서버): 툴이나 데이터 그 자체. 호스트로부터 '어떤 기능을 사용할 수 있어?', '이 파라미터로 이 툴을 실행해줘'라는 표준 규격의 JSON-RPC 요청을 로컬 스트림(stdio 등)을 통해 전달받아 결과를 반환하는 경량 자식 프로세스.
이를 통해 새로운 툴을 추가하고 싶을 때는 'MCP 서버'의 사양에 맞춰 서버 프로그램 하나만 만들면, 모든 AI 모델(호스트)로부터 즉시 자동으로 인식되어 이용할 수 있게 됩니다.
MCP 서버로부터 '툴 목록'을 취득하고, 그 사양을 바탕으로 클라이언트가 동적 실행을 지시하는 '표준 프로토콜(JSON-RPC풍)'의 상호작용을 재현한 Python 코드입니다.
직접 환경에서 실행해 보세요.
import json
# 1. MCP Server 시뮬레이션 (독자적인 툴을 표준 규격으로 제공)
class MockMCPServer:
...
이 코드를 실행하면, 클라이언트가 사전에 개별 함수를 알지 못하더라도 MCP 서버가 제시한 매니페스트(사양서)를 동적으로 읽어 들여, 표준 인터페이스를 통해 안전하게 실행하는 흐름이 재현됩니다.

※이미지: 로봇의 유니버설 포트 『MCP』에 외부 API나 DB의 연결 케이블을 일제히 플러그인하는 이미지(AI 생성 이미지)
이로써 우리 로봇의 어깨에 'MCP' 유니버설 소켓이 장착되었습니다.
그는 전 세계 개발자들이 공개한 다채로운 MCP 서버와 케이블을 꽂는 듯한 감각으로 즉시 동기화하여, 무한한 데이터에 접근할 수 있는 수단을 손에 넣었습니다.
하지만 아무리 연결할 수 있는 데이터나 도구가 늘어난다고 해도, 로봇이 한 번에 기억하고 처리할 수 있는 뇌의 작업 공간(Context Window)에는 한계가 있습니다.
너무 많은 데이터를 밀어 넣으면, AI는 혼란을 겪고 중요한 지시를 놓쳐버리는 '정보 매몰(Information Burying)' 현상을 일으킵니다.
다음, 제4회.
한정된 뇌의 작업 공간을 현명하게 관리하고, 방대한 컨텍스트(Context) 속에서 목적하는 데이터를 순식간에 찾아내는, "Prompt & Context Engineering의 한계 돌파" 집중력 제어 모듈을 그에게 장착하겠습니다.
그의 지능이 정보의 홍수에 빠지지 않고, 필요한 정보에 날카롭게 초점을 맞추는 순간으로 나아가 봅시다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기