피드로 돌아가기
Every MCP Browser Tool Uses Chromium. That's a Problem.
Dev.toDev.to
Backend

MCP 브라우저 자동화 서버들의 Chromium 의존성을 AppleScript + Safari Extension 듀얼 엔진으로 대체해 CPU 사용량 38%에서 0.3% 수준으로 감소

Every MCP Browser Tool Uses Chromium. That's a Problem.

אחיה כהן2026년 3월 28일9intermediate

Context

MCP 서버 레지스트리의 13개 브라우저 자동화 서버가 모두 Chromium에 의존하고 있어 개발자의 시스템 리소스를 과도하게 소비하고 있다. 저자는 M2 MacBook Pro에서 6~7개 MCP 서버를 동시에 실행할 때 브라우저 MCP 서버(Chrome)가 38% CPU를 사용하는 반면, 이미 열려있는 Safari는 11개 탭으로 0.3% CPU만 사용하는 것을 발견했다.

Technical Solution

  • AppleScript + Swift 데몬 기반 Engine 1 구현: 오스크립트 프로세스 스폰 오버헤드(~80ms)를 제거하고 지속적 Swift 헬퍼 프로세스로 ~5ms 지연 달성
  • Safari Web Extension 기반 Engine 2 구현: 폐쇄 Shadow DOM, 엄격한 CSP, 깊은 프레임워크 상태 접근 등 AppleScript의 한계를 보완하는 HTTP(포트 9224) 통신 구조
  • 자동 엔진 선택 메커니즘: Extension 연결 시 Extension 사용, 미연결 시 AppleScript로 자동 폴백
  • 80개 도구 구현: 네비게이션(safari_navigate, safari_read_page), 상호작용(safari_click, safari_drag), 폼 입력(safari_fill, safari_fill_form), 스크린샷/PDF, 네트워크 캡처(safari_mock_route), 스토리지 관리(쿠키/localStorage/sessionStorage/IndexedDB), 접근성 감사(safari_accessibility_snapshot) 등 총 20개 카테고리
  • npm 패키지 배포 및 간소화된 설정: Safari 설정 활성화(JavaScript from Apple Events) 후 ~/.mcp.json에 단순 설정 추가

Impact

  • CPU 사용량: Chrome 38% → Safari(Safari MCP) 0.3% 수준으로 감소
  • 레이턴시: AppleScript 단일 엔진으로 ~5ms, 프로세스 스폰 오버헤드 제거로 기존 ~80ms 대비 16배 개선
  • 전체 MCP 서버 메모리 풋프린트: 저자의 실제 워크플로우에서 6~7개 동시 실행 시 Chrome DevTools MCP 병렬 사용 가능

Key Takeaway

기존 표준 도구(Chromium)에 의존하는 모노컬처 상황에서 플랫폼 네이티브 API(AppleScript, Safari Extension)를 활용한 대안 구현으로 리소스 효율성을 극대화할 수 있다. 특히 95% 작업에서는 가볍고 빠른 솔루션으로, 5% 성능 감시 필요 시 Lighthouse 용 Chrome DevTools MCP를 별도로 운영하는 선택적 조합 전략이 실무적 가치를 제공한다.


6개 이상의 MCP 서버를 동시에 운영하는 개발 환경에서 Safari MCP를 도입하면 Chromium 기반 브라우저 자동화 서버의 CPU 점유를 38%에서 0.3% 수준으로 낮출 수 있으며, AppleScript와 Safari Extension의 듀얼 엔진으로 95% 일반 자동화 작업을 처리하면서 필요시에만 Chrome DevTools MCP를 선택적으로 병행 사용할 수 있다.

원문 읽기