10P by GN⁺ 23일전 | ★ favorite | 댓글 3개
  • 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 시작하기: 주요 단계

  1. 기능 정의: MCP 서버에서 제공할 기능 정의
  2. MCP 레이어 구현: MCP 프로토콜 사양에 따라 개발
  3. 전송 방식 선택: 로컬(Stdio) 또는 원격(Server-Sent Events/WebSockets) 결정
  4. 리소스/도구 생성: 노출할 데이터 소스 및 서비스 개발
  5. 클라이언트 설정: MCP 서버와 클라이언트 간 보안 연결 설정

요약

  • MCP: AI 에이전트가 외부 도구 및 데이터와 상호작용하기 위한 표준화된 인터페이스
  • API: 개별 통합이 필요하고 더 많은 수작업 요구

MCP는 AI 모델이 외부 도구 및 데이터를 쉽게 통합하고 실시간으로 상호작용하도록 지원함

결론

  • MCP는 AI 모델이 외부 도구 및 데이터와 상호작용하는 단일화된 표준 프레임워크 제공
  • 단순한 API가 아니라 AI 애플리케이션이 보다 지능적이고 동적이며 맥락 중심의 상호작용이 가능하도록 돕는 강력한 연결 솔루션

MCP가 JSON이 될 수 있을것인지 궁금함.

MCP가 JSON이 되기에는 데이터 통신을 위한 규격도 아니고, 과하게 어렵다고 생각합니다.

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는 원격 서버에서 실행될 때 지속적인 웹소켓을 사용하여 작은 요청에 대한 빠른 응답을 제공함