WIPIVERSE

마산종합운동장

MCP (Model Context Protocol)

개요

MCP(Model Context Protocol)는 Anthropic이 도입하고 주도하는 개방형 프로토콜(open protocol)로, LLM(대규모 언어 모델) 애플리케이션이 외부 데이터 소스 및 도구와 상호작용하는 방식을 표준화한다. 흔히 "AI 애플리케이션을 위한 USB-C 포트"에 비유된다. USB-C가 다양한 주변기기를 하나의 표준 포트로 연결하듯, MCP는 다양한 데이터 소스와 도구를 하나의 표준화된 인터페이스로 AI 모델에 연결한다.


배경 및 탄생

  • 발표 시기: 2024년 11월 (Anthropic)
  • 영감: LSP(Language Server Protocol) — LSP가 다양한 프로그래밍 언어 지원을 하나의 표준 프로토콜로 통일한 것에서 착안
  • 목적: AI 에이전트가 도구(tool), 데이터(data), 컨텍스트(context)에 접근하는 방식을 표준화하여, 매 통합마다 맞춤형 어댑터를 작성할 필요를 없애는 것

아키텍처

MCP는 클라이언트-서버 아키텍처를 따르며, JSON-RPC 2.0을 기반으로 통신한다.

주요 구성 요소

구성 요소 설명
MCP Host (호스트) 사용자가 직접 상호작용하는 AI 애플리케이션 (예: Claude Desktop, VS Code, GitHub Copilot, IDE 등)
MCP Client (클라이언트) 호스트 내부에서 각 MCP 서버와 1:1 연결을 유지하는 커넥터
MCP Server (서버) 특정 기능(도구, 리소스, 프롬프트)을 표준화된 방식으로 노출하는 경량 프로그램

통신 계층

MCP는 두 개의 계층으로 구성된다:

  1. 데이터 계층(Data Layer): JSON-RPC 2.0 기반 메시지 교환, 생명주기 관리, 핵심 프리미티브(도구/리소스/프롬프트) 정의
  2. 전송 계층(Transport Layer): 실제 통신 채널 관리
    • Stdio Transport: 표준 입출력 스트림을 통한 로컬 프로세스 간 통신
    • Streamable HTTP Transport: HTTP POST + Server-Sent Events(SSE)를 통한 원격 통신 (OAuth 인증 지원)

핵심 프리미티브 (Primitives)

MCP 서버는 다음 세 가지 기능을 클라이언트에 제공할 수 있다:

1. 도구 (Tools)

  • AI 모델이 실행할 수 있는 함수 (예: query_database, create_ticket, send_email)
  • 함수 호출(Function Calling)과 유사하지만, MCP는 이를 표준화된 방식으로 발견(discovery)하고 호출(call)하는 프로토콜을 제공
  • 메서드: tools/list (목록 조회), tools/call (실행)

2. 리소스 (Resources)

  • AI 모델이 컨텍스트로 읽어들일 수 있는 데이터 (파일, DB 레코드, API 응답 등)
  • REST의 GET 엔드포인트와 유사
  • 메서드: resources/list, resources/read

3. 프롬프트 (Prompts)

  • 재사용 가능한 템플릿 형태의 사전 정의된 상호작용 패턴
  • 메서드: prompts/list, prompts/get

클라이언트 측 프리미티브

서버가 클라이언트에 요청할 수 있는 기능:

  • Sampling: 서버가 호스트의 LLM에 완성(completion)을 요청 (sampling/createMessage)
  • Elicitation: 서버가 사용자에게 추가 정보를 요청 (elicitation/create)
  • Logging: 서버가 클라이언트에 로그 메시지 전송

생명주기 (Lifecycle)

MCP는 상태 기반 프로토콜(stateful protocol)로, 연결 시 다음 단계를 거친다:

  1. 초기화(Initialize): 클라이언트가 initialize 요청을 보내 프로토콜 버전과 지원 기능(capabilities)을 협상
  2. 준비 완료(Initialized): 클라이언트가 notifications/initialized 알림 전송
  3. 정상 운영: 도구/리소스/프롬프트 사용, 알림 수신 등

주요 활용 사례 및 생태계

지원 클라이언트 (일부)

  • Claude Desktop / Claude Code (Anthropic)
  • Visual Studio Code / Cursor / Windsurf (IDE)
  • GitHub Copilot (Chat, CLI, Cloud Agent, Code Review)
  • JetBrains IDEs, Xcode, Eclipse
  • OpenAI ChatGPT (Apps/Deep Research)
  • Google Cloud (Gemini CLI, Agent Registry)

주요 MCP 서버 예시

  • GitHub MCP Server: 저장소 관리, 이슈, PR, 코드 검색 등
  • Google Cloud MCP Servers: BigQuery, Cloud Storage 등 GCP 서비스
  • OpenAI Vector Store MCP: 벡터 검색 기반 문서 검색/인출
  • Sentry MCP Server: 에러 모니터링
  • Filesystem MCP Server: 로컬 파일 시스템 접근
  • Database MCP Server: SQL 데이터베이스 쿼리

SDK 지원 언어

  • Python (mcp 패키지, PyPI 기준 주간 6,500만+ 다운로드)
  • TypeScript/JavaScript
  • Java
  • Kotlin
  • C# (.NET)

보안 및 신뢰 원칙

MCP는 강력한 기능(임의 데이터 접근, 코드 실행)을 가능하게 하므로, 다음과 같은 보안 원칙을 강조한다:

  1. 사용자 동의 및 통제: 모든 데이터 접근과 작업에 명시적 동의 필요
  2. 데이터 프라이버시: 사용자 데이터를 타 서버에 전송하려면 사용자 동의 필요
  3. 도구 안전성: 도구는 임의 코드 실행을 의미하므로 주의 필요
  4. LLM 샘플링 통제: 샘플링 요청 시 사용자 승인 필수

MCP vs 다른 프로토콜

프로토콜 목적 계층
MCP AI 에이전트 ↔ 도구/데이터 연결 도구/컨텍스트 계층
A2A (Agent-to-Agent) 에이전트 간 작업 위임 에이전트 간 계층
Agent Protocol 클라이언트 ↔ 에이전트 REST API 클라이언트-에이전트 계층

이들은 상호 보완적이며 함께 사용될 수 있다.


참고 자료

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기