AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

모델 컨텍스트 프로토콜(MCP) 파이썬 SDK 개요

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

DevOps

대상자

  • 소프트웨어 개발자, 시스템 설계자
  • 중급~고급 수준의 개발자 (프로토콜 구현, 서버/트랜스포트 레이어 개발 필요)

핵심 요약

  • 저수준 서버read_streamwrite_stream을 통해 프로토콜 규격을 구현하고, 세션 관리를 담당 (예: server.run() 호출)
  • 고수준 서버(예: FastMcp)는 저수준 서버를 캡슐화하고, 도구 관리, 리소스 관리 등 고수준 기능 제공
  • 트랜스포트 레이어read_stream/write_stream 인터페이스를 통해 자체 구현 가능 (예: stdio, SSE, WebSocket 지원)

섹션별 세부 요약

1. 저수준 서버 구조

  • 세션 생성: server.run() 호출 시 read_streamwrite_stream을 통해 트랜스포트 레이어와 통신
  • 메시지 처리:

- ClientRequest/ClientNotification/ClientResult 수신 시 RequestResponder 생성 후 message_stream에 전달

- MCP core handler를 통해 요청 처리 후 JSONRPCResponsewrite_stream으로 전송

  • 트랜스포트 레이어 분리: 서버 세션과 트랜스포트 레이어는 두 스트림을 통해 느슨한 결합

2. 고수준 서버 기능

  • 도구 관리: CallToolRequest/ListToolsRequest 처리를 위한 MCP core handler 구현
  • 리소스 관리: ListResourcesRequest 등 고수준 기능 제공
  • 모듈화 설계: 저수준 서버와 분리된 로직 구현

3. 클라이언트 세션 동작

  • 세션 초기화: InitializeRequest를 통해 프로토콜 버전, 기능, 클라이언트/서버 정보 교환
  • 메시지 전송:

- ClientRequest/ClientNotification/ClientResult 전송

- ServerRequest/ServerNotification/ServerResult 수신

  • 트랜스포트 레이어 연동:

- 모든 메시지 전송/수신은 트랜스포트 레이어 노출 인터페이스를 통해 처리

4. 트랜스포트 레이어 옵션

  • 로컬 통신: stdio 사용 권장
  • 원격 통신: SSE 사용 권장
  • 커스텀 트랜스포트: read_stream/write_stream 인터페이스 제공 시 구현 가능
  • SDK 지원: WebSocket 포함

결론

  • MCP SDK 아키텍처 이해는 서버/트랜스포트 레이어 개발에 필수적
  • 트랜스포트 레이어 유연성을 위해 read_stream/write_stream 인터페이스를 반드시 구현
  • 고수준 서버(예: FastMcp)는 저수준 서버와 분리된 모듈 설계를 통해 확장성 강화