MCP 핵심 개념 — 도구·리소스·프롬프트
MCP 핵심 개념
MCP에서 서버가 클라이언트(→ 호스트)와 컨텍스트를 나누는 단위를 **프리미티브(primitive)**라고 해요. 세 가지가 핵심이에요: 도구(Tools), 리소스(Resources), 프롬프트(Prompts).
Tools (도구)
AI가 액션을 실행할 수 있게 해 주는 프리미티브예요. 검색, 계산기, 데이터베이스 쿼리처럼 서버가 노출한 함수를 모델이 호출할 수 있죠. tools/list로 서버가 제공하는 도구 목록을 받고, tools/call로 실행해요. 사용자 승인과 보안 조치가 호스트 차원에서 적용돼요.
Resources (리소스)
AI 애플리케이션에 컨텍스트 데이터를 제공하는 프리미티브예요. 파일 내용, 데이터베이스 스키마, 파일 이미지 등이 대표적이죠. resources/list와 resources/read로 접근해요. 강제적이진 않지만 JSON-RPC 2.0 기반의 표준 요청·응답 구조를 따라요.
Prompts (프롬프트)
상호작용 템플릿을 제공해요. 서버가 정의한 재사용 가능한 프롬프트로, 클라이언트가 사용자(또는 모델)에게 보여줄 수 있는 화면 흐름을 만드는 데 씁니다. prompts/list와 prompts/get으로 다뤄요.
메시지 타입과 초기화
MCP는 JSON-RPC 2.0 기반의 세 가지 메시지 타입(요청·응답·알림)으로 통신해요. 연결 시작 시 initialize 요청으로 프로토콜 버전과 능력을 교환해요.
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-06-18",
"capabilities": { "elicitation": {} },
"clientInfo": { "name": "example-client", "version": "1.0.0" }
}
}
서버 요청 샘플링과 사용자 입력 elicit 같은 클라이언트 기능도 있어서, 좀 더 풍부한 상호작용을 만들 수 있어요.