MCP server
MCP: Model Context Protocol, Anthropic(Claude의 제작사)가 만든 프로토콜로, USB-C가 다양한 표준 방식으로 연결하는 것처럼, MCP는 AI 애플리케이션이 여러 데이터 소스 및 도구와 표준화된 방식으로 연결되도록 도움
-
MCP Host:

외부 데이터를 활용하고자 하는 Claude Desktop, IDE또는 AI도구와 같은 애플리케이션
-
MCP Client:

서버와 안전한 일대일 연결을 유지하여 효율적인 통신을 보장하는 Protocol client
-
MCP Server:

각기 특정 기능을 표준화된 모델 컨텍스트 프로토콜을 통해 노출하는 경량 프로그램. 이 구조는 호스트가 클라이언트를 사용해 다양한 서버에 연결할 수 있도록 하여 원활한 통합을 가능하게 함.
- 리소스: AI가 컨텍스트로 불러올 수 있는 파일, 문서 또는 데이터베이스 쿼리와 같은 데이터 소스 (e.g. 파일 시스템 서버는 로컬 문서에 대한 접근을 허용할 수 있음)
- 도구: AI가 수행할 수 있는 작업 (e.g. API를 호출하거나 명령을 실행시키는 것)
- 프롬프트: LLM 상호작용을 위한 재사용 가능한 템플릿으로, 특정 시나리오에서 AI의 행동을 안내함
MCP가 필요한 이유
- 지식 한계와 업데이트 문제
- 전문 도메인 지식의 부족
- 외부 데이터에 액세스할 통일된 표준이 없음: 현재 LLM에 추가 정보를 제공하는 데 많은 방법들이 있으며, 예를 들어 RAG, 로컬 지식 기반, 인터넷 검색 등 다양한 개발팀이 다른 통합 솔루션을 제공함으로써 시스템 간 통합 비용이 높아짐. 특히 전문 도메인 데이터를 가진 시스템은 LLM과 매끄럽게 통합하기 어려움. 각 통합은 표준화된 방법 없이 사용자 정의 개발이 필요함
- 풍부한 사전 구축 통합: MCP는 파일 시스템, 데이터베이스, 개발 도구, 네트워크 도구, 생산성 도구 등을 포함한 다수의 사전 제작된 서버 통합을 제공함 (사전 제작된 커넥터를 사용하여 LLM이 이러한 시스템에서 데이터를 액세스할 수 있도록 할 수 있음)
- LLM 제공자 간 유연한 전환: GPT-4, Calude, Gemini 등 하위 모델을 변경해도 모든 데이터 및 도구 통합은 그대로 유지됨
MCP server vs API
MCP 서버와 전통적인 API는 모두 소프트웨어가 외부 서비스와 상호작용할 수 있도록 허용하지만, AI 맥락에서 그 목적이 다름
- 목적: 전통적인 API는 소프트웨어 통신을 위한 일반 목적의 인터페이스, AI모델에 쿼리를 보내거나 외부 서비스에 접근하는 데 종종 사용됨. MCP 서버는 표준화된 형식으로 AI 모델에 문맥을 제공하도록 특별히 설계되었음
- 상호작용: 전통적인 API를 사용하려면 AI모델이 API를 호출하는 방법, 응답을 구문 분석하는 방법 및 해당 정보를 문맥에 통합해야함. 하지만 MCP서버의 경우, 서버가 데이터 소스나 도구와의 상호작용을 처리하고 정보를 AI모델이 쉽게 이해하고 사용할 수 있는 방식으로 제시함. 따라서 기본 데이터 소스에 대한 세부 사항을 알 필요가 없음
- 표준화: MCP는 표준화된 프로토콜을 제공하여 다양한 서버에 플러그 앤 플레이를 가능하게 하며, 전통적인 API는 각 서비스에 대한 맞춤형 통합이 필요할 수 있음
- 보안: MCP서버는 보안을 위해 최적화되어 있으며, 기본 인증 및 접근 제어가 내장되어 있는 반면, 전통적인 API는 구현에 따라 추가 보안 조치가 필요할 수 있음
전통적인 설정에서 AI가 날씨 데이터를 가져오기 위해 REST API를 호출하고, JSON 응답을 구문 분석하고 이를 문맥에 통합해야 할 수 있음. MCP 서버를 사용하면 서버가 'get_weather' 도구를 노출하고 AI가 매개변수와 함께 호출하여 사용할 준비가 된 형식화된 데이터를 받을 수 있음
Reference