반응형

개요
MCP(Model Context Protocol)는 AI 모델이 작업을 수행하는 데 필요한 컨텍스트에 액세스할 수 있게 해주는 프로토콜입니다. 주로 대규모 언어 모델(LLM)인 OpenAI, Gemini, Anthropic의 Claude와 같은 모델에 유용하지만, 모든 종류의 모델에 사용할 수 있습니다.
MCP의 핵심 기능
MCP는 AI 모델이 작업을 수행하는 데 필요한 컨텍스트에 액세스할 수 있는 방법을 제공합니다. 예를 들어, 데이터베이스에 액세스할 수 있는 MCP 서버 하나와 클라우드에서 프레젠테이션 파일에 액세스할 수 있는 다른 MCP 서버를 통해 모델이 단일 작업을 수행할 수 있습니다.
MCP가 제공하는 컨텍스트 유형
MCP 서버가 AI 모델에 제공할 수 있는 기본 컨텍스트 유형은 네 가지입니다:
- Tools: 모델이 데이터베이스 생성이나 업데이트 같은 작업을 수행하는 데 사용할 수 있는 기능
- Resources: 모델에 제공하는 첨부 파일(예: 프레젠테이션 파일)
- Sampling: 모델이 다른 모델을 쿼리하는 방법
- Prompts: 클라이언트가 모델에 요청할 때 템플릿으로 사용할 수 있는 매개변수화된 프롬프트
MCP 아키텍처
- MCP 서버: 클라이언트의 요청을 처리하는 프로그램으로, Tools를 구현하거나 Resources를 제공합니다.
- MCP 클라이언트: Claude 데스크톱과 같은 채팅 인터페이스로, 서버에 Tools와 Resources에 대한 요청을 보냅니다.
- Protocol(P): 클라이언트와 서버 간에 전송되는 메시지 구조를 정의합니다.
MCP의 특징: Reflection
Reflection(반영)은 클라이언트가 서버에서 제공하는 Tools 및 Resources와 같은 기본 요소에 대해 정보를 요청할 수 있게 해주는 기능입니다. 이는 MCP를 다른 API 프로토콜(tRPC, gRPC, REST 등)과 차별화하는 핵심 요소입니다.
전송 메커니즘
MCP는 다양한 유형의 전송과 함께 사용되도록 설계되었으며, 두 가지 주요 전송 방식이 있습니다:
- 표준 IO 전송: MCP 클라이언트가 사용자 컴퓨터에서 MCP 서버를 직접 실행하고, 기본 제공 Unix 또는 Windows 표준 입출력 메커니즘을 사용하여 통신합니다.
- SSE(Server-Sent Events): 네트워크 기반 전송 방식으로, MCP 클라이언트는 원격 URL로 구성된 후 HTTP/HTTPS를 통해 SSE 이벤트를 사용하여 메시지를 송수신합니다.
MCP 서버 구현
MCP 서버는 TypeScript와 같은 언어로 작성할 수 있으며, 다음과 같은 구성 요소를 포함합니다:
- 서버 이름 및 버전 정의
- Tools와 각 도구에 대한 리소스 추가
- 함수 매개변수 정의 및 설명
- 데이터베이스나 API에 연결하는 함수 본문
MCP의 장점
- Reflection 지원: 클라이언트가 서버의 도구와 리소스를 파악할 수 있음
- 테스트 용이성: AI 없이도 검사기를 통해 모든 기능 테스트 가능
- 다중 서버 지원: 클라이언트가 여러 MCP 서버와 통신하여 작업 수행 가능

다른 API 표준과의 차이점
- GraphQL과의 차이: GraphQL은 Reflection이 있지만 Tools와 같은 직접적인 RPC 메커니즘이 없음
- tRPC, gRPC, REST와의 차이: 이들은 Reflection이 없어 Tools 기능을 별도로 구현해야 함
MCP 사용 시 핵심 고려사항
- MCP를 백엔드 API의 대체가 아닌 AI 모델을 위한 효율적인 인터페이스로 활용
- 모든 기능을 단일 MCP 서버에 통합하기보다 고유한 작업을 수행하는 여러 서버 사용
- AI가 주문을 효과적으로 생성할 수 있도록 MCP 서버를 높은 수준의 추상화로 유지
- 데이터베이스와 스키마에 대한 전체 액세스 권한 대신 필요한 도구만 제공
MCP는 AI 모델에 컨텍스트를 효율적으로 제공하여 비용과 시간을 절약하면서 더 효과적인 작업 수행을 가능하게 합니다.
반응형