AI 맥락에서 MCP는 Model Context Protocol입니다.
이 이름은 추상적으로 들리지만, 해결하려는 문제는 매우 구체적입니다. 거의 모든 에이전트 스택은 모델을 tools, files, APIs, prompt templates, 외부 resources와 연결하고 싶어 합니다. 그런데 팀마다 연결 방식이 다릅니다. 어떤 프레임워크는 모든 것을 function calling으로 감싸고, 다른 프레임워크는 자체 tool schema를 만들고, 또 다른 시스템은 파일 접근을 사내 plugin처럼 다룹니다.
데모 하나만 있을 때는 이런 차이가 크게 문제 되지 않습니다. 하지만 여러 agent, 여러 runtime, 여러 팀이 등장하면 통합 계층은 빠르게 가장 다루기 싫은 부분이 됩니다.
공식 Model Context Protocol introduction은 MCP를 모델을 필요한 컨텍스트에 연결하는 오픈 프로토콜로 설명합니다. 핵심 가치는 여기에 있습니다. 통합마다 새 계약을 다시 만드는 대신, host가 더 예측 가능한 프로토콜 표면과 상호작용할 수 있게 됩니다.
그래서 MCP는 단발성 챗봇보다 AI 에이전트에서 더 중요합니다. 에이전트는 단순히 답만 하지 않습니다. 읽고, 계획하고, 가져오고, 호출하고, 넘기고, 재시도하고, 때로는 행동합니다. 단계가 늘어날수록 ad hoc glue의 비용은 커집니다.
MCP는 원래 쉽게 분산되는 몇 가지 표면을 표준화하기 때문에 유용합니다.
| 문제 | MCP 없이 | MCP 사용 시 |
|---|---|---|
| 기능 발견 | 각 통합마다 tools와 데이터를 다르게 설명 | host가 공통된 형태로 기능을 발견 |
| 도구 호출 | 앱별 wrapper와 깨지기 쉬운 glue code | 도구 호출 계약이 더 예측 가능 |
| 리소스 접근 | 파일과 문서 노출 방식이 stack마다 다름 | resources가 1급 프로토콜 표면이 됨 |
| Prompt 패키징 | 템플릿이 앱 코드 곳곳에 흩어짐 | prompts를 구조화된 객체로 노출 가능 |
| 이식성 | host를 바꾸면 통합을 다시 써야 함 | MCP-aware host 간 재사용 가능성이 커짐 |
실무적으로는 호환되지 않는 도구 시스템 사이 번역 작업에 덜 시간을 쓰고, 에이전트가 실제로 무엇을 할 수 있어야 하는지에 더 집중할 수 있습니다.
공식 사양은 hosts, clients, servers, 그리고 tools, resources, prompts를 핵심 표면으로 설명합니다. 초기 Anthropic announcement도 같은 메시지를 담고 있었습니다. 목표는 모델을 더 똑똑하게 만드는 것이 아니라, AI 시스템이 외부 능력과 컨텍스트에 연결되는 표준 인터페이스를 만드는 것이었습니다. 최신 MCP specification도 참고할 수 있습니다.
새 표준에 기대가 몰릴 때 가장 자주 생략되는 부분입니다.
MCP는 프로토콜 경계를 표준화하지만, 다음을 자동으로 제공하지는 않습니다.
이 차이는 중요합니다. "모델 문제"로 보이는 많은 프로덕션 장애는 실제로는 컨텍스트 조립과 capability control 문제인 경우가 많습니다.
예를 들어:
올바른 정신 모델은 이렇습니다.
MCP는 프로토콜 계층이고, 프로덕션 컨텍스트 시스템은 여전히 하나의 완전한 시스템이다.
대부분의 에이전트 시스템 첫 버전이 잘 돌아가는 것처럼 보이는 이유는 세 가지밖에 없기 때문입니다.
이때가 가장 편한 시기입니다.
문제는 다음이 추가되면 시작됩니다.
그러면 숨겨진 비용이 모두 드러납니다.
한 팀은 start_time, 다른 팀은 startAt, 또 다른 팀은 begin이라고 부릅니다. 모델은 가끔 버티지만, 사람은 결국 "캘린더 도구"가 정확히 무엇인지 신뢰하지 못하게 됩니다.
그 agent는 ticket을 읽기만 하나, 아니면 닫을 수도 있나? 계약서를 조회만 하나, 아니면 수정도 가능한가? 인터페이스가 이를 명확히 드러내지 않으면 정책 의미가 주석, 프롬프트, 암묵지로 새어 나갑니다.
한 host에서 동작한 통합이 다른 host로 자동 이식되지는 않습니다. 실험이 느려지고, 보안 검토도 더 복잡해집니다.
제대로 동작하는 에이전트 플랫폼은 보통 최소 다섯 계층이 필요합니다.
| 계층 | 역할 |
|---|---|
| 데이터와 문서 | 원본 files, tickets, records, APIs |
| 컨텍스트 가공 | 정규화, schema mapping, indexing, versioning |
| 프로토콜 전달 | MCP, API 또는 기타 전달 표면 |
| runtime 제어 | planning, retries, budgets, fallbacks, approvals |
| 거버넌스 | access control, logs, evaluation, rollback |
MCP는 세 번째 계층에 있습니다.
이 점은 중요한 설계 힌트입니다. 프로토콜 표면이 깨끗하다고 해서 아래쪽의 혼란이 사라지는 것은 아닙니다. MCP는 그 혼란을 더 일관되게 노출할 뿐입니다.
챗봇은 통합이 다소 지저분해도 꽤 오래 버팁니다. 대부분 읽고 답하는 데서 끝나기 때문입니다.
에이전트는 다릅니다. 에이전트는:
이 세계에서 프로토콜 일관성은 단순한 아키텍처 취향이 아닙니다. 우발적 복잡성을 줄이는 가장 값싼 방법 중 하나입니다.
planner는 가능한 기능을 발견할 수 있습니다.
worker는 필요한 것만 호출할 수 있습니다.
reviewer는 여러 층의 전용 glue를 읽지 않고도 체인을 점검할 수 있습니다.
puppyone은 프로토콜 경계 아래와 주변에 놓일 때 유용합니다.
실무 패턴은 다음과 같습니다.
즉, MCP는 에이전트가 외부 세계와 표준 방식으로 대화하도록 돕고, puppyone은 그들이 받는 컨텍스트가 구조화되고 관리되며 프로덕션에 적합하도록 돕습니다.
MCP를 처음 접한다면 이 한 문장을 기억하면 됩니다.
MCP는 AI 에이전트를 저절로 더 똑똑하게 만들지 않습니다.
대신 통합을 덜 bespoke하게 만듭니다.
과장된 hype보다는 작게 들릴 수 있지만, 프로덕션에서는 매우 의미 있는 개선입니다. 도구 접근이 프레임워크별 glue 안에 숨어 있지 않게 되면 시스템을 더 쉽게 설명하고, 더 쉽게 옮기고, 더 쉽게 검토할 수 있습니다.
특히 다음 문제를 이미 겪는 팀일수록 더 큰 도움을 받습니다.
정확히 같지는 않습니다. tool calling은 외부 능력을 호출하는 일반적 행동이고, MCP는 그런 능력을 표준화된 방식으로 노출하고 발견하게 하는 프로토콜입니다.
아닙니다. 많은 MCP server 아래에는 여전히 일반 API가 있습니다. MCP는 host를 위한 공통 인터페이스를 제공할 뿐, 뒤의 시스템을 없애지는 않습니다.
아닙니다. 여전히 거버넌스, 컨텍스트 품질, 재시도, 승인, 로그, 롤백이 필요합니다. MCP는 경계를 정리해 주지만, 스택 전체의 한 층일 뿐입니다.