브라우저 자동화 라이브러리 '퍼펫티어', MCP 서버 제공하며 깃허브 트렌딩
자바스크립트 라이브러리 퍼펫티어(Puppeteer)가 깃허브 트렌딩에 올랐다. 퍼펫티어는 DevTools 프로토콜 또는 WebDriver BiDi를 통해 크롬이나 파이어폭스를 제어하는 고수준 API를 제공하는 라이브러리다.
퍼펫티어는 기본적으로 헤드리스(headless) 모드로 동작한다. 즉 화면에 보이는 UI 없이 브라우저를 실행한다.
설치는 npm으로 이뤄진다. 'npm i puppeteer' 명령은 설치 과정에서 호환되는 크롬을 함께 내려받는다. 크롬을 내려받지 않고 라이브러리만 설치하려면 'npm i puppeteer-core'를 사용한다.
다만 최근의 패키지 매니저들은 의존성 설치 스크립트를 기본적으로 차단한다. npm을 비롯해 pnpm, Yarn, Bun, Deno가 여기에 해당한다. 설치 스크립트가 차단되면 퍼펫티어가 설치 도중 브라우저를 내려받지 못해 실행 단계에서 오류가 발생할 수 있다.
이 경우 설치 후 'npx puppeteer browsers install' 명령으로 필요한 브라우저를 직접 내려받을 수 있다. 또는 패키지 매니저가 설치 스크립트를 실행하도록 설정하는 방법도 있다. 예를 들어 npm에서는 package.json의 allowScripts 항목에 puppeteer를 추가한다.
퍼펫티어는 MCP 생태계와도 연결된다. 퍼펫티어를 기반으로 한 MCP 서버인 chrome-devtools-mcp는 브라우저 자동화와 디버깅 기능을 제공하며, 퍼펫티어 자체도 실험적인 WebMCP API를 지원한다.
공식 예시 코드는 브라우저를 실행해 새 페이지를 열고 특정 URL로 이동하는 흐름을 보여준다. 화면 크기를 설정한 뒤 키보드 입력으로 검색 메뉴를 열고, 접근성 이름이나 텍스트를 기준으로 요소를 찾아 클릭한 다음 그 텍스트 내용을 추출하는 동작이 포함된다.