코딩 에이전트용 ChromeDevTools MCP 개발판에 페이지별 요청 실패·다른 사이트 코드의 대체 응답 읽기 허용 추가
ChromeDevTools의 `chrome-devtools-mcp` 개발 브랜치에 페이지별 요청을 실패시키거나 대체 응답에 교차 출처 허용 헤더를 넣는 기능이 병합됐습니다. 헤더 설정에는 로컬 파일이나 원격 응답이 필요하며, 네트워크 모킹은 기본적으로 꺼져 있습니다. 11월 14일 기준 최신 공개 버전 v1.13.0에는 새 동작이 포함되지 않았습니다.
ChromeDevTools의 공개 저장소 chrome-devtools-mcp에서 Marco Prontera 기여자가 제출한 PR #3421이 main 브랜치에 병합됐습니다. 이 변경은 페이지별 네트워크 모킹 규칙에 요청을 실패시키는 abort와 교체 응답에 교차 출처 허용 헤더를 넣는 allowOrigin 동작을 추가합니다.
ChromeDevTools MCP는 코딩 에이전트가 실행 중인 Chrome을 제어하고 조사하도록 연결하는 도구입니다. 에이전트는 MCP 서버의 도구를 호출할 수 있고, 터미널에서는 CLI를 사용할 수 있습니다. 네트워크 모킹은 특정 페이지의 요청을 URL 패턴과 선택적 리소스 유형으로 골라 로컬 파일이나 원격 서버의 응답으로 바꾸는 기능입니다. 페이지별 모킹과 로컬 파일 응답은 PR #3384에서, 원격 응답은 PR #3420에서 먼저 main에 들어갔습니다. 11월 11일 공개된 v1.13.0에도 이 두 기능이 포함됐습니다.
새 abort 동작은 규칙에 맞는 요청을 어떻게 처리할지 정합니다. abort=true이면 요청을 실패시키고, 이 동작이 응답 소스나 allowOrigin 헤더보다 우선합니다. abort=false이면 규칙에 저장된 로컬 파일 또는 원격 응답을 사용합니다. 둘 다 저장되지 않은 규칙은 Chrome이 원래 요청을 네트워크로 보냅니다. 이때 소스가 없는 규칙도 오래된 일치 규칙보다 우선합니다. 동작을 갱신할 때 기존 응답 소스를 유지할 수 있습니다.
allowOrigin은 교체 응답에 Access-Control-Allow-Origin 헤더를 설정합니다. 이 헤더는 다른 웹사이트 출처의 코드가 응답을 읽도록 허용할 출처를 지정합니다. 값으로는 *, null, https://example.com 같은 출처 형식을 쓸 수 있습니다. 다만 설정하려면 같은 호출에서 로컬 파일이나 원격 응답을 지정하거나, 일치하는 규칙에 그 소스가 이미 저장돼 있어야 합니다. 소스가 없으면 설정 오류가 발생합니다. 이 동작은 사전 요청(preflight)에 필요한 처리나 인증정보 관련 헤더를 구성하지 않습니다.
PR 설명에 따르면 실제 Chrome 시험에서 교차 출처 fetch()는 허용 헤더가 없을 때 실패했고, allowOrigin을 적용한 뒤 성공했습니다. 여기에 abort=true를 설정하자 요청은 다시 실패했습니다. 이 사례는 두 설정이 각각 응답의 출처 허용과 요청 실패를 다루며, 중단 동작이 우선한다는 점을 보여줍니다.
원격 응답 방식에서는 MCP 서버가 원격 주소로 요청을 보내 응답을 페이지에 전달합니다. 이 방식은 GET과 HEAD만 지원하며, 처음 지정한 주소와 리디렉션되는 주소마다 허용·차단 정책을 적용합니다. 로컬 파일 방식은 요청이 들어올 때마다 파일을 다시 읽으므로 파일 내용을 바꾸면 다음 요청부터 변경된 응답을 사용할 수 있습니다.
네트워크 모킹은 MCP와 CLI에서 기본적으로 꺼져 있습니다. 서버를 시작할 때 --categoryNetworkMocks=true로 켜며, 이 범주 설정을 바꾸면 서버를 다시 시작해야 합니다. 모킹 규칙은 특정 페이지에 적용되지만, 활성화된 페이지에서는 HTTP 캐시를 끄고 모든 요청을 가로챕니다. 따라서 성능 추적이나 Lighthouse 결과의 측정 조건이 일반 페이지와 달라질 수 있고, 성능 추적 중에는 규칙을 바꿀 수 없습니다. 서비스 워커가 요청을 직접 처리하면 모킹을 우회할 수도 있습니다.
11월 14일 기준 최신 공개 릴리스는 v1.13.0이며, 새 abort와 allowOrigin 동작은 이 버전에 포함되지 않았습니다. v1.14.0 릴리스 작업을 다루는 PR #3462는 열린 상태입니다.
참고 자료
- feat: add abort and allow-origin network mocks by marco-prontera · Pull Request #3421 · ChromeDevTools/chrome-devtools-mcp
- feat: add abort and allow-origin network mocks by marco-prontera · Pull Request #3421 · ChromeDevTools/chrome-devtools-mcp
- feat: add abort and allow-origin network mocks (#3421) · ChromeDevTools/chrome-devtools-mcp@eb4b53d · GitHub
- feat: support upstream network mock responses by marco-prontera · Pull Request #3420 · ChromeDevTools/chrome-devtools-mcp
- feat: add page-scoped network mocks by marco-prontera · Pull Request #3384 · ChromeDevTools/chrome-devtools-mcp
- Release chrome-devtools-mcp: v1.13.0 · ChromeDevTools/chrome-devtools-mcp · GitHub
- marco-prontera (Marco Prontera) · GitHub