Ruby SDK로 MCP 클라이언트 만들기

Ruby SDK로 MCP 클라이언트 만들기

Ruby SDK에서 MCP::Client 클래스는 MCP 서버와 상호작용하는 인터페이스를 제공해요. 이 클래스를 쓰면 서버의 도구·리소스·프롬프트를 탐색하고 호출할 수 있습니다.

출처: Building an MCP Client - MCP Ruby SDK

MCP::Client 클래스가 지원하는 것들:

  • 생명주기 협상과 연결MCP::Client#connect로, 서버가 서빙하면 현대 생명주기를 채택합니다. Lifecycle 참고
  • 서버 탐색server/discover 메서드(MCP::Client#discover). Explicit Discovery 참고
  • 생존 확인ping 메서드(MCP::Client#ping)
  • 도구 나열tools/list 메서드(MCP::Client#tools)
  • 도구 호출tools/call 메서드(MCP::Client#call_tool)
  • 리소스 나열resources/list 메서드(MCP::Client#resources)
  • 리소스 템플릿 나열resources/templates/list 메서드(MCP::Client#resource_templates)
  • 리소스 읽기resources/read 메서드(MCP::Client#read_resource)
  • 프롬프트 나열prompts/list 메서드(MCP::Client#prompts)
  • 프롬프트 조회prompts/get 메서드(MCP::Client#get_prompt)
  • 완성 요청completion/complete 메서드(MCP::Client#complete). Completions 참고
  • 멀티 라운드 트립 드라이빙on_elicitation, on_sampling, on_roots 핸들러가 등록되면 input_required 결과를 자동으로 처리합니다. Multi-Round-Trip Results 참고
  • 진행 중 요청 취소cancellation: 키워드로. Cancellation 참고
  • 커서 기반 페이지 반복list_* 메서드에서, max_pages 가드로 전체 컬렉션을 가져올 수 있습니다. Pagination 참고
  • 자동 JSON-RPC 2.0 메시지 포매팅
  • UUID 요청 ID 생성

클라이언트는 저수준 통신 메커니즘을 처리하는 트랜스포트 레이어 인스턴스로 초기화됩니다. 인증은 트랜스포트 레이어에서 처리돼요. Authorization 참고

도구 객체

클라이언트는 서버가 반환한 도구를 위한 래퍼 클래스를 제공해요:

  • MCP::Client::Tool — 메타데이터와 함께 단일 도구를 나타냄

이 클래스는 name, description, input schema, output schema 같은 도구 속성에 쉽게 접근하게 해 줍니다.

더 알아보기 (Learn more)