포스트

Model Context Protocol(MCP) 개념 정리

AI 모델과 외부 리소스를 연결하는 오픈 프로토콜 MCP의 통신 방식, 구조, 전송 방식, 보안 모델을 최신 스펙(2025-06-18) 기준으로 정리한다. Serena·Codex 등 구현체별 사용은 별도 글 참고.

Model Context Protocol(MCP) 개념 정리

관련: AI 로드맵MCP 갈래 · 구현체는 Serena 기본 가이드, 여러 서버 붙이기는 MCP 서버 더 붙이기

MCP란

MCP(Model Context Protocol) 는 Anthropic이 2024년 11월에 공개한 오픈 프로토콜로, AI 모델과 외부 리소스(파일, DB, API 등)가 표준화된 방식으로 상호작용하도록 한다.

기존에는 도구마다 커스텀 통합을 만들어야 했고(N × M 문제), 모델·도구 양쪽이 늘어날수록 통합 부담이 폭증했다. MCP는 그 사이에 공통 인터페이스를 끼워넣어 도구 하나만 구현하면 MCP를 지원하는 모든 모델에서 쓸 수 있게 만든다.

공개 1년여 만에 OpenAI(Codex/Agents), Google, JetBrains, VS Code 등이 클라이언트로 채택하면서 사실상 “AI ↔ 도구 연결”의 업계 표준으로 자리 잡았다.

핵심 특징

항목내용
통신JSON-RPC 2.0 기반 양방향
전송stdio(로컬) · Streamable HTTP(원격)
구조클라이언트(모델) ↔ MCP 서버(리소스 제공자)
노출 단위tools · resources · prompts
보안로컬은 사용자 승인, 원격은 OAuth 2.1 기반 접근
활용파일 읽기, API 호출, DB 조회, 코드베이스 분석 등

기본 구조

1
2
3
4
5
6
7
8
9
+--------------+        JSON-RPC        +--------------+
|  Claude/LLM  |  <------------------>  |  MCP Server  |
|  (클라이언트)  |                        |  (리소스 노출)  |
+--------------+                        +--------------+
                                                |
                                                v
                                  +-----------------------+
                                  | Files / DB / APIs ... |
                                  +-----------------------+

서버는 자기가 노출할 도구(tools)·리소스(resources)·프롬프트(prompts)를 선언하고, 클라이언트는 모델 결정을 따라 그것들을 호출한다. 호출마다 사용자 승인을 받는 흐름이 표준이다.

전송 방식(Transport)

MCP는 같은 JSON-RPC 메시지를 두 가지 전송 계층 위에서 주고받는다.

전송용도특징
stdio로컬 서버클라이언트가 서버를 자식 프로세스로 띄우고 표준 입출력으로 통신. 설정이 단순해 로컬 도구의 기본값
Streamable HTTP원격 서버HTTP POST/GET 기반, 필요 시 SSE로 스트리밍. 원격·다중 사용자 서비스에 적합

참고: 초기 스펙의 원격 전송이던 HTTP+SSE는 2025-03-26 개정에서 Streamable HTTP로 대체됐다. 새로 서버를 만든다면 Streamable HTTP를 쓰는 게 맞다.

보안 모델

MCP 서버는 클라이언트와 같은 권한 컨텍스트에서 동작한다. 그래서 보안이 프로토콜의 핵심 관심사다.

  • 로컬(stdio): 호출 단위로 사용자 승인을 받는 게 표준. read_only 같은 옵션을 지원하는 서버라면 켜고 시작하는 게 안전하다.
  • 원격(Streamable HTTP): 2025-06-18 스펙은 MCP 서버를 OAuth 2.1 Resource Server로 분류한다. 서버는 .well-known 엔드포인트로 자신의 Authorization Server 위치를 알리고, 클라이언트는 발급받은 토큰을 제시해 인증·인가를 받는다. 토큰 탈취·confused deputy·세션 하이재킹 등에 대한 보안 베스트 프랙티스가 별도 문서로 정리돼 있다.

스펙 버전 흐름

MCP 스펙은 날짜 기반으로 개정된다. 클라이언트·서버는 핸드셰이크에서 프로토콜 버전을 협상한다.

개정주요 변화
2024-11-05최초 공개
2025-03-26Streamable HTTP 전송 도입(HTTP+SSE 대체), OAuth 2.1 인가 프레임워크, 도구 어노테이션
2025-06-18 (현재 안정)구조화 출력(structuredContent), elicitation(서버가 대화 중 사용자 입력 요청), resource links, MCP 서버를 OAuth Resource Server로 분류, JSON-RPC 배칭 제거, MCP-Protocol-Version 헤더 필수화

다음 버전(2026-07-28)은 릴리스 후보 단계로, 무상태(stateless) 운영을 표준화해 로드밸런서 뒤 수평 확장을 매끄럽게 만드는 방향이 핵심이다.

장점과 주의사항

장점

  • 통합 비용이 N × M에서 N + M으로 줄어든다.
  • 도구 추가가 모델 코드 수정 없이 가능 — 설정 파일에 등록만 하면 된다.
  • 표준 권한 모델로 위험한 호출을 사용자가 통제할 수 있다.

주의사항

  • MCP 서버는 클라이언트와 같은 권한 컨텍스트에서 돈다. 잘못된 서버 등록은 곧 LLM이 파일을 마음대로 만지는 결과로 이어진다.
  • 원격 서버를 붙일 때는 신뢰할 수 있는 출처인지, OAuth 스코프가 과하지 않은지 확인한다.
  • 전역 설정(servers.json 등)은 모든 세션에 적용되므로 경로/명령 오타 하나가 전체 에러로 번질 수 있다.

구현체 예시

요약

구분설명
MCP모델 ↔ 외부 리소스 통신 표준 프로토콜
통신JSON-RPC 2.0 양방향
전송stdio(로컬) · Streamable HTTP(원격)
보안로컬은 사용자 승인, 원격은 OAuth 2.1
현재 스펙2025-06-18
효과통합 비용 N × MN + M, 도구 추가 = 설정 파일 한 줄

한마디로: MCP는 “AI 모델을 외부 리소스와 연결하는 표준 인터페이스”다. 어떤 서버를 붙이느냐는 그 다음 문제다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.