MCP와 API 비교 설명
(norahsakal.com)- MCP (Model Context Protocol) 는 AI 모델이 외부 도구 및 데이터 소스와 상호작용하는 방식을 표준화한 새로운 개방형 프로토콜임
- USB-C 포트가 여러 기기를 연결하는 방식을 단일화하듯이, MCP는 AI 시스템이 다양한 도구 및 데이터 소스와 연결하는 방식을 단일화함
기존 API보다 MCP를 사용하는 이유
- 전통적인 API 통합은 각 도구 및 서비스마다 별도의 코드 작성, 인증 방식, 오류 처리, 유지 보수가 필요함
-
API는 각 문에 맞는 별도의 열쇠를 사용하는 것과 같음
- 각 서비스나 도구별로 개별 통합이 필요하고 문서화, 인증, 오류 처리 및 유지 보수가 복잡함
MCP의 등장 배경
- MCP는 Anthropic에서 시작된 프로젝트이며, Claude와 같은 AI 모델이 도구 및 데이터 소스와 쉽게 상호작용하도록 설계됨
- 현재는 오픈 소스로 공개되어 여러 회사와 개발자가 채택 중임
- AI 도구 상호작용의 새로운 표준으로 자리잡아가는 중임
MCP vs 기존 API 비교
- 통합 노력: MCP는 단일 표준, 기존 API는 개별 통합 필요
- 실시간 통신: MCP 지원, 기존 API 미지원
- 동적 발견: MCP 가능, 기존 API 불가능
- 확장성: MCP는 플러그 앤 플레이, 기존 API는 추가 통합 필요
- 보안 및 제어: MCP는 일관성 유지, 기존 API는 다름
MCP와 기존 API의 주요 차이점
- 단일 프로토콜: 한 번 MCP로 통합하면 여러 도구와 서비스에 연결 가능
- 동적 발견: AI 모델이 사전에 코딩 없이 사용 가능한 도구를 자동으로 검색 및 상호작용 가능
- 양방향 통신: 실시간으로 정보를 가져오고 작업을 수행할 수 있음 (예: WebSocket과 유사)
MCP의 양방향 통신이 중요한 이유
- 데이터 가져오기: AI 모델이 서버에서 필요한 정보 검색 → 예: 일정 확인
- 작업 수행: AI 모델이 서버에 작업 수행 명령 → 예: 회의 일정 변경, 이메일 전송
MCP의 작동 원리: 아키텍처
- MCP 호스트: Claude Desktop과 같은 AI 애플리케이션
- MCP 클라이언트: MCP 서버와 연결을 유지하며 명령 및 데이터 교환
- MCP 서버: 특정 기능을 노출하고 로컬 또는 원격 데이터 소스와 연결
- 로컬 데이터 소스: 파일, 데이터베이스 등
- 원격 서비스: 외부 API 및 인터넷 기반 서비스
- MCP는 복잡한 로직을 처리하는 것이 아니라 AI 모델과 도구 간 데이터 흐름을 조정하는 역할
실제 MCP 클라이언트 예시
- Python 스크립트(
client.py
)가 Gmail, Slack, 캘린더 앱 등과 상호작용 - 단일 프로토콜 사용으로 복잡한 통합 과정을 제거하고 빠르게 기능 추가 가능
MCP 사용 예시
1. 여행 일정 도우미
- 기존 API 사용: Google Calendar, 이메일, 항공사 예약 API 등 별도 코드 작성 및 인증 필요
- MCP 사용: 단일 MCP 프로토콜로 일정 확인, 항공권 예약, 이메일 전송 가능
2. 고급 IDE (지능형 코드 편집기)
- 기존 API 사용: 파일 시스템, 버전 관리, 패키지 관리자 등 개별 통합 필요
- MCP 사용: MCP를 통해 통합 → 코드 추천 및 더 풍부한 컨텍스트 제공
3. 복합 데이터 분석
- 기존 API 사용: 개별 데이터베이스 및 시각화 도구와 수동으로 연결
- MCP 사용: 단일 MCP 레이어로 여러 데이터 소스와 자동 상호작용 가능
MCP 구현의 이점
- 개발 간소화: 한 번 작성하면 여러 도구에 적용 가능
- 유연성: AI 모델 및 도구 교체 시 복잡한 재구성이 필요 없음
- 실시간 응답성: MCP 연결이 활성 상태로 유지되어 실시간 업데이트 및 상호작용 가능
- 보안 및 규정 준수: 일관된 접근 제어 및 보안 유지
- 확장성: 새로운 기능 추가 시 간단히 새로운 MCP 서버 연결 가능
기존 API가 더 적합한 경우
- 정밀하고 예측 가능한 상호작용이 필요한 경우 기존 API가 유리
- 성능 최적화 및 제어가 필요한 경우 기존 API가 적합
기존 API가 유리한 경우
- 세밀한 제어 및 제한된 기능이 필요할 때
- 성능 최적화가 중요한 경우
- 최소한의 컨텍스트 자율성이 요구될 때
MCP 시작하기: 주요 단계
- 기능 정의: MCP 서버에서 제공할 기능 정의
- MCP 레이어 구현: MCP 프로토콜 사양에 따라 개발
- 전송 방식 선택: 로컬(Stdio) 또는 원격(Server-Sent Events/WebSockets) 결정
- 리소스/도구 생성: 노출할 데이터 소스 및 서비스 개발
- 클라이언트 설정: MCP 서버와 클라이언트 간 보안 연결 설정
요약
- MCP: AI 에이전트가 외부 도구 및 데이터와 상호작용하기 위한 표준화된 인터페이스
- API: 개별 통합이 필요하고 더 많은 수작업 요구
MCP는 AI 모델이 외부 도구 및 데이터를 쉽게 통합하고 실시간으로 상호작용하도록 지원함
결론
- MCP는 AI 모델이 외부 도구 및 데이터와 상호작용하는 단일화된 표준 프레임워크 제공
- 단순한 API가 아니라 AI 애플리케이션이 보다 지능적이고 동적이며 맥락 중심의 상호작용이 가능하도록 돕는 강력한 연결 솔루션
Hacker News 의견
-
MCP는 런타임에 도구를 추가할 수 있게 하여 사용자가 LLM 애플리케이션에 임의의 기능을 추가할 수 있게 함
- MCP는 상태가 있으며 복잡하여 HTTP보다는 FTP와 더 유사함
- 관련 블로그 게시물 링크 제공: 블로그 링크
-
개발자가 MCP를 이해해야 하는 가장 중요한 점은 AI 애플리케이션에 추가 기능을 동적으로 로드하는 프로토콜이라는 것임
- 자체 애플리케이션을 구축하는 경우 LLM이 제공하는 "Tools APIs"를 사용할 수 있음
- MCP는 애플리케이션 확장이 필요한 경우에만 고려할 필요가 있음
-
MCP가 이전의 API 레이어 시도와 어떻게 다른지에 대한 의문 제기
- AI가 API 클라이언트를 작성하는 데 있어 사람만큼 똑똑하다면 왜 기계가 읽을 수 있도록 만들어야 하는지에 대한 의문
-
MCP는 Anthropic에 의해 만들어졌으며 널리 채택되고 있음
- Apple App Store와 유사한 새로운 플랫폼 기회로 보임
- GitHub, Stripe, Slack, Google Maps, AirTable 등에서 빠르게 채택되고 있음
-
ANP (AgentNetworkProtocol)라는 다른 프로토콜 추천
- ANP는 MCP와 유사하지만 에이전트 간의 통신 문제를 해결하도록 설계됨
- ANP는 P2P 아키텍처를 사용하고, W3C DID를 통한 분산 ID 인증을 사용함
-
MCP 서버를 수백 개 큐레이션하여 사람들이 접근하고 탐색할 수 있게 함
- API를 통해 MCP 서버 검색 및 기능 식별 가능
- MCP 서버 작성, 발견 및 호스팅을 위한 포괄적인 플랫폼을 만드는 것이 목표임
-
MCP는 HTML과 대략적으로 동등하며, 동적 "도구" 검색 등의 기능을 잘 해결함
- 클라이언트 구현이 더 쉬울 수 있지만 표준화 부족, 미성숙함 및 비인간 가독성 문제 있음
-
모든 주요 AI 모델이 이미 잘 알려진 API와 완벽하게 인터페이스하는 코드를 작성할 수 있음
- 필요한 것은 API 문서뿐이라는 의견
-
MCP 프로토콜은 Language Server Protocol (LSP)와 매우 유사함
- LSP는 원격 서버에서 실행될 때 지속적인 웹소켓을 사용하여 작은 요청에 대한 빠른 응답을 제공함