Releases: cw02326/auto-chrome-mcp
Release list
v1.8.0
Full Changelog: v1.7.0...v1.8.0
v1.7.0
v1.6.0 — 백그라운드 탭에서도 제대로 도는 자동화
사용자 증상 하나에서 출발했다: "백그라운드 탭에서 무한 스크롤이 20개쯤에서 멈추고 푸터가
뜬다 — 크롬인크롬은 되는데." 원인은 크롬이 비활성 탭의 렌더링 프레임을 만들지 않는 것
이었고, 파고드는 과정에서 로딩 대기·스냅샷 병합의 결함까지 함께 드러났다.
Added
- 백그라운드 탭 렌더링 유지 (
chrome_scroll_collect의renderMode): 비활성 탭은
requestAnimationFrame이 멈춰 무한 스크롤이 의존하는IntersectionObserver가 영영
발화하지 않는다. CDP 로 주기적으로 프레임을 강제해(250ms 간격) 탭을 앞으로 끌어내지
않고도 지연 로딩이 정상 동작한다.auto(기본, 탭이 안 보일 때만) /force/off.
결과에 실제로 적용된 수단을renderAssist로 싣고, 살리지 못한 채 멈추면
stoppedReason을noGrowthWhileHidden으로 정정한다(바닥 도달로 오보고하지 않는다). - 작업 탭 재사용·정리: 이 세션이 만든 작업 탭이 유휴일 때만 재사용하고, 새 작업
탭이 열리면 같은 세션의 유휴 탭을 닫는다. 탭이 무한히 쌓이지 않으면서 병렬 작업은
서로의 페이지를 덮어쓰지 않는다.chrome_navigate의newTab:true로 강제할 수 있고,
사용자가chrome_set_work_tab으로 지정한 탭은 절대 끌려가지 않는다. - "Claude 작업 중" 표시: 작업 탭 페이지에 보라색 테두리와 배지를 띄운다. shadow DOM 이라
사이트 CSS·텍스트 수집과 섞이지 않고,pointer-events:none이라 클릭을 막지 않는다.
Fixed
- 렌더링 유지가 실제로는 동작하지 않았다:
Page.startScreencast는 "생산된 프레임을
받아 가는" 수동적 장치라, 프레임이 아예 안 나오는 숨은 탭에서는 첫 프레임이 영원히 오지
않는다(실측: force 모드 15초에 페이지 rAF 0회). 프레임 생산을 강제하는
Page.captureScreenshot을 주기적으로 눌러 주는 방식으로 교체했다. 실측 결과 같은
페이지에서 10개 → 100개 전량 수집. chrome_navigate의waitUntil이 무력했다: 내비게이션이 커밋되기 전에는 이전
문서가 살아 있고readyState가complete라, 대기가 1~7ms 만에 끝나고 결과의
url·title 도 이전 페이지 것이 나갔다. 이동을 걸기 전에 시작 신호를 잡고, 문서
식별자·탭 상태·목표 URL 커밋 여부로 판정한다. 탭이 닫히면 즉시tab_not_found,
주입할 수 없는 문서(about:blank·PDF)는 탭 상태로 판정해(not_injectable) 타임아웃까지
헛돌지 않는다.waitUntil:'none'이 탭 점유를 풀지 않았다: 재사용 탭이 영원히 busy 로 남아 이후
호출이 새 탭만 계속 만들었다.chrome_scroll_collect텍스트가 패스마다 페이지 전체를 중복 누적했다: 푸터나 로딩
스피너 때문에 새 항목이 가운데로 들어오면 접두·접미 겹침이 둘 다 빗나갔다(실측: 최종
16.8KB 페이지가 120KB). 줄 단위 정렬로 다시 짜서 같은 페이지가 16.9KB 로 수렴한다.
Changed
docs/TOOLS.md를 실제 도구 41개에 맞춰 동기화했다(문서에는 21개만 있었고 그중 6개는
이미 없어진 도구였다). 공통 파라미터를 한 절로 뽑고, Performance·Automation 섹션을 추가.
Tests
- 이 영역들에는 단위 테스트가 없었다 — 그래서 깨진 채로 배포됐다. 56건을 추가했고,
그중 24건은 무한 스크롤 페이지 모양 4종 × 시드 3개 × 페이지 크기 2종을 돌려 매 패스마다
"손실 0 · 중복 0 · 크기 폭발 없음" 을 확인하는 퍼즈 테스트다. 확장 762건 + 브리지 25건 통과.
설치 (Windows)
PowerShell 에서 한 줄:
irm https://raw.githubusercontent.com/cw02326/auto-chrome-mcp/main/install.ps1 | iex설치가 끝나면 chrome://extensions 에서 압축해제된 확장 프로그램을 로드 로 설치 폴더를
한 번 지정해 주면 됩니다. 자세한 안내는 초보자용 설치 가이드.
npm
auto-chrome-mcp-bridge@1.6.0auto-chrome-mcp-shared@1.6.0
v1.4.2 — 발행 수정
⚠️ v1.4.0 · v1.4.1 은 설치하지 마세요
두 버전은 npm에서 설치가 불가능합니다. 모노레포 내부 의존성이 workspace:* 그대로 발행되어 npm install -g 이 다음과 같이 실패합니다.
npm error code EUNSUPPORTEDPROTOCOL
npm error Unsupported URL Type "workspace:": workspace:*
npm publish 로 올린 것이 원인입니다. workspace 프로토콜을 실제 버전으로 치환해 주는 것은 pnpm 뿐입니다. v1.4.2 는 pnpm publish 로 올렸고, 발행 전 pnpm pack 으로 tarball 안의 의존성을 직접 확인했습니다.
깨진 두 버전은 deprecate 처리했습니다.
v1.4.0 ~ v1.4.2 누적 변경
- 작업 탭이 별도 창이 아니라 지금 쓰는 크롬 창에 백그라운드 새 탭으로 열립니다. 보던 화면이 바뀌지 않습니다. 별도 창이 필요하면 팝업의 "전용 작업 창" 토글로 되돌릴 수 있습니다.
- 사용자 탭 하이재킹 수정 — 전용 창을 끄면 MCP가 사용자가 열어둔 같은 URL 탭을 잡아 조작하던 문제.
ERR_HTTP_HEADERS_SENT수정 — MCP 응답을 Fastify가 한 번 더 보내려다 요청마다 stderr에 스택이 쌓였습니다. MCP 클라이언트를 둘 이상 붙일 때 특히 잘 드러납니다.- doctor가 남의 npm 패키지 설치를 안내하던 문제 수정 — 복구 명령의 패키지명이 타 계정 소유 이름이었습니다.
- 확장 자동 다운로드 URL 수정 — 접근 권한 없는 옛 저장소를 가리키고 있었습니다.
설치
npm install -g auto-chrome-mcp-bridge
auto-chrome-mcp-bridge doctor
확장은 첨부 zip으로 교체 후 chrome://extensions에서 새로고침하세요.
v1.4.1 — 이중 응답 수정
버그 수정
브릿지가 요청마다 ERR_HTTP_HEADERS_SENT를 뱉던 문제
MCP transport는 응답을 Fastify가 아니라 raw 소켓에 직접 씁니다. 그런데 핸들러가 reply.hijack()을 하지 않고 끝나면 Fastify가 같은 응답에 자기 결과를 한 번 더 보내려 하고, 그때마다 stderr에 스택이 쌓였습니다.
/mcpPOST·DELETE,/sse,/messages에reply.hijack()추가- GET
/mcp는 헤더를 flush한 뒤에야 hijack하고 있어 순서를 앞으로 옮김 - 기존
if (!reply.sent)가드는 raw 쓰기를 반영하지 않아 무력했습니다.reply.raw.headersSent/writableEnded기준으로 교체
MCP 클라이언트를 둘 이상 동시에 붙일 때 특히 잘 드러납니다 (예: Claude Code + Codex가 같은 크롬을 공유하는 구성). 눈에 보이는 고장은 없었지만 로그가 계속 오염되고 있었습니다.
업데이트
npm install -g auto-chrome-mcp-bridge
auto-chrome-mcp-bridge doctor
확장은 첨부된 zip으로 교체 후 chrome://extensions에서 새로고침하세요. 확장 기능 변경은 없고 버전만 1.4.1로 맞췄습니다.
v1.4.0 — 현재 창 작업 탭
바뀐 점
MCP 작업 탭이 별도 창이 아니라 "지금 보고 있는 크롬 창"에 열립니다
이전에는 MCP가 작업할 때마다 별도의 창을 새로 띄웠습니다. 이제는 열어 두신 크롬 창에 백그라운드 새 탭으로 열립니다. 탭은 비활성 상태로 만들어져 보시던 화면이 바뀌지 않고, 스크린샷·페이지 읽기는 CDP 경로라 보이지 않는 탭에서도 정상 동작합니다.
- 설정이
dedicatedWorkWindow(켬/끔) →mcpWorkWindowMode(current|dedicated)로 바뀌었고 기본값은current입니다. 기존 설정은 자동으로 승계되니 그대로 두셔도 됩니다. - 대량 크롤링처럼 탭이 많이 필요하면 팝업의 "전용 작업 창" 토글을 켜서 예전 방식으로 되돌릴 수 있습니다.
- 대상 창은 일반 창만 고릅니다 (팝업·개발자도구·앱 창, 시크릿 창 제외). 열린 창이 없으면 종전처럼 새 창을 만듭니다.
버그 수정
- 사용자 탭 하이재킹: 전용 작업 창을 끄면 MCP가 사용자가 열어 둔 같은 URL 탭을 잡아 조작하던 문제. 하이재킹 방지 필터가 전용 창이 켜져 있을 때만 걸려 있었습니다. 이제 항상 적용됩니다.
- doctor가 남의 패키지 설치를 안내: 복구 명령의 패키지명이
mcp-chrome-scalemaker-bridge였는데, 이 이름은 npm에서 다른 계정 소유입니다. 실제 패키지명auto-chrome-mcp-bridge로 정정했습니다. - 확장 자동 다운로드 URL이 옛 저장소를 가리킴: 설치 시 확장 zip을 받아오는 주소가 접근 권한 없는 구 저장소였습니다. 이 저장소로 정정했습니다.
- 설치 안내가 프로젝트별
.mcp.json대신claude mcp add -s user전역 등록을 권하도록 바꿨습니다. 프로젝트마다 등록하면 경로가 서로 어긋나 깨지기 쉽습니다.
설치
기존 사용자는 확장을 새로 받아 교체하고 chrome://extensions에서 새로고침하시면 됩니다.
npm install -g auto-chrome-mcp-bridge
auto-chrome-mcp-bridge doctor
전체 변경 내역은 docs/CHANGELOG.md를 참고하세요.
v1.3.0 — 자연어 요소 검색·다중 브라우저 전환·매크로
chrome_find(자연어 요소 검색, iframe 포함), chrome_list_browsers/chrome_use_browser(세션 중 프로필 전환), chrome_shortcut(이름 매크로). 설치: zip 압축 해제 후 chrome://extensions 로드, 브리지 npm i -g auto-chrome-mcp-bridge. 상세: docs/CHANGELOG.md
v1.2.0 — 팝업 인지·신뢰성 도구·토큰 최적화
F1-F7: 팝업/새 창 인지, chrome_wait_for, iframe 자동 탐색, 실패 스크린샷, 로그인 감지, 다운로드 알림, chrome_scroll_collect. T1-T7: 스크린샷 이미지 블록(토큰 100배 절감), diff 모드, chrome_extract, 리더 모드, 트리 압축 35-50%, 페이지네이션. 설치: zip 압축 해제 후 chrome://extensions에서 로드, 브리지는 npm i -g auto-chrome-mcp-bridge. 상세: docs/CHANGELOG.md
v1.1.0 — Auto Chrome MCP (무간섭 백그라운드 작업 모드)
확장 zip을 받아 압축 해제 후 chrome://extensions → 개발자 모드 → '압축해제된 확장 프로그램 로드'로 설치하세요. 브리지: npm i -g auto-chrome-mcp-bridge. 상세 변경사항: docs/CHANGELOG.md v1.1.0 항목 참고.