제01권 · 제10호 CS · AI · Infra 2026년 5월 13일

AI 용어집

용어 사전레퍼런스학습
LLM · 생성AI

MCP모델 컨텍스트 프로토콜

Model Context Protocol

난이도

쉽게 이해하기

MCP의 출발점은 AI 앱 통합이 너무 빠르게 복잡해졌다는 점입니다. 모델 하나에 DB, 파일 시스템, SaaS, 내부 API, 검색 도구를 붙일 때마다 별도 커넥터를 만들면 조합 수가 늘어나고 보안 검토도 반복됩니다. MCP는 이 문제를 "호스트-클라이언트-서버" 구조로 나눕니다. 사용자가 대화하는 앱이 호스트이고, 호스트 안의 MCP 클라이언트가 서버별 연결을 맡고, MCP 서버는 자신이 제공할 수 있는 도구·리소스·프롬프트를 표준 메시지로 노출합니다.

핵심은 "모델이 외부 시스템을 직접 만지는 것"이 아니라 "호스트가 중간에서 허용된 기능만 연결한다"는 점입니다. 서버는 tools/list, resources/read, prompts/get 같은 primitive를 제공하고, 호스트는 사용자 승인·권한·정책을 확인한 뒤 호출합니다. 원격 서비스는 Streamable HTTP로, 로컬 도구는 STDIO로 붙을 수 있습니다. 그래서 MCP는 RAG, function calling, 내부 자동화, 에이전트 도구 생태계 사이에서 공통 접속 규격 역할을 합니다.

비유와 예시

  • 사내 데이터 조회: HR 데이터베이스를 MCP 서버로 감싸면 AI 앱은 임의 SQL을 직접 실행하지 않고, 서버가 허용한 리소스와 도구만 호출한다.

  • 개발 도구 연결: 로컬 파일 분석 서버는 STDIO로 붙고, 이슈 트래커나 문서 시스템은 Streamable HTTP로 붙어 같은 호스트 안에서 함께 쓰인다.

  • 프롬프트 템플릿 공유: 팀이 자주 쓰는 리뷰 템플릿을 MCP prompt로 노출하면, 앱마다 프롬프트를 복붙하지 않고 서버에서 버전 관리할 수 있다.

한눈에 비교


MCPFunction CallingOpenAPI
초점AI 앱과 도구/데이터/프롬프트의 표준 연결모델이 함수 인자를 생성HTTP API 계약 문서화
구성Host, Client, Server 세션모델 API와 호스트 실행 로직서버 엔드포인트와 스키마
주요 primitiveresources, tools, prompts, sampling, elicitationfunction/tool callpaths, methods, schemas
전송STDIO, Streamable HTTP모델 API 내부HTTP 중심
보안 경계호스트가 동의·권한·감사 중재호스트 구현에 의존API 인증/인가에 의존

MCP는 function calling을 대체한다기보다, 여러 도구와 데이터 소스를 장기적으로 관리하기 위한 접속 계층을 표준화한다.

어디서 왜 중요한가

  • 도구 생태계 확장: 각 앱이 모든 도구를 직접 통합하는 대신, MCP 서버를 재사용해 통합 비용을 줄일 수 있다.

  • 권한 경계 명확화: 모델이 아니라 호스트가 사용자 동의, 도구 실행 승인, 감사 로그를 관리한다.

  • 컨텍스트 주입 비용 절감: 필요한 리소스를 필요할 때 읽기 때문에 큰 문서를 프롬프트에 통째로 넣는 방식을 줄인다.

  • 로컬/원격 동시 지원: 로컬 개발 도구는 STDIO, 원격 서비스는 Streamable HTTP로 같은 프로토콜 아래 묶을 수 있다.

자주 하는 오해

  • 오해: MCP 서버를 붙이면 모델이 모든 데이터에 접근한다 → 실제: 서버가 노출한 기능과 호스트 정책이 접근 범위를 제한한다.

  • 오해: MCP는 OpenAPI의 AI 버전일 뿐이다 → 실제: MCP는 prompts, resources, tools, sampling, elicitation처럼 대화형 AI 흐름을 직접 다룬다.

  • 오해: MCP는 보안을 자동 해결한다 → 실제: 권한 스코프, 사용자 동의, tool poisoning 방지, 감사 로그는 별도로 설계해야 한다.

대화에서는 이렇게

  • "이 DB는 MCP resource로 읽기 전용만 열고, 수정 작업은 별도 tool로 승인 플로우를 넣읍시다."

  • "원격 서버는 Streamable HTTP로 붙이고, 로컬 개발 도구는 STDIO 서버로 유지하는 게 낫겠습니다."

  • "tool 설명이 모델에게 보이는 입력이므로 prompt injection 검사를 배포 게이트에 넣어야 합니다."

  • "sampling 요청은 호스트 정책을 통과한 경우에만 허용하고, 어떤 서버가 요청했는지 감사 로그에 남기죠."

함께 읽으면 좋은 용어

참고 자료

도움이 되었나요?