Tech Blog로 돌아가기

AI AGENT STUDY · MCP

11

MCP는 API wrapper와 무엇이 다른가

Tool calling과 MCP의 책임을 분리하고, host·client·server가 capability를 발견하고 통제하는 protocol lifecycle을 살펴봅니다.

중앙 MCP host gateway가 여러 capability server와 양방향으로 연결된 구조
MCP는 tool 하나를 감싸는 함수가 아니라, host가 외부 capability를 발견하고 통제하는 연결 경계입니다.원본 크기로 보기

Tool calling이 있는데 왜 MCP가 또 필요할까

Tool calling은 모델이 어떤 행동을 원한다는 사실을 구조화해 표현하는 메커니즘입니다. MCP는 여러 host와 server 사이에서 tool, resource, prompt 같은 capability를 발견하고 사용하기 위한 protocol입니다. 두 기술은 경쟁하지 않고 서로 다른 경계를 담당합니다.

사용자는 MCP server와 직접 대화하지 않습니다

MCP ACTORS

User

Host application
  ├─ Agent runtime + permission policy
  ├─ MCP client A ↔ MCP server A ↔ files / API
  └─ MCP client B ↔ MCP server B ↔ database / service

Host는 사용자 경험과 agent runtime, permission policy를 소유합니다. 각 server와 통신하는 client를 관리하고, 발견된 capability를 자신의 tool registry와 UI에 흡수합니다. Server는 기능과 context를 제공하지만 최종 사용자에게 무엇을 노출하고 실행할지는 host가 결정합니다.

Tools, resources, prompts는 주도권이 다릅니다

Surface주도권대표 용도
ToolsModel 또는 host가 호출조회, 계산, 변경 같은 실행 가능한 행동
ResourcesApplication이 읽고 context로 구성파일, schema, 문서, 상태
PromptsUser 또는 application이 선택재사용 가능한 작업 template
SamplingServer가 host에 모델 생성을 요청Server workflow 안의 model-assisted step
ElicitationServer가 host를 통해 사용자 입력 요청부족한 정보나 확인 수집
RootsHost가 접근 가능한 filesystem 경계 제공작업 공간 범위 제한

MCP를 “remote tool 규격”으로만 보면 server가 제공하는 surface와 client가 제공하는 surface의 양방향성이 보이지 않습니다. 동시에 capability가 있다는 사실과 사용할 권한이 있다는 사실은 구분해야 합니다.

MCP는 연결 문자열이 아니라 lifecycle입니다

  1. Initialization: protocol version과 서로 지원하는 capability를 협상합니다.
  2. Discovery: tool, resource, prompt 목록과 schema를 조회합니다.
  3. Invocation: 선택한 capability를 호출하고 request id와 result를 연결합니다.
  4. Notification: 목록이나 resource가 바뀌었음을 전달하고 cache를 갱신합니다.
  5. Shutdown: process, connection, subscription을 정리합니다.

Local tool과 MCP tool의 선택 기준

한 application에서만 쓰는 작고 안정적인 함수는 local tool이 단순합니다. 여러 host에서 재사용하고 discovery, lifecycle, 독립 배포가 필요하다면 MCP server가 의미를 갖습니다. Protocol 도입 비용보다 경계 표준화의 이점이 큰지를 먼저 봅니다.

Server를 붙이기 전에 권한과 실패를 설계합니다

질문운영 설계
누가 server를 신뢰하는가?Server allowlist, package/source provenance
무엇을 읽을 수 있는가?Roots, resource scope, secret redaction
무엇을 바꿀 수 있는가?Read/write 분리, approval, sandbox
Result를 믿어도 되는가?Tool-result injection 방어와 output validation
연결이 끊기면?Timeout, retry policy, graceful degradation

디버깅도 모델보다 연결 계층부터 시작합니다. Process가 살아 있는지, transport가 연결됐는지, initialization이 성공했는지, discovery에 capability가 보이는지, schema가 맞는지, 마지막에 model selection을 확인하는 순서가 빠릅니다.