MCP 생태계 탐구: 내부 구조 파헤치기
분야
프로그래밍/소프트웨어 개발
대상자
AI 모델 및 외부 도구 통합 개발자, 시스템 아키텍처 설계자
난이도: 중급~고급 (기술적 개념 이해가 필요)
핵심 요약
- *MCP는 함수 호출 기능을 기반으로 작동하며, 표준화된 프로토콜로 외부 도구와의 상호작용을 가능하게 합니다.**
- 함수 호출(Function Calling)은 LLM이 JSON 스키마 기반 도구를 이해하고, 사용자 쿼리에 따라 실행, 결과 처리를 수행합니다.
- MCP 아키텍처는 발견, 호출, 라이프사이클 관리 층을 통해 단순한 함수 호출을 분산 시스템으로 확장합니다.
- STDIO/SSE 두 가지 전송 메커니즘을 통해 로컬/원격 통신을 지원하며, 각각의 장단점과 사용 사례가 명확히 구분됩니다.
섹션별 세부 요약
1. 함수 호출 기반의 MCP 동작 원리
- 기본 개념: LLM이 외부 도구를 사용하기 위해 함수 호출을 통해 실행, 결과 처리를 수행합니다.
- 필수 조건: 함수 정의(JSON Schema), 실행 조건 판단, 파라미터 전달, 결과 처리 능력이 필요합니다.
- 예시:
get_weather
함수는 위치 및 단위 파라미터를 받아 날씨 정보를 반환합니다.
2. MCP 아키텍처 및 표준화
- 표준화 목적: 다양한 AI 모델과 외부 도구 간의 데이터 및 기능 교환을 가능하게 합니다.
- 작동 과정:
- 사용자 쿼리 → MCP 클라이언트 초기화 → 도구 목록 발견 → LLM 실행 결정 → 결과 통합
- HTTP 표준화와 유사하게, 커스터마이징 없이 통합이 가능합니다.
- 기능: 분산 시스템으로의 확장, 라이프사이클 관리, 도구 등록/발견 메커니즘
3. STDIO 전송 메커니즘
- 구조: 클라이언트와 서버가 별도 프로세스로 구성되며, IPC(프로세스 간 통신)를 통해 데이터 전송.
- 작동 방식:
- JSON-RPC 2.0 형식으로 메시지 전송
- 클라이언트가 서버의 stdin, stdout 파이프를 통해 통신
- Unix의 "작은 프로그램 연결" 철학을 기반으로 설계됨
- 적용 사례: 로컬 개발 환경, 민감한 로컬 자원 접근, 단순 통합 시스템
4. SSE 전송 메커니즘
- 구조: HTTP 기반의 반양방향 통신으로, 서버가 클라이언트에 데이터를 전송.
- 작동 방식:
- 서버-클라이언트: SSE로 지속 연결 유지
- 클라이언트-서버: HTTP POST 요청으로 전송
- 세션 관리 및 JSON-RPC 2.0 형식을 통한 메시지 전송
- 적용 사례: 원격 서버 통신, 복잡한 네트워크 환경, 실시간 데이터 전송
결론
- *MCP는 함수 호출 기반의 표준화 프로토콜로, 로컬과 원격 환경에서 유연하게 적용 가능합니다.**
- STDIO: 로컬 개발 및 민감 자원 접근 시 권장, 단일 머신에서만 작동.
- SSE: 원격 서버 통신에 적합, HTTP 기반의 양방향 통신이 가능.
- 실무 팁: 표준화된 프로토콜 사용으로 통합 개발 시간을 절약하고, 전송 방식 선택 시 사용 환경에 따라 최적화.