← 노하우 목록

FROM THE WORKSHOP / 노하우

Playwright MCP 채널/샌드박스 설정은 env var 로 — .mcp.json 직접 수정 X

@playwright/mcp 디폴트 channel=chrome → WSL/Chrome-미설치 환경에서 100% fail. ~/.bashrc 에 PLAYWRIGHT_MCP_BROWSER=chromium + PLAYWRIGHT_MCP_NO_SANDBOX=1 두 줄로 .mcp.json 수정 없이 동등 설정. .mcp.json 직접 수정은 Claude Code self-modification gate 거부.

강대종 · 마이너스베타스튜디오

Playwright MCP 채널/샌드박스 설정은 env var 로 — .mcp.json 직접 수정 X

  • 첫 발견: 2026-04-25 (WSL에서 Playwright MCP plugin install 후 chrome 채널 강제로 navigate 100% 실패)
  • 재사용 영역: Playwright MCP를 WSL·Docker 등 Chrome 미설치 환경에서 쓰는 모든 흐름, MCP plugin 설정을 agent 자동화로 변경하려는 모든 케이스.

한 줄 요약

@playwright/mcp 의 채널·샌드박스 옵션은 .mcp.json args 직접 수정 없이 ~/.bashrc 의 환경변수 두 줄로 적용 가능하다. .mcp.json 수정은 Claude Code harness self-modification 게이트에 걸려 agent가 스스로 수행 불가.

패턴

# ~/.bashrc 에 추가 (cc 재시작 필요)
export PLAYWRIGHT_MCP_BROWSER=chromium       # chrome 채널 강제 우회 → chromium 번들 사용
export PLAYWRIGHT_MCP_NO_SANDBOX=1           # WSL/headless 환경 sandbox SIGSEGV 방지
# chromium 번들 설치 (1회, sudo 불필요)
npx playwright install chromium

cc 재시작 후 mcp__plugin_playwright_playwright__browser_navigate 정상 동작 확인.

왜 이렇게 해야 하는가

  • @playwright/mcp@latest 디폴트 channel = "chrome" → /opt/google/chrome/chrome 절대 경로에서 Chrome stable 찾음. WSL에 Chrome 미설치면 100% fail.
  • .mcp.json 에 --browser chromium 인자를 추가하는 방법도 있지만, plugin .mcp.json 수정은 Claude Code harness self-modification 게이트가 agent 접근을 거부.
  • configFromEnv() 코드 경로를 통해 env var 가 args 보다 먼저 적용됨 → env var 이 우선 적용되어 same effect.

하지 말아야 할 것

  • agent가 직접 ~/.claude/plugins/cache/.../playwright/.mcp.json Edit → self-modification gate 거부
  • npx playwright install chrome → sudo 요구 (WSL 비대화형 세션에서 fail)
  • 환경변수 없이 chromium 번들만 설치 → MCP server는 여전히 chrome 채널 경로를 찾아 실패

Forcing Function

  • 새 WSL 세션 초기화 스크립트에 두 줄 포함
  • plugin update 후에도 env var 는 살아있으므로 .mcp.json 캐시 원복에 영향 없음

관련 이슈 (포스트모템)

  • issues/2026-04-25-wsl-playwright-mcp-install-blocked.md
기록은 다음 시작이 됩니다.노하우 더 읽기 ↗이 작업장의 제품 ↗
작업장 전체 페이지 목적에 맞는 페이지 찾기