MCP 인프라는 Model Context Protocol 기능을 제공하고 운영하는 데 필요한 모든 요소입니다. 클라이언트, 전송, 서버, 도구, 인가, 정책, 자격 증명, 백엔드 실행, 상태, 텔레메트리가 포함됩니다. MCP 서버는 구성 요소 하나이지 완전한 프로덕션 시스템이 아닙니다.
데모는 tools/list와 tools/call에서 끝날 수 있습니다. 프로덕션에서는 누가 호출했는지, 무엇에 접근할 수 있는지, 쓰기가 반복될 수 있는지, 운영자가 효과를 어떻게 재구성하는지 답해야 합니다.
MCP가 표준화하는 것
MCP는 클라이언트와 서버가 기능을 협상하고 메시지를 교환하는 JSON-RPC 프로토콜을 정의합니다. 서버는 다음을 제공할 수 있습니다.
- 모델이 선택하고 호출할 수 있는 도구
- 클라이언트가 읽거나 구독할 수 있는 리소스
- 클라이언트가 사용자나 모델에 제시할 수 있는 재사용 가능 프롬프트
MCP 도구 명세는 tools/list를 통한 탐색, tools/call을 통한 호출, 입력 및 선택적 출력 스키마, 구조화된 콘텐츠, 도구 목록 변경 알림을 정의합니다.
프로토콜은 이런 계약을 전달합니다. 현재 테넌트에서 도구가 안전하고 유용하며 인가됐는지는 결정하지 않습니다.
프로토콜을 둘러싼 인프라
flowchart LR
C[MCP client] --> T[stdio or Streamable HTTP]
T --> S[MCP server]
S --> A[Authentication and policy]
A --> X[Credential and execution layer]
X --> B[Backend APIs and data]
S --> R[Session and operation state]
S --> O[Logs, traces, and evaluations]
X --> O
B --> O
각 경계에는 별도의 역할이 있습니다.
클라이언트와 전송
클라이언트는 모델에 노출할 서버 기능과 사용자가 호출을 승인하는 방식을 결정합니다. 로컬 서버는 주로 stdio를 사용하고 원격 서버는 Streamable HTTP를 사용합니다. MCP 전송 명세는 DNS 리바인딩 공격을 막기 위해 HTTP 서버가 Origin 헤더를 검증하도록 요구합니다.
전송 보안은 연결을 보호하지만 데이터베이스 행이나 클라우드 리소스를 인가하지는 않습니다.
서버와 도구 레지스트리
서버는 MCP 수명 주기 메시지를 구현하고 도구, 리소스, 프롬프트를 게시합니다. 도구 레지스트리에는 이름, 설명, 스키마, 주석이 있습니다. 서버 자체를 신뢰하지 않는 한 클라이언트는 도구 주석을 신뢰할 수 없는 정보로 취급해야 합니다.
도구 정의는 내부 엔드포인트 이름이 아니라 작업에 맞아야 합니다. MCP 도구 설계 가이드는 겹치는 선택지를 줄이고 모델이 사용할 수 있는 결과를 반환하는 방법을 설명합니다.
인증과 정책
인증은 호출자 또는 대리 사용자를 식별합니다. 정책은 해당 ID가 접근할 수 있는 도구, 리소스, 테넌트, 작업을 결정합니다. HTTP 전송에서 MCP 인가 명세는 보호 리소스 탐색, 인가 서버 메타데이터, 리소스 지시자, bearer 토큰, PKCE, 대상 검증이 포함된 OAuth 기반 흐름을 정의합니다.
인가는 백엔드에서도 이어져야 합니다. 게이트웨이가 delete_project를 숨겨도 기반 API는 인가되지 않은 삭제를 거부해야 합니다.
자격 증명과 실행 계층
MCP 서버에는 업스트림 API용 별도 토큰이 필요할 수 있습니다. 현재 인가 명세는 클라이언트의 MCP 접근 토큰을 업스트림 서비스로 전달하는 것을 명시적으로 금지합니다. 서버는 해당 백엔드용 별도 자격 증명을 교환하거나 가져와야 합니다.
자격 증명을 도구 인자와 결과 밖에 두세요. 모델에는 결과가 필요하지, 결과를 얻는 데 쓴 비밀 값은 필요하지 않습니다. MCP 키 보안 가이드는 자격 증명 경로를 자세히 다룹니다.
백엔드, 상태, 복구
백엔드는 비즈니스 인가, 데이터 무결성, 외부 효과를 담당합니다. 세션 상태는 활성 서버 연결을 기록할 수 있습니다. 작업 상태는 특정 쓰기가 시작, 완료, 실패 또는 조정 필요 상태인지 기록합니다.
채팅 기록만 작업 원장으로 사용하지 마세요. 요약된 도구 결과만으로 시간 초과된 결제나 배포를 반복할지 결정할 수 없습니다.
텔레메트리와 평가
트레이스 하나로 사용자 요청, 모델 선택, 도구 호출, 정책 결정, 백엔드 요청, 최종 효과를 연결해야 합니다. 안정적인 테넌트, 사용자, 에이전트, 세션, 도구 호출, 작업 ID를 기록하고 토큰, 자격 증명, 민감한 페이로드는 제외하세요.
평가 모음에는 도구 선택 충돌, 잘못된 입력, 금지된 리소스, 승인 경로, 재시도, 중단된 응답이 포함되어야 합니다. 개별적으로 잘 작동하는 도구도 비슷한 도구 스무 개가 보이면 실패할 수 있습니다.
완전한 도구 경로 하나를 검토하세요
효과 범위가 가장 넓은 MCP 도구를 고르세요. 핸들러를 지나 ID, 정책, 자격 증명, 백엔드 상태, 텔레메트리까지 따라갑니다. 어떤 단계든 프롬프트 지시나 사람이 로그를 읽는 데 의존한다면 빠진 인프라로 표시하세요.
아래 프롬프트는 도구를 호출하지 않고 이 추적을 수행합니다.