Ruby SDK로 MCP 클라이언트 만들기
Ruby SDK로 MCP 클라이언트 만들기
Ruby SDK에서 MCP::Client 클래스는 MCP 서버와 상호작용하는 인터페이스를 제공해요. 이 클래스를 쓰면 서버의 도구·리소스·프롬프트를 탐색하고 호출할 수 있습니다.
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)
- Ruby SDK 서버 가이드 — MCP 서버 만들기
- Ruby SDK 설치 — 설치 방법
- Ruby SDK 예제 — 실행 가능한 예제