피드로 돌아가기
Dev.toBackend
원문 읽기
MCP 브라우저 자동화 서버들의 Chromium 의존성을 AppleScript + Safari Extension 듀얼 엔진으로 대체해 CPU 사용량 38%에서 0.3% 수준으로 감소
Every MCP Browser Tool Uses Chromium. That's a Problem.
AI 요약
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를 선택적으로 병행 사용할 수 있다.