프로젝트 소개

@mcp-z/client는 Node.js(Node.js >= 22 필요)를 위한 프로그래밍 방식의 MCP 클라이언트 라이브러리입니다. 단일 프로세스 내에서 여러 MCP 서버에 연결하고, 스크립트에서 MCP 도구를 실행하며, MCP 서버를 위한 통합 테스트를 작성하는 기능을 지원합니다. 지원되는 전송 방식에는 stdio와 HTTP가 포함됩니다. HTTP 서버는 `dialects: ['start']` 옵션을 사용하여 `start` 블록 확장을 통해 선택적으로 생성할 수 있습니다. 또한 HTTP 서버가 지원하는 경우 Dynamic Client Registration (DCR)을 통한 OAuth를 지원하며, `dcrAuthenticator`를 통해 토큰 저장소(예: Keyv)를 전달할 수 있습니다. 핵심 API는 `createServerRegistry(config, options?)`를 통해 생성되는 서버 레지스트리를 중심으로 합니다. 레지스트리는 이름 지정 서버 연결(`registry.connect`), 서버 간 기능 검색(`registry.searchCapabilities`), 모든 연결 종료(`registry.close`) 메서드를 제공합니다. 관리형 클라이언트는 도구 호출(`callTool`), 프롬프트 가져오기(`getPrompt`), 리소스 읽기(`readResource`) 및 도구, 리소스 또는 프롬프트 목록 조회 메서드를 노출합니다. SDK 응답의 원시 변형 버전(`callToolRaw`, `getPromptRaw`, `readResourceRaw`)도 사용할 수 있습니다. 응답 래퍼는 구조화된 콘텐츠 파싱을 위한 `json()`, 첫 번째 텍스트 결과를 위한 `text()`, 원시 MCP 응답을 위한 `raw()`와 같은 헬퍼 메서드를 제공합니다. 레지스트리 옵션에는 생성된 프로세스의 작업 디렉토리를 위한 `cwd`, 기본 환경 변수를 위한 `env`, 생성할 서버 유형(stdio 서버, HTTP start 블록 또는 둘 다)을 제어하는 `dialects`가 포함됩니다. API 문서는 프로젝트의 문서 사이트에서 확인할 수 있습니다.