iBetter Books
수정

20장. MCP 신뢰 모델과 스코프

MCP(Model Context Protocol)는 Claude가 외부 도구·데이터에 접근하는 표준 통로다. 그런데 도구를 "연결할 수 있다"는 것과 "안전하게 신뢰할 수 있다"는 것은 전혀 다른 문제다. MCP 서버는 자신의 도구가 읽기 전용인지 파괴적인지를 스스로 선언하지만, 그 선언은 강제력이 없는 힌트일 뿐이다. 악의적이거나 버그 있는 서버는 파괴적 도구를 읽기 전용이라고 거짓 표시해 확인 절차를 우회할 수 있다. 따라서 신뢰 경계는 서버의 자기 선언이 아니라 클라이언트(Claude Code, Agent SDK)가 직접 강제하는 권한 계층에서 결정된다. "신뢰받는 이름이 곧 신뢰받는 명령은 아니다"라는 원칙이 이 장 전체를 관통한다.

이 장은 두 개의 분리된 신뢰 계층을 다룬다. 첫째는 서버가 선언하는 도구 애너테이션과 그것이 실리지 않는 이유, 그리고 서버가 설치되는 스코프(local·project·user)가 만드는 권한 분리(blast radius)다. 둘째는 클라이언트가 강제하는 승인 메커니즘, 즉 기본 승인 프롬프트·허용목록·elicitation 기반 사람 개입(HITL)·파괴적 작업 게이팅이다. 시험은 두 계층을 섞어 함정을 만든다. 애너테이션을 보안 통제로 착각하게 하거나, 비대화형 실행에서 신뢰 검증이 사라지는 점을 묻는 식이다.

이 장을 마치면 MCP 도구 애너테이션이 보안 통제가 아니라 정보성 힌트임을 설명하고, name-keyed 신뢰와 rug-pull 위험을 식별하며, 서버 스코프를 최소 권한 관점에서 선택하고, 클라이언트 측 승인·허용목록·elicitation을 설계해 사람 개입 경계를 정확히 그을 수 있다.

제목 핵심 질문
01 신뢰 모델과 권한 분리 서버 선언을 왜 못 믿는가, 스코프로 어떻게 권한을 나누는가
02 민감 도구와 사용자 승인 클라이언트는 어떻게 승인을 강제하고 사람을 개입시키는가