MCP(Model Context Protocol)의 정의와 목적
핵심 개념 요약
Model Context Protocol(MCP)은 AI 어시스턴트를 데이터가 있는 시스템(콘텐츠 저장소, 비즈니스 도구, 개발 환경 등)에 연결하기 위한 개방형 표준입니다. 이 프로토콜의 주요 목적은 선도적인 AI 모델이 더 나은, 더 관련성 높은 응답을 생성할 수 있도록 지원하는 것입니다. Introducing the Model Context Protocol \ Anthropic MCP는 마치 AI 애플리케이션을 위한 USB-C 포트와 같습니다. USB-C가 기기를 다양한 주변 장치에 연결하는 표준화된 방법을 제공하듯, MCP는 AI 모델을 다양한 데이터 소스와 도구에 연결하는 표준화된 방법을 제공합니다. Introduction - Model Context Protocol
기존의 API는 개발자가 각 서비스나 데이터 소스마다 맞춤형 통합을 작성해야 했습니다. 반면 MCP는 AI 모델이 도구와 데이터 소스와 상호작용하는 방식을 표준화하여 복잡성을 줄이고 개발자가 각 조합에 대해 동일한 통합을 반복해서 작성할 필요 없이 빠르게 정교한 상호작용을 가능하게 합니다. What is Model Context Protocol (MCP)? How it simplifies AI integrations compared to APIs | AI Agents That Work
필요 배경 지식
MCP를 이해하기 위해서는 다음과 같은 배경 지식이 필요합니다:
- 클라이언트-서버 아키텍처: MCP는 클라이언트-서버 아키텍처를 기반으로 합니다. 호스트(LLM 애플리케이션)가 연결을 시작하고, 클라이언트는 서버와 1:1 연결을 유지하며, 서버는 클라이언트에게 컨텍스트, 도구, 프롬프트를 제공합니다. Core architecture - Model Context Protocol
- JSON-RPC 통신: 모든 전송 계층은 메시지 교환을 위해 JSON-RPC 2.0을 사용합니다. Core architecture - Model Context Protocol JSON-RPC는 경량 원격 프로시저 호출(RPC) 프로토콜로, JSON을 데이터 형식으로 사용합니다.
- AI 모델과 도구 통합: LLM(대규모 언어 모델)이 외부 도구와 상호작용하는 방식과 함수 호출(function calling) 개념에 대한 기본적인 이해가 필요합니다.
구체적인 활용 사례
MCP의 활용 사례로는 다음과 같은 예가 있습니다:
- 결제 처리: Stripe MCP 서버를 통해 인보이스 생성, 고객 생성, 환불 관리 등을 자연어 요청을 통해 처리할 수 있습니다. 이는 고객 응대 챗봇에 결제 관련 업무를 위임할 수 있게 합니다.
- 개발 환경 통합: JetBrains MCP 통합은 개발자들이 JetBrains IDE 내에서 직접 AI 지원을 활용할 수 있게 합니다. 이 통합은 자연어를 통해 코드 탐색, 중단점 설정, 터미널 명령 실행 등을 제공합니다. What Is the Model Context Protocol (MCP) and How It Works
- 일정 관리: MCP를 사용하면 AI 어시스턴트가 캘린더를 확인하여 가용성을 확인하고, 항공편을 예약하고, 확인 이메일을 보내는 등의 작업을 여러 도구별 맞춤 통합 없이 MCP 서버를 통해 원활하게 수행할 수 있습니다. What is Model Context Protocol (MCP)? How it simplifies AI integrations compared to APIs | AI Agents That Work
- 문서 변환: Markdownify와 같은 MCP 서버는 PDF, 이미지, 오디오 파일(전사 포함), DOCX, XLSX, PPTX 등의 다양한 파일 유형을 Markdown으로 변환하여 LLM이 처리하기 쉽게 합니다. 30+ MCP Ideas with Complete Source Code - DEV Community
기초 → 심화 흐름
MCP의 기본 구성 요소
MCP 아키텍처의 핵심 구성 요소는 다음과 같습니다:
- 호스트(Hosts): Claude Desktop이나 AI 기반 IDE와 같이 외부 데이터나 도구에 접근해야 하는 애플리케이션입니다.
- 클라이언트(Clients): MCP 서버와 전용 일대일 연결을 유지합니다.
- MCP 서버(Servers): MCP를 통해 특정 기능을 제공하는 경량 서버로, 로컬 또는 원격 데이터 소스에 연결됩니다.
- 로컬 데이터 소스(Local Data Sources): MCP 서버가 안전하게 접근하는 파일, 데이터베이스 또는 서비스입니다.
- 원격 서비스(Remote Services): MCP 서버가 접근하는 외부 인터넷 기반 API 또는 서비스입니다. MCP server: A step-by-step guide to building from scratch - Composio
MCP의 핵심 기능
MCP는 세 가지 주요 기능을 제공합니다:
- 도구(Tools): 모델이 제어하는 액션으로, 날씨 API와 같은 특정 작업을 수행하기 위해 LLM이 호출할 수 있는 함수입니다. 기본적으로 함수 호출(function calling)과 유사합니다.
- 리소스(Resources): 애플리케이션이 제어하는 데이터 소스로, REST API의 GET 엔드포인트와 유사합니다. 리소스는 중요한 계산 없이 데이터를 제공하며, 부작용이 없습니다. 컨텍스트/요청의 일부입니다.
- 프롬프트(Prompts): 사용자가 제어하는 상호작용으로, 도구나 리소스를 최적의 방식으로 사용하기 위한 사전 정의된 템플릿입니다. 추론을 실행하기 전에 선택됩니다. Model Context Protocol (MCP) an overview
MCP 작동 흐름
MCP는 다음과 같은 간단한 흐름으로 작동합니다:
- 초기화(Initialization): 호스트 애플리케이션이 시작되면 N개의 MCP 클라이언트를 생성하고, 핸드셰이크를 통해 기능과 프로토콜 버전에 대한 정보를 교환합니다.
- 검색(Discovery): 클라이언트는 서버가 제공하는 기능(도구, 리소스, 프롬프트)을 요청합니다. 서버는 목록과 설명으로 응답합니다.
- 컨텍스트 제공(Context Provision): 호스트 애플리케이션은 이제 리소스와 프롬프트를 사용자에게 제공하거나 도구를 JSON 함수 호출과 같은 LLM 호환 형식으로 파싱할 수 있습니다.
- 호출(Invocation): LLM이 도구를 사용해야 한다고 판단하면(예: 사용자의 "X 저장소의 열린 이슈는 무엇입니까?" 요청에 기반하여), 호스트는 클라이언트에게 적절한 서버로 호출 요청을 보내도록 지시합니다.
- 실행(Execution): 서버는 요청(예: fetch_github_issues with repo 'X')을 받아 기본 로직(GitHub API 호출)을 실행하고 결과를 얻습니다.
- 응답(Response): 서버는 결과를 클라이언트에게 다시 보냅니다.
- 완료(Completion): 클라이언트는 결과를 호스트에 전달하고, 호스트는 이를 LLM의 컨텍스트에 통합하여 LLM이 최신 외부 정보를 기반으로 사용자에게 최종 응답을 생성할 수 있게 합니다. Model Context Protocol (MCP) an overview
관련 개념 연결
MCP와 관련된 중요한 개념들은 다음과 같습니다:
- 함수 호출(Function Calling): MCP 이전에는 LLM API와 함께 함수 호출을 직접 사용할 때 모델별 함수 스키마를 정의하고, 함수 호출 핸들러를 구현하고, 지원하는 각 모델에 대한 다른 구현을 만들어야 했습니다. MCP는 이 과정을 표준화하여 어떤 AI 시스템에서도 도구(함수)를 일관되게 지정하고, 사용 가능한 도구를 발견하고 실행하는 프로토콜을 제공합니다. What Is the Model Context Protocol (MCP) and How It Works
- RAG(Retrieval-Augmented Generation): RAG는 모델의 지식 한계나 제한된 메모리를 해결하기 위해 지식 기반(문서, 임베딩)을 검색하고 상위 결과를 프롬프트에 주입하는 방식으로 LLM에 컨텍스트를 제공하는 일반적인 방법입니다. 그러나 RAG는 일반적으로 정적 텍스트 조각을 다루며 모델이 인덱싱된 것 이상의 작업이나 쿼리를 수행할 수 있게 하지는 않습니다. MCP는 RAG와 함께 작동할 수 있습니다. 예를 들어, MCP 서버는 벡터 데이터베이스나 검색 엔진과 인터페이스할 수 있어 모델이 모든 프롬프트에서 암시적으로 검색에 의존하기보다 도구로 검색 쿼리를 실행할 수 있습니다. 🦸🏻#14: What Is MCP, and Why Is Everyone – Suddenly!– Talking About It?
- OAuth 2.1 보안: MCP는 원격 HTTP 서버를 인증하기 위해 OAuth 2.1 프레임워크를 의무화합니다. 이는 MCP의 보안, 확장성, 사용성을 향상시킵니다. Model Context Protocol (MCP) an overview
- LangChain과의 통합: LangChain은 개발자 중심의 표준(Tool 클래스 인터페이스)을 만들어 도구를 에이전트 코드에 통합했습니다. MCP는 모델 중심의 표준을 만듭니다. 실행 중인 AI 에이전트 자체가 런타임에 MCP 정의 도구를 발견하고 사용할 수 있습니다. 실제로는 이러한 아이디어들이 수렴하고 있습니다. 예를 들어, LangChain 팀은 모든 MCP 서버(커넥터)를 쉽게 LangChain 도구로 취급할 수 있는 어댑터를 제공했습니다. 🦸🏻#14: What Is MCP, and Why Is Everyone – Suddenly!– Talking About It?
실습 또는 연습 제안
MCP를 실습해보기 위한 몇 가지 방법이 있습니다:
- Claude Desktop 통합 시도하기: 빠른 시작을 위해 Anthropic은 Claude Desktop 통합(액세스가 있는 경우)을 시도하거나 예제 서버를 실행하고 제공된 빠른 시작 가이드를 사용하는 것을 권장합니다. 🦸🏻#14: What Is MCP, and Why Is Everyone – Suddenly!– Talking About It?
- MCP 서버 구축하기: Python과 FastMCP를 사용한 MCP 서버 구축 예시:
python
from fastmcp import FastMCP # MCP 서버 생성 mcp = FastMCP("Demo") # 도구 추가, JSON 스펙으로 변환됨 @mcp.tool() def add(a: int, b: int) -> int: """두 숫자 더하기""" return a + b # 데이터 리소스 추가, 예: 새 채팅에 표시됨 @mcp.resource("greeting://{name}") def get_greeting(name: str) -> str: """개인화된 인사말 가져오기""" return f"Hello, {name}!" # 더 나은 사용을 위한 특정 프롬프트 템플릿 @mcp.prompt() def review_code(code: str) -> str: return f"다음 코드를 검토해주세요:\n\n{code}"
Model Context Protocol (MCP) an overview
- MCP Inspector 사용하기: MCP Inspector는 LLM/AI 에이전트와 통합하지 않고도 사용자 정의 MCP 서버를 테스트할 수 있는 편리한 GUI 도구입니다. 작업 환경에서 터미널을 열고 다음 명령을 입력하세요:
CLI를 설치하지 않은 경우 설치하라는 메시지가 표시됩니다. 수동으로 설치하거나 'y'를 누르세요. 완료되면 명령을 다시 실행하여 URL(대부분 localhost)을 표시합니다. MCP server: A step-by-step guide to building from scratch - Composiobash
mcp inspect - VS Code에서 MCP 서버 사용하기: VS Code에서 MCP 서버를 사용하려면:
- 채팅 보기를 열고(⌃⌘I, Windows/Linux에서는 Ctrl+Alt+I) 드롭다운에서 에이전트 모드를 선택하세요.
- 도구 버튼을 선택하여 사용 가능한 도구 목록을 확인하세요.
- 선택적으로 사용하려는 도구를 선택하거나 선택 해제하세요. 검색 상자에 입력하여 도구를 검색할 수 있습니다.
- 이제 채팅 입력 상자에 프롬프트를 입력하고 도구가 필요에 따라 자동으로 호출되는 것을 확인하세요. Use MCP servers in VS Code (Preview)
이러한 실습을 통해 MCP의 기본 개념과 작동 방식을 직접 경험할 수 있으며, AI 모델과 외부 도구 및 데이터 소스 간의 상호작용을 더 잘 이해할 수 있을 것입니다.
'컴퓨터 과학 > 인공지능' 카테고리의 다른 글
| claude code에 사용할 README.md (0) | 2025.10.12 |
|---|---|
| Transformer란? (1) | 2025.04.27 |
| Self-Attention이란? (0) | 2025.04.27 |
| Attention이란? (0) | 2025.04.27 |
| Recurrent Neural Network란? (1) | 2025.04.27 |