# [[MCP (Model Context Protocol)]]

## 📌 Brief Summary
MCP(Model Context Protocol)는 에이전트(또는 LLM)와 외부 도구/데이터 소스 간의 통신을 표준화하기 위해 설계된 오픈 프로토콜이다. 에이전트 하네스 내부의 도구 인터페이스(T-component)를 표준화하여, 에이전트가 다양한 시스템(파일, DB, API 등)과 일관된 방식으로 상호작용할 수 있게 한다. 로컬 프로세스 간 통신(stdio)과 원격 통신(SSE/HTTP)을 모두 지원하며, 에이전트의 기능을 동적으로 확장하는 핵심 인프라 역할을 한다.

## 📖 Core Content
*   **에이전트-도구(Agent-to-Tool) 인터페이스 표준화**: MCP는 에이전트가 사용할 수 있는 도구의 목록, 각 도구의 입력 스키마, 그리고 실행 결과를 주고받는 형식을 정의한다. 이를 통해 특정 에이전트 프레임워크에 종속되지 않는 독립적인 도구 서버(MCP Server)를 구축할 수 있다.
*   **유연한 전송 계층 (stdio & SSE)**: 
    *   **stdio**: 로컬 환경에서 에이전트 프로세스와 도구 서버 프로세스 간의 가장 빠른 통신 방식(지연 시간 2~15ms).
    *   **SSE/HTTP**: 클라우드나 원격 서버에 배포된 도구와 통신할 때 사용하며, 실시간 결과 스트리밍을 지원한다.
*   **리소스와 템플릿 시스템**: 단순한 도구 호출뿐만 아니라, 텍스트 데이터나 정적 파일을 에이전트에게 제공하는 'Resources' 기능과, 정형화된 프롬프트를 관리하는 'Prompts' 기능을 포함한다.
*   **상호운용성 및 확장성**: MCP를 지원하는 모든 클라이언트는 어떤 MCP 서버와도 즉시 연결될 수 있다. 이는 에이전트 개발자가 매번 새로운 API를 연동하는 대신, 표준화된 MCP 서버를 선택하여 기능을 확장할 수 있게 한다.
*   **보안 및 샌드박싱**: MCP는 도구 실행 권한을 클라이언트(하네스) 계층에서 제어하도록 설계되었다. 사용자의 승인 없이 민감한 도구가 실행되는 것을 방지하기 위해 런타임 승인 게이트와 결합되어 작동한다.

## ⚖️ Trade-offs & Caveats
*   **거버넌스 공백**: MCP 자체에는 세분화된 권한 관리나 세션 상태 유지 기능이 부족하다. 따라서 에이전트 하네스(L-component) 수준에서 이를 보완하는 추가적인 보안 레이어가 필수적이다.
*   **간접 프롬프트 인젝션**: 신뢰할 수 없는 외부 MCP 서버의 데이터를 모델에 직접 주입할 경우, 데이터에 숨겨진 악의적 명령이 에이전트를 하이재킹할 위험이 존재한다.
*   **인프라 오버헤드**: 표준을 준수하기 위해 RPC 서버를 구축하고 유지해야 하므로, 아주 단순한 스크립트 기반 도구에 비해 초기 구현 비용과 관리 복잡성이 발생한다.
*   **지연 시간**: 원격 SSE 방식을 사용할 경우 로컬 stdio 방식보다 통신 지연이 발생하며, 이는 에이전트의 전체 실행 루프 성능에 영향을 줄 수 있다.

## 🔗 Knowledge Connections

### Related Concepts

#### [아키텍처 및 통신 표준]
*   [[A2A (Agent-to-Agent Protocol)]]
    *   연결 이유: MCP가 에이전트-도구 간의 소통을 맡는다면, A2A는 에이전트-에이전트 간의 위임과 협업을 맡는 상위 계층 프로토콜이다.
*   [[Tool Registry (T-component)]]
    *   연결 이유: 에이전트 하네스 구조에서 MCP가 직접적으로 구현하고 표준화하는 핵심 구성 요소이다.

#### [보안 및 운영]
*   [[Lifecycle Hooks (L-component)]]
    *   연결 이유: MCP 통신의 보안 공백(권한 제어, 데이터 필터링)을 런타임에 보완하고 정책을 강제하는 하네스의 구성 요소이다.
*   [[Excessive Agency]]
    *   연결 이유: MCP를 통해 에이전트에게 강력한 외부 도구 접근 권한을 부여할 때 발생할 수 있는 주요 보안 리스크이다.

### Deeper Research Questions
*   MCP 서버로부터 전달된 데이터가 악성 명령을 포함하고 있는지(간접 프롬프트 인젝션)를 실시간으로 탐지하기 위해 하네스 계층은 어떤 검증 모델을 갖추어야 하는가?
*   A2A를 통한 타 에이전트의 작업 요청 권한을 로컬 MCP 도구 실행 권한으로 안전하게 매핑하고 변환하는 표준화된 권한 모델은 무엇인가?
*   로컬 stdio 방식의 성능 이점을 유지하면서도 원격 SSE 방식의 확장성을 결합한 하이브리드 MCP 아키텍처는 어떻게 설계할 수 있는가?
*   MCP 리소스가 LLM의 컨텍스트 윈도우를 초과할 때, 하네스 계층에서 이를 요약하거나 'Artifact Store'로 오프로딩하는 최적의 전략은 무엇인가?

### Practical Application Contexts
*   **Implementation:** Claude Desktop이나 Cursor와 같은 에이전틱 IDE에 SQLite, GitHub API, 로컬 파일 편집 기능을 갖춘 MCP 서버를 연동하여 개발 자동화를 구현한다.
*   **System Design:** 에이전트 시스템 설계 시 모든 외부 통합을 MCP 서버로 모듈화하여, 하네스 코드 변경 없이도 도구를 동적으로 교체하거나 추가할 수 있는 구조를 만든다.
*   **Operation:** 프로덕션 환경에서 MCP 서버의 호출 내역을 로깅하고, 특정 도구의 남용이나 비정상적인 데이터 유출 패턴을 모니터링한다.

---
*Last updated: 2026-05-01*
